本ブログは、英語版ブログ「https://www.proofpoint.com/us/threat-insight/post/ta505-distributes-new-sdbbot-remote-access-trojan-get2-downloader」の翻訳です。
Editor’s note:本ブログ公開後、韓国のセキュリティ企業AhnLabがSDBbotの初期のバージョンと思われるものに遭遇したようです。直近のQ3 ASECレポートで「悪意のあるSDBファイル」として言及されており、韓国でのキャンペーンでFlawedAmmyy RATのセカンダリペイロードとして配信されたと記されています。TA505は2019年以来韓国でも活動しており、FlawedAmmyy RATを頻繁に配信しましたが、現時点でProofpointはこれらの関係性を確認できていません。
概要
2019年9月、Proofpointの研究者は多作な脅威アクターであるTA505が新しいダウンローダーであるGet2の配信とインストールを試みるメールキャンペーンを配信しているのを観測し、感染後にGet2がFlawedGrace、FlawedAmmyy、SnatchおよびSDBbot(新型のRAT)をセカンダリペイロードとしてダウンロードすることを確認しました。
このブログでは、これらの最新のキャンペーンに関連する戦術、技術、および手順(TTP:Tactics, Techniques, and Procedures)を詳述し、Get2ダウンローダーとSDBbot RATの詳細な分析を行います。
これらの新しい動きは、2018年以降ランサムウェアを主なペイロードとして使わなくなった脅威アクターが、ダウンローダー、バックドア、インフォメーションスティーラー、リモートアクセス型トロイの木馬(RAT)などを配信するようになったトレンドを継承するものです。
TA505はこのトレンドの最前線にあり、2018年11月に新しいバックドア「ServHelper」、2019年初めに新しいダウンローダーマルウェアであるAndroMutの配信を始めました。
キャンペーン
Proofpointの研究者は2019年9月9日から、最初のダウンローダーとしてGet2を使用するTA505の観測を開始しました(このブログ執筆時点ではまだ継続中です)。Get2は最初のうち、FlawedAmmyyやFlawedGraceなどの従来型のペイロードをダウンロードしていました。しかし10月7日、Proofpointの研究者はGet2が新型のRAT 「SDBbot」をダウンロードするのを観測しました。
新型のマルウェアの採用に加えて、これらのキャンペーンは他の面でも進化を続けています:
- TA505は、配信された電子メールの量において常に上位であり続けています(ほとんどの場合数万から数十万のメッセージ量ですが、時には数百万に達します)
- TA505は引き続き金融機関を主なターゲットにしており、より広く他の業種をターゲットにしたキャンペーンを交互に行っています
- 最近はギリシャ、ドイツ、およびジョージアを標的地域として狙っています
- Get2ダウンローダーでは、新しいMicrosoft Officeマクロが使われています
図1:2019年9月と10月にGet2とSDBbotでピークに達したTA505のマルスパムキャンペーン
以下は、いくつかの注目すべき悪意のある電子メールキャンペーンの詳細です。
2019年9月9日
Proofpointの研究者は9月9日、英語およびギリシャ語のルアーを含むMicrosoft Excel添付ファイルを配信しようとする数万通の電子メールを観測しました。これらのメールは、ギリシャ、シンガポール、アラブ首長国連邦、ジョージア、スウェーデン、リトアニア、および他のいくつかの国の金融機関を標的にしていました。
これらの電子メールでは、以下の件名と添付ファイル名が使用されました:
- 件名「HPE INV-02-Invoice and documents」(請求書と書類)および添付ファイル「hpe_s_hp-inv_02[.]xls」
- 件名「Need to Apply」(申請が必要)および添付ファイル「dc123456[.]xls」
- 件名「Παραστατικό」(ドキュメント)および添付ファイル「business cloud invoice no142 09-09-2019[.]xls」
- 件名「ΣΤΕΛΙΟΣ ΠΡΟΤΙΜΟΛΟΓΙΟ」(エグゼクティブサマリ)および添付ファイル「προτιμολογιο[.]xls」
これは、新しいダウンローダー「Get2」が観測された最初のキャンペーンでした。しかしその時点でのProofpointのテストでは、セカンダリペイロードは観測されませんでした。
図2:Get2ペイロードが埋め込まれた悪意のあるMicrosoft Excelスプレッドシートを配信する電子メールのサンプル
図3:ギリシャ語を使用し、ギリシャをターゲットにしたMicrosoft Excel添付ファイルのサンプル
2019年9月20日
9月20日に、Microsoft Excelと.ISO添付ファイルを英語とフランス語のルアーで配信しようとする数十万通もの電子メールを確認しました。これらのメールは、米国とカナダのさまざまな業種の企業を対象としていました。
これらの電子メールでは、以下の件名と添付ファイル名が使用されました:
- 件名「Reçu de paiement(facture 12345)」(領収書)および添付ファイル「facture_no_432478_v2 [.] xls」
- 件名「Account opening form」(アカウント開設フォーム)および添付ファイル「formulaire_01234.iso」(ISOには「0920_0123456 [.] xls」などのExcelファイルを含む)
このキャンペーンでProofpointの研究者はGet2のインストールと実行を再度観測し、このときはセカンダリペイロードとしてFlawedGraceをダウンロードしました。
図4:カナダをターゲットとし、ISO添付ファイルを配信するフランス語の電子メール
図5:カナダをターゲットとし、フランス語を使用したMicrosoft Excel添付ファイル
2019年10月7日
10月7日、Proofpointの研究者は悪意のあるMicrosoft Excelファイル「request[.]xls」を添付する代わりに、ランディングページにリダイレクトするURL短縮リンクを含む数千通のメールを確認しました。このキャンペーンでは英語のみが使用され、主に米国のさまざまな業界の企業をターゲットにしました。
これらのメールでは以下の件名が使用されました:
- 件名「Admin shared "request[.]xls" with you」(管理者が「request [.] xls」を共有しました)
- Bit.lyの短縮URLが含まれていました
このキャンペーンで、Proofpointの研究者は初めてGet2がSDBbotをダウンロードしたことを観測しました。
図6:悪意のあるドキュメントのダウンロードにリンクされたランディングページに誘導するBit.ly URLを含む電子メールサンプル;ブランドを盗用して共有ファイルルアーの信頼性を高めている
図7:ユーザーが悪意のあるドキュメントにリンクするボタンをクリックするように誘うルアーを含むDropboxをテーマにしたランディングページ
図8:ユーザーにドキュメントを開いてマクロを有効にするように誘う、Get2ダウンローダーが埋め込まれたMicrosoft Excelスプレッドシート
Microsoft Excelドキュメントの分析
TA505が新しいマルウェアを使用したことに加えて、新しいGet2ローダーは新しいMicrosoft Excelマクロと連携して機能することに注意してください。Get2はMicrosoft Excelファイルにオブジェクトとして埋め込まれており、ドキュメントをスクロールすることで画像アイコンとして見つけることができます。このマクロは、以下のようなロジックを使ってGet2を展開します(これは9月9日の分析であり、その後漸進的な変更が行われたことに注意してください):
- オリジナルのMicrosoft Excelスプレッドシートを%TEMP%ディレクトリにコピー
- Microsoft Excelスプレッドシート内の埋め込みオブジェクト「xl\embeddings\oleObject1[.]bin」を%TEMP%ディレクトリにコピー
- oleObject1.bin内のDLLを「ReadAndWriteExtractedBinFile」関数によって抽出し、%APPDATA%にコピー
- DLLをLoadLibraryAと共にロード
- 「Get2」などのDLLからエクスポートされた関数をマクロによって実行
この処理の一部を実行するMicrosoft ExcelファイルのVBAコードの抜粋を以下に示します。このコードStack Overflowの記事を一部引用しているようです(ただし、「PDF」ではなく「MZ」ヘッダーで始まるファイルを抽出する点が違います)。
図9:Get2ダウンローダーとの組合せで使用される悪意のあるMicrosoft ExcelスプレッドシートのVisual Basicマクロコードのサンプル
Get2ダウンローダー
Get2はTA505の最近のキャンペーンで使用されている新しいダウンローダーマルウェアで、C ++で記述されています。この名前は、分析された最初のサンプルで使用されたDLLエクスポート名に由来します。後のキャンペーンでは、Amway、Hadno、Seven、Wakeupなどの異なるエクスポート名が使用されました。
ダウンローダーは基本的なシステム情報を収集し、HTTP POSTリクエストを介してハードコードされたCommand and Control(C&C)サーバーに送信します(図10):
図10:Get2 C&Cリクエストの例
POSTデータには、次のURLエンコードされたパラメーターが含まれています:
- D - コンピューター名
- U - ユーザー名
- OS - Windowsバージョン
- PR - パイプで区切られたプロセスリスト
図11および12は、C&Cサーバーからのレスポンスの例を示しています:
図11:Get2 C&Cレスポンスの例
図12:Get2 C&Cレスポンスの例
C&Cレスポンスデータはパイプで区切られ、各セクションにはペイロードのURLとセミコロンで区切られたオプションの引数が含まれます。
初期のバージョンのGet2では、ペイロードはコマンドラインから渡された引数を使う実行可能ファイルでした。後のサンプルで作者は「RD86」と「RD64」の引数をチェックするためのコードを追加しました(恐らく「run DLL」の略)。ペイロードは挿入されロードされるDLLであったことをRD86が示しています。また、システムはランダムな時間の後に再起動するようにスケジュールされていました(再起動の詳細については、以下のSDBbotセクションをご覧ください)。現時点ではRD64コードへのパスは実装されていませんが、64ビットDLLのRD86に類似していると考えられます。
SDBbotリモートアクセス型トロイの木馬
SDBbotはC ++で記述された新しいリモートアクセス型トロイの木馬(RAT)で、最近のTA505キャンペーンでGet2ダウンローダーによって配信されています。その名前は、最初に分析されたサンプルで使用されたデバッグログファイル(sdb.log.txt)およびDLL名(BotDLL [.] dll)に由来します。また、永続化のためにアプリケーションシミング(application shimming)[1]のテクニックを使用しています。SDBbotはインストーラー、ローダー、RATコンポーネントの3つの部分から構成されています。
インストーラーコンポーネント
インストーラーはRATコンポーネントをレジストリに保存し、ローダーコンポーネントを永続化します。分析されたサンプルでは、インストーラーは「SdbInstallerDll [.] dll」という名前でした。その重要な文字列とデータのほとんどは、ハードコードされた128バイトの鍵でXORエンコードされていました。
レジストリ値は、ユーザー権限に応じてHKEY_LOCAL_MACHINEまたはHKEY_CURRENT_USERの「\SOFTWARE\Microsoft\<ランダム3文字のサブキー>[ランダム1文字の値名]」に作成されます。バイナリblobはここに保存され、以下のような構造を持ちます:
- 著作権表示(「Copyright(C)Microsoft Corporation」)
- ローダーシェルコード(インストーラーに関数として保存)
- 「<レジストリサブキーからのランダムな3文字> 0INIT」で構成される文字列
- 圧縮されたRATペイロード(インストーラーの「.data1」 PEセクションに保存)
ボットが通常のユーザー権限で実行されている場合、永続化はレジストリの「Run」メソッドを使用して行われます。ローダーDLLコンポーネントは「%APPDATA%\mswinload [.] DLL」に書き込まれ、rundll32[.] EXEが順番にDLLを実行できるよう「Run」キーに「mswinload」値を追加します。
Windows 7より新しいWindowsのバージョンで、ボットが管理者権限で実行されている場合には、レジストリの「image file execution options」メソッドを使用して永続化されます。ローダーDLLコンポーネントは「%SYSTEM%\mswinload0[.]dll」に書き込まれ、「winlogon[.]exe」の「VerifierDlls」値に追加されます。
ボットがWindows XPまたは7で管理者として実行されている場合、永続化はアプリケーションシミングを使って行われます[1]。FireEyeのブログ投稿「To SDB, Or Not To SDB: FIN7 Leveraging Shim Databases for Persistence」[3]で解説されている方法とよく似た方法を使用します。シムデータベース(SDB)はservices[.]exeにパッチをあてるためにローダーコードと共に作成され(図13)、sdbinst[.]exeと共にインストールされます:
図13:SDBbotによって作成されたシムデータベース(SDB)の例
永続化メカニズムの3つすべてを有効にするためには再起動が必要で、インストーラーからローダーおよびRATコンポーネントを連続して実行するための追加コードはありません。Proofpointの研究者は、Get2ダウンローダーの再起動機能(上記)を使用して、TA505キャンペーンでのインストール後にSDBbotの実行を継続すると推測しています。
ローダーコンポーネント
このレジストリベースの永続化メカニズムでは、RATペイロードを実行するために別個のローダーDLLが使用されます。分析されたサンプルではローダーは「RegCodeLoader [.] dll」という名前で、「mswinload [.] dll」や「mswinload0 [.] dll」としてディスクに保存されました。アプリケーションシミングベースの永続化は別個のDLLを使用しませんが、services [.] exeにパッチを適用するコードの機能は似ています。どちらの場合も、ランダムなレジストリキーと値の名前がローダーコードにパッチされます。
ローダーコンポーネントは、レジストリに格納されているバイナリblobを読み込み、そこに格納されているローダーシェルコードを実行します。シェルコードはRATペイロードを解凍し、DLLをロードして実行します。
RATコンポーネント
分析されたサンプルでは、RATコンポーネントは「BotDLL [.] dll」という名前でした。コマンドシェル、画面のビデオ録画、リモートデスクトップ、ポート転送、ファイルシステムへのアクセスなどの典型的なRAT機能を備えています。
SDBbotはC&Cをプレーンテキストの文字列またはファイル(「ip.txt」)に保存します。TCPポート443でプレーンテキストプロトコルを使用します。セッションの例を図14に示します:
図14:SDBbot C&Cプロトコルの例
ボットは、DWORD:0xC0DE0000アクノリッジメントを送受信することにより、通信を開始します。その後、基本的なシステム情報を送信して続行します:
- ver - 可能性のあるマルウェアバージョン
- domain - ドメイン名
- pc - コンピューター名
- geo - 国コード
- os - Windowsバージョン
- rights - ユーザーの権利
- proxyenabled - プロキシが構成されているかどうか
マルウェアがシステム情報を送信した後、C&CサーバーがDWORDコマンドで応答します。コマンドに応じて、C&Cサーバーは追加の引数を送信します。一部のコマンド(主にシェルおよびビデオ関連のもの)は、さまざまなデータを保存するために48バイトのデータ構造を使用します。これらのデータ構造のステータスを作成、削除、およびクエリする他のコマンドがあり、図15のように定義されています:
図15:一部のコマンドで使用される48バイトのデータ構造
使用可能なコマンドは次のとおりです:
- 2 - C&Cからサブコマンドを取得します。
- 「cmd」 - cmd [.] exeシェルを開始
- 「shutdown_pc」 - シャットダウン
- 「reboot」 - 再起動
- 「sleep utc」 - スリープ時間を設定
- 「video online」 - 既存のビデオデータ構造を取得するか、新しいビデオデータ構造を作成
- 「video stop」 - ビデオデータ構造に「停止」イベントを設定
- 「rdpwrap install」 - レジストリでRDPを有効化(RDP Wrapper [4]はインストールしない)
- 「rdpwrap uninstall」 - RDP Wrapper [4]がインストールされている場合は、それをアンインストール
- 「portforward」 - ターゲットホストとポートとC&Cの間にプロキシを設定
- 「run」 - cmd [.] exeを介してコマンドを実行(C&Cには出力を送信しない)
- 「runreflective」 - C&CからDLLをダウンロードして新しく作成したrundll32 [.] exeに挿入し、リフレクティブにロード
- “ keep_bot_online on” - フラグとスリープタイムアウトを設定
- “ keep_bot_online off” - フラグをオフにし、スリープタイムアウトをゼロに設定
- 4 - データ構造の番号、タイプ、およびインデックスを送信
- 5 - シェルまたはビデオ録画が有効になっている場合、シェル出力またはスクリーンショットをC&Cに送信
- 11 - コマンドシェルデータ構造の番号、インデックス、タグを送信
- 12 - コマンドをシェルに書込む
- 13/32 - 新しい空のデータ構造を作成し、そのインデックスをC&Cに送信
- 14 - 既存のデータ構造をクリーンアップして削除
- 15 - ファイルの書込
- 23 - ドライブ情報またはディレクトリのリストを取得
- 24 - ファイルの読込
- 25 - ディレクトリの作成
- 26 - ファイル削除
- 27 - すべてのデータ構造をクリーンアップして削除
- 31 - 正確な機能は不明(2つのデータ構造を使用してファイルを書込、1つはファイルに関連付けられ、もう1つはC&Cからデータを読み取るために使用)
結論
TA505はここ数年の脅威ランドスケープの形成に大きな役割を果たしており、それは主に2017年の終わりから2018年を通してのキャンペーンで膨大な量のメールを配信したためです。Proofpointの研究者は、TA505およびその他の多くのアクターがダウンローダー、RAT、インフォメーションスティーラー、バンキング型トロイの木馬に注力していることを観測しました。これらの攻撃と、最近観測された2019年10月のTA505による広範な業種および地域への攻撃を合わせて見ても、アクターのこれまでの「フォローザマネー(儲け第一)」の行動パターンが一貫していることがわかります。新しいGet2ダウンローダーと、ペイロードとしてのSDBbotの組み合わせは、2019年秋のTA505の最新の仕掛けです。
リファレンス
[1] https://attack.mitre.org/techniques/T1138/
[2] https://attack.mitre.org/techniques/T1060/
[3] https://www.fireeye.com/blog/threat-research/2017/05/fin7-shim-databases-persistence.html
[4] https://github.com/stascorp/rdpwrap
Indicators of Compromise (IOCs)
IOC |
IOC Type |
Description |
https[://update365-office-ens[.com/rb8 |
URL |
Get2 callback - 2019-09-09 |
update365-office-ens[.com|212.80.216[.172 |
domain|ip |
Get2 C&C - 2019-09-09 |
0683d9f225d54d48081f53abd7d569b32bc153d98157a5a6b763bc3cf57a6ad6 |
sha256 |
Get2 - 2019-09-09 |
cfce53335bbe61de612353cdd83ce17953b1f230c576ed6de1463626aff9088e |
sha256 |
Snatch (updated version) - 2019-09-19 |
37.59.52[.229:53 |
ip:port |
Snatch C&C - 2019-09-19 |
f27c5375046c734dfe62d2efe936b92cd519da091d04f22db713514caafece2a |
sha256 |
Get2 - 2019-09-20 |
https[://windows-update-sdfw[.com/trase |
URL |
Get2 callback - 2019-09-20 |
windows-update-sdfw[.com|167.114.194.56 |
domain|ip |
Get2 C&C - 2019-09-20 |
34f3733177bbe3d7a8d793fe3c4fd82759519ddc6545b608613c81af9019a52d |
sha256 |
FlawedGrace - 2019-09-20 |
https[://office365-update-en[.com/frey |
URL |
Get2 callback - 2019-09-27 |
https[://office365-update-eu[.com/frey |
URL |
Get2 callback - 2019-09-27 |
office365-update-en[.com|5.149.252[.171 |
domain|ip |
Get2 C&C - 2019-09-27 |
office365-update-eu[.com|147.135.204[.64 |
domain|ip |
Get2 C&C - 2019-09-27 |
e3ec2aa04afecc6f43492bfe2e0d271045ab693abfa332a2c89a5115ffe77653 |
sha256 |
FlawedGrace - 2019-09-27 |
en-gb-facebook[.com|95.169.190[.29 |
domain|ip |
FlawedGrace C&C - 2019-09-20 > 27 |
4efcc22da094e876346cff9500e7894718c8b6402ff3735ea81a9e057d488849 |
sha256 |
FlawedAmmyy - 2019-09-27 |
102.130.114[.246 |
ip |
FlawedAmmy C&C - 2019-09-24 > 2019-10-01 |
133121ea82269ec943847e04cb070109ca94612aed23a471868937f119ae8175 |
sha256 |
FlawedAmmyy - 2019-10-01 |
edb838be33fde5878010ca84fc7765c8ff964af9e8387393f3fa7860c95fc70b |
sha256 |
SDBbot - 2019-10-07 |
9eaad594dd8038fc8d608e0c4826244069a7a016ffd8881d8f42f643c972630f |
sha256 |
SDBbot - 2019-10-07 |
news-server-drm-google[.com|170.75.175[.209 |
domain|ip |
SDBbot C&C - 2019-10-07 |
99c76d377e1e37f04f749034f2c2a6f33cb785adee76ac44edb4156b5cbbaa9a |
sha256 |
SDBbot - 2019-10-08/09/10/11 |
6b3aa7a7a9771f7464263993b974c7ba233ec9bd445ea635e14a0764523cbef4 |
sha256 |
SDBbot - 2019-10-08/09/10/11 |
static-google-analtyic[.com|103.75.118[.231 |
domain|ip |
SDBbot C&C - 2019-10-08/09/10/11 |
https[://windows-wsus-en[.com/version |
URL |
Get2 callback - 2019-10-01 |
windows-wsus-en[.com|192.99.211.205 |
domain|ip |
Get2 C&C - 2019-10-01 |
https[://windows-msd-update[.com/2019 |
URL |
Get2 callback - 2019-10-07 |
windows-msd-update[.com|94.44.166.189 |
domain|ip |
Get2 C&C - 2019-10-07 |
windows-cnd-update.com|185.176.221.64 |
domain|ip |
Serving Get2 payload - 2019-10-07 |
https[://windows-fsd-update[.com/2020 |
URL |
Get2 callback - 2019-10-08 |
windows-fsd-update[.com|185.86.148.144 |
domain|ip |
Get2 C&C - 2019-10-08 |
https://windows-sys-update[.com/2021 |
URL |
Get2 callback - 2019-10-09 |
windows-sys-update[.com|195.123.228.14 |
domain|ip |
Get2 C&C - 2019-10-09 |
f4fed12625e2b983b918f239bf74623746cfc6b874717e6d8dd502a45e073d32 |
sha256 |
Get2 - 2019-10-10 |
https[://windows-me-update[.com/2021 |
URL |
Get2 callback - 2019-10-10 |
windows-me-update[.com|95.217.16[.248 |
domain|ip |
Get2 C&C - 2019-10-10 |
84f7c3fcf3a53f37ecbb21d0b9368d332901fe8c3f06b3d1a92123479c567c95 |
sha256 |
Get2 - 2019-10-11 |
https[://windows-se-update[.com/2022 |
URL |
Get2 callback - 2019-10-11 |
windows-se-update.com|185.238.3.76 |
domain|ip |
Get2 C&C - 2019-10-11 |
https[://office365-eu-update[.com/2023 |
URL |
Get2 callback - 2019-10-14 |
office365-eu-update[.com|45.8.126[.7 |
domain|ip |
Get2 C&C - 2019-10-14 |
8916a09f205910759edb082175bf2808d2acae00c7ded5bb8c9c174f60ebe152 |
sha256 |
SDBbot - 2019-10-14 |
c2f99a2bba225fe3ab49cb952e418b2ab29ba7f2e34db6cf9bc51b0349d0acd8 |
sha256 |
SDBbot - 2019-10-14 |
drm-server13-login-microsoftonline[.]com|195.123.242[.250 |
domain|ip |
SDBbot C&C 2019-10-14 |
ET and ETPRO Suricata/Snort Signatures
2028642 || ET TROJAN Possible Win32/Get2 Downloader Activity
2838412 || ETPRO TROJAN Win32/Get2 Downloader C&C Checkin
2025408 || ET TROJAN Win32/FlawedAmmyy RAT C&C Checkin
2026773 || ET TROJAN FlawedGrace CnC Activity
2838808 || ETPRO TROJAN Win32/SDBbot C&C Checkin
Proofpointについて
Proofpoint Inc.(NASDAQ:PFPT)は、人々の働き方を守るクラウドベースのソリューションを提供する次世代の主導的セキュリティ/コンプライアンス企業です。Proofpointのソリューションは、電子メール、ソーシャルメディア、モバイル、クラウドアプリケーション経由で行われる高度な攻撃からユーザーを保護し、高度な攻撃やコンプライアンスリスクからユーザーが作成した情報を保護し、インシデント発生時には迅速に対応できます。詳細はwww.proofpoint.com/jpをご覧ください。
© Proofpoint, Inc. Proofpointは米国及びその他の国々におけるProofpoint, Inc.の商標です。本ドキュメントに記載されている会社名、製品名、サービス名は、一般に各社の登録商標または商標です。本ドキュメントの記載内容、製品及びサービスの仕様は予告なく変更されることがあります。
www.proofpoint.com/jp