CrackMapExec(CME)は、特にWindowsのセキュリティテストで重要なツールです。認証情報のテストや共有ファイルの確認、権限エスカレーションなど多機能で、初心者から上級者まで幅広く活用されています。本記事では、CMEの概要や基本的な使い方、応用方法について解説します。
CrackMapExecとは?基本の概要と役割
CrackMapExecは、主にActive Directory環境でのペネトレーションテストにおいて強力なツールです。CMEは次のような役割を持っています:
- ユーザーやグループ情報の列挙:システム内のユーザーやグループ情報を効率的に収集
- SMB探索:SMBプロトコルを介して共有フォルダや権限情報の確認が可能
- Kerberos認証情報の列挙:認証に関連する情報を抽出し、ブルートフォース攻撃への対応力を確認
- エクスプロイト実行:取得した情報を元に適切なエクスプロイトを実行し、リモートアクセスを取得
準備: Nmapや他のツールを使用した事前スキャン
CrackMapExecを使う前に、事前のスキャンでネットワーク情報を集めると効率が上がります。次のツールを使って、対象システムの詳細を把握しましょう:
- Nmap:ポートやサービスのスキャンで、特定のプロトコルが使用可能か確認
- smbmap:SMB(Server Message Block)プロトコルを使用したサーバー情報の確認
- RustScan:Nmapを補完する高速スキャニングツール
CrackMapExecの基本コマンドとオプション
CrackMapExecの基本コマンドを理解し、必要に応じてオプションを追加することで、効率的に情報収集ができます。主要なオプションと実行例を見ていきましょう。
crackmapexec smb <ターゲットIPアドレス> -u <ユーザー名> -p <パスワード>
ここで、ターゲットIPに接続し、指定したユーザーとパスワードでSMBサービスにアクセスします。
- 主なオプション:
-u <ユーザー>
:ユーザー名を指定-p <パスワード>
:パスワードを指定--shares
:SMB共有フォルダを一覧表示-d <ドメイン>
:ドメイン名を指定--sam
:SAM(セキュリティアカウントマネージャ)のダンプ
crackmapexec smb <ターゲットIPアドレス> -u admin -p password --shares
CrackMapExecを使ったSMB探索の手順
SMB(Server Message Block)を使うと、ファイル共有やリモート操作が可能なため、これを探索することが重要です。以下の手順でSMBサーバーのバージョン確認や共有フォルダの列挙が可能です。
- ポート確認:ポート139と445をターゲットに設定します。bashCopy code
nmap -p 139,445 <ターゲットIPアドレス>
- SMBサーバーバージョンの確認:bashCopy code
crackmapexec smb <ターゲットIPアドレス> --shares
- 共有フォルダの列挙:ファイルやフォルダの共有状況を調べ、アクセス可能なリソースを確認
ユーザーとグループの列挙
CMEで取得できる情報の中でも、ユーザーやグループのリストは特に役立ちます。以下に列挙手順を説明します。
- ユーザー列挙:
crackmapexec smb <ターゲットIPアドレス> -u username -p password --users
- グループ列挙:
crackmapexec smb <ターゲットIPアドレス> --groups
Kerberos認証情報の列挙とブルートフォース
Kerberosの認証情報を得るためには、Kerberosのアカウント名を探索し、ブルートフォース攻撃を行います。CMEと他ツールを使い連携させることで効率化できます。
- Kerberos探索:
crackmapexec kerberos <ターゲットドメイン> -u <ユーザー名> -p <パスワード>
- GetNPUsersとブルートフォース:ブルートフォースで認証情報を試行する場合、GetNPUsersやHydraを併用することが一般的です。
Windows環境におけるセキュリティ診断での応用
CMEを用いることで、Windowsのセキュリティ診断が効率化できます。以下のツールも一緒に利用することで、権限昇格やネットワークへの理解が深まります。
- evil-winrm:リモートシェルアクセスを取得
evil-winrm -i <ターゲットIP> -u <ユーザー> -p <パスワード>
- winPEAS:特権昇格の手がかりを得るための自動列挙ツール
- Bloodhound:AD(Active Directory)環境の脆弱性分析
Post-Exploitation:CrackMapExecでの特権維持
Post-Exploitation段階では、特権を維持するための操作が求められます。CrackMapExecを用いると、リモートコマンド実行やSMBリレー攻撃を実行する際に役立ちます。
- secretsdump:リモートシステムから資格情報をダンプ
secretsdump.py <ユーザー名>:<パスワード>@<ターゲットIP>
- psexec:管理者権限でコマンドをリモート実行
crackmapexec smb <ターゲットIP> -u <ユーザー> -p <パスワード> --exec 'whoami'
- SMBリレー攻撃:NTLMリレーの活用方法と注意点
CrackMapExecを利用したネットワーク監査の効率化
CMEの利便性を最大限に活用するために、他ツールと連携し自動化を行います。/etc/hosts
にターゲットのIPアドレスを設定することで、ネットワーク監査が簡便になります。
- 全自動ツールの利用法:CrackMapExecをPythonスクリプトで自動化
- ホストファイルの設定:hostsファイルでアクセス簡略化
セキュリティ診断に関する参考サイトと資料
CrackMapExecに関する最新の情報や技術的なガイドを学ぶには、以下のサイトを参考にしましょう:
- HackTricks:最新のCMEの活用例や他ツールとの連携方法
- Exploit-DB:日々更新されるエクスプロイト情報
まとめ
CrackMapExecは、効率的にネットワークの情報収集や権限昇格の試行ができるツールです。初心者でも使いやすい機能が多く揃っているため、本記事で解説した基本操作や応用方法を実践し、ネットワーク診断スキルを向上させましょう。