记一次失败的regeorg+proxifiler代理实验--解决内网主机不出网问题
一、简述
昨天听说了一道面试题: webshell不出网怎么办!! 很明显这个题目是有问题的 webshell不出网你是怎么把它弄上去的? 这就是一个悖论 我想面试官也根本没有把这道题目描述清楚! 而我们解决这个问题的方法也很简单,就是使用隧道技术,http、dns、socket、ping、tcp、udp等一系列的隧道都可以帮我们完成这个工作。以前我做这类的时候使用的是ew进行反向代理。不过昨天获得了另一个思路使用socket代理,进行正向+反向代理结合的方式来达成目的!
二、环境
角色 | 操作系统 | ip | 状态 |
---|
攻击机 | windows11 | 192.168.0.101 | 安装了profiler | vps | kali2021 | 192.168.248.142 | 安装了python2、regeorg | webserver | windows7 | 192.168.248.22 | 存在漏洞环境,这里以dvwa为例 | pc | windows7 | 192.168.248.130 | 开启了3389端口,不能出网 |
这里模拟的环境,攻击机可以连接webserver,但不能连接内网pc,webserver可以连接内网pc,因为webserver在公网上面,所以我也准备了一台vps,但其实不要也可以实验,而且这里面有很多的坑,都是我做实验的时候踩过的!!
三、流程
3.1 种webshell
通过dvwa的文件上传漏洞讲我们的webshell传到目标webshell 根据目标中间件解析器类型选择需要上传的脚本,这里我搭建的环境是php的,所以选择tunel.nosocket.php。这里注意到有两个php文件,昨天我做实验的时候也是找了一篇文章跟着做,那人上传的是tunnel.php。这就是个坑,我是不知道他怎么成功的,不过这里面的问题大大的有。 如果上传这个tunnel.php首先你在访问这个文件的时候将会遇到的的第一个问题就是,dl函数被弃用,所以你需要更改你的php解析器版本到5.3以下。然后你会发现php_socket.dll文件不存在,所以我首先尝试了在dl函数中添加了该文件的绝对路径,还是报错提示参数只能是文件名,不能是路径,所以这个办法不行,所以我又去php.ini中改了配置文件,讲extension=php_socketk.dll前面的注释符号取消了,返现还是不行!!dl函数到了我磁盘的根目录里面去找这个动态链接库文件,所以我怀疑可能是因为我web环境是使用phpstudy搭建的,所以导致了这个问题!!所以我这里推荐使用tunnel.nosocket.php。 当该文件被成功从上传后我们访问他可以看到 出现该字样表示我们的正向代理运行正常
3.2 启动regeorg
在我们的vps上面执行这样的语句,
python reGeorgSocksProxy.py -p 7777 -u http://192.168.248.22/dvwa/hackable/uploads/tunnel.nosocket.php -l 0.0.0.0
监听成功,不过这里有个0.0.0.0.0多了一个就超级 奇怪!!! 这里注意如果使用vps一定要使用-l制定监听的ip,这都是我踩过得坑!!
3.3 配置proxifiler
3.3.1 配置代理服务器
address填写vps的地址,端口填写上一条命令指定的端口,协议选择socket5,最后点击确认
3.3.2 配置代理规则
applications这里点击browse按钮选择对应的可执行文件,我们选择mstsc.exe,即远程桌面的客户端。action选择使用socket5代理。表示讲mstsc的流量转发到代理服务器,代理服务器在转发到webserver,由webserver代替我们向内网发起请求。 这里需要注意的一点是,如果你的regeorg与profiler跑在同一台机器上面记得讲python的代理模式选择为直连,否则会陷入死循环!!、
3.3.3 测试代理服务器
我们在view选项卡找到proxy check命令点击打开上图页面,点击左上角的proxy server配置代理服务器的ip与端口号,点击右面的test settings配置测试的url为www.baidu.com 80 模式使用的是google,国内是上不了谷歌的,所以这里我们需要修改。
3.4 代理mstsc流量
我们在c:/windows/system32/下面找到mstsc.exe,右键选择使用proxifiler打开。 这里截不了图就不放图了 然后要访问的内网主机的ip地址,与用户名进行登录
3.5 尝试解决
当然没有可能这么简单的成功了 原因我暂时没有找到,昨天耗费了大量的时间去找也没有个结果,不过我会放上几张图,分析一下现象。 首先我的vps报了这个错,那么可以肯定问题出在webserver上面也就是php_nosockert.php这个文件上面。 然后我怀疑我装了个假的regeorg,所以我使用wireshark抓包看了看 红框圈起来的部分就是远程连接过程走的所有流量,我们可以看到,流量成功的到达了130主机,并建立了tcp四次握手,随后就是走的ssdp协议,这个协议我不太了解,追踪到这里我的思路就断了,搞不懂、搞不懂!! 来个大师傅帮帮忙!!!
准备睡觉前,上网搜了搜看看有没有文章,注意到有一篇文章里说php版本应该在5.4~7.0,而我开始为了测试tunel.php所以使用的是php5.2,所以我准备尝试一下,希望能解决我的问题。 芜湖!!!!!!!!!! 这里说远程连接错误,害搞不懂!!!
|