第二章:核心网关键网元——MME、SGW、PGW、HSS、PCRF 的功能与接口
各位同学,欢迎来到第二章。
上一章我们聊了核心网的整体架构,像个大拼图。今天咱们就把拼图里最关键的几块拿出来,一个一个拆开看。说白了,你搞渗透测试,连目标长什么样、干什么活都不知道,那还测个啥?
我个人习惯,每接触一个新网络,第一件事就是画它的网元拓扑图。今天我们就来画核心网的这张图。
2.1 MME:移动性管理实体
MME,全称 Mobility Management Entity。你可以把它想象成核心网的“大脑”或者“总调度”。
它管什么?
- 移动性管理: 你的手机从一个基站跑到另一个基站,谁在跟踪你?MME。它知道你在哪个TAI(跟踪区),甚至知道你在哪个小区。
- 会话管理: 你要上网,MME负责帮你建立、修改、拆除承载(Bearer)。承载是什么?就是你和网络之间的一条“数据管道”。
- 鉴权与安全: 你的手机要接入网络,MME会去HSS那里拿你的鉴权向量,然后跟手机对暗号。对不上?直接拒绝接入。
- 寻呼: 有人打电话给你,网络不知道你在哪个精确的小区,MME就会在你最后登记的TAI范围内发寻呼消息。
关键接口:
| 接口名 | 连接对端 | 协议栈 | 我的备注 |
|---|---|---|---|
| S1-MME | eNodeB(基站) | S1AP / SCTP | 控制面信令,我用Wireshark抓过,全是二进制,看着头疼。 |
| S11 | SGW | GTPv2-C / UDP | 会话管理信令,渗透测试时重点关注这个接口的畸形报文。 |
| S6a | HSS | Diameter / SCTP | 鉴权和位置更新,我见过有人在这里搞AVP注入。 |
| S10 | 其他MME | GTPv2-C / UDP | MME间切换用,跨池组时容易出问题。 |
避坑指南: 我曾经在测试一个MME时,发现它对S11接口的“Create Session Request”报文处理有漏洞。攻击者可以伪造一个超大号的APN,导致MME内存溢出。嗯,这个坑后来被报了个CVE。
2.2 SGW:服务网关
SGW,全称 Serving Gateway。它是个“二传手”,负责用户面数据的转发。
它管什么?
- 用户面锚点: 你的手机在基站间移动时,SGW是用户面数据的锚点。数据先到SGW,再转发给PGW。
- 承载管理: 配合MME,建立、修改、删除用户面的承载。
- 计费: 收集用户面的流量信息,发给计费系统。
关键接口:
| 接口名 | 连接对端 | 协议栈 | 我的备注 |
|---|---|---|---|
| S1-U | eNodeB | GTPv1-U / UDP | 用户面数据,渗透测试时可以直接注入GTP-U隧道。 |
| S5/S8 | PGW | GTPv2-C / GTPv1-U | S5是内部接口,S8是跨运营商漫游接口。 |
| S11 | MME | GTPv2-C / UDP | 控制面信令,跟MME的S11是同一个接口。 |
重点: SGW不处理控制面信令,它只转发。但正因为这样,很多安全策略在SGW上被忽略了。我见过一个案例,攻击者通过S1-U接口直接向SGW发送伪造的GTP-U报文,绕过了所有鉴权。
2.3 PGW:分组数据网络网关
PGW,全称 Packet Data Network Gateway。它是核心网通往外部网络(比如互联网、企业专网)的“大门”。
它管什么?
- IP地址分配: 你的手机上网,IP地址是谁给的?PGW。它从地址池里捞一个给你。
- 策略执行: PCRF下发的QoS策略,由PGW来执行。比如限速、优先级。
- 计费与合法监听: 所有用户流量都经过PGW,所以计费和监听都在这里做。
- NAT/防火墙: 很多PGW集成了NAT和防火墙功能。
关键接口:
| 接口名 | 连接对端 | 协议栈 | 我的备注 |
|---|---|---|---|
| S5/S8 | SGW | GTPv2-C / GTPv1-U | 跟SGW的接口,漫游时走S8。 |
| SGi | 外部网络 | IP | 通往互联网的接口,渗透测试的最终目标往往在这里。 |
| Gx | PCRF | Diameter / SCTP | 策略控制接口,我见过有人在这里篡改QoS参数。 |
| Gy | OCS(在线计费系统) | Diameter / SCTP | 在线计费接口,搞破坏可以导致用户无法上网。 |
警告: PGW是核心网的最外层防线。一旦PGW被攻破,攻击者就可以直接访问内部网络。我曾经在渗透测试中,通过SGi接口的畸形报文,成功让PGW的NAT表溢出,导致全网断网。嗯,那次测试被紧急叫停了。
2.4 HSS:归属签约用户服务器
HSS,全称 Home Subscriber Server。它是核心网的“数据库”,存着所有用户的签约信息。
它管什么?
- 用户数据存储: 你的手机号、IMSI、签约的APN、QoS等级、鉴权密钥,全在HSS里。
- 鉴权向量生成: MME来要鉴权向量,HSS根据你的密钥算出来给MME。
- 位置信息记录: 记录用户当前所在的MME地址。
关键接口:
| 接口名 | 连接对端 | 协议栈 | 我的备注 |
|---|---|---|---|
| S6a | MME | Diameter / SCTP | 鉴权和位置更新,HSS的核心接口。 |
| Cx | IMS(IP多媒体子系统) | Diameter / SCTP | IMS相关,VoLTE通话就用这个。 |
| Sh | AS(应用服务器) | Diameter / SCTP | 应用服务器获取用户数据用。 |
避坑指南: 我曾经在测试HSS时,发现S6a接口的“Update Location Request”报文没有做严格的输入校验。攻击者可以伪造一个包含超长IMSI的报文,导致HSS数据库写入异常。嗯,这个漏洞后来被修复了。
2.5 PCRF:策略与计费规则功能
PCRF,全称 Policy and Charging Rules Function。它是核心网的“大脑皮层”,负责制定策略。
它管什么?
- QoS策略制定: 你的视频通话需要高优先级,PCRF会告诉PGW:“这个用户的流量,优先转发”。
- 计费策略制定: 你的流量是包月还是按量计费?PCRF说了算。
- 门控: 可以控制某个用户的流量是否允许通过。
关键接口:
| 接口名 | 连接对端 | 协议栈 | 我的备注 |
|---|---|---|---|
| Gx | PGW | Diameter / SCTP | 策略下发接口,PCRF的核心接口。 |
| Rx | AF(应用功能,如IMS) | Diameter / SCTP | 应用层请求策略用,比如VoLTE通话请求高优先级。 |
| Sp | SPR(签约策略仓库) | Diameter / SCTP | 获取用户签约的策略数据。 |
重点: PCRF是核心网策略的“总开关”。一旦PCRF被攻破,攻击者可以给所有用户下发“限速到1kbps”的策略,或者给某个用户下发“免费无限流量”的策略。你想想看,这会造成多大的混乱?
2.6 核心网网元关系图
说了这么多,咱们用一张图来总结一下这些网元之间的关系。我个人习惯,画图能帮助理解。
这张图里,实线代表用户面数据,虚线代表控制面信令。你想想看,攻击者如果想搞破坏,他会从哪里入手?
我个人经验,控制面接口(S11、S6a、Gx)是渗透测试的重点。因为这些接口处理的是信令,一旦被篡改,整个网络的行为都会受影响。而用户面接口(S1-U、SGi)则是数据泄露的高发区。
好了,这一章的内容就到这里。记住,搞渗透测试,先搞清楚目标长什么样。下一章,我们会深入讲解这些接口的协议细节,以及如何用工具去抓包、分析。
课后思考: 如果你是一个攻击者,你会选择攻击哪个网元?为什么?欢迎在评论区留言讨论。