Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/douglas-042/douglas-042-hq
防御ツール侵害指標 (IOC) 管理脆弱性分析フォレンジック脅威インテリジェンス侵入検知インシデントレスポンスログ分析
GitHubdouglas-042/douglas-042-hq

douglas-042-HQ

Douglas-042 HEADQUARTERSコレクター用の中央コンソール。フリートを一括スキャンし、ホスト間で結果を相関させ、IOCフィードとSIEM配信を一元管理します。

リポジトリを見る
1425日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

Douglas-042 HEADQUARTERS

EDRを持たない環境向けの、エージェントベースの脅威ハンティングとインシデント対応。

WindowsおよびLinuxホストのフリートを侵害の兆候についてスイープし、実際に重要なものを判断し、それに対処する — 1つのコンソールから、ホストごとに1つのコマンドで。

Python FastAPI Agents Rules License

Douglas-042 console — fleet posture at a glance

できること

ハントはスキャンではない。Douglasはアナリストが手作業で収集するであろうアーティファクト — プロセス、サービス、スケジュールタスク、オートラン、接続、アカウント、ドライバー、イベントログ、cron、systemd、シェル履歴、Webルート — を収集し、それらに対して201の組み込み検知を実行する。さらに独自のSigma、YARA、カスタムルールも適用できる。

そして、ほとんどのツールがユーザーに任せてしまう部分を担う。どの検知結果がまだ判断を必要としているか、60件の外部アドレスのうちどれを最初に見るべきかを示し、RDPセッションを開くことなくそれに対処できるようにする。

root@kitploit:~
   コマンドを1つデプロイ  ──▶  ハント  ──▶  検知結果がライブで表示
                                            │
                     ┌──────────────────────┼──────────────────────┐
                     ▼                      ▼                      ▼
              IOCフィード一致          レピュテーションスコア      対応アクション
              「これは既知のC2」       「92/100、340件の報告」    隔離 · キル · 収集

なぜ存在するのか

最もハンティングを必要とする環境は、しばしばEDRを持たない環境である。数十台のサーバー、エージェントの予算なし、そして3日前に始まったインシデント。選択肢は通常、誰も承認していない商用プラットフォームか、誰かが手作業で実行するPowerShellスクリプトのフォルダかのどちらかだ。

Douglasはその間に位置する。調査対象のホストには何もインストールされない — コレクターは一度実行されて終了する — そしてすべての結果は、次にインシデントを引き継ぐ人に渡せる1つのコンソールに集約される。


トリアージ: まだ判断が必要なもの

検知結果を出すのは簡単だが、読むのは高コストだ。この画面は、3回目のパスでも誰かがまだ読んでいる程度にキューを短く保つために存在する。

Triage — open work by severity, and the noisiest rules

3つの結果があり、その違いは6か月後に重要になる:

判断動作
確認済み本物。リスクスコアに残り、ホストは赤のまま。
誤検知そのホストのみスコアから除外される。
抑制今後のすべてのスキャンで同じ検知結果を非表示にする常設ルール。

何も削除されることはない。抑制を解除すれば、それが隠していたものすべてが戻ってくる。最もノイズの多いルールが下部にあるのは、それらをチューニングする方が、検知結果を1つずつ処理するよりも速くキューを片付けられるからだ。


読めて、チューニングでき、オフにできる検知

201の検知はすべて15のカテゴリにグループ化されている — 1つずつ、またはカテゴリ全体をまとめて切り替えられる。任意のルールをクリックすると、何をチェックするか、正当にどう発火するか、次に何をすべきかが読める。

Built-in detections, grouped into categories

この画面が明示している区別は、間違えやすいからこそ重要だ:

ルールをオフにすることは、抑制することとは違う。 オフとは、コレクターがそのチェックを実行しないということ — 何も生成されず、レビューするものもない。抑制は検知結果を記録し、誰かが下した判断として理由を添えてマークする。

受け入れたノイズのカテゴリにはオフを使う。特定のホスト上の特定のパターンには抑制を使う。

発火の下のダッシュは通常、健全な答えだ。DGL-014はログがクリアされたように見えるときだけ発火する。このリストはツールがチェックするものであり、何が問題かを示すものではない。


独自ルールをテキストで書く

フォームは最初のルールには速く、20番目のルールには遅い。だからルールはテキストとしても書ける — 入力しながら11のアーティファクトテーブルと13のオペレーターに対して検証される。

Writing a rule as text, with live validation

下のボックスは2つの役割を果たす。ルールが間違っているときは、ルールではなく行を名指しする:

root@kitploit:~
line 7: Condition 1: 'is_maybe' is not an operator.

正しいときは、そのルールが実際に何にマッチするかを告げる — なぜなら、検証は通るのに作者の意図とは別のものにマッチするルールこそ、捕まえる価値のある失敗だからだ:

Valid — ACME-001 Servicesを読み取り、Signedがfalseで、PathNameに'Program Files'が含まれず、PathNameに'System32'が含まれないときにマッチする

