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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
adnullenum — SAMRおよびLSARPCを介したワンパス匿名Active Directory列挙 — nullセッション、認証情報不要、構造化された再利用可能な出力付き。 | Kitploit
ツール/GitHubGitHub/crypt0p3g/adnullenum
防御ツールOSINT (オープンソースインテリジェンス)偵察脆弱性分析情報収集ネットワークセキュリティペネトレーションテストレッドチーミング
GitHubcrypt0p3g/adnullenum

adnullenum

SAMRおよびLSARPCを介したワンパス匿名Active Directory列挙 — nullセッション、認証情報不要、構造化された再利用可能な出力付き。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

adnullenum

匿名(null)セッション用のシングルパス Active Directory 列挙ツールで、\samr および \lsarpc 名前付きパイプを使用します。認証情報は不要です。

古典的なツールにできないことは何もありません。これはそれを1回の実行でまとめて収集し、結果をきれいに整理して出力します。エンゲージメントでドメインアカウントを持たずに侵入し、DNS 経由で DC を見つけ、アカウント、ユーザーごとの詳細、グループ、ポリシー、LSA/DNS の情報を含む全体像を、rpcclient セッションや複数の個別スクリプトをつなぎ合わせてその stdout を手作業で解析することなく把握したい場合に使います。これはそのパスを代行し、構造化された再利用可能な出力を書き出します:

  • 1つのコマンドでドメイン情報、ポリシー、RID ディスカバリ、ユーザーごとの詳細とグループをカバーし、機能するメソッドを選択し、SAMR がロックされている場合は優雅に縮退します(比較 と SAMR がロックダウンされている場合 を参照)。
  • 次のツールに渡すために作られた出力。 タイムスタンプ付きの実行フォルダに txt / csv /(オプションで)json、manifest.json、すぐに使える userlist.txt / computerlist.txt、そして二度ブルートフォースせずに再利用できる保存済み RID リスト。
  • 興味深いアカウントを検出次第フラグ付けします(AS-REP ロースト可能、パスワード不要、非制約委任など)。

所有している、または明示的にテストを許可されているシステムに対してのみ実行してください。 許可なく他人のディレクトリを列挙するのは良くありませんし、場所によっては違法となる可能性があります。

同一の動作をする2つのバージョンがあります。お持ちのライブラリに合わせてどちらかを使用してください:

  • adnullenum.py — impacket 上に構築されています。

収集するもの

  • ユーザー、コンピュータ、グループ。 マシンアカウント($ で終わるもの)は実際のユーザーから分離されます。
  • ユーザーごとの完全な詳細。 説明、グループメンバーシップ、パスワードとログオンのタイムスタンプ、アカウントフラグ、ログオン制限(ログオン時間、許可されたワークステーション、有効期限)。
  • メンバーを含むグループ(実名に解決されます)。
  • ドメインとポリシー情報。 ドメイン名、SID、サーバーロール、実際のユーザー/グループ/コンピュータ数、パスワードおよびロックアウトポリシー。
  • LSA / DNS の詳細。 DNS ドメインとフォレスト名、ドメイン GUID、ドメイン SID、および任意の信頼関係 — これらは SAMR 自体がロックダウンされていても返ってくることがよくあります。

また、興味深いアカウントもフラグ付けします:「パスワード不要」、「パスワード無期限」、AS-REP ロースト可能、非制約委任、一度もログオンしていない、説明にパスワードが記載されている、などです。

これから自然に導かれるいくつかのこと:

  • 収集したユーザー名は AS-REP ロースト用のリストになります。
  • コンピュータ名は Windows 2000 以前のマシンアカウントチェック用のリストになります。

比較

ここにあるものはすべて標準的な匿名 SAMR/LSARPC であり、確立されたツールはすでに同じデータに到達できます。これは新しい機能ではなく便利なラッパーなので、代替手段を知っておく価値があります:

  • enum4linux-ng が最も近い同等品です:null セッション SAMR + LSA、RID サイクリング、ポリシー、ユーザー、グループ。成熟した広く使われているツールが欲しいなら、それを使ってください。adnullenum はそれと大きく重複しています。
  • NetExec(--rid-brute、--users、--pass-pol)は、はるかに大きなフレームワーク内で同じ列挙をカバーします。
  • impacket は2つのスクリプトとして提供します:samrdump.py(ユーザー/グループ/エイリアス + ユーザーごとの詳細)と lookupsid.py(LSA 経由の RID サイクリング)。単一実行なし、SAMR→LSA フォールバックなし、stdout のみ。
  • rpcclient は基盤となる呼び出し(queryuser、enumdomusers、querydominfo、lsaquery、lookupsids など)を公開しますが、対話的で stdout のみです。その enumdomusers は標準ユーザーを名前で一覧表示し、マシン()アカウントは含まれず、完全な詳細は を1つずつ実行する必要があります。組み込みの RID サイクリングループがないため、コンピュータを復元したり、制限された列挙を回避したりできません。 を参照してください。

