にゃんたくのひとりごと

ひとりごとです。感じたことだけをただ気ままに書きます。

Emotetをダウンロードさせる不審なWordファイルのPowerShellスクリプト難読化を解析してみた。

どもどもにゃんたくです(「・ω・)「ガオー

 

※※※※※※※※※※※※※※※※注意※※※※※※※※※※※※※※※※

 

今回のブログ、あくまでも『ぼくのメモ』として公開しています。

 

今回の解析ですが、感染のリスクがありますので、

意味があまりわからない場合、実行しないことを推奨します。

本解析手法はEmotetに感染させたくないと考えている現場の

人間向けのものとなっております。

また、本解析方法を実施し、マルウェアに感染した場合でも、

当方は一切の責任を負いません。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 

 ここ数日(4月12日~)、マルウェアのEmotetに感染させるばらまき型メールが出回っています。

出回っているメールには、不審なファイル(Wordファイル)が添付されているのですが、この不審なファイル(Wordファイル)をダウンロードし、マクロを有効化してしまうと、Emotetをダウンロードさせるために通信が発生する仕組みになっています。

 

この、

『ダウンロードさせるための通信』=通信先

が、すぐにでも判明すれば、通信先を遮断したり、URLをブラックリストに投入したりすることができたりします。

ぼくのようにSOC(Security Operation Center)で仕事をしていると、こう思ってしまうのが性なんです。。。。(ってみんなそうだよね?)

 

いつもお世話になっているねこさん(@catnap707)がこんなツイートをしてくれました。

 

 

 

 

これは!!!!!!!

最高じゃないか!!!!!!!

猫さんネ申!!!!!!!

キタ━━━━(゚∀゚)━━━━!!

 

しかし・・・

この方法、難読化を解析した事がないぼくがはたしてできるのか…(´;ω;`)ウッ…

と思いましたが、せっかくの機会だしやってみようかなと思い、試してみました。

 

それに、ねこさんのこのツイートを埋もれさせたくなかったという気持ちもありました。

 

ではさっそくやってみましょう。

冒頭でも触れましたが、今回の解析を実施する中で、マルウェアに感染する危険性があります。

解析を実施する際には、感染しても良い環境(検証環境)や、インターネットにアクセス出来ない環境(オフライン)で実施することを推奨します。

また、解析が終わった後は、解析の際に生成したファイルは端末から完全に削除することも推奨します。

 

それでは、ねこさんが記載してくれた手順を1つ1つやっていきましょう。

HAやAny.run からPowerShellスクリプトエンコードされたコードをコピーする。

まず解析には、Emotetをダウンロードさせるための不審なWordファイルの情報が必要なので、HA(Hybrid Analysis)や、ANY RUNで情報を得ます。

 

今回解析する検体は2019年4月16日のばらまき型メールに添付された検体を利用します。

 

■検体情報

▽HASH値(SHA256)57e601ceb23ca1be8b2a1dd44fb719c6a43885e3035c14265b8770dc009820db

▽Hybrid Analysis

https://www.hybrid-analysis.com/sample/57e601ceb23ca1be8b2a1dd44fb719c6a43885e3035c14265b8770dc009820db?environmentId=100

▽ANY RUN

https://app.any.run/tasks/a593e7c3-9b9e-4ce6-933e-0114d789c0b5

 

今回はHybrid Analysisを使っていきます。

まずは、エンコードされているコードをコピーします。(青く選択された箇所)

f:id:mkt_eva:20190417012530p:plain

 

コピーした内容をinfile.txtとして保存

コピーしたものをメモ帳にペーストして『infile.txt』として保存します。

今回はわかりやすくするために、デスクトップ上に保存しました。

f:id:mkt_eva:20190417014059p:plain

 

コマンドプロンプトで、certutil.exe -decode infile.txt outfile.txt 

コマンドプロンプトを開いて、デスクトップに移動して、

certutil.exe -decode infile.txt outfile.txt

というコマンドを実行します。

f:id:mkt_eva:20190417014539p:plain

コマンドを実行すると、『outfile.txt』が生成されていることがわかりますね。

 

デコードされたoutfile.txtを開いて、セミコロンのところで改行

先ほど生成された『outfile.txt』を開いて、セミコロンのところで改行します。

f:id:mkt_eva:20190417014822p:plain

 

foreach~downloadfileの手前までをコピーして、PowerShellのプロンプトにコピー

まずは先頭からforeach前までをコピーします。(青く選択された箇所)

f:id:mkt_eva:20190417015138p:plain

 

次にPowerShellを起動して、プロンプトにそのままペーストします。

f:id:mkt_eva:20190417015310p:plain

 

foreachのinの後ろの変数を入力→URLが得られます

foreachのinの後ろの変数を確認し、コピーします。

f:id:mkt_eva:20190417015521p:plain

 

コピーした変数をプロンプトにペーストします。

f:id:mkt_eva:20190417015714p:plain

すると自動的に通信先のURLが表示されます。

 

おおお!!!!

できたぞ!!!!!!(´∀`*)ポッ

 

せっかくだったので、2019年4月15日のばらまき型メールに添付された検体も同じ方法で試してみました。

 

■検体情報

▽HASH値(SHA256)80a836c861b6a5d045d85aa9d3091035691b769ebdcd3b4de781f47c257049e7

▽Hybrid Analysis

 https://www.hybrid-analysis.com/sample/80a836c861b6a5d045d85aa9d3091035691b769ebdcd3b4de781f47c257049e7?environmentId=100 

▽ANY RUN

https://app.any.run/tasks/620abd44-7403-4c1c-880c-d811b133ce41

 

f:id:mkt_eva:20190417020405p:plain

はい、こちらも同じく通信先URLの情報を得ることができました

 

以上です。

 

今回はねこさんのツイートあってこそできたものでした…

本当にありがとうございました。今度会えたらアンちゃんに美味しいごはんをプレゼントさせてください。。。

twitter.com

 

今回やってみて、こういう解析を自分の手でもっとやってみたいと感じました。

ぼくもまだまだ知らないことだらけです。

もっと勉強しますね!!!!!

あ、今週末支援士の試験じゃん(;´・ω・)

 

ではでは( ´Д`)ノ

 

~追記~

今回の公開時のブログ内容について、いつもお世話になっているhiroさんからご指摘を頂きました。

情報を発信する者として、稚拙だったと反省をしています。申し訳ございません。

発信者としてもっと注意しなければいけないという事、もっと勉強しないといけない事を改めて実感しました。hiroさん、気づかせていただきありがとうございました。

 

<更新履歴>

2019/04/17 AM 公開

2019/04/17 AM 一部内容修正

2019/04/17 PM 一部内容修正