OLD 2018 ~ 2021/MAJOR → Forensic

180118_[IR_Report]_Ransomware

pogn 2018. 1. 18. 14:52

Concept 

DBD (Drive By Download) 공격 
:  웹 사이트에 접속한 사용자가 바로 악성 파일에 감염되는 것. ( 

:  웹 사이트를 해킹하여, 악성코드 유포지에 접속하게 한 다음 사용자 컴퓨터에 있는 취약점을 이용하여 공격하는 방법.

(1) 사용자가 해킹된 웹 사이트에 접속
(2) 해커가 해당 웹 사이트에 해킹을 통해 경유지로 자동 연결하기 위해 삽입한 <iframe> <frame> <javascript>등의 태그에 의해 유포지로 자동 연결된다. 
(3) 동일한 과정에 의해 다 단계의 경유지를 거침. 일반적으로 유포사이트를 숨기기 위해 여러 경유지를 생성)
(4) 최종 유포 사이트에서는 사용자 컴퓨터에 악성 파일을 다운로드 시킨다. 취약점이 있는 컴퓨터는 바로 악성코드에 감염된다. 

internet exploer에서 어떻게 악성 파일을 바로 생성? --> javascript를 주로 이용한다. 


VB script
 : 여러 윈도우 운영체제에서 기본으로 설치되어 있는 스크립트 언어이다. 

htm 파일 
: html 파일의 이전 버전으로, 캐시 저장시에 자주 활용되는 확장자 이다. 

Scam 이란 
: 사용자가 직접 타이핑하여 웹 사이트에 들어갈 시, 잘못 타이핑 하는 경우를 노린 것으로,  유명한 사이트의 url과 비슷한 url로 악성 사이트를 제작하는 것을 말한다.
etherscamdb.info :  스캠 사이트를 DB화 해둔 사이트


Window Error Report 파일
: 운영체제에 하드웨어나 소프트웨어 적으로 문제가 생겼을 경우 관련 디버깅 정보를 저장해 두는 파일 
문제가 생겼을 시, "문제에 대한 추가정보를 보내시겠습니까"라는 메시지 창을 띄워 MS 사로 해당 정보를 보내기를 유도 한다. 

1) 최초로 암호화된 파일의 시각 
2) 1번 시각 이전에 실행, 다운로드 파일   
3) 어느 경로에서 다운로드가 되었는가 ( C&C 서버의 IP ) 
4) 1번 시각 이전에 암호화를 하는 실행파일은
5) 1번 시각 이전에 발생한 이벤트들 마지막으로 암호화된 파일의 시각 이후에 발생한 이벤트들
  

웹 캐시의 시간정보
웹 캐시 뷰어 -- WEFA와 IEcache viewer에서 시간 순서가 다른 경우를 봄
--> 웹 캐시는 1분 단위로 시간정보가 기록되기 때문에 1분 안에서는 시간 순서를 알 수없는 것 같다. 


IExplorer 10 이후에는 웹 아티팩트를 통합하여 관리한다. 
아라마우 A ->L -> M -> W 에서 ~~.dat 파일


Hands-on Practice 

분석 과정

의뢰사항 : WannaCry 랜섬웨어에 감염된 것 같다.

주어진 파일은 VMDK 파일로, Winhex로 분석을 진행하였다.

먼저, 최초로 암호화된 파일이 무엇인지 그 시각을 확인하였다. 
이 때에 created time, modified time, record changed 시간 중 어느 것이 그 정렬 기준이 되어야 하는지는 랜섬웨어의 종류에 따라 다르다. 랜섬웨어가 파일을 지속해서 암호화 시켰을 것임으로 세 가지의 시간 정보 중, 정렬 시켰을 때 연속적으로 암호화 된 파일이 나오는 것을 기준으로 삼으면 되겠다.

record change 시간으로 정렬했을때, wncry 확장자를 가진 파일이 연속해서 나오는 것을 확인하였으며,
최초로 암호화된 파일의 시각은 17-10-21 14:00 이다.






어떤 파일이 암호화를 하는 실행파일인지 보기 위해, 
생성시간 기준으로 정렬을 하고, 최초로 파일이 암호화된 시각 171021 14:00 이전의 실행파일을 살펴보았다.  

악성 실행파일을 구분하는 방법은 여러가지이나
  1. 백신 탐지 기능 활용
  2. 직접 악성 코드 분석
  3. 간단하게 악성코드가 활용하는 dll이나 함수명( socket, crypt) = String을 보는 방식으로 구분

간단하게 문자열을 보는 방법을 통해 살펴 본 결과, 
lfdfrgui.exe 라는 실행파일 안에서 crypt 라는 문자열이 있음을 확인하였다.
암호화 실행파일이 생성된 시각은 171021 13:57:36 이다.






또한, DBD에 의해 감염된 것이므로, 웹 사이트를 방문한 즉시 취약점에 의해 감염이 되었기 때문에 
윈도우 운영체제에서 크래시가 발생하며, 윈도우 문제보고(Window Error Report) 파일이 생성될 것임을 예상해 볼 수 있다 . ( 실제로 DBD에 의해 감염되면 80%이상 WER 파일이 생성된다고 한다. )