adnullenum が追加するのはパッケージングです:複数のツールではなく1回の null セッション実行、SAMR 優先でオプトインの LSA フォールバック、厳選された興味深いアカウントフラグ、そして次のステップにそのまま渡したり後で開いたりできる整ったマルチフォーマット出力。そのワークフローがあなたの働き方に合うなら使ってください。実戦で鍛えられたツールの方が良ければ、enum4linux-ng や NetExec を選んでください。


インストール

Python 3.9+ と1つの SMB ライブラリが必要です。仮想環境を使うとすっきりします:

root@kitploit:~
# clone / copy the files, then from the project folder:
python3 -m venv venv
source venv/bin/activate          # Windows: venv\Scripts\activate

pip install impacket              # for adnullenum.py

以上です。python3 adnullenum.py --help を実行するとすべて確認できます。


使い方

すべては単一の --mode を通して実行されます。デフォルトは recon で、最初に実行するのに安全なものです。

root@kitploit:~
# 1. Is anonymous access open, and how big is this domain?
python3 adnullenum.py 10.0.0.10

# 2. Grab everything
python3 adnullenum.py 10.0.0.10 --mode full

# 3. Just the account inventory, wider net for a big domain
python3 adnullenum.py 10.0.0.10 --mode rids --start-rid 1000 --max-rid 200000

# 4. Go slower to stay quiet
python3 adnullenum.py 10.0.0.10 --mode users --sleep 1 --jitter 40

# 5. Also write JSON (txt and csv are always written)
python3 adnullenum.py 10.0.0.10 --mode full --json

アカウントの発見

ドメインがユーザーを直接一覧表示させてくれない場合(よくあります)、ツールは RID サイクリング にフォールバックします:DC にアカウント ID を1000件ずつバッチで名前へ変換するよう要求します。デフォルトでは、DC が存在すると言うすべてを見つけるまで、または5000個の ID が連続して空で返るまで、上方向にスイープします。代わりに正確な範囲に固定することもできます:

root@kitploit:~
python3 adnullenum.py 10.0.0.10 --mode rids --range 500-50000

SAMR がロックダウンされている場合

一部の DC は匿名 SAMR を完全に拒否します(enumdomains と RID 変換が ACCESS_DENIED を返します)。実行は諦めません:

  • LSA 偵察は常に実行されます。 ドメイン名、SID、そして多くの場合フォレスト、GUID、信頼関係は \lsarpc から取得され、これは SAMR が応答しないときによく応答します。
  • RID サイクリングは LSA にフォールバックできます(オプトイン)。 SAMR が RID を変換せず、--lsa-fallback を渡した場合、ツールはドメイン SID を使って LSA LsarLookupSids 経由で同じスイープを再試行し、それでもアカウントインベントリ(名前とタイプ、コンピュータを含む)が得られます。これは2回目のブルートフォースパスであるためデフォルトではオフです。フラグなしでは実行は偵察で停止し、その旨を通知します。
  • ユーザーごとの深い詳細とグループメンバーシップには SAMR が必要です。 SAMR がブロックされている場合、これらのステージはスキップされ記録されますが、名前/タイプのインベントリは依然として得られます。
  • LSA ルックアップもブロックされている場合、実行は偵察のみ(ドメイン名と SID)に縮退します。そのようなターゲットでは、どの匿名ツールもアカウントを列挙できません。

二度ブルートフォースしない

アカウントの発見が遅い部分なので、ツールはリスト(rids.txt)を毎回の実行の出力フォルダに保存します。後の実行を --session でそのフォルダに向けると、ブルートをスキップしてすでに見つけたものを再利用します:

root@kitploit:~
python3 adnullenum.py 10.0.0.10 --mode rids
# -> output/20260917-1530_10.0.0.10_rids/

