티스토리 뷰


꺅

 최근 iSIGHT Partners는

NATO, 유럽연합, 통신 및 에너지 부문을 대상으로 하는

러시아 cyber 간첩행위 캠페인(Russian cyber espionage group)과 관련된 정보를 오픈하였다.  


iSIGHT_Partners_sandworm_targets_13oct2014

[출처isightpartners.com 



공격에 사용된 다수의 취약점 중 제로데이로 알려진 CVE-201404114 취약점 에 대해서 확인해보자.





# 취약점 정보 


  • CVE Number : CVE-2014-4114
  • MS 업데이트 : MS14-060 Windows OLE 코드 실행 취약점
  • 취약점 요약 :
    • 해당 취약점은 메모리 상의 오류를 발생하는 크래쉬 취약점은 아님.
    • Windows OLE packager(packager.dll)를 통해 외부 INF 파일을 사용자 인지없이 다운로드 후 실행할 수 있음.  이를 악성코드 배포에 활용한 사례.
    • 따라서, 크래쉬 증상이나 별도의 쉘코드 등은 내포하지 않음. 
  • 관련파일 :
    • spiski_deputatov_done.ppsx / 취약점 파일 (PowerPoint)
    • slides.inf / 악성코드 실행을 위한 INF 파일
    • slide1.gif / 취약점을 통해 배포되는 악성코드 파일



# 취약점 상세정보


전체적으로 취약점 발생부터 악성코드 실행까지는 아래와 같이 이루어진다. 




취약점 파일(PowerPoint)을 클릭  헉~~~!! 


[그림] 파일 실행 후 슬라이드 첫 화면



첫 번째 슬라이드(slide1)가 오픈 될 때 INF 관련 행위가 수행된다. 


MS Office 2007 이상부터는 ZIP으로 압축된 Office Open XML 파일형식을 사용하기 때문에, 압축을 해제하면 다음과 같은 트리 정보를 얻을 수 있다.


슬라이드(slides) 관련 폴더를 확인해보면, 첫 번째 슬라이드(slide1) 관련 XML 정보에 다음과 같이 OLE Object  연관정보들이 포함되어 있다. 


    

[그림] ../embeddings/oleObject1.bin


[그림] ../embeddings/oleObject2.bin


Packager 모듈(packager.dll)은 OLE 오브젝트 EmbeddedStg1.txt(EmbeddedStg2.txt) 파일의 정보를 읽어서, 

명시된 외부파일 경로대로 원격지 서버로부터 공유폴더(SMB/WebDav)에 존재하는 파일들을 로컬로 복사해 온다.



[그림] Packager.dll 코드 안에서

 




실제 복사하는 과정은 원격지 SMB 공유폴더와 연결 후 Netbios 통신을 통해 이루어지기 때문에

초기에 다음과 같은 서버 연결 트래픽이 발생한다. (현재 서버 연결은 실패)

  • 94.185.85.122 - TCP/445
  • 94.185.85.122 - TCP/139



실제 공격자의 서버 연결이 불가능하기 때문에 대체할 서버를  우회 사용함으로써,  다음과 같이 실제 SMB 프로토콜을 이용한 파일 복사 과정이 성공적으로 이루어진다. 



[그림] 파일 복사 트래픽 일부

 

복사가 성공적으로 이루어지면 로컬 시스템의 %temp% 폴더에 아래와 같이 2개의 파일이 생성된다.

  • slides1.gif (PE)
  • slides.inf (INF)

 

파일이 생성된 후에는 복사해 온 slides.inf 안의 데이터를  참고하여 악성코드를 등록하고 실행하는 과정이 이루어진다.

이때, 실제 이 과정에는  slides.inf 를 입력으로 하는 InfDefaultInstall.exe가 실행된다.


[그림] packager.dll 모듈 안에서




아래와 같이 INF 내부에는 파일명을 변경한 후 레지스트리에 등록해서 실행하는 동작이 명시되어 있다. 


[그림] slides.inf 파일 내부



자세한 문법은 아래를 참고하세요.


* INF DefaultInstall Section


[DefaultInstall]

CopyFiles=MyAppWinFiles, MyAppSysFiles, @SRSutil.exe

AddReg=MyAppRegEntries


[참고] http://msdn.microsoft.com/en-us/library/windows/hardware/ff547356(v=vs.85).aspx



실제 INF 정의된 내용은 아래와 같은 동작을 수행한다.


[Rename Files sections (RenFiles)] : slide1.gif 파일을 slide1.gif.exe 로 파일명 변경.



 

[Add Registry sections (AddReg)] HKLM 밑에 RunOnce 키에 Install 이라는 키를 만들어 slide1.gif.exe 등록. 이 때, InfDefaultInstall을 통해서 등록된 Install 키는 runonce가 한번 실행한 후에 아래와 같이 자동으로 삭제되어 실제 키로는 남아있지 않는다. 




취약점을 실행 후 악성코드가 실행되는 전체적인 프로세스 실행 과정은 아래와 같다. 



 


 

# 참고

 

  1. http://www.isightpartners.com/2014/10/cve-2014-4114/
  2. http://blog.trendmicro.com/trendlabs-security-intelligence/an-analysis-of-windows-zero-day-vulnerability-cve-2014-4114-aka-sandworm/
  3. http://www.welivesecurity.com/2014/10/14/cve-2014-4114-details-august-blackenergy-powerpoint-campaigns/
  4. http://research.zscaler.com/2014/10/analysis-of-sandworm-cve-2014-4124-0-day.html
  5. http://blog.vulnhunt.com/index.php/2014/10/14/cve-2014-4114_sandworm-apt-windows-ole-package-inf-arbitrary-code-execution/




댓글
댓글쓰기 폼