JSON、YAML、CSVでインポート・エクスポートできる。ラウンドトリップは保証されている — 私たち自身のエクスポートは、3形式すべてで私たち自身のバリデーターを通過する。


インジケーターフィードとレピュテーションは別の問いに答える

問いタイミング結果
IOCフィードこのC2リストの何かが私のホスト上にあるか?ハント中DGL-IOC — スコアではなく確認済みの一致

15のフィードソースがすぐに使える状態で同梱されている — Feodo、ThreatFox、URLhaus、TweetFeed、USOM、SSL Blacklist、Emerging Threats、OpenPhish、MISP — さらに、インジケーター形式のデータを返す任意のURLを読み取るカスタムフィードも。

4つのレピュテーションプロバイダー: AbuseIPDB、VirusTotal、ThreatFox(無料枠)およびGreyNoise(有料、デフォルトでオフ)。判定が1つの数値に混ぜられることは決してない — AbuseIPDBは苦情を数え、VirusTotalはエンジンを数え、ThreatFoxはインフラを知っており、それらの平均はどれも擁護しない数値だ。バッジは、それを与えたプロバイダーとともに最悪の判定を表示する。

無料枠は保護されている: 結果は12時間キャッシュされ、1回の実行で40アドレス、そしてプロバイダーが止める前に停止する日次カウンター。プライベートアドレスは決して送信されない。


コンソールからの対応

3つのグループに分かれた11のアクション — 見る、行動する、封じ込める。読み取り専用の5つは、ホストを変更する6つとは別にマークされ、すべての変更アクションには書面による理由が必要だ。

隔離は意図的にコンソールへの到達性を保つ: 自身のエージェントから切り離されたホストはリモートで解除できず、誰かがそこまで歩いていかなければならなくなる。侵入を封じ込めるのではなくマシンを壊してしまうターゲット — lsass.exe、systemd、pid 1、Administrator、/bin/bash — は、警告ではなく拒否される。なぜなら、これが使われる瞬間とは、誰も警告を読んでいない瞬間だからだ。

出力はターミナルダンプではなく構造化カードとして返り、行は操作可能だ: プロセスリストには行ごとのKillボタンがあり、アドレスにはReputationがある。


SigmaとYARA、両プラットフォームで

WindowsLinux
SigmaEvent Log + Sysmonauditd execve + auth/cron/syslog
YARAファイル内容ファイル内容

ログソースを読み取れないLinux Sigmaルールは、読み込まれて決して発火しないままにされるのではなく、理由を添えてアップロード時に拒否される — 実行できなかったルールからの空の結果は、クリーンなホストとまったく同じに見えるからだ。

Linuxエージェントは、auditdがインストールされ、実行中で、かつルールが読み込まれているかをチェックし、何が欠けているか、それが何を犠牲にするかを告げる:

root@kitploit:~
   Detection capabilities on this host
     auditd    : NOT RUNNING
                 Nothing records what executes on this host, so execution
                 rules cannot fire and a clean result only means the sweep
                 could not look. Install it:
                   apt install auditd && systemctl enable --now auditd

人々がすでに見ている場所へ送る

3つのグループに分かれた11の送信先:

  • SIEM — Wazuh/JSON、Splunk HEC、Microsoft Sentinel、Elasticsearch、QRadar LEEF、CEF、NDJSON
  • 通知 — Slack、Microsoft Teams、PagerDuty
  • ケース — TheHive

チャットおよびページングの送信先は、レコードではなく文章をレンダリングし、1つのメッセージに入る検知結果の数を制限する: 100行を貼り付けられるチャネルは、人々がミュートするチャネルだ。


クイックスタート

root@kitploit:~
git clone https://github.com/YOURNAME/douglas-042.git
cd douglas-042
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000

またはDockerで:

root@kitploit:~
docker compose up -d

http://your-server:8000 を開く

デフォルトのログイン

ユーザー名: admin パスワード: douglas

コンソールは初回サインイン時にパスワード変更を強制する — パッケージに焼き込まれたデフォルトが気づかれずに生き残ってはならない。自分で選びたい場合は、初回起動前に.envでDOUGLAS_CONSOLE_PASSWORDを設定する。

.envはデータベースが空の間だけ読み込まれる。初回起動後は、python3 -m app.manage passwd adminでリセットする。

起動時に、次のステップのための登録トークンが得られる:

root@kitploit:~
Created the initial admin account: admin
The default password is still in use. Change it at first sign-in.
Enrollment token ready: dgl-enroll-xBAk8...
Douglas-042 console 1.0 ready

ホストの追加

Deploy → プラットフォームを選択 → コマンドを1つコピー。

Windows — 管理者権限のPowerShell:

root@kitploit:~
iex (irm 'http://console:8000/api/v1/reports/deploy/script?token=YOUR_TOKEN')

Linux — rootとして:

