推しを推すだけの人生

可読性のなさには自信があります

マクロで遊んでみたヨ

【はじめに】

こんにちは,最近は髙橋ミナミさんのヴィレヴァンコラボが発表されて散財の予感がしています.財布の中から諭吉の声が聞こえてきますネ

今回はリレーブログで,テーマは emotet でした.最初は簡単に emotet をさらってから,次にマクロで遊んでみようと思います.

前回はここ,次回はここ

【emotet】

emotet はマルウェアです.メールに添付されたファイルを起動すると,そのファイルのマクロが同時に実行され,そのマクロが何かしらの悪さをする,みたいな感じです.メールアドレスや返信履歴なども盗聴できるため,例えばメールのやり取りを内聞し,そのリプライという形で悪メールを拡散しているのではないかと推測しています.

ここで,マクロとは例えば word や Excel みたいな office ファイルが,何かしらの作業を一括で行うために使用する機能で, VBA で書かれています.

【マクロで遊ぶ】

マクロでいろいろ書いて遊んでみたいと思います.自分は,ここここを丸々実行してみました.分かりやすいと思います.

電卓を起動するマクロ

Private Sub Document_Open() 
Set wsh = CreateObject("WScript.Shell")
wsh.Run "calc"
End Sub

WshShell クラスを使って,オブジェクトを生成します.次に変数のメソッドとして .run で実行しています.これで,word ファイルを開いたときにマクロを OK すれば,電卓が開くようになります.

詳しくはここ
VBA に全く明るくないので勉強になりました.

他のマシンに接続する

metasploit には,シェルコード用のペイロードを生成してくれる機能があり, msfconsole の中で generete~~ みたいにやると実行できます.この出力を VBA に適従させることができます.なので,set LHOSTとか,LPORTとかで目的マシンの IP アドレスと狙うポート番号を設定し,コードを生成することで, victim マシンのコンソールに接続する VBA マクロが入手できます. victim の方で,そのポートをリッスンしていればログが見えると思います.

【対策】

まず大前提としてマクロを許可しないことが,emotet 対策にとっては要須だと思います.
次に,上記のマクロを実行してみて分かったのですが,マシン接続の方は実行しようとすると Windows Defender に全て止められたため,当該ディレクトリを windows defender の監視下から外す必要がありました.一方で電卓の方は特に止められなかったので,例えば前もってインストールされた .exe をマクロで起動するとかは windows defender では止められないのかな,とか思いました.ここまで強い状況ならマクロを使う理由があまりないですが...