위의 창에서 Report.wer파일을 열어보면 Internet Exploerer에서 App crash가 났고, 작동이 중지되는 문제가 있었음을 확인할 수 있다. 특이사항으로는 vbscript.dll가 있다. 



구글링을 통해 찾아본 결과 ( 검색어 : vbscript iexploer cve )
해당 취약점은 CVE-2016-0189 임이 유력해 보인다.

단순, 어떤 값을 보는 것 뿐만 아니라 원격으로 무언가를 실행할 수 있는 취약점이다. (Remote Execution)


WER 파일이 생성되기 이전에, 이벤트 로그파일이 보인다.
heap 손상이 일어난 것임을 추측할 수 있다. 






이제 최초 유입이 언제 일어났는지를 확인해 볼 차례이다. 
위에서 분석한 결과, 1시 51분 13초 이전에 유입과 관련된 행위가 있었음을 고려하여 
(1) 1시 51분 13초 이전(주로 3분 안에 실행)의 자바스크립트, vb스크립트 관련된 파일을 모두 찾아보거나, 
(2) 해당 CVE에 쓰이는 특정 문자열이 무엇이 있는지 확인해 본다. 


여러가지 파일을 확인해 보았을 때,  htm 파일이 있는지 확인한다.  ( vb script 임을 알고있기 때문에 js 파일은 제외한다. )
--> flower(1).htm 에서 exploit이란 함수를 찾았다. 
flower(1).htm이 해당 취약점을 유발한 코드이다. 


base64 utf-8로 디코딩 한다. 



어떤 명령어를 수행해서 어느 경로에서 다운받았고, C&C 서버가 어디인가? 
--> C&C 서버의 주소는 58.17.34.44 이고, index.asp 관련된 정보는 없다. 
해당 index.asp 파일은 vmdk 안에 없었으며, 
C&C 서버가 살아있지 않으므로 어느 경로에서 다운받았는지는 알 수 없다.


cf) PowerShell에서 어떤 명령어를 실행했는지는 이벤트 로그에 잘 남지 않으며,  PC에서 분석할 수 있는 것들이 거의 없다고 보면 된다고 알려져 있다.  


웹 아티팩트 분석

WEFA와 IECacheView로 IExplorer 아티팩트를 열어 보았다. 
경로는  아라마우 A ->L -> M -> W 에서 ~~.dat 파일을 열면 된다. --> 
웹 캐시, 히스토리등의 모든 정보가 'webcache.dat' 에 통합



flower[1].htm 파일로 리다이렉션 시킨 파일들 찾아보아야한다. 
해당 시간 이전의 js 파일들의 이름을 확인하고, Winhex에서 검색하여 추출하여 보다보면 




chatliob304[2].js의 난독화를 해제하니,  flower.html 파일을 실행시키고, 10초후 종료시키는 코드임을 알수 있었다. 
    
    다른 난독화 해제 방법)) eval 전에 다른 것들은 다 버리고, 난독화.... eval을  document.write로 바꾸고
    자바 스크립트 콘솔이 있는데 거기에서 실행시키면 된다.



즉, kik.kin.com에 접속한 이후 다운 된 js 파일이 flower.html을 실행시킨 것이다. 








최종 요약

- "디스크 안의 파일" 분석  :  언제, 어떤 파일에 의해 유입이 되었는가
( 생성시간 기준 )
171021 13:50:44  [ 최초 유입 ] flower[1].htm의 exploit 코드에 의해 취약점 발생 
                      ( C&C : 58.17.44:8080 , 다운로드 경로 알수 없음)

171021 13:51:13  heap 손상 이벤트 발생
171021 13:51:30  윈도우 문제보고 파일 report.wer 에서 iexploer중단, vbscript.dll 확인
171021 13:57:36  lfdfrgui.exe 생성시간 에 crypt 문자열 포함됨 -> 암호화를 진행한 실행파일
171021 14:00:00  최초로 암호화된 파일의 시각 = 기준시간 (record change 시간) 
                       이후 암호화 진행


- "웹 아티팩트", "레지스트리"를 보고 분석  :  어떻게 유입이 되었는가

171020              https://kin.kik.com 에 접속했었음
171021              http://kik.kin.com으로 직접 타이핑(registry에 남는다.)해서 접속
171021 13:51:00  자동으로 로딩되는 여러 js 파일 중 chatliob304.js 
                      공격자가 dean_edward packer로 패킹된 코드를 삽입해놓은 상태
171021 13:51:00  엄청 작은 새 창을 띄우고( flower.htm ) 10초 뒤 창을 뜨는 코드



-  "이벤트로그", "레지스트리"를 보고 분석 : 아직도 지속, 전파되고 있는 것이 있는가
( 수정시간 )을 기준으로 보았을 때, 침해가 지속되고 있는 흔적이 있는지 살핀다.

주로, 이벤트로그와 레지스트리를 확인한다.
레지스트리의 서비스에 등록되어 있는 흔적이 있나?

--> 아직 발견하지 못하였다. 





Reference 
- 윈도우 문제보고

-  DBD 취약점

- IE10부터 통합된 웹 아티팩트