从外网 Weblogic 打进内网,再到约束委派接管域控205359
从外网 Weblogic 打进内网,再到约束委派接管域控(复现)
靶场官方:渗透攻击红队(微信公众号)
0x01 靶场配置
攻击机1:win10 192.168.0.193
攻击机2:kali 192.168.0.105
靶机: 192.168.0.154 weblogic服务器,其他在域内
测试:
xray扫一下weblogic 有CVE_2020_2551
直接一把梭,有admin账户且出网
query process查看当前进程
可以看到是无AV的,都不需要做免杀
直接Powershell 上线到 CobaltStrike:
cs-attack-payload Generator -powshell command生成命令shell
放入利用工具里执行
好奇怪 我本机都可以上线,但是发现weblogic服务器就是上不了线,开http上传beacon.exe并运行也不能上线
后来发现ping不了我的kali(cs服务器),原来设置到第一层网络去了
得把kali的桥接模式设成物理机
ok 成功上线
看到改机器有两个网卡
hashdump下来
既然有第二个网卡,进行域内信息手机
凸(艹皿艹 ),扫半天没扫出来,才发现我pc靶机没打开(用巨龙拉冬9.0多口探测)
扫到了这个
巨龙拉冬扫一下龙洞
ms17-010
端口转发>cs派生给msf
利用cs自带开个SOCKS端口
然后msf连接
1 |
|
attack
1 |
|
打不进去,是因为cs自带的socks的不稳定性
直接用cs创建msf监听器试一下,然后msf打开监听即可
1 |
|
这里又产生了个误区,这样的派生结果还是进入了10.10.20.12的meterpreter,好家伙之前学的那些ew啥的考自己搭的环境去学都没能真正学到知识,还得是实战配合工具才能学到知识
用frp建立一个 socks5 隧道试试
kali配置文件 frps.ini,然后运行:
之后来到目标跳板机器运行 frpc:
当然是先上个shell上传frp文件
放temp文件夹是因为一般都是temp文件夹的权限比较高,当然我们现在是administrator
当然这里我用的是cs的frp插件
这个插件用起来看不懂咋用,应该是将frpc.ini传到指定文件夹,下面这个框写下这个目录就行
不过我直接将这个插件里面文件夹的exe直接传过去配合之前传的frpc.ini然后
1 |
|
省的麻烦
建立好 socks5 隧道后 Metasploit 对其利用拿到 Meterpreter 会话:
1 |
|
ok
通过调用 mimikatz 成功抓到其域用户的密码
load mimikatz
creds_all
解一下hash
1 |
|
中转上线到 CobaltStrike 进行二层内网域渗透 有几种方法
1.meterpreter配置端口外带到cs,方法地址如下,不行 进的使meterpreter
http://www.caiyuhuan.com/index.php/article/lian_fengdingbin_/132.html
2.设置中转(反向代理)
因为此 Win7 不出网,随后只能通过 CobaltStrike 设置中转:
这里换了kali:192.168.0.124
操作:
然后用这个监听器生成一个exe程序,然后用meterpreter的upload上传到10.10.20.7
然后在用meterpreter调用cmd运行它
1 |
|
1 |
|
或cs创建powershell.ps
直接merterpreter执行cmd执行powershell
execute怎么样都上不了线,本地把载荷也传过去,也上不了线
其他方法
1 |
|
ok 内存条换了,继续
1方法和2方法是我直接再10.10.20.7放中转后的payload并运行都不能上线,所以这些也没用
3方法因为c2对二层网络没用,所以这不算是方法
4方法因为目标不能出网,所以不行
5方法暂时不管
这里用6试试
因为拿到了,meterpreter,试试创建钓鱼站点并使靶机运行poweshell连接上线
这里在CS中利用Attacks-> Web Drive-by -> Scripted Web Delivery 来部署一个Payload分发站点:
主机地址和端口就是钓鱼站点,因为我们看了内网中转监听,把主机地址 和监听器都换成
10.10.20.12试试
1 |
|
不行
后来用靶机ping一下10.10.20.12发现ping不通= =
但是我们msf用10.10.20.12可以打进10.10.20.7,但是10.10.20.7ping不通10.10.20.12
这个应该使防火墙设置原因,和其它无关
可以看到两个权限不一样
meterpreter运行cd c:\users\saul\desktop
dir
beacon.exe试一下
看下cs还是不能上线
7.frp代理
好的 还是不行。原来是没有搭建域环境,累了
先整其他的靶场吧
好了 其他靶场整完额,先改一下这些虚拟机的dns和ip
第一层192.168.0
第二层10.10.20
第三层10.10.10
10.10.20.7 ping不了10.10.20.12是因为10.10.20.12网络发现没有打开
现在kaliip为192.168.0.124
好 先把之前做过的再做一遍:yellow_heart:
果然是网络配置的问题(weblogic服务器主机配置了“关闭网络发现”)
为什么启动不了网络发现
有意思的是一开始我关闭网络发现后全是10.10.20.7ping不了10.10.20.12
后来我启用网络发现后直接关闭这个窗口了 然后去10.10.20.7那台主机
发现可以ping10.10.20.12,但是当我再次打开这个窗口时发现此时是“关闭网络发现”
但是两者都是可以互相ping通的,我也不知道啥原因
1.按下WIN+R,然后输入services.msc 回车
2、然后检查以下几个服务,看是否为启动状态;
Function Discovery Resource Publication
SSDP Discovery
UPnP Device Host
这样就可以
那么上述步骤怎么用指令来操作呢
这就需要逐步cmd或者powshell指令操作了
但是目前只找到了可以cmd直接打开services.msc,但是你用cs执行这个命令的话是回显不出来的,但是人家电脑上看的到:joy: 把这个列为未来计划 后来加以补充
后面找到了还有这些方法
方法二:
reg add 将新的子项或项添加到注册表中
语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]
这种命令叫DOS命令
1 |
|
1 |
|
而注册表和服务在(权限维持)后门持久化中也占有重要作用:开代理和挂载荷啥的
https://www.cnblogs.com/fanyf/p/4221488.html
这里又不得不提到一个后门持久化的图形化工具了
,当然也可以直接使用reg命令打开(说实话reg命令不太好搞,因为不知道各个指令的详细操作(对应工具的部位命令),后面会做一次专题)。不过其实也不需要用到图形化工具,reg里面可以直接用,重要的还是要使用命令启用reg
就是说,我都能启用图形化工具了,那我直接去regit里面创建服务不就行了。还不用下载工具
不过工具多的是稳定性(怕你不会配置啥的):sheep:
有个工具nnsm 可以看这个
怎样启动网络发现(用指令)
那实战中遇到这种情况有什么方法吗?
首先要把防火墙关掉是肯定的
win7(其他版本还没试过,不过应该都行)有下面几个个方法
新建一个记事本文件,在里面输入内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18@echo off
:Win7网络发现依赖的服务:
:Dnscache DNS Client
:SSDPSRV SSDP Discovery
:PlugPlay Plug and Play
:FDResPub Function Discovery Resource Publication 功能发现资源发布
sc query SSDPSRV|findstr /i "SSDPSRV state"
sc query Dnscache|findstr /i "Dnscache state"
sc query PlugPlay|findstr /i "PlugPlay state"
sc query FDResPub|findstr /i "FDResPub state"
sc config SSDPSRV start= AUTO
sc config Dnscache start= AUTO
sc config PlugPlay start= AUTO
sc config FDResPub start= AUTO
sc start SSDPSRV
sc start Dnscache
sc start PlugPlay
sc start FDResPub然后保存为TurnOnNetworkDiscovey.bat。
双击运行TurnOnNetworkDiscovey.bat
继续继续
先提权
再shell net user /domain看下域用户
net group “Domain Controllers” /domian 定位到域控 DC IP 为:10.10.10.8
拿DC、
首先当前进程是没有域管的,所以暂且放弃令牌窃取:
传个Adfind上去
1 |
|
1 |
|
找到了一个 sqlserver 的用户是被设置了约束委派,得想办法搞到这个用户的账密。
传个fscan上去扫一下
1 |
|
发现 sqlserver 这台机器开放了 80、1433(mssql):
ew配合sock64加代理一下railgun对sql进行爆破
这次代理就有难度了
因为10.10.10.18是在第三层
而win主机在第一层,ping不到第三层。
刚好ew是适合三层代理的
先分析一下局势
win是192.168
第二层是(192.168.0.154)10.10.20.12 (10.10.20.7)10.10.10.7
第三层代理地址 10.10.10.7 目标10.10.10.18
kali执行
1 |
|
10.10.20.12执行
1 |
|
10.10.10.7执行
1 |
|
无法连接 哪里出了问题?
这两个都开着 但是没连上
换一个 将weblogic的命令改为
1 |
|
不管了 那就直接开3389
多重开启 (10.10.20.7和10.10.20.12 都开)
ok
目标是 iis,那么想办法找到 iis 到目录写个一句话吧。
一般 iis 的目录是:C:\inetpub\wwwroot
,那么查看下是否存在:
存在是存在 但是不能写文件
使用 SharpSQLTools 开启目标 clr:
1 |
|
然后启用并调用命令:
1 |
|
这下子就是一个系统权限了!
随后添加了一个管理员:
但还是不能写一句话
还是用 MSF 把:
exploit/windows/mssql/mssql_clr_payload
然后找到了一个可读可写目录上传 exe 成功,然后中转再上线到 CobaltStrike:
成功上线
提个权
mimikatz抓一下密码
1 |
|
之前信息搜集的时候我们知道 sqlserver
是一个约束委派的用户,我们可以通过
约束委派攻击来接管域控。
1.利用 kekeo 请求该用户的 TGT:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi
1 |
|
2.然后使用这张 TGT (TGT_sqlserver@REDTEAM.RED_krbtgtredteam.red@REDTEAM.RED.kirbi) 获取域机器的 ST:TGS_Administrator@redteam.red@REDTEAM.RED_cifsowa.redteam.red@REDTEAM.RED.kirbi
1 |
|
3.使用 mimikatz 将 ST2 导入当前会话即可,运行 mimikatz 进行 ptt:
1 |
|