非标准端口 (T1571)
一句话通俗理解
就像小偷不从前门走,而是爬窗户——攻击者把C2通信放在非标准端口上(比如SSH跑在2222端口而不是22),绕过只检查标准端口的防火墙。
30秒速查卡
| 维度 | 你需要知道的 |
|---|---|
| 这是什么? | 攻击者使用非标准端口(如4444/8443/1337)进行C2通信绕过端口过滤 |
| 为什么危险? | 防火墙通常只封锁已知端口,非标准端口可以绕过默认规则 |
| 谁需要关心? | 网络安全团队、防火墙管理员 |
| 你的第一步防御 | 实施默认拒绝策略,只允许必要的出站端口 |
| 如果只做一件事 | 监控非标准端口上的出站连接和协议不匹配情况 |
难度等级
- ⭐ 初级(新手可学)
前置知识检查
读这个文件需要什么?
- 网络协议基础(TCP/IP/DNS/HTTP)
- C2通信模式
- 加密通信基本原理
技术描述
非标准端口(Non-Standard Port)是 MITRE ATT&CK 框架中命令与控制战术下的一种基础技术,编号为 T1571。
通俗解释:
过渡段: 不要误以为C2只是’恶意软件发心跳包’——现代C2基础设施堪比小型互联网公司。攻击者使用CDN隐藏真实服务器、用Domain Fronting伪装流量目的地、借助合法云服务(如GitHub Issues、Slack API)作为通信通道。攻击者的C2流量与正常流量混杂在一起,传统IoC检测几乎无效。 网络防火墙和安全设备通常只检查标准端口上的流量——80端口看HTTP、443看HTTPS、22看SSH等。如果攻击者在8443端口上跑HTTPS、或者在2222端口上跑SSH,很多安全设备就不会检查这个端口上的内容。就像酒店的保安只盯着正门检查身份,小偷从侧门溜进去了。
技术原理: 攻击者只是将C2协议的监听端口从“默认端口“改为“非标准端口“。技术实现上与标准端口通信完全相同(同样是完整的TLS握手、标准的HTTP请求),唯一的区别是端口号不是默认值。
用途与影响: 非标准端口本身不是一种强大的规避手段——下一代防火墙和EDR产品通常会检查所有端口上的协议内容。但它增加了防御者的“发现成本“,让自动化扫描工具和初级SOC分析师更难识别恶意流量。
子技术列表
该技术没有子技术。
攻击流程
典型攻击流程
配置C2服务器 --> 选择非标准端口 --> 监听 --> 受害系统连接 -->
graph TD
A["配置C2服务器"] --> B["选择非标准端口"]
B --> C["启动监听"]
C --> D["受害系统连接"]
D --> E["C2通信开始"]
步骤详解:
-
配置C2服务器
- 通俗描述:修改C2框架的配置文件
- 技术细节:C2框架监听端口设置
-
受害系统连接
- 通俗描述:被黑的电脑上的agent连接非标准端口
- 技术细节:agent配置中指定连接的端口
真实案例
案例1:Cobalt Strike — 自定义端口配置(持续活跃)
- 时间: 2012年至今
- 目标: 全球多行业
- 攻击组织: 多个APT组织
- 手法: Cobalt Strike 默认的 HTTPS Beacon 监听在443端口,但红队和攻击者可以自定义任何端口。常见的非标准端口有 8443、4443、8080、8444、50050、2222 等。攻击者使用 Malleable C2 配置自定义profile,支持指定任意监听端口,使通信与目标环境的正常流量混合。
- 影响: Cobalt Strike是全球使用最广泛的C2框架
- 参考链接: Cobalt Strike Documentation
案例2:Sofacy — 复合端口策略(2015-2024年)
- 时间: 2015-2024年
- 目标: 全球政府、军事、外交、研究机构
- 攻击组织: Sofacy(APT28 / Fancy Bear)
- 手法: GPU技术峰会2024年的报告指出,Sofacy 的 Zebrocy 工具在不同目标环境中使用不同端口:标准HTTP/S端口(80/443)用于常规通信,非标准端口(例如 8888、9000、4443)用于需要绕过特定端口限制的环境。Sofacy 根据目标所处国家的网络限制,动态选择端口。
- 影响: 全球多个政府机构被入侵
- 参考链接: GPU Technology Summit 2024 - Hidden in Plain Sight
红队视角
⚠️ 免责声明:以下内容仅用于合法的安全测试、渗透测试和教育目的。未经授权对他人系统进行测试是违法行为。
⚠️ 免责声明:以下内容仅用于合法的安全测试。
实战技巧
-
端口的“自然感“ 选择在目标环境中看起来“合理“的端口。例如很多企业使用 8443(https-alt)、8080(http-proxy)、4443 等端口。
-
避免“危险端口“ 某些端口(如 4444/1337/6666)在安全社区已知为常用C2端口,避免使用。
常用工具
| 工具名称 | 用途 | 平台 | 链接 |
|---|---|---|---|
| Cobalt Strike | 自定义端口Beacon | Windows/Linux | https://www.cobaltstrike.com/ |
蓝队视角
检测要点
- 非常见端口上的HTTPS
- 日志来源:防火墙日志
- 异常特征:非标准端口上的TLS握手
避坑指南
SOC常见误区:只检测已知恶意域名和IP。
检测建议
网络层检测
检测方法: 检测非标准端口上的应用层协议。
示例(Suricata规则):
alert tcp $EXTERNAL_NET any -> $HOME_NET !80,!443 (flow:from_client,established; content:"|0d 0a|Host|3a|"; offset:0; depth:6; sid:1000001;)
Sigma规则示例
Sigma规则示例:
**用人话说:**C2检测关注通信行为特征而非IP黑名单——固定间隔心跳、非常规DNS查询、小数据包频繁发送比内容分析更有效。
**用人话说:**C2检测关注通信行为特征而非IP黑名单——固定间隔心跳包、非常规DNS查询、小数据包频繁发送比内容分析更有效。
title: 非标准端口协议失配检测
status: experimental
description: 检测在非标准端口上运行的HTTP流量,可能是C2绕行防火墙的尝试
logsource:
category: network
product: zeek
detection:
selection:
dest_port:
- "!80"
- "!443"
- "!8080"
http_method: "GET"
condition: selection
level: medium
tags:
- attack.t1571
- attack.command_and_control
应用层检测
Sigma规则示例:
**用人话说:**在实际环境中,需要结合上下文判断异常行为。建议针对本技术的特征指标设置告警阈值,并关联多个数据源进行交叉验证。
yaml title: Detected Suspicious Activity - T1571 status: experimental description: Detects potential T1571 related suspicious behavior logsource: category: process_creation product: windows detection: selection: EventID: 4688 condition: selection level: medium tags:
- attack.T1571
缓解措施
优先级1:关键措施
措施名称: 端口策略强化
具体实施步骤:
- 非必要端口全部封锁
- 对所有端口DPI深度检测
MITRE ATT&CK 缓解措施映射
| 缓解措施ID | 缓解措施名称 | 适用性 | 说明 |
|---|---|---|---|
| M0937 | 网络过滤 | 适用 | 配置防火墙仅允许标准端口出站 |
| M0931 | 网络监控 | 适用 | 部署DPI检测非标准端口上的协议失配 |
| M0941 | 加密流量分析 | 部分适用 | 对非标准端口加密流量进行深度分析 |
动手实验
⚠️ 重要提示:所有实验必须在隔离的实验室环境中进行,禁止对未授权的真实系统进行测试。
实验1:测试非标准端口通信(初级)
实验目标: 使用 nc 在非标准端口上建立连接。
实验步骤:
- 在服务器上执行
nc -lvp 8443监听非标准端口 - 在客户端执行
nc <server_ip> 8443 - 发送消息,验证连接成功
- 用 Wireshark 抓包观察非标准端口流量
术语解释
| 术语 | 英文原名 | 通俗解释 |
|---|---|---|
| 标准端口 | Well-known port | 0-1023端口,IANA分配的知名服务端口 |