不出网机器CS上线

不出网机器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 结束语

果然大佬说的没错,知其然,知其所以然。路漫漫其修远兮,吾将上下而求索。

posted @ 2021-10-08 16:16  青山堂  阅读(1108)  评论(0编辑  收藏  举报