今回は、Attack.M.exe(ダウンローダーでダウンロードされるマルウェアのSkype.exeについてのレポートを書いていきます。
サイト
Skype.exeのダウンロードリンク
https://syrianmalware[.]com/samples/a9e6f5d4c5996ff1a067d4c5f9ade821[.]zip
マルウェアなのでダウンロードする際には、万全の注意を払ってください。
一切の責任は取れません。
a9e6f5d4c5996ff1a067d4c5f9ade821
SHA-256
85b765321ff4c6de751b001c58c625c2c2cd6352103d6bbda37b76c8af1b72c8
SHA1
c89972495918c70650d158a503e34d4d696d6f76
Zipファイルの解凍までは、Attack.M.exeと同様であるため静的解析から行っていきます。
静的解析
ファイルシグニチャの確認
このようなマルウェアでは、ファイル拡張子が正しいとは限らないためファイルシグニチャを確認します。
ファイルシグニチャはバイナリからでも分かりますが、fileコマンドの方がすぐに分かります。
↓xxdコマンドを使用したバイナリからの確認
先頭の2バイトをみると
4d 5a
であることから実行ファイルであることが分かります。
fileコマンドの方が端的。
結果は同様で32ビットの実行ファイルであることが分かります。
ちなみに、「PE32」だと32ビット・「PE32+」だと64ビットの実行ファイルです。
よって、このマルウェアはWindows7で動く32ビットだとわかりました。
オンラインデータベースの検索結果
ログインすると、詳細な結果が見ることができます。
HybridAnalyticsの検索結果
こちらは、ログインしなくても詳細な結果が見ることができます。
文字列の抽出
文字列とはファイル内に埋め込まれたASCII・Unicodeで表現可能な文字列のことです。これらを抽出すると、マルウェアの機能などに関する手がかりがつかめます。
stringsコマンドによる抽出
このコマンドは、4文字以上のASCII文字列を抽出します。
また、Flossツールを使用した難読化された文字列のデコードも行いました。
難読化とは、アンチウイルスソフトなどにウイルスと認識されないために行う手順の一つです。実際にパターンマッチング形式を用いたアンチウイルスソフトなどには見つかりにくいです。
これらの実行結果でSkype.exeの特徴が見られた興味深い文字列
FindFirstFileW
FindResourceW
FindNextFileW
FindResourceW
FindWindowExW
FindClose
GetProcessWindowStation
GetUserObjectInformationA
GetLastActivePopup
GetActiveWindow
GetCurrentDirectoryW
GetLastError
GetCurrentProcess
GetShortPathNameW
GetLongPathNameW
GetStdHandle
GetFileType
Insert a disk with this volume...(GUIだと思われる。
sleep
COMCTL32.dll
SHLWAPI.dll
KERNEL32.dll
USER32.dll
GDI32.dll
上記コマンドの全ての実行結果が見たい場合
上の文字列を見る限り、相手の環境を把握した上で自身のファイルを何かのファイルを探しているように見えます。また、sleepがあるのですが、これはマルウェアをユーザーが消そうとするときにスリープして削除を妨害しようとしていると考えられます。
また、211のインポート関数が設定されており、
・ファイルの新規作成、書き込み、ロード
・環境の判断
・GUI
の3つに大きく分類することができました。
現在、把握できている状況では、前回(Attack.M.exeのようなダウンローダーではない。
そして、キーロガー、ランサムウェアなどではないと推測できます。
動的解析
inetsimを使って擬似的な応答を返しながら、wiresharkで監視していきたいと思います。
Attack.M.exeと同じサーバーにポート4443番にTCPで通信しようとしていました。
しかし、このSkype.exeはファイルのダウンロードやアップロードは静的解析での読み通り行っていませんでした。
このサーバーの考察はここにまとめることにしました。
逆アセンブラ
今回のような攻撃対象にダウンロードされて実際に動いても、
・内部を破壊する様子がない
・キーロガーなど情報を盗み取る様子がない
・C2サーバーなどとやり取りしていない
これを踏まえるとこのマルウェアは「ドロッパー」だと推定されます。
ドロッパーとは、追加のマルウェアコンポーネント(部品を内部に埋め込むプログラムのことです。ドロッパーが実行されるとマルウェアコンポーネントを抽出し、ディスクに配置します。しかし、まだ断定できるほどの情報が集まっていません。
そのため、逆アセンブラしてWindowsAPIを読み取ることによって、ドロッパーだろうという推察を確定させていきたいと思います。
ドロッパーは多くの場合、実行ファイルの
指定したファイルのリソースを戻り値とするFindResource関数、
メモリ内の最初のバイトへのポインタを戻り値するLoadResouce関数、
メモリ内の指定されたリソースへのポインタを取得するLockResource関数、
リソースのバイト数を取得するSizeOfResourece関数などが使われます。
今回これらが含まれているか逆アセンブルして調べてみたところ
↓FindResouce関数
↓LoadResource関数
↓LockResorce関数
↓SizeOfResorce関数
それぞれが見つかりました。
そして、キーロガーに使われるGetAsyncKeyState関数・SetWindowsHookEx関数、
C2通信に使われるInternetOpenA関数などの関数は見つからなかったため
このSkype.exeはドロッパーであると断定することができました。
このSkype.exeについてまとめてみると、
・Skpe.exeは、追加のマルウェアコンポーネント(部品)を内部に埋め込む
「ドロッパー」である。
・31.9.48.7サーバーとTCP通信を試みている。
です。