第二章:核心网关键网元——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 核心网网元关系图

说了这么多,咱们用一张图来总结一下这些网元之间的关系。我个人习惯,画图能帮助理解。

核心网关键网元关系图 MME SGW PGW HSS PCRF eNodeB 外部网络 S1-MME S1-U S11 S5/S8 SGi S6a Gx 控制面 用户面 混合面

这张图里,实线代表用户面数据,虚线代表控制面信令。你想想看,攻击者如果想搞破坏,他会从哪里入手?

我个人经验,控制面接口(S11、S6a、Gx)是渗透测试的重点。因为这些接口处理的是信令,一旦被篡改,整个网络的行为都会受影响。而用户面接口(S1-U、SGi)则是数据泄露的高发区。

好了,这一章的内容就到这里。记住,搞渗透测试,先搞清楚目标长什么样。下一章,我们会深入讲解这些接口的协议细节,以及如何用工具去抓包、分析。

课后思考: 如果你是一个攻击者,你会选择攻击哪个网元?为什么?欢迎在评论区留言讨论。

专注资料整理