python3 adnullenum.py 10.0.0.10 --mode users \
    --session output/20260917-1530_10.0.0.10_rids

--session は前回の実行のフォルダを受け取ります。(--rid-file は1行に1つの RID を書いたプレーンテキストファイルから同じことを行います。)


出力

各実行は output/ の下にタイムスタンプ付きフォルダを生成します:

root@kitploit:~
output/20260917-1530_10.0.0.10_full/
├── rids.txt          # the account IDs found (reuse with --session)
├── manifest.json     # summary: counts, interesting accounts, run details
├── access_denied.txt # only if something was denied/restricted (with a timestamp)
├── output
├──── lists/          # ready-to-use lists (see below)
├──── txt/            # easy to read
└──── csv/            # easy to grep / open in a spreadsheet

txt と csv は常に書き出されます。--json を追加すると json/ フォルダも作成されます。

lists/ フォルダには、他のツールに直接渡すために作られた2つのプレーンファイルが入っています:

  • lists/userlist.txt — AS-REP ロースト、パスワードスプレー、またはクラッカーの --users リストにそのまま投入できます。users/full モードでは有効なアカウントのみが含まれます。rids モード(ユーザーごとの詳細なし)ではすべてのユーザーです。
  • lists/computerlist.txt — マシンアカウント名($ を保持、sAMAccountName)、Windows 2000 以前のマシンアカウントチェック用。

見るのを忘れた、または rids しか実行しておらず今リストが欲しい場合は、実行のフォルダを指定すると CSV から再構築されます。ネットワークは不要です:

root@kitploit:~
python3 adnullenum.py --lists-from output/20260917-1530_10.0.0.10_full

画面上では大きなドメインがターミナルを溢れさせないように上限付きのプレビューが表示されます(--limit、セクションごとのデフォルトは100)— ファイルには常に完全なデータが入っています。カラーはターミナル上で有効です。--no-color でオフにできます。


例

テスト DC に対する full 実行(サニタイズ済み)。画面上では偵察、RID スイープ、興味深いアカウントのサマリー、書き出されたファイルのリストが得られます:

root@kitploit:~
$ python3 adnullenum.py 10.0.0.10 --mode full
[*] Connecting to 10.0.0.10:445 anonymously ...
[+] SAM domain: CORP (S-1-5-21-1111111111-2222222222-3333333333)
...
[ COUNTS ]
  Users:   43
  Groups:  0
  Aliases: 17

[ PASSWORD POLICY ]
  Min length:       7
  Max age:          42 days
  Properties:       COMPLEX

[*] Bruting RIDs via SAMR (chunk=1000, open-ended 500-100000, stop-after 5000)
[*] up to RID 1498: 31 resolved, gap=0
[*] stop: 5000 consecutive empty RIDs (--stop-after 5000)
[+] Resolved: 5 users, 4 computers, 22 groups, 0 other
[*] Deep-querying 5 users (skipping 4 computers)
    [!] Administrator (RID 500)  PWD_NEVER_EXPIRES
    [!] Guest (RID 501) (disabled)  PWD_NOT_REQUIRED, PWD_NEVER_EXPIRES
    [!] svc_sql (RID 1104)  ASREP_ROASTABLE
[+] 5 users: 3 enabled, 2 disabled, 3 interesting (full detail in the users file)

[ FILES WRITTEN in output/20260101-120000_10.0.0.10_full ]
  txt/recon.txt / csv/recon.csv        domain info + password/lockout policy
  txt/inventory.txt / csv/inventory.csv  all resolved accounts
  txt/users.txt / csv/users.csv        full per-user detail
  txt/groups.txt / csv/groups.csv      groups + aliases with members
  rids.txt                             existing RIDs (reuse with --session)
  lists/userlist.txt                   usernames, one per line
  lists/computerlist.txt               machine accounts (with $)
  manifest.json                        run metadata + counts

txt/users.txt からの1レコード(プライマリグループと直接グループは名前に解決されます):

root@kitploit:~
[+] RID 500
    Enabled:                   True
    SamAccountName:            Administrator
    SID:                       S-1-5-21-1111111111-2222222222-3333333333-500
    Description/AdminComment:  Built-in account for administering the computer/domain
    Last Logon:                2026-09-03 17:58:26+09:00
    Password Last Set:         2026-01-23 05:14:35+09:00
    Primary Group:             Domain Users (513)
    Account Control:           NORMAL_ACCOUNT | PASSWORD_NEVER_EXPIRES
    Logon Count:               92
    Direct Domain Groups:      Domain Users; Administrators; Domain Admins
    >> INTERESTING:            PWD_NEVER_EXPIRES

