使用了几种工具将会一一介绍
-
ngrokru
项目地址:Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器
这个网站现在要实名认证(还得花2元解锁)
用这种在线的网站怎么说呢,真不如自己买个云服务器用下面的frp,毕竟流量由其他人转发不安全的还是
-
frp
内网穿透-frp简单的使用:
工具地址:https://github.com/fatedier/frp/
在发行版本里面可以下载对应的文件
使用例子:
我这里下载的使用Linuxamd64版本,解压后里面的文件
frpc 和 frp.toml 是客户端 需要配置的文件
frps 和 frp.toml 是服务端 需要配置的文件
一般修改这两个.toml配置文件
用这个frp需要一台云服务器做跳板,frps.toml文件bindport就是云服务器开放的端口
frpc.toml的设置上面两个就是服务器的ip和前面设置的开放端口,然后name随便取,type有多种可以选,常见的tcp,HTTP,udp好像都可以的,localip一般就是127,端口也是自定义,remoteport的意思是服务器又开放一个端口,然后这个端口可以让其他主机来连接到内网中之前和云服务器建立连接的那个主机
kali配置一下frpc.toml,上面那个图是云服务器,就开放了个7000端口
简单画个图来解释一下
可以看到左边内网和云服务器是互通的,就是用正反向木马这里没有影响的,看正反向全看右边这个是正向连的还是反向连的,当然一般是内网的反弹出来,不过也有同样是公网ip的可以正向去连接嘛
服务端运行 ./frps -c ./frps.toml
客户端运行 ./frpc -c ./frpc.toml
使用frp的简单cs上线实验
实际上kali和win7 在一个内网,不过反弹的木马绑定的端口是云服务器的就没有什么问题
云服务器开放7000端口(实例记得在安全组那里也要开启端口的限制)
kali攻击机配置客户端
云服务器先运行 ./frps -c ./frps.toml
在运行kali上的客户端 ./frpc -c ./frpc.toml
因为没有没有其他内网也没有其他的云服务器了只能简单的用一个我的另一台虚拟机来上线一下,毕竟只要走的是这个转发的管道成功上线了那就没有问题
kali上面生成一个木马,这里绑定的是云服务器和对外开放连接的6000端口
然后将生成的木马放到靶机中,这里我用的是一台win7的,kali开run,win7 点击木马,可以看到正常上线了
这个工具需要自己有云服务器,用起来还是很方便的很容易上手
-
nps
前面的ngroku就是仿照这个nps项目来的,这个项目也有一个网页版的控制台,用起来非常的舒服感觉
nps简单的使用方式:
这个工具好像很久没有更新了,最后的发布版本也是2021年的时候
使用演示云服务器乌班图和客户机kali,所以下的都是amd64位的客户端和服务端
服务器先./nps install 第一次先安装一下
nps的默认端口:
nps默认配置文件使用80,443,8080,8024端口
主机模式默认端口的 80 和 443 端口
8080 Web管理访问端口
8024为网桥端口,用于服务器和客户端之间的通信
这些都可以在conf中的nps.conf文件中进行修改
启动./nps 或者./nps start 关闭./nps stop 但是我试了下start好像端口被占用的时候会卡着
然后会开启一个网站,通过服务器ip地址和8080端口访问,默认admin 123 修改可以去前面说的那个nps.conf文件进行修改(不对这里我尝试修改了没有用怎么回事。。。)
然后设置客户端,备注取个名字就可以了
添加成功机会生成一个密钥
然后点击右边的隧道,这里就可以进行添加对内网主机的一些设置,如开放本服务器上的哪个端口和内网做映射,使用什么协议,填写内网的主机的ip和端口
比如这里我使用tcp协议并且
然后记录一下之前生成的那个密匙
然后再客户端那里进入npc目录输入命令
./npc -server=服务器ip:8024 -vkey=前面生成的密匙
再次在服务端上刷新页面会发现状态变成了在线状态了,并且会显示客户端使用的公网ip地址
此时内网的7777端口已经映射到服务器上的6666端口了
这里我也做了相关的木马上线的实验有道云笔记
使用tcp不太明显可以将内网的web映射到公网比较明显
新生成一个客户端
点击隧道新增,我这里使用的是8888端口
然后再Windows上面运行一样的命令就可以上线了
nps内网穿透简单上线木马:
新建一个客户端,然后添加一个tcp隧道并且开放8899端口
使用kali与服务器建立连接
然后使用kali生成木马,这里设置的接受ip是云服务器的ip,端口我这里是8899
然后开启msfconsole,设置好监听器后run之后靶机运行木马可以看到确实上线了
这个工具相比其他的工具长处在于支持了udp协议,并且拥有网页界面进行管理很方便
-
spp
项目地址:https://github.com/esrrhs/spp
和前面的相比他拥有隧道技术,可以转换各种协议功能更加强大
目前此工具持续更新中还是很香的
spp隧道技术的简单复现:
因为是做的隧道技术所以不需要云服务器也可以
服务器开启监听
./spp -type server -proto ricmp -listen 0.0.0.0:8888 可以指定ip和开启的端口,也可以不指定端口表示监听所有的端口
客户端开启,将本地的8082弹到服务器的8081上面(将tcp封装为ICMP协议)
spp -name "test" -type proxy_client -server 服务器IP地址 -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp
本次实验通过cs来实现上线一个木马
建立两个监听器
spp-1:服务器ip :8082
spp-2:127.0.0.1:8081
将spp-2木马放入靶机,启动木马后会将tcp协议的流量转到本地的8081端口,因为运行了spp,在这个8081端口会被转为icmp协议弹到服务器的8082端口,然后spp-1监听就是本机的8082,并且服务端也运行了spp会先将这个8082的协议由icmp转为tcp再返回给服务器的8082端口
两个监听器都是http协议的
先开启服务器的spp
靶机上开启spp
连通了就是这样的
然后运行木马,可以看到执行的是spp-2生成的木马但是是由监听器spp-1收到的会话
不过虽然收到了会话但是不知道为什么在cs这里无法执行命令。。。第一次用还不怎么会用,不过这里的实验防火墙规则确实是开启了确实实现了通过隧道上线的操作。。。
附:此笔记为当时学习的笔记,如果有什么讲错的地方也很正常,里面出现的云服务器的ip地址都是临时买的。