2020年9月に落ちてきたEmotetらしきマルウェアを、ようやく一通り見たので結果をメモしておきます。
え?遅い?そりゃプライベートタイムでやってるし、なんだかんだ忙しくて分析してる時間がなかったんですよ!
(今月なんて昨日今日しか見てなかった。)
さて、解析結果ですが、結論から言うと、この検体はいわゆる「Emotet」そのものではありませんでした。
これはドロッパ―&キッカーですね。
これ自身は、マルウェア本体をダウンロードし、それをCreateProcessで実行しているだけです。
恐らく、当時ダウンロードされたマルウェアがEmotetだった、ということでしょう。
非常にメンドくさい難読化はされていましたが、Emotetでよく言われているメールや認証情報を盗む処理は見当たりませんでした。
この難読化の方法は、特にシグニチャ回避、デコンパイル、コードを判別するタイプのサンドボックス回避が目的とみられます。
これの解説は・・・また時間あるときにします。もっとも、解読がクソメンドくさくなるだけで、難しい部類のものじゃないです。
この検体自体は永続化機能はありました。
レジストリに自動起動するように設定されるため、ログインの度にマルウェアのダウンロードおよび実行がされるようになっています。
もしこの検体が発見されていなければ、以前に書いた「2020年9月のEmotetらしきマルウェアのパッカー通信メモ」の通信先に新たなマルウェアを設置することで、Emotetに限らず様々なマルウェアをダウンロードして実行することが可能です。
このため、このドロッパ―&キッカーは、使いまわしされると様々なマルウェアの実行に利用されそうで厄介です。
なお、調査時にダウンロードされたマルウェアは、プロセス起動後自身を削除するギミックがあるようです。
このため、この検体が毎回ダウンロードして実行してやる必要があります。
一瞬ファイルを作るのでファイルレスではないですが、削除領域から探さなければならなくなるので面倒ですね。
今回分析したマルウェアのハッシュ値は以下の通り。
4vkMtWK0K8eFbt.exe
MD5 : 46A69F3FBCD669B05BD2FB2D82E85A57
SHA-1 : D101F7C5642F4BA5BBDDA2EE85979FF97B8CFD13
マルウェアのVirusTotalでの判定結果
ハッシュ値をVirusTotalに入れて確認した結果は以下のとおり。
モノによっては、Emotetと判定されています。
それ以外は、不審とはでているものの、具体的に何かを示しているベンダーは少なかったです。
永続化の状況
永続化は、レジストリのAutorunに登録することで、起動するたびに自動実行するようになっています。
このため、ログインの度にマルウェアをダウンロードじて実行、という挙動を取ります。
ダウンロードされたマルウェア
ダウンロードされたマルウェアは、復号化ののち、名前のリスト(出所はちょっと未確認)の末尾にランダムな文字を付与した名前で保存されます。
この調査時には、マルウェアと同じフォルダに「ActivationManager77f.exe」という名で保存されました。
このマルウェアのハッシュ値は以下のとおり。
ActivationManager77f.exe
MD5 : 02A9A2F0127315FD8CBEF2B878015DA0
SHA-1 : EDE88AA089DC0211722F305B628442EC5AA3358F
さて、このマルウェアのハッシュ値が分かったので、これもVirusTotalにかけてみましょう。
・・・あれ?見つからない??(´・ω・`)
ということは、この検体をアップロードをした人がいない?
これは、理由としては、このドロッパに引っかかった人がそもそもほとんどいなかったか、ダウンロードされたマルウェアを発見したものの、VirusTotalに送信した人がいなかったか、ドロッパが落としてきたマルウェアを見落としているか、ってことになるのだけど。
ダウンロードした後、ファイルに出力してすぐ実行し、さらにすぐ消えるので、マルウェアを見落としている可能性も結構高いのかなと勘ぐって見たり。
確かに、これだと事後のフォレンジック調査でダウンロードされたマルウェアそのものを見つけるのは結構厄介かなと思います。
そもそも、冒頭のVirusTotalの検知では、この検体(4vkMtWK0K8eFbt.exe)を「Emotet」としているものがいくつかあったのだけど、Emotetってドロッパのことだっけ?
Emotetが「情報窃盗のマルウェア」であれば、この検体(4vkMtWK0K8eFbt.exe)は違うと思う。
ダウンロードされたマルウェア(ActivationManager77f.exe)が情報窃盗したけど、このマルウェアが消えててこの検体(4vkMtWK0K8eFbt.exe)しか見つからなかったからって、これを「Emotet」って誤認してるってことはないよね?
この検体(4vkMtWK0K8eFbt.exe)がダウンロードしてくるマルウェアによって挙動は大きく変わるよ?
Emotetの解説でも錯綜しているような気がするので、「ドロッパ」なのか「情報窃盗のマルウェア」ちゃんと分類して認識しておかないと、根本的な対策・対応で失敗しそうなのだけどどうなのだろう?
(教えて!エロいエライ人!)
ダウンロードされたマルウェアの起動時の挙動
では、マルウェアをダウンロードし、起動する挙動をIDAで追ってみましょう。
CreateProcessWで普通に起動しているので、このAPIを実行すればマルウェアは起動します。
ブログの都合で、画面が見づらいかもしれませんが(汗)
CreateProcessで、この検体と同じフォルダにあるダウンロードされたマルウェアを実行し、その直後に子プロセスとしては残るものの、実行元のファイルが消えています。
この検体自身がCreateProcess直後にダウンロードされたマルウェアを消している様子は無かったので、恐らくダウンロードされたマルウェア自体にそのようなギミックがあるのではないか、と予想しています。
ダウンロードされたマルウェアの正体は?
今のところ、VirusTotalにハッシュ値で検索した場合にヒットしません。
もしかすると、このダウンロードされたマルウェアは被害者や調査者にあまり認識されていないのかもしれません。
理由として、この検体はマルウェアをダウンロードしファイルに出力後、すぐにCreateProcessします。
そして、CreateProcess後、すぐにこのファイルが消えてしまいます。
IDAで解析している場合、ファイルに出力したところで止めてバッチリ確認できますが、実際の動作では当該フォルダをしっかり見ていなければ気づかないのではないかと思います。
このため、今まで調べた人はVirusTotalにかける実行ファイルを見つけられなかった、ということでしょう。
もし被害端末を調査するとしても、ディスクの削除領域から探す必要があります。
Emotetはなかなか収束しないですが、もしかするとこの二段構えの仕組み、特に「起動後自身のファイルを消す」ギミックにより、「情報窃盗」の本来のEmotetの実行ファイル自体をなかなか捕まえられず、不十分な調査になっているケースがあるのかもしれないですね。
それが、Emotetの蔓延の理由になっているのなら、そのギミックと弱点を見つけてやりたいものですw
実際はどうかはまだわからんですが、まずはやってみないと、ね。
さて、そのダウンロードされたマルウェアですが。
MFCの利用は、今時めずらしいですねぇ。
そういえば、春先に解析した「とあるマルウェアの解析メモ(その1)」のEmotet、オマエもMFCだったな?
コレが当たりなら、おぢさん嬉しいなぁ。
もう、おぢさんには、Heaven's Gateも関数の単位の暗号化も効かないからな?
私にコードを見られたマルウェアが、逃げ切れると思うなよ?
・・・といっても、時間取れないから、冬休みの宿題だなぁ。
さっさとやりたいけど、これお仕事じゃないから時間が中々取れないし。
気が向いたら解析して記事にするかもしれないので、興味がある人はあまり期待しないで待っていてください。
2020年12月6日追記:
簡単な動的解析のつもりで、オフライン状態でとりあえず当該マルウェアのブレークポイントを外し、継続して走らせてみました。
結果、プロセスリストが以下のようなツリーになりました。
ドロッパのプロセスが終了し、ダウンロードされたプロセスが、さらにドロッパを子プロセスとして起動している!?
しかも、ネットワークの挙動を見ると、子プロセスとして起動したプロセスがさらに通信を試みている!?
ここから勝手に想像してみると、
- ドロッパは実は通信機能で、ダウンロードされたプロセスが収集したデータを送信しようとしている?
- 一発でマルウェアをダウンロードすると追跡されやすいので、ダウンロードを二段構えにしている?
なんて理由が考えられますが。
これは、ダウンロードされたプロセスが何をしているか、によりそうですね。
ちょっと面白くなってきましたね。
分析する時間がほしいなー。







