文章

网络基础知识

网络基础知识

IP地址

IPv4 32个比特位

0.0.0.0-255.255.255.255

0-4,294,967,296

划分 规定

CIDR

192.168.1.0/24 另一种表达方式

255.255.255.0

私有地址段

10.0.0.0/8、172.16.0.0/12、192.168.0.0/16

动态 IP 与 静态 IP

DHCP

端口

网络设备

  • 交换机 Switch 不能跨网段
  • 路由器 Router 网关
  • 网卡(NIC)
  • 防火墙(Firewall)
  • AP(无线接入点)相当于路由器

NAT

NAT 是一种 IP 地址转换技术,用于将私有网络(如局域网)中的地址转换成公网 IP 地址,以便访问互联网。

内网IP端口NAT转换后公网IP端口
192.168.1.1012345123.45.67.8961000
192.168.1.1154321123.45.67.8961001

ISP 分配公网 IP 给用户的“边缘设备”

设备类型IP 类型备注
路由器/防火墙公网 IP直接连接互联网,进行 NAT 转换
局域网设备私有 IP通过路由器 NAT 使用公网 IP

alt text

流量转发

端口转发

把进入某个端口的网络流量转发到另一台主机或另一个端口

可以是外→内、内→外、本机→远端(灵活),本机→本机

根据不同的方向,选择不同的工具,较为万能的有ssh

端口映射

在路由器/NAT 上,把外网端口映射到内网某台主机的端口

外网 → 内网直连(通过映射)

路由器、NAT网关、或管理员配置:需要路由器有公网IP

内网穿透

在内网(受 NAT/防火墙 或 ISP 限制)中,使外部网络能够访问内网主机/服务的一整套技术和方案。

内网 → 外网主动建立隧道,让外网能反向访问

通常是内网设备或第三方中继服务

frp,nps,ngrok,zerotier

端口转发(Port Forwarding)【最广义】

  • 端口映射(Port Mapping)【路由器/NAT特例】
    • 外网 → 内网
    • 路由器/NAT配置,需要公网IP
  • 内网穿透(NAT Traversal / Reverse Tunnel)【内网主动打洞特例】 -内网 → 外网主动建立隧道
    • 解决无公网IP或受防火墙限制场景
    • 工具:frp, nps, ngrok, zerotier

正向代理

(客户端 → 代理) → 目标服务器 | 代理服务器在客户端侧,隐藏客户端信息

替客户端访问服务器

应用场景:翻墙,隐藏自己

反向代理

客户端 → (反向代理 → 内部服务器) | 代理服务器在服务端侧,隐藏服务端信息

替服务器返回信息给客户端

应用场景:负载均衡,安全防护,CDN

alt text

多级代理

客户端->(代理1->代理2->代理3)->服务器 | 多层像链子一样的代理,代理链

应用场景:隐藏自己,复杂内网代理

proxychains

透明代理

指客户端和服务端感知不到代理的存在,客户端无需修改目的地址,也不需要采用代理协议连接代理服务器,所有目的地址转换都是在透明代理中完成的;

非透明代理:客户端需要修改目的地址为代理服务器的地址,并使用代理协议连接代理服务器

alt text

DDNS

在家庭或者一些特殊的网络环境中,运营商不会给提供静态IP地址,而是提供动态IP地址,这就意味着你的IP地址可能经常变动,一旦IP改变,那么DNS服务器解析自然就会失败,这样就没办法通过域名访问到服务器了

在DDNS客户端中配置好域名和IP的映射关系后,它会监控你的IP地址,一旦发现它变化了,就立刻通知DDNS服务器,最后DNS服务器会从DDNS服务器拿到映射关系,所以无论你的IP地址如何变动,通过你的DDNS域名可以随时访问家里的设备

链接shell

正向shell

目标机器(被攻击机)在某个端口监听 shell 连接请求。 攻击机主动去连接目标的这个端口,从而获得 shell 权限。

  • 目标机必须 能被攻击机直接访问(即没有防火墙/NAT阻挡)。
  • 容易被防火墙阻挡,尤其是在企业或家庭网络中,入站连接通常被禁止。

常用于内网的多级代理来链接机器(proxychains)

反向shell

攻击机在某个端口监听 被攻击机主动发起连接到攻击机(攻击者监听端口)。

  • 更容易穿透 NAT、防火墙,因为大多数网络允许出站连接。
  • 攻击机只需要 被动监听,不必暴露自己给目标公网。
  • 需要有公网IP,内网设备可采用端口转发

在外网获取初始立足点

alt text

隧道

TCP/HTTP(S)

将流量放入上述协议中

  • 优点:在大多数网络允许出站 HTTP/HTTPS,易通过企业防火墙。

DNS

把数据编码到 DNS 查询/响应的域名或 TXT 记录里 iodine, dnscat2

  • 优点:DNS 几乎总被允许外发,能穿透许多受限网络。

ICMP 隧道

把负载放在 ICMP 报文(Echo Request/Reply)中传输。

  • 优点:在某些网络中出站 ping 被允许,能绕过 TCP/UDP 限制。

代理工具

Frp

fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

反向代理,内网穿透

Earthworm

rootkiter/Binary-files: EarthWorm/Termite 停止更新

idlefire/ew: 内网穿透(跨平台)

EW(蚯蚓突破)是一款功能强大的网络穿透工具,它具备SOCKS5服务架设和端口转发两大核心功能,能够应对复杂的网络环境,并实现网络穿透。通过正向、反向、多级级联等方式,EW可以在防火墙限制下创建网络隧道,达到访问内网资源的目的。

NPS

idlefire/ew: 内网穿透(跨平台)

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。

Neo-reGeorg

L-codes/Neo-reGeorg: Neo-reGeorg is a project that seeks to aggressively refactor reGeorg

  • => neoreg_servers/tunnel.jsp
  • => neoreg_servers/tunnel.jspx
  • => neoreg_servers/tunnel.ashx
  • => neoreg_servers/tunnel.aspx
  • => neoreg_servers/tunnel.php
  • => neoreg_servers/tunnel.go

各种语言不同隧道

Proxychains-ng

一款在用户空间拦截并重定向程序网络流量到一个或多个代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# proxychains.conf 示例(精简)
strict_chain     # 严格链式:按顺序使用 proxies
#dynamic_chain   # 动态链式:如果某个代理不可用,跳过它
#random_chain    # 随机链式:随机选择代理顺序

proxy_dns        # 通过代理解析 DNS,避免 DNS 泄漏(很重要)
tcp_read_time_out 15000
tcp_connect_time_out 8000

[ProxyList]
# 格式: 类型  IP  端口  [ 用户名 密码 ]
socks5  127.0.0.1  9050
socks5  1.2.3.4    1080  username passwd
http    9.8.7.6    8080
1
proxychains curl http://example.com/
本文由作者按照 CC BY 4.0 进行授权