Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DarkWidow — Indirect Dynamic Syscall、Modified TartarusGateアプローチによるSSN + Syscallアドレスソート + APC Early Birdによるリモートプロセスインジェクション + ターゲットプロセスとして犠牲プロセスを起動 + 起動したプロセスに対する(ACG+BlockDll)緩和ポリシー + PPIDスプーフィング + TIBからのAPI解決 + APIハッシュ化 | Kitploit
ツール/GitHubGitHub/reveng007/darkwidow
特権昇格エクスプロイトIDS/IPS回避ポストエクスプロイトマルウェア分析バイナリ解析学習と教育レッドチーミングペイロード開発
GitHubreveng007/darkwidow

DarkWidow

Indirect Dynamic Syscall、Modified TartarusGateアプローチによるSSN + Syscallアドレスソート + APC Early Birdによるリモートプロセスインジェクション + ターゲットプロセスとして犠牲プロセスを起動 + 起動したプロセスに対する(ACG+BlockDll)緩和ポリシー + PPIDスプーフィング + TIBからのAPI解決 + APIハッシュ化

807104198ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

DarkWidow

Windows を標的としたカスタマイズ可能なドロッパーツール。


栄誉ある言及:

  1. BlackHat Asia, 2024 - ツール募集
  2. BlackHat USA, 2024 - ツール募集
  3. BlackHat SecTor, 2024 - ツール募集
  4. BlackHat Europe, 2024 - ツール募集
  5. Wild West Hacking Fest 2024 - アーセナル
  • これらのカンファレンスに応募するよう励ましてくれたSoumyadeep Da(@SoumyadeepBas12)に多大なる感謝を。応募しなければ実現しなかったでしょう。
  • このツールのプレゼンテーション用のスライドとPPT作成を手伝ってくれたFaran(@Chrollo_l33t)に多大なる感謝を。

機能:

  1. 間接動的システムコール。(MITRE ATT&CK TTP: T1106)
  2. 修正TartarusGateアプローチによるSSN + システムコールアドレスのソート
  3. APC Early Birdによるリモートプロセスインジェクションで、EDRによるテレメトリキャッチを遮断。(MITRE ATT&CK TTP: T1055.004)
  4. 犠牲プロセスをターゲットプロセスとして生成し、環境内の既存のプロセスを妨害しない。
  5. 生成された犠牲プロセスに対するACG(任意コードガード)/BlockDll緩和ポリシー。
  6. PPIDスプーフィング (MITRE ATT&CK TTP: T1134.004)
  7. TIBからのAPIおよびDLL解決(オフセット経由(TIBから)-> TEB -> PEB -> Nt API解決)(MITRE ATT&CK TTP: T1106)
  8. Cursed Nt APIハッシュ化 (MITRE ATT&CK ID: S0574)

特典: 管理者権限がある場合 =>

  1. イベントログサービススレッドを_killing_することでイベントログを無効化 (MITRE ATT&CK TTP: T1562.002)

欠点: スレッドが再開されると、イベントロガーの一時停止中に発生したすべてのイベントが再度ログに記録されます。

そこで、代わりにそれらを殺すことを考えました!

「中断よりも侵襲的ですが、判断は常にオペレーター次第です。それに、スレッドの殺害はカーネルレベルでログに記録されます」 - @SEKTOR7net

間接システムコールインプラントでそれらのスレッドのみを殺そうとした際、エラーに直面しました。"eventlog"の SubProcessTag Value を取得できませんでした。そのため、すべてのスレッドを殺す、つまりプロセス全体(担当の svchost.exe)を殺すことを考えました。そうです、IOCを生成することになります。

=

1. EDR/Ring-3/ユーザーランドフックバイパス

2. システムコールとreturn文はntdll.dllのメモリから実行される

3. コールスタックのリターンアドレスをチェックするEDR検出をバイパス可能。

コンパイル:

Directly via VS compiler:

image

また、/MTコンパイラフラグを追加してください! => CRT関数をバイナリに静的にリンクします(はい、お察しの通り、インプラントを肥大化させます)