root@kitploit:~
curl -sSL 'http://console:8000/api/v1/reports/deploy/script?token=YOUR_TOKEN&platform=linux' | sudo bash

6つのステップがターミナルにストリーム表示される: ダウンロード、登録、コレクターの取得、サービスのインストール、稼働確認、初回チェックイン。登録が失敗した場合、何もインストールされず、その旨が表示される。


最初の1時間


アーキテクチャ

root@kitploit:~
┌──────────────────────────────────────────────────────────┐
│  Console — FastAPI + SQLite, one process, no queue        │
│  triage · findings · graph · rules · response · reports   │
└───────────────▲──────────────────────────────────────────┘
                │ agents poll: heartbeat 20s, actions 5s
┌───────────────┴──────────────────────────────────────────┐
│  Agent  (PowerShell / shell)                              │
│    └── Collector — runs, reports, exits                   │
│          201 built-in rules + Sigma + YARA + your rules   │
└──────────────────────────────────────────────────────────┘
  • 調査対象のホストには何もインストールされない。 コレクターは実行されて終了する。エージェントは、作業を取得するスケジュールタスクまたはsystemdユニットだ。
  • コンソールは決して内側に接続しない。 エージェントがポーリングするので、NATや一方向ファイアウォールの背後にあるホストでも動作する。
  • SQLite、1ファイル。 ブローカーなし、クラスターなし、外部データベースなし。スキーママイグレーションは起動時に実行され、追加のみを行う。
コンソール画面

Dashboard · Cases · Fleet · Hunts · Response · Findings · Triage · Frequency · Graph · MITRE matrix · Timeline · Diff · Built-in rules · My rules · Sigma · YARA · IOC feeds · Threat intel · Integrations · Schedules · Users · Deploy · Logs & events

検知カテゴリ

Collection integrity · Autoruns and startup · Processes and network · Services and tasks · Persistence mechanisms · Security posture · Drivers and kernel · Execution evidence · Authentication and accounts · Remote access · Sysmon, Kerberos and AD · Files, webshells and exfiltration · User activity and trust · Rootkit and memory · Indicator matches

コレクターが読み取るもの

両方: ローカルアカウントとグループ · 署名とハッシュ付きの実行中プロセス · TCP接続と外部エンドポイント · サービス · 最近書き込まれたファイル · メモリ内コード · Webルートとwebshellパターン

Windows: イベントログ · スケジュールタスク · オートラン · レジストリ永続化 · WMIサブスクリプション · ドライバー · SMB共有 · Prefetch · 証明書ストア

Linux: cron · systemdユニット · シェル起動ファイル · LD_PRELOAD · setuidバイナリ · authorized_keysとsshd設定 · シェル履歴 · 認証ログ · カーネルtaint · WordPress

要件

コンソール: Python 3.11+、6つの依存関係(FastAPI、uvicorn、SQLAlchemy、pydantic、python-multipart、PyYAML)。1 GBのVMで動作する。

Windowsホスト: PowerShell 5.1+、管理者。それ以外は何も不要。

Linuxホスト: bashとcurl。python3でライブ進捗とファイル内容ルールが有効になる。auditdで実行検知が有効になる。どのホストでどれが欠けているかはコンソールが教えてくれる。


セキュリティに関する注意

  • 初回サインイン時にパスワード変更を強制; アカウントは繰り返しの失敗後にロックされる。
  • セッションキーは初回起動時に0600権限で生成される — パッケージに同梱された固定キーは、ダウンロードした全員に共有されてしまう。
  • 対応アクションはロールで制限され、監査され、ホストを壊してしまうターゲットを拒否する。
  • プライベートアドレスはレピュテーションプロバイダーに決して送信されない。
  • ルールのエクスポートはスプレッドシートの数式インジェクションを無効化する。

📄 テクニカルレポート (PDF) — アーキテクチャ、すべてのコンソール画面、37のコレクターモジュールすべて、検知モデル、対応アクション、セキュリティモデルを網羅する14ページ。

ライセンス

MIT Licenseの下でライセンスされている。LICENSEを参照。


最もハンティングを必要とし、最もそれを賄えない環境のために作られた。
ツールをダウンロード
エンリッチメント
このホストは60のアドレスと通信した — どれを最初に?
ハント後
92/100、340件の報告、既知のCobalt Strike C2
#画面これをやる得られるもの
1IOC feedsFeodo Trackerを追加し、Refreshを押すC2検知 — 書くルールはなし
2Threat intel無料のAbuseIPDBキーを貼り付け、Testを押すグラフ上のトリアージ順序
3Fleetホストを選択し、Launch hunt検知結果、ライブで
4Logs & eventsモジュールエラーを探すスイープが実際に見られたかどうか
5Triageキューを処理し、最もノイズの多いルールをチューニング誰かがまだ読むリスト
6My rules6つの例を読み込み、1つを開く独自ルールの書き方
7IntegrationsSlack webhook、下限をHIGHに監視しなくても気づける