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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
icebreaker — 内部ネットワークにいるが、AD環境外にいる場合に、Active Directoryの平文資格情報を取得する。 | Kitploit
ツール/GitHubGitHub/danmcinerney/icebreaker
パスワードクラッキング偵察脆弱性分析ポストエクスプロイトペネトレーションテストレッドチーミング
GitHubdanmcinerney/icebreaker

icebreaker

内部ネットワークにいるが、AD環境外にいる場合に、Active Directoryの平文資格情報を取得する。

リポジトリを見る
1.2k1597年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

icebreaker

このかわいらしいActive Directory環境とのアイスブレイクを行いましょう。冷たく孤独にActive Directoryのパーティを覗き見ているが、参加するためのAD認証情報すら持っていない場合、このツールが役立ちます。

Active Directoryに対して5つの内部ネットワーク攻撃を順次自動化し、プレーンテキストの認証情報を提供します。--autoオプションを使用すると、足掛かりを得た後にドメイン管理者権限を自動取得できます。

概要

以下の攻撃が順次実行され、4番目と5番目の攻撃は並列かつ無期限に実行されます。

  • リバースブルートフォース
    • ユーザー名のリストを自動取得し、各ユーザーに対して最も一般的なADパスワード2つをテストします(2回以上の試行はアカウントロックアウトポリシーをトリガーする可能性があります)
  • ネットワーク共有へのアップロード
    • 利用可能なネットワーク共有に悪意のあるファイルをアップロードしてユーザーのパスワードをキャプチャします
  • ブロードキャストネットワークプロトコルのポイズニング
    • 一般的なネットワークプロトコルを使用してユーザーのコンピュータをだまし、パスワードを送信させます
  • SMB接続のMan-in-the-middle
    • ADコンピュータに対してリモートコマンド実行を行い、パスワードを収集します
  • IPv6 DNSのポイズニング
    • DNSを悪用してADコンピュータをだまし、ユーザーのパスワードを送信させます

技術詳細

以下でキャプチャされたすべてのNetNTLMv2ハッシュは、JohnTheRipperとAD固有のパスワードリスト(100万件)で自動解析されます。

  • リバースブルートフォース
    • rpcclientを使用して、null SMBセッションを受け入れるホストを検出します
    • ridenumを使用して、null SMBホスト上でRIDサイクリングにより有効なユーザー名を検出します
    • theHarvesterを使用して、指定されたインターネットドメインから追加の潜在的なユーザー名を収集できます
    • 検出されたユーザー名に対して2パスワードのリバースブルートフォースを実行するか、使用するパスワードリストを指定できます
    • デフォルトのテストパスワード:P@ssw0rd および <現在の季節><年>(例:Spring2018)
  • SCFアップロード
    • Nmapを使用して、NSEスクリプト smb-enum-shares により匿名書き込み可能なネットワーク共有を検出します
    • 自分のマシンを指すファイルアイコンパスを持つSCFファイルを共有に書き込みます
    • ADユーザーがFile Explorerで共有を開くと、そのNetNTLMv2ハッシュが送信されます
  • LLMNR/NBTNS/mDNSポイズニング
    • Responder.pyを使用して、レイヤ2ブロードキャスト/マルチキャストネットワークプロトコル(LLMNR、NBT-NS、mDNS)をポイズニングし、NetNTLMv2ハッシュをキャプチャします
  • SMBリレー
    • ntlmrelayx.pyとResponder.pyを使用して、SMBハッシュをリレーします
    • Nmapを使用して、NSEスクリプト smb-security-mode により脆弱なリレーターゲットを特定します
    • 脆弱なターゲットはSMBv1が有効でSMB署名が無効になっています
    • ハッシュのリレーに成功すると、ユーザーのNetNTLMv2ハッシュがキャプチャされ、自動解析されます
    • ユーザーハッシュがマシンにリレーされ、そのユーザーがローカル管理者である場合、コマンド実行が行われ、以下がリモートで実行されます:
      • 管理ユーザー icebreaker:P@ssword123456 を追加
      • 難読化されAMSIバイパスされたバージョンのMimikatzを実行
      • Mimikatzの出力からNTLMハッシュとプレーンテキストパスワードを解析
      • 難読化されAMSIバイパスされたバージョンのInvoke-PowerDumpを実行してSAMハッシュを取得
      • 出力からNTLMハッシュを解析
  • IPv6 DNSポイズン
    • mitm6とntlmrelayx.pyを使用してIPv6 DNSをポイズニングし、NetNTLMv2ユーザーハッシュをキャプチャします
    • 認証付きの偽WPADサーバーを作成します
    • IPv6 DNSはActive Directory環境ではデフォルトで有効です
    • 注意:これによりユーザーにネットワーク接続の問題が発生する可能性があります