image

  1. compile.bat経由でも可能(オプション1を推奨)
./compile.bat

使用方法:

PS C:> .\x64\Release\indirect.exe
[!] Wrong!
[->] Syntax: .\x64\Release\indirect.exe <PPID to spoof>

動作例:

https://github.com/reveng007/DarkWidow/assets/61424547/62a90c5b-84af-4389-8ddc-9f7926debdcf

Sofos XDRエンドポイントでアラートを発生させずに実行成功:

SofosXDREvade


今後の改善点:

  1. PPIDスプーフィング (Emotet方式)
  2. よりステルス性の高い イベントログ無効化のユースケース!

参考にしたコードの一部と役立ったリンク:

  1. TIB:

    • https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
    • https://www.wikiwand.com/en/Win32_Thread_Information_Block
  2. GSおよびFSレジスタ:

    • https://stackoverflow.com/questions/39137043/what-is-the-gs-register-used-for-on-windows
    • https://stackoverflow.com/questions/10810203/what-is-the-fs-gs-register-intended-for#:~:text=The%20registers%20FS%20and%20GS,to%20access%20thread%2Dspecific%20memory.
  3. PEB LDR構造:

    • BlackHat - What Malware Authors Don't Want You to Know - Evasive Hollow Process Injection by @monnappa22

    • 上記リンクからのプロセスメモリの画像:
      alt text

    • labs.cognisys.group、@D1rkMtr のブログより:
      alt text

  4. TIB -> TEB -> PEB -> Nt APIの解決とAPIハッシュ化

    • https://stackoverflow.com/questions/41277888/iterating-over-peb-dllname-shows-only-exe-name

    • https://doxygen.reactos.org/d7/d55/ldrapi_8c_source.html#l01124

    • labs.cognisys.group、@D1rkMtr のブログより

    • 上記リンクからのスニペット画像(オフセットをハードコーディングせずにAPIを動的に解決するためにここで使用):
      alt text

    • 適用したAPIハッシュ化コード:


#include <stdint.h>
#include <stdio.h>
#include <Windows.h>

DWORD64 djb2(const char* str)
{
	DWORD64 dwHash = 0x7734773477347734;
	int c;

	while (c = *str++)
		dwHash = ((dwHash << 0x5) + dwHash) + c;


	return dwHash;
}

int main(int argc, char** argv)
{
	if (argc < 2)
	{
		printf("[!] Wrong!\n");
		printf("[->] Syntax: .\\%s <NTFuncName>\n\n", argv[0]);
		return 1;
	}

	const char* string = argv[1];

	DWORD64 hashvalue = djb2(string);

	printf("Hash Value: 0x%llX\n", hashvalue);

	return 0;
}

  1. ACG(任意コードガード)/BlockDll緩和ポリシー:

    • リンク:
    • Protecting Your Malware by @xpn
    • Wraith by @winterknife
    • spawn and HOLLOW by @0xBoku alt text
  2. PPIDスプーフィング検出:

    • PPID Spoofing Detect by @spotheplanet
    • 時間があれば、この部分に検出部分を追加します! -> [残り..............................................!]
  3. Moneta検出とPESieve検出:\

    • Moneta:
      alt text

    • PESieve:
      alt text

  4. Capaスキャン:
    alt text

  5. インプラントプロセスのスレッドスタックの見え方:

インプラントプロセス正規のCmdプロセス
alt textalt text

間接システムコールPOCでntdll.dllのメモリ内でreturn命令を実行することにより、リターンアドレスを正常にスプーフィングでき、ntdll.dllをコールスタックの最上部に配置し、EDRに高い正当性と解釈させることができます。 - @VirtualAllocEx の DirectSyscall Vs Indirect Syscall より
また、@peterwintrsmith に感謝!

  1. Instrumentation CallBack回避: この POC - syscall-detect を使用(by winternl_t)

image

  1. 使用したEventLogger設定:

alt text alt text

  1. SeDebugPrivilegeの設定:
    元: alt text 先: alt text
ツールをダウンロード