Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

非标准端口 (T1571)

一句话通俗理解

就像小偷不从前门走,而是爬窗户——攻击者把C2通信放在非标准端口上(比如SSH跑在2222端口而不是22),绕过只检查标准端口的防火墙。

难度等级

  • ⭐ 初级(新手可学)

技术描述

非标准端口(Non-Standard Port)是 MITRE ATT&CK 框架中命令与控制战术下的一种基础技术,编号为 T1571。

通俗解释: 网络防火墙和安全设备通常只检查标准端口上的流量——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通信开始"]

步骤详解:

  1. 配置C2服务器

    • 通俗描述:修改C2框架的配置文件
    • 技术细节:C2框架监听端口设置
  2. 受害系统连接

    • 通俗描述:被黑的电脑上的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

红队视角

⚠️ 免责声明:以下内容仅用于合法的安全测试、渗透测试和教育目的。未经授权对他人系统进行测试是违法行为。

⚠️ 免责声明:以下内容仅用于合法的安全测试。

实战技巧

  1. 端口的“自然感“ 选择在目标环境中看起来“合理“的端口。例如很多企业使用 8443(https-alt)、8080(http-proxy)、4443 等端口。

  2. 避免“危险端口“ 某些端口(如 4444/1337/6666)在安全社区已知为常用C2端口,避免使用。

常用工具

工具名称用途平台链接
Cobalt Strike自定义端口BeaconWindows/Linuxhttps://www.cobaltstrike.com/

蓝队视角

检测要点

  1. 非常见端口上的HTTPS
    • 日志来源:防火墙日志
    • 异常特征:非标准端口上的TLS握手

检测建议

网络层检测

检测方法: 检测非标准端口上的应用层协议。

示例(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规则示例:

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

缓解措施

优先级1:关键措施

措施名称: 端口策略强化

具体实施步骤:

  1. 非必要端口全部封锁
  2. 对所有端口DPI深度检测

MITRE ATT&CK 缓解措施映射

缓解措施ID缓解措施名称适用性说明
M0937网络过滤适用配置防火墙仅允许标准端口出站
M0931网络监控适用部署DPI检测非标准端口上的协议失配
M0941加密流量分析部分适用对非标准端口加密流量进行深度分析

动手实验

⚠️ 重要提示:所有实验必须在隔离的实验室环境中进行,禁止对未授权的真实系统进行测试。

实验1:测试非标准端口通信(初级)

实验目标: 使用 nc 在非标准端口上建立连接。

实验步骤:

  1. 在服务器上执行 nc -lvp 8443 监听非标准端口
  2. 在客户端执行 nc <server_ip> 8443
  3. 发送消息,验证连接成功
  4. 用 Wireshark 抓包观察非标准端口流量

术语解释

术语英文原名通俗解释
标准端口Well-known port0-1023端口,IANA分配的知名服务端口

参考资料

官方文档