手作業で行う

ここにあるものはすべて標準的な SAMR/LSARPC なので、Samba の rpcclient で同じ事実を1回の呼び出しずつ取得できます。まず匿名で接続します:

root@kitploit:~
rpcclient -U "" -N 10.0.0.10

enumdomusers は標準ユーザーアカウントを名前のみで返します。マシン($)アカウントは除外され、完全な詳細は queryuser を1アカウントずつ実行することを意味します。rpcclient には組み込みの RID サイクリングループがないため、サーバー側の列挙が制限されている場合にマシンアカウント(またはその他)を復元できません。範囲に対して lookupsids を自分でスクリプト化する必要があります。またロックアウトポリシーコマンドがなく、LSA DNS/フォレスト/GUID や信頼関係も返しません。これがこのツールが PolicyDnsDomainInformation を直接クエリする理由です。

スクリプト化された相当物と、このツールがそれらとどう関係するかについては、比較 を参照してください。


緩和策

ブルーチーム側でこれを止めたい場合、匿名パスが閉じるべきものです:

  • 「SAM アカウントの匿名列挙を許可しない」 と 「…アカウントと共有」(RestrictAnonymousSAM / RestrictAnonymous 設定)を有効にします。
  • Pre-Windows 2000 Compatible Access グループから Anonymous Logon(および Everyone)を削除します。これが通常、ドメインコントローラで null セッション RID サイクリングが機能する理由です。
  • 「Everyone のアクセス許可を匿名ユーザーに適用する」 を無効に設定し、名前付きパイプへの匿名アクセスを制限します。
  • SMB 署名を必須にし、SMBv1 を無効にします。

これらはいずれも、ログイン済みユーザーが同じデータを読むことを止めません — それは正常で想定内です。認証情報なしのパスを閉じるだけです。

検出

  • SAM/ディレクトリオブジェクトの監査を有効にし、1台のマシンから短期間に イベント 4661 / 4662(SAM またはディレクトリオブジェクトへのハンドル)がバーストするのを監視します。
  • 多数の匿名ログオン(イベント 4624、ログオンタイプ 3、ANONYMOUS LOGON アカウント)と IPC$ アクティビティ(5140 / 5145)を監視します。
  • 手がかりは単一ソースからの量です:短期間に \samr に対する多数のアカウント ID ルックアップ、または \lsarpc に対するポリシー/ルックアップ呼び出し。
  • --sleep と --jitter が呼び出しを分散させることができるため、レートだけでなくウィンドウ内の合計数でアラートを出します。

注意事項

  • 使用されるのはポート 445 のみです — 135 の RPC エンドポイントマッパーには触れません。
  • SAMR RID 変換が ACCESS_DENIED を返す場合、--lsa-fallback を追加してインベントリのために LSA LsarLookupSids を試します(「SAMR がロックダウンされている場合」を参照)。LSA ルックアップもブロックされている場合、偵察(ドメイン名 + SID)のみが可能です。

ライセンス

MIT。LICENSE を参照してください。

ツールをダウンロード
$
queryuser
手作業で行う
モード得られるもの
reconドメイン情報、カウント、パスワード/ロックアウトポリシー、LSA/DNS の詳細。ブルートフォースなし。ただの偵察。
ridsどのアカウントが存在するかを見つけ、ユーザー / コンピュータ / グループに分類します。
users上記に加えて、すべての実ユーザーの完全な詳細と「興味深いアカウント」のサマリー。--include-groups を追加すると各ユーザーのグループも一覧表示します。
groupsドメイングループと組み込みエイリアスをメンバーとともに表示します。
fullすべて。
このツールrpcclient の相当物
recon(ドメイン情報 + カウント)querydominfo
recon(パスワードポリシー)getdompwinfo
recon(LSA ドメイン + SID)lsaquery、lsaenumsid
rids(名前/SID 変換)lookupnames <name>、lookupsids <SID>
rids(サーバー側リスト)enumdomusers(標準ユーザーのみ — $ マシンアカウントなし)
users(ユーザーごとの詳細)queryuser <rid> または queryuser <name>、querydispinfo
groupsenumdomgroups、querygroupmem <rid>、enumalsgroups builtin、queryaliasmem builtin <rid>