仕組み

上記5つのネットワーク攻撃を順次実行します。リバースブルートフォースとSCFファイルのアップロードは通常すぐに終わり、その後攻撃3(Responder.py)でデフォルト10分間待機します。その時間、またはユーザー指定の時間が経過すると、最後の2つの攻撃に移行し、これらは並列かつ無期限に実行されます。

null SMBセッションを許可するホストが検出された場合、icebreakerはridenumを使用してRIDサイクリングを行い、有効なユーザー名を取得します。-d <somedomain.com> オプションを使用すると、theHarvesterが指定されたウェブサイトからメールアドレスを収集します。AD互換のメールユーザー名は、リバースブルートフォースのユーザー名リストに追加されます。Icebreakerはasyncioライブラリを使用し、10の非同期ワーカーでLinuxツールrpcclientを用いてリバースブルートフォースを実行します。

SCFアップロード攻撃は、Shell Command Filesを匿名書き込み可能なネットワーク共有に対して悪用します。SCFは、デスクトップの表示やFile Explorerウィンドウのオープンなどの基本的なアクションを実行できるファイルです。これらのファイルは、ファイルアイコンをネットワークパスに設定できるという特異な特性を持っています。このネットワークパスを自分のマシンに設定すると、File Explorerでファイル共有を開いたユーザーは自動的に自分のNetNTLMv2パスワードハッシュを送信します。IcebreakerはNmapスクリプト smb-enum-shares を使用して匿名書き込み可能な共有を見つけ、ペイロードを含むSCFを自動生成してアップロードします。

攻撃3ではResponder.pyを使用してLLMNR、NBT-NS、mDNSマルチキャスト/ブロードキャストプロトコルをポイズニングします。ユーザーが存在しないネットワークパスに移動すると、Responderは攻撃者のマシンが正しいパスであると伝えます。ユーザーのNetNTLMv2パスワードハッシュが手に入ります。ResponderはSCF攻撃で送信されたハッシュもキャプチャしますが、次の攻撃はSCFハッシュのキャプチャに通常より有用です。なぜなら、ハッシュをコマンド実行に利用できる可能性があるからです。

SMBリレーは古典的なネットワーク攻撃で、攻撃者がSMBクライアントとSMBサーバーの間に割り込みます。これにより、攻撃者はSMBv1が有効でSMB署名が無効なホストに対してNetNTLMv2ハッシュをキャプチャおよびリレーできます。Impacketライブラリのntlmrelayx.pyを使用してリレーし、Responder.pyを使用してSMB接続のMan-in-the-middleを行います。SMBクライアントユーザーが、SMB署名が無効なネットワーク上のホストに対して管理者権限を持っている場合、ntlmrelayx.pyはそのホストでコマンド実行を行います。

ntlmrelayxがキャプチャしたハッシュをリレーすると、base64エンコードされたPowerShellコマンドが実行され、最初に管理ユーザー(icebreaker:P@ssword123456)を追加し、次に難読化されAMSIバイパスされたバージョンのMimikatzを実行し、続いて難読化されAMSIバイパスされたバージョンのInvoke-PowerDumpを実行します。Invoke-MimikatzとInvoke-PowerDumpの出力からプレーンテキストパスワードまたはNTLMハッシュが解析され、標準出力および found-passwords.txt ファイルに提供されます。NTLMハッシュはNetNTLMv2ハッシュとは異なり、他のADホストへの認証にプレーンテキストパスワードと同様に使用できます。ただし、MicrosoftのKB2871997パッチ以降、Pass-the-Hash攻撃で使用できるのは組み込みのRID 500ローカル管理者アカウントのみであることに注意してください。

最後の攻撃では、mitm6ツールを使用してネットワーク全体に対してMan-in-the-middle IPv6 DNS攻撃を実行します。これにより、ネットワーク上のホストは攻撃者のマシンをDNSサーバーとして使用するよう強制されます。DNSサーバーとして設定された後、攻撃者は被害者に悪意のあるWPADプロキシ設定ファイルを提供し、NetNTLMv2ハッシュを収集します。これらのハッシュはntlmrelayx.pyを使用してリレーされ、さらなるリモートコード実行の可能性が生まれます。注意すべき点は、この攻撃はネットワークに問題を引き起こしやすいことです。クライアントマシンのブラウザで証明書エラーが頻繁に発生します。また、ネットワーク速度が低下する可能性があります。しかし、この攻撃の利点は、Windows AD環境がデフォルトで脆弱であることです。

icebreakerが --auto [tmux/xterm] フラグで実行されると、攻撃4に達した時点でIcebreakerは Empire と DeathStar をtmuxセッションまたはxtermウィンドウで実行します。このオプションでは、ハッシュをリレーしたリモートホストでmimikatzを実行する代わりに、icebreakerは管理ユーザーを追加し、EmpireのPowerShellランチャーコードを実行してリモートマシンにエージェントを配置します。DeathStarはこのエージェントを使用してドメイン管理者達成のプロセスを自動化します。icebreakerを終了してもEmpireとDeathStarは閉じません。

パスワードクラッキングはJohnTheRipperとカスタムワードリストで行われます。このリストの起源は merged.txt で、SecLists GitHubアカウントのすべてのパスワードを結合したものです。ワードリストは整理され、以下のパスワードは含まれていません:すべて小文字、すべて大文字、すべて記号、7文字未満、32文字超過。これらのルールはデフォルトのActive Directoryパスワード要件に準拠しており、リストを2000万からちょうど100万以上に減らし、パスワードクラッキングを非常に高速にしています。

インストール

rootとして:

root@kitploit:~
./setup.sh
pipenv install --three
pipenv shell

pipenv install 実行後にエラーが発生する場合があります。その場合は、pipenvのバージョンを11.9.0より新しいものにアップデートしてください。pipenvをGitHubからgit cloneし、フォルダ内で apt-get remove python-pipenv && python setup.py install を実行することもできます。

Dockerの使用法

Dockerイメージにはまだいくつかのバグがあり、エラーが発生する可能性がありますが、ほぼ完成しています。Gitリポジトリから:

root@kitploit:~
docker build --rm -t danmcinerney/icebreaker .
docker run danmcinery/icebreaker

または、icebreakerに通常追加するコマンドを追加します(ボリュームのマッピングを忘れずに):

root@kitploit:~
docker run -v $(pwd)/logs:/icebreaker/logs -v $(pwd)/hashes:/icebreaker/hashes -v $(pwd)/icebreaker-scan.xml:/icebreaker/icebreaker-scan.xml -v $(pwd)/submodules:/icebreaker/submodules -e PYTHONUNBUFFERED=0 danmcinerney/icebreaker -x icebreaker-scan.xml

注意: リスナーのためにdockerの -p <host>:<container> フラグでポートをマッピングする必要があります。

使用法

rootとして実行します。改行区切りのIPアドレスリスト(単一IPまたはCIDR範囲)を読み取り、ntlmrelayxがハッシュリレー時にユーザーを追加してmimikatzを実行する代わりに、被害マシンでカスタムコマンドを実行させます。この例では、EmpireがPowerShellランチャーのワンライナーとして提供するようなコマンドを与えています。 ./icebreaker -l targets.txt -c "powershell -nop -w hidden -exec bypass -enc WwFk..."

ホストリストを読み取り、Responderにデフォルトゲートウェイインターフェースではなくeth0インターフェースを使用するよう指示し、Responderの実行時間を通常の10分から30分に延長し、ntlmrelayxのデフォルトのpost-relayコマンドを実行して被害サーバーからSAMをダンプします。 ./icebreaker -l targets.txt -i eth0 -t 30 -c default

Nmap XML出力ファイルを使用し、5つの攻撃すべてをスキップし、ハッシュの自動解析も行わず、リバースブルートフォース攻撃にカスタムパスワードリストを使用します(この例では -s rid により攻撃1をスキップしているため、指定したパスワードリストは実際には使用されません。これは例として示しています)。 ./icebreaker.py -x nmapscan.xml -s rid,scf,llmnr,relay,dns,crack -p /home/user/password-list.txt

Fire-and-forgetの使用法:ターゲットファイルを入力し、companydomain.comからメールユーザー名をスクレイピングしてリバースブルートフォース攻撃に追加し、mitm6のIPv6 DNSポイズニングをスキップし、攻撃4が開始されたらEmpireとDeathStarをtmuxまたはxtermウィンドウで実行して自動ドメイン管理者を取得します。この使用法の目標は、月曜日の午前9時にコマンドを発射し、その後金曜日の午後4:30まで短く中断のない休憩を取り、その時点で待っているドメイン管理者シェルに戻ることです。攻撃5(mitm6)はネットワークに問題を引き起こす可能性があるためスキップし、貴重な休憩を邪魔する怒っているクライアントを避けます。 ./icebreaker.py -l targets.txt -d companydomain.com -s dns --auto [tmux/xterm]

ツールをダウンロード