セキュリティ PR

CrackMapExecの使い方とセキュリティ診断

記事内に商品プロモーションを含む場合があります

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 codenmap -p 139,445 <ターゲットIPアドレス>
  • SMBサーバーバージョンの確認:bashCopy codecrackmapexec 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は、効率的にネットワークの情報収集や権限昇格の試行ができるツールです。初心者でも使いやすい機能が多く揃っているため、本記事で解説した基本操作や応用方法を実践し、ネットワーク診断スキルを向上させましょう。