모의해킹 공부 - (3)

yxxun1216·2023년 1월 24일
0

Client-side exploitation


Bypass Filters with Metasploit Payloads

All Ports

Metasploit의 payload와 필터링 기술을 우회할 수 있는 몇 가지를 살펴본다.
필터를 통해 허용되는 port를 알면 LPORT 옵션을 관련 port로 설정할 수 있다. Metasploit reverse_tcp_allports payload는 연결할 port를 확인할 수 있는 명령어이다.
MS08-067 exploit을 사용한다.

LPORT 옵션은 연결이 성공할 때까지 port를 연결을 시도하는데 트래픽을 차단하는 필터가 없어서 port 1번과 연결된다. 필터링 되지 않은 port를 찾기 위해 오랫동안 실행될 수 있다는 단점이 있다.

exploit을 하면 성공한 것을 볼 수 있다.

HTTP and HTTPS Payloads

HTTP와 HTTPS payload는 패킷 기반으로 연결에 제한되지 않는다. 네트워크 통신이 끊기고 metasploit도 끊기더라도 HTTP와 HTTPS는 복구되고 다시 연결될 수 있다.
그러나 프록시 설정을 사용하면 HTTP와 HTTPS payload도 실패할 수 있다.

Client-Side Attacks

Browser Exploitation

웹 브라우저는 웹 페이지를 렌더링하는 코드로 구성된다.
서버 소프트웨어에 잘못된 형식의 입력을 보내듯, 악성코드가 있는 웹페이지를 열어 보안 문제를 일으키면 브라우저의 실행을 가로채고 payload를 실행할 수 있다.

Aurora Metasploit 모듈인 rovate/windows/browser/ms10_002_aurora를 사용하여 대상 시스템을 제어한다.

모듈 옵션을 보면 RHOST 대신 SRVHOST 옵션이 표시되는데 이는 서버의 로컬 IP 주소이다. 기본적으로 0.0.0.0으로 설정되며 로컬 시스템의 모든 주소를 수신한다.
SRVPORT는 8080이며 SSL 연결 가능하다.
URIPATH 옵션을 설정하면 특정 URL을 지정할 수 있다.

각각의 옵션을 설정한다. SRVHOST와 LHOST를 kali IP주소로, SRVPORT를 80번으로, URIPATH를 aurora로 설정한다. payload는 windows/meterpreter/reverse_tcp로 설정하여 exploit 한다.

Windows XP에서 Internet Explorer로 접속하면 아래와 같은 화면을 확인할 수 있다.


session -i [session id] 명령어를 이용하면 session에 연결할 수 있다.

Meterpreter payload는 브라우저가 닫히면 session도 연결이 끊기기 때문에 악용된 프로세스(이 경우 Internet Explorer)가 종료되더라도 session이 활성화 되는 방법이 필요하다.

jobs 명령어를 실행하면 백그라운드에서 실행되는 작업이 보이고 이를 중지하려면 kill [job number]를 입력한다.

Running Scripts in a Meterpreter Session

Meterpreter script의 migrate.rb를 이용하면 meterpreter를 한 프로세스에서 다른 프로세스로 이동 가능하다.
run [script name] 명령어를 입력한다.

Advanced Parameters

Metasploit 모듈에 고급 매개변수가 있는데 show advanced 명령어로 확인할 수 있다.

AutoRunScript payload를 이용하여 meterpreter script를 자동으로 실행할 수 있다.

PDF Exploits

사용자가 악의적인 PDF를열도록 유인하여 공격할 수 있다.

Exploiting a PDF Vulnerability

exploit/windows/fileformat/adobe_utilprintf를 사용하여 exploit 한다.

악의적인 PDF는 /root/.msf4/local/msf.pdf로 저장된다. 이제 PDF를 제공하고 payload에 대한 handler를 설정한다.

Windows XP에서 PDF를 열면 meterpreter session이 연결된다.

ExitOnSession을 false로 설정하면 msfconsole prompt가 무한대로 표시되지 않을 수 있다. metasploit에서 exploit -j 옵션을 사용하면 handler가 백그라운드에 들어온 shell을 잡는 동안 msfconsole을 계속해서 이용할 수 있다.

handler를 닫으려면 Aurora에서와 같이 kill [job number]명령어를 사용한다.

PDF Embedded Executable

악의적인 실행파일을 PDF에 포함시킨다. exploit/windows/fileformat/adobe_pdf_embedded_exe를 이용한다.
PDF를 여는 즉시 내장된 파일을 실행할 수 있는 권한을 묻는 메시지를 표시하여 사용자가 이를 허용하느냐에 따라 공격의 성공 여부가 달려있다.

INFILENAME, payload, LHOST를 설정하여 exploit한다.

Windows XP에서 해당 PDF 파일을 열면 session이 연결되는 것을 볼 수 있다.

Java Exploits

Java가 가지고 있는 취약성을 이용한다.

Java Vulnerability

Metasploit에서 exploit/multi/browser/java_jre17_jmxbean을 이용한다.

SRVHOST, SRVPORT, URIPATH를 모두 설정한다.

payload도 HTTP로 설정한다.

LHOST까지 설정해주고 난 후 exploit한다.

session -i 명령어로 meterpreter가 실행가능하다. session이 정식으로 종료되지 않으면 payload는 계속해서 metasploit로 돌아가기 위한 연결을 시도한다.
SessionCommunicationTimeOut 매개변수를 사용하면 session 연결 시도 시간을 지정할 수 있다.

Singned Java Applet

PDF Embedded Executable에서와 마찬가지로 사용자에게 악의적인 코드 실행을 허용하도록 요청하는 것만으로 Java 취약성을 이용할 수 있다.
exploit/multi/browser/java_signed_applet을 이용한다.

APPLETNAME, SRVHOST, SRVPORT를 설정한다.

target, payload, LHOST를 설정하고 exploit한다.

browser_autopwn

Metasploit에서 browser_autopwn 모듈을 사용할 수 있다.
auxiliary/server/browser_autopwn을 사용한다.

LHOST, URIPATH를 설정하고 exploit한다.

session -l 명령어를 사용하면 session을 확인할 수 있다.

Winamp

Winmap 음악 플레이어 프로그램의 구성파일을 바꾸어 사용자를 속인다.
exploit/windows/fileformat/winamp_maki_bof를 이용한다.
설정할 수 있는 옵션이 없고 Windows payload만 사용한다.

Windows 7에서 Bento 폴더를 Kali로 가져오고, 악의적인 maki 파일로 바꾸어 폴더를 압축하여 웹서버에 업로드시킨다.
Windows 7에서 이 폴더를 다운받아 압축을 풀고 실행시키면 handler가 session에 연결된다.


Social Engineering


The Social-Engineering Toolkit

Social-Engineer Toolkit(SET)는 오픈소스의 파이썬 기반 도구이다. kali에 사전 설치 되어있다.

setoolkit 명령어를 사용한다.

1번 메뉴를 눌러 social engineering attacks를 사용할 수 있다.

Spear-Phishing Attacks

SET에서 social engineering attacks를 선택하면 보이는 1번 메뉴가 spear phishing attacks이다. 이를 선택한다.

다시 선택하는 메뉴에서 perform a mass email attack을 선택한다.

Choosing a Payload

위의 선택을 다 했다면 spear-phishing attack을 선택하는 화면이 나온다. 여기서 14, Adobe util.printf() Buffer Overflow를 입력한다.

다음은 payload를 고르는 화면이며 여기서는 2, Windows Meterpreter Reverse_TCP를 입력한다.

Setting Options

다음은 IP adress를 입력해야 하는데, kali의 IP주소를 입력한다. port도 default로 설정한다.

Naming Your File

2번 메뉴를 고르고 파일명을 설정해준다.

Single or Mass Email

다음은 E-Mail Attack Single Email Address를 선택한다.

Creating the Template

email template을 고르기 위해 각각 1번과 5번 메뉴를 선택한다.

Setting the Target

타깃의 email 주소와 메일을 보낼 gmail 주소, 비밀번호를 입력한다.

Setting Up a Listener

Metasploit listener를 설정한다. payload와 LHOST, LPORT를 모두 설정한 후 exploit 한다.

모든 설정이 끝나면 ctrl+C 로 이전 메뉴로 나간다.

Web Attack

메뉴에서 Website Attack Vectors 2번을 선택한다.

다음은 Credentail Harvester Attack Method인 3번을 선택한다.

다음은 Web Template 1번을 선택하여 웹 페이지의 template을 고른다.

IP 주소와 Google template을 차례로 선택한다.

웹서버가 작동하여 로그인 페이지가 나오는데, 이 로그인 페이지에 로그인을 하면 정상적인 로그인이 되지 않고 kali에 사용자의 정보가 모두 노출된다.

입력한 주소와 비밀번호가 그대로 나타난다.

Mass Email Attacks

여러 사람에게 email attack을 하기 위해 SET에서 Mass Mailer Attack인 5번을 선택한다.

다음으로 E-Mail Attack Mass Mailer를 선택한다.

이미 작성해 놓은 여러명의 메일 주소가 담긴 텍스트 파일을 입력한다.

다음 설정도 1번을 선택하여 gmail 주소와 이름, 비밀번호를 입력한다.

다음으로 mail 내용을 입력하여 메일을 수신한다.
메일 형식을 선택할 때 HTML을 선택하여 내용 중간에 IP 주소를 숨겨놓는다. 사용자가 웹사이트 주소를 선택하면 사실은 IP 주소에 있는 브라우저가 열려 사용자를 공격할 수 있다.

Multipronged Attacks

앞에서 실행한 credential harvesting과 phishing emails를 결합한다. 사용자가 로그인 하는 등의 정보를 입력할 때 공격자가 제어하는 사이트에 결과가 보이도록 속인다.
/usr/share/set/config/set_config 파일에 있다.

0개의 댓글