从Redis未授权到域控:三层网络渗透实战与内网横向移动技术详解

1. 项目概述:一次典型的内网纵深渗透实战

最近在复现红日安全团队的vulnstack7靶场,这个靶场模拟了一个非常经典的三层网络渗透场景:从互联网边界的一个Redis未授权访问漏洞入手,逐步向内网横向移动,最终拿下核心的域控制器。整个过程就像剥洋葱,一层层深入,非常考验渗透测试人员对内网协议、横向移动技术和权限维持的理解。如果你对内网渗透感兴趣,或者想系统性地练习从外网到内网、再到域控的完整攻击链,这个靶场绝对是一个绝佳的练手材料。

简单来说,这个靶场构建了一个包含三个网段的环境。攻击者起始于外网,通过一个暴露在公网且配置不当的Redis服务拿到第一台Web服务器的权限,这台服务器位于DMZ区。以此为跳板,进一步探测和攻击内网办公区的第二台主机,最后以办公区主机为据点,向核心生产区的域控制器发起总攻。整个路径清晰地展示了攻击者是如何利用单点漏洞,通过层层跳板,最终触及企业最核心资产的。接下来,我就结合自己的复现过程,把每个环节的技术细节、踩过的坑和实用的技巧分享给你。

2. 靶场环境搭建与拓扑理解

2.1 网络拓扑与角色定位

在动手之前,我们必须先搞清楚靶场的网络结构。vulnstack7模拟了一个典型的企业网络,分为三个区域:

  • 外网/互联网区 :模拟公网环境,攻击者(我们)从这里开始。靶场通常通过虚拟机的NAT或桥接模式让攻击机可以访问到边界资产。
  • DMZ区(非军事区) :这是企业的第一道缓冲带,通常放置对外提供服务的服务器,比如Web服务器。在这个靶场中,DMZ区有一台Windows Server 2012 R2主机,它运行着存在未授权访问漏洞的Redis服务,并且可能还承载着Web应用。
  • 内网办公区 :模拟企业内部员工办公网络。这个区域有一台Windows 10或Windows 7的主机,员工在此日常办公。它通常可以通过DMZ区的服务器进行访问(例如,Web服务器需要连接内网数据库)。
  • 内网核心生产区 :这是最敏感的区域,存放着数据库、域控制器等核心资产。本靶场的最终目标——域控制器(Domain Controller, DC)就位于此区域。办公区的主机通常拥有访问核心生产区的权限。

这三层网络之间通常通过防火墙或路由器进行隔离,策略是外网只能访问DMZ的特定端口,DMZ可以访问内网办公区,办公区可以访问核心区。我们的攻击路径就是逆向利用这个访问关系链。

2.2 环境准备与工具清单

工欲善其事,必先利其器。复现这个靶场,你需要准备好以下环境:

  1. 攻击机(Kali Linux) :这是我们的主战场。建议使用虚拟机安装Kali,确保网络通畅。

    • 必要工具
      • nmap : 端口扫描和服务发现。
      • redis-cli : Redis命令行客户端,用于连接和测试未授权访问。
      • msfvenom / msfconsole : Metasploit框架,用于生成Payload和利用漏洞。
      • impacket 工具套件: 内网渗透神器,特别是 psexec.py , smbexec.py , wmiexec.py 等,用于各种协议的横向移动。
      • mimikatz : 抓取密码哈希和明文凭证的经典工具(需上传到目标Windows主机)。
      • proxychains : 代理工具,方便我们将工具流量导向内网。
      • frp / nps / ew : 内网穿透/端口转发工具,用于搭建从目标主机回连到攻击机的通道。
  2. 靶机环境(vulnstack7) :你需要从红日安全官方渠道下载靶场镜像文件(通常是 .ova 或一组虚拟机文件),并使用VMware或VirtualBox导入。导入后,需要仔细设置三台虚拟机的网络适配器,确保它们分别连接到代表不同网段的虚拟网络(如VMnet2, VMnet3, VMnet4),并且攻击机Kali的网络能够连通到DMZ机的对外IP。

注意:靶场虚拟机的默认账号密码通常在下载页面或镜像描述中提供,请务必记录好,否则可能无法启动系统。首次启动时,建议将三台靶机(DMZ-Win2012, 内网-Win10, 核心区-DC)全部开机,并等待系统完全启动,服务加载完毕。

3. 第一阶段:突破边界 - Redis未授权访问漏洞利用

3.1 信息收集与漏洞确认

攻击的第一步永远是信息收集。假设我们已经通过子域名爆破或其他方式,发现了目标的一个IP(即DMZ区服务器的公网IP)。

首先,使用 nmap 进行端口扫描:

nmap -sS -sV -p- 192.168.1.100

(假设 192.168.1.100 是DMZ主机的公网IP)

扫描结果很可能会显示 6379 端口开放,服务识别为 Redis key-value store 。Redis默认端口就是6379,这是一个危险信号。

接下来,验证是否存在未授权访问。Redis未授权访问的成因通常是管理员将Redis服务绑定在 0.0.0.0 (所有接口),且没有设置密码认证( requirepass )。

redis-cli -h 192.168.1.100 -p 6379

连接成功后,直接尝试执行 info 命令。如果返回了详细的服务器信息,包括版本、内存、键空间等,而没有任何认证错误,那么未授权访问漏洞就坐实了。

3.2 漏洞利用:写入Webshell与反弹Shell

拿到Redis未授权访问权限后,我们有几种利用方式。在这个靶场场景中,目标是一台Windows服务器,并且很可能有Web服务(如IIS)。因此,一个经典的思路是向Web目录写入Webshell。

第一步,定位Web目录。 我们可以通过Redis的 config 命令来获取信息或改变Redis的工作目录。但需要注意的是,新版Redis默认禁止在未授权情况下使用 config 命令。不过,我们仍然可以尝试:

# 尝试获取当前工作目录
config get dir
# 如果被禁止,可以尝试其他命令,或者利用已知的默认路径进行盲猜。
# 对于Windows+IIS,常见的Web根目录有:
# C:\inetpub\wwwroot\
# C:\xampp\htdocs\
# 根据靶场设计,这里很可能是 C:\inetpub\wwwroot\

第二步,写入Webshell。 即使不能 config set dir ,如果Redis的数据持久化文件( dump.rdb )恰好位于Web目录下,我们也可以通过覆盖这个文件来植入Webshell。但更通用的方法是利用Redis的主从复制机制或通过 EVAL 命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值