HackTool.Win64.EDRSandBlast.THEOBBD
Trojan:Win32/Seheq!rfn (MICROSOFT)
Windows
- マルウェアタイプ: ハッキングツール
- 破壊活動の有無: なし
- 暗号化: なし
- 感染報告の有無: はい
概要
トレンドマイクロは、このプログラムをNoteworthy(要注意)に分類しました。
プログラムは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。
プログラムは、ワーム活動の機能を備えていません。
プログラムは、バックドア活動の機能を備えていません。
詳細
侵入方法
プログラムは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。
感染活動
プログラムは、ワーム活動の機能を備えていません。
バックドア活動
プログラムは、バックドア活動の機能を備えていません。
ルートキット機能
プログラムは、ルートキット機能を備えていません。
その他
プログラムは、以下を実行します。
- It monitors the activity of a process to detect EDR implementation and subsequently bypasses the detection mechanisms.
- It employs techniques utilized to bypass EDR detections both in user and kernel mode.
- It performs the following actions to bypass EDR detections:
- Kernel Notify Routines Callbacks Removal → by exploiting vulnerable EDR drivers
- Disable Object Callbacks → by either setting the Enabled flag in the callback structure, unlinking the Callbacklist of threads and process, or disabling object callbacks altogether
- Bypass Minifilters' Callbacks → by unlinking the nodes from their lists, making them temporarily invisible from the filter manager loaded by the EDR using Windows Filter Manager
- Disable ETW Microsoft-Windows-Threat-Intelligence Provider - by patching in kernel memory related to ETW TI
- Bypass Userland Hooking → by using unhooking, custom or EDR's own trampoline, duplicate DLL, or direct syscall methods
- Vulnerable Drivers Exploitation → by using vulnerable drivers to gain kernel read/write primitive
- Detect EDR drivers and processes → detects if a driver or process belongs to an EDR product. If an EDR driver or process is unknown, it embeds the information to the tool
- Bypass RunAsPPL → by elevating the protection level to dump the LSASS process memory
- Bypass Credential Guard → by patching and enabling Wdigest to show cleartext credentials in LSASS memory
- Offsets Retrieval → by utilizing hardcoded offsets instead of pattern searches to reliably perform kernel monitoring bypass operations
- It exploits vulnerabilities in the following known drivers:
- RTCore64.sys → CVE-2019-16098
- DBUtil_2_3.sys → CVE-2021-21551
- gdrv.sys
- It checks for the presence of the following files:
- {Malware Path}\gdrv.sys
- {Malware Path}\RTCore64.sys
- {Malware Path}\DBUtil_2_3.sys
- {Malware Path}\NtoskrnlOffsets.csv → contains offsets used to perform Offsets Retrieval
マルウェアは、以下のパラメータを受け取ります。
- -h | --help → Show this help message and exit.
- -v | --verbose → Enable a more verbose output.
Actions mode: - audit → Display the user-land hooks and / or Kernel callbacks without taking actions.
- dump → Dump the process specified by --process-name (LSASS process by default), as 'process_name' in the current directory or at the specified file using -o | --output
. - cmd → Open a cmd.exe prompt.
- credguard → Patch the LSASS process' memory to enable Wdigest cleartext passwords caching even if Credential Guard is enabled on the host. No kernel-land actions required.
- firewall → Add Windows firewall rules to block network access for the EDR processes / services.
- load_unsigned_driver → Load the specified unsigned driver, bypassing Driver Signature Enforcement (DSE). (Experimental)
- --usermode → Perform user-land operations (DLL unhooking).
- --kernelmode → Perform kernel-land operations (Kernel callbacks removal and ETW TI disabling).
Hooking-related options: - --add-dll {dll name or path} → Loads arbitrary libraries into the process' address space, before starting anything. This can be useful to audit userland hooking for DLL that are not loaded by default by this program. Use this option multiple times to load multiple DLLs all at once.
- --direct-syscalls → Use direct syscalls to dump the selected process memory without unhooking userland hooks.
- --unhook-method {N} → Choose the userland un-hooking technique, from the following:
- 0 → Do not perform any unhooking (used for direct syscalls operations).
- 1 (Default) → Uses the (probably monitored) NtProtectVirtualMemory function in ntdll to remove all present userland hooks.
- 2 → Constructs a 'unhooked' (i.e. unmonitored) version of NtProtectVirtualMemory, by allocating an executable trampoline jumping over the hook, and remove all present userland hooks.
- 3 → Searches for an existing trampoline allocated by the EDR itself, to get an 'unhooked' (i.e. unmonitored) version of NtProtectVirtualMemory, and remove all present userland hooks.
- 4 → Loads an additional version of ntdll library into memory, and use the version of NtProtectVirtualMemory present in this library to remove all present userland hooks.
- 5 → Allocates a shellcode that uses a direct syscall to call NtProtectVirtualMemory, and uses it to remove all detected hooks.
BYOVD options: - --dont-unload-driver → Keep the vulnerable driver installed on the host. Default to automatically uninstall the driver.
- --no-restore → Do not restore the EDR drivers' Kernel Callbacks that were removed. Default to restore the callbacks.
- --vuln-driver {gdrv.sys} → Path to the vulnerable driver file. Default to 'gdrv.sys' in the current directory.
- --vuln-service {SERVICE_NAME} → Name of the vulnerable service to intall / start.
Driver sideloading options: - --unsigned-driver {evil.sys} → Path to the unsigned driver file. Default to 'evil.sys' in the current directory.
- --unsigned-service {SERVICE_NAME} → Name of the unsigned driver's service to intall / start.
- --no-kdp → Switch to g_CiOptions patching method for disabling DSE (default is callback swapping).
Offset-related options:
--nt-offsets {NtoskrnlOffsets.csv} → Path to the CSV file containing the required ntoskrnl.exe's offsets. Default to 'NtoskrnlOffsets.csv' in the current directory. - --fltmgr-offsets {FltmgrOffsets.csv} → Path to the CSV file containing the required fltmgr.sys's offsets. Default to 'FltmgrOffsets.csv' in the current directory.
- --wdigest-offsets {WdigestOffsets.csv} → Path to the CSV file containing the required wdigest.dll's offsets (only for the 'credguard' mode). Default to 'WdigestOffsets.csv' in the current directory.
- --ci-offsets {CiOffsets.csv} → Path to the CSV file containing the required ci.dll's offsets (only for the 'load_unsigned_driver' mode). Default to 'WdigestOffsets.csv' in the current directory.
- -i | --internet → Enables automatic symbols download from Microsoft Symbol Server. If a corresponding Offsets.csv file exists, appends the downloaded offsets to the file for later use. OpSec warning: downloads and drops on disk a PDB file for the corresponding image.
Dump options: - -o | --dump-output {DUMP_FILE} → Output path to the dump file that will be generated by the 'dump' mode. Default to 'process_name' in the current directory.
- --process-name {NAME} → File name of the process to dump (defaults to 'lsass.exe')
<補足>
プログラムは、以下を実行します。
- プロセスのアクティビティを監視してEDRの実装を検知すると、検出メカニズムを回避します。
- ユーザモードおよびカーネルモードの両方でEDRによる検出を回避する技術が採用されています。
- EDRによる検出を回避するために、以下の活動を実行します。
- カーネル通知ルーチンのコールバックの削除 → 脆弱なEDRドライバを悪用することでカーネル通知ルーチンのコールバックを削除する
- オブジェクトのコールバックの無効化 → コールバック構造体内の有効化されたフラグを設定するか、スレッドおよびプロセスのCallbackListのリンクを解除する、あるいは、オブジェクトのコールバックを完全に無効化する
- ミニフィルタのコールバックの回避 → リストからノードのリンクを解除することで、Windowsフィルタ・マネージャを使用してEDRが読み込んだフィルタ・マネージャから一時的に見えないようにする
- ETW Microsoft-Windows-Threat-Intelligenceプロバイダの無効化 - ETW TIに関連するカーネルメモリ内にパッチを適用することで無効化する。
- ユーザランドのフックの回避 → フックを解除するか、独自またはEDRのトランポリン、複製したDLL、あるいはシステムコールのメソッドを直接使用して回避する
- 脆弱なドライバの悪用 → 脆弱なドライバを悪用してカーネルの読み取り/書き込みプリミティブを取得する
- EDRドライバおよびプロセスの検出 → ドライバおよびプロセスがEDR製品に属しているかどうかを検出する。EDRドライバおよびプロセスが不明な場合は、その情報をツールに埋め込む。
- RunAsPPLの回避 → 保護レベルを上げてLSASSプロセスのメモリをダンプして回避する。
- Credential Guardの回避 → Wdigestにパッチを適用して有効化することで、LSASSメモリ内の平文の認証情報を表示する。
- オフセットの取得 → パターン検索の代わりにハードコードされたオフセットを利用することで、カーネル監視の回避操作を確実に実行する。
- 以下のドライバに内在する既知の脆弱性を悪用します。
- RTCore64.sys → CVE-2019-16098
- DBUtil_2_3.sys → CVE-2021-21551
- gdrv.sys
- 以下のファイルの存在を確認します。
- {マルウェアのパス}\gdrv.sys
- {マルウェアのパス}\RTCore64.sys
- {マルウェアのパス}\DBUtil_2_3.sys
- {マルウェアのパス}\NtoskrnlOffsets.csv → オフセット取得の実行に使用されるオフセットを含む
プログラムは、以下のパラメータを受け取ります。
- -h | --help → ヘルプメッセージを表示/終了する
- -v | --verbose → より詳細な出力を有効化する
アクションモード:
- audit → アクションを実行せずにユーザランドのフックやカーネル・コールバックを表示する
- dump → 「--process-name」で指定されたプロセス(デフォルトではLSASSプロセス)を現在のディレクトリまたは「-o | --output」で指定されたファイルに「process_name」としてダンプする
- cmd → cmd.exeプロンプトを開く
- credguard → ホスト上でCredential Guardが有効になっている場合でも、LSASSプロセスのメモリにパッチを適用してWdigestの平文パスワードキャッシュを有効化する。カーネルにおけるアクションは不要
- firewall → Windowsファイア・ウォール・ルールを追加してEDRプロセス/サービスのネットワークアクセスをブロックする
- load_unsigned_driver → ドライバ署名の強制(DSE)を回避して、指定された署名されていないドライバを読み込む(実験的)
- --usermode → ユーザランドの操作を実行する(DLLアンフック)
- --kernelmode → カーネルの操作を実行する(カーネル・コールバックの削除およびETW TIの無効化)
フックに関連するオプション:
- --add-dll {dll名またはパス} → 何かを開始する前に、任意のライブラリをプロセスのアドレス空間に読み込む。これは、このプログラムがデフォルトで読み込まないDLLに対するユーザランドのフックを監査するのに役立ちます。このオプションを複数回使用すると、複数のDLLを一度に読み込める
- --direct-syscalls → ユーザランドのフックを解除せずに、システムコールを直接使用して選択したプロセスのメモリをダンプする
- --unhook-method {N} → 以下からユーザランドのフック解除方法を選択する
- 0 → フック解除を実行しない(システムコールの直接操作に使用される)
- 1 (Default) → ntdll内の(おそらく監視対象)NtProtectVirtualMemory関数を使って、存在するユーザランドのフックをすべて削除する
- 2 → フックを通じてジャンプ可能なトランポリンを割り当てて、NtProtectVirtualMemoryの「フックされていない」(つまり監視されていない)バージョンを構築し、存在するユーザランドのフックをすべて削除する
- 3 → EDR自体が割り当てた既存のトランポリンを検索してNtProtectVirtualMemoryの「フックされていない」(監視されていない)バージョンを取得し、存在するユーザランドのフックをすべて削除する
- 4 → ntdllライブラリの追加バージョンをメモリ内に読み込み、当該ライブラリ内に存在するNtProtectVirtualMemoryのバージョンを使用して、存在するユーザランドのフックをすべて削除する
- 5 → システムコールを直接使用してNtProtectVirtualMemoryを呼び出すシェルコードを割り当て、検出されたフックをすべて削除する
BYOVDオプション:
- --dont-unload-driver → 脆弱なドライバをホスト上にインストールしたままにする。デフォルトでは、ドライバは自動的にアンインストールされる
- --no-restore → 削除されたEDRドライバのカーネル・コールバックを復元しない。デフォルトでは、コールバックは復元される
- --vuln-driver {gdrv.sys} → 脆弱なドライバファイルへのパス。デフォルトは、現在のディレクトリ内の「gdrv.sys」です
- --vuln-service {SERVICE_NAME} → インストール/起動する脆弱なサービスの名前
ドライバのサイドロード・オプション:
- --unsigned-driver {evil.sys} → 署名されていないドライバファイルへのパス。デフォルトは、現在のディレクトリ内の「evil.sys」です
- --unsigned-service {SERVICE_NAME} → インストール/起動する署名されていないドライバのサービス名
- --no-kdp → DSEを無効化するためにg_CiOptionsのパッチ適用方法に切り替える(デフォルトは、コールバック・スワッピングです)
オフセットに関連するオプション:
- --nt-offsets {NtoskrnlOffsets.csv} → 必要なntoskrnl.exeのオフセットを含むCSVファイルへのパス。デフォルトは、現在のディレクトリ内の「NtoskrnlOffsets.csv」です
- --fltmgr-offsets {FltmgrOffsets.csv} → 必要なfltmgr.sysのオフセットを含むCSVファイルへのパス。デフォルトは、現在のディレクトリ内の「FltmgrOffsets.csv」です
- --wdigest-offsets {WdigestOffsets.csv} → 必要なwdigest.dllのオフセットを含むCSVファイルへのパス (「credguard」モードのみ)。デフォルトは、現在のディレクトリ内の「WdigestOffsets.csv」です
- --ci-offsets {CiOffsets.csv} → 必要なci.dllのオフセットを含むCSVファイルへのパス(「load_unsigned_driver」モードのみ)。デフォルトは、現在のディレクトリ内の「WdigestOffsets.csv」です
- -i | --internet → Microsoftシンボルサーバからのシンボルの自動ダウンロードを有効化する。対応するOffsets.csvファイルが存在する場合は、ダウンロードしたオフセットを後で使用するためにファイルに追加する。OpSecの注意:対応するイメージのPDBファイルをダウンロードしてディスク上に作成する
ダンプオプション:
- -o | --dump-output {DUMP_FILE} → 「dump」モードで生成されるダンプファイルへの出力パス。デフォルトは、現在のディレクトリ内の「process_name」です
- --process-name {NAME} → ダンプするプロセスのファイル名(デフォルトは「lsass.exe」です)
以下のWebサイトにアクセスして、自身の環境設定ファイル/コンポーネントファイルをダウンロードします。
- https://{BLOCKED}crosoft.com/download/symbols/fltMgr.pdb/A008BBBF87CC421FA0E568076A16F4BA2/fltMgr.pdb
- https://{BLOCKED}crosoft.com/download/symbols/ntkrnlmp.pdb/2E37F962D699492CAAF3F9F4E9770B1D2/ntkrnlmp.pdb
- https://{BLOCKED}prodscussu5shard2.blob.core.windows.net/b-4712e0edc5a240eabf23330d7df68e77/EAAFCA0A51F871E96A7816D54C085A13CE0C11FE586A49722B16B958FAAA707E00.blob?sv=2019-07-07&sr=b&si=1&sig=4ozlBuKC3%2FnXxfDNdGvUcp0O%2F8PPimxhmZoBFcE3vlA%3D&spr=https&se=2024-05-23T06%3A54%3A58Z&rscl=x-e2eid-24ef7390-c808438b-9d83c71f-eca211b7-session-87a87421-4eaf4224-af3648c6-6cb79d36
- https://{BLOCKED}prodscussu5shard64.blob.core.windows.net/b-4712e0edc5a240eabf23330d7df68e77/1FFEE3D6E1C2B9FCD4FFC89F42EB5CA37DDEC561FF3525C8C50C03544E0E6CA800.blob?sv=2019-07-07&sr=b&si=1&sig=OU7ULkXeUCrAyjlbkfuI%2Fcgo4MJaubID2iYqy6d7C88%3D&spr=https&se=2024-05-23T06%3A07%3A29Z&rscl=x-e2eid-293baf43-342b4890-a3be8f41-fef947a6-session-0a8541e2-ac464b41-82395d39-4b90186e
対応方法
手順 1
Windows 7、Windows 8、Windows 8.1、および Windows 10 のユーザは、コンピュータからマルウェアもしくはアドウェア等を完全に削除するために、ウイルス検索の実行前には必ず「システムの復元」を無効にしてください。
手順 2
このマルウェアもしくはアドウェア等の実行により、手順中に記載されたすべてのファイル、フォルダおよびレジストリキーや値がコンピュータにインストールされるとは限りません。インストールが不完全である場合の他、オペレーティングシステム(OS)の条件によりインストールがされない場合が考えられます。手順中に記載されたファイル/フォルダ/レジストリ情報が確認されない場合、該当の手順の操作は不要ですので、次の手順に進んでください。
手順 3
以下のファイルを検索し削除します。
- {Malware Path}\gdrv.sys
- {Malware Path}\RTCore64.sys
- {Malware Path}\DBUtil_2_3.sys
- {Malware Path}\NtoskrnlOffsets.csv
手順 4
最新のバージョン(エンジン、パターンファイル)を導入したウイルス対策製品を用い、ウイルス検索を実行してください。「HackTool.Win64.EDRSandBlast.THEOBBD」と検出したファイルはすべて削除してください。 検出されたファイルが、弊社ウイルス対策製品により既に駆除、隔離またはファイル削除の処理が実行された場合、ウイルスの処理は完了しており、他の削除手順は特にありません。
ご利用はいかがでしたか? アンケートにご協力ください