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

远程服务 (T1021)

一句话通俗理解

就像小偷偷到了员工的工牌,然后大摇大摆地刷卡进入各个办公室——攻击者偷到账号密码后,直接用RDP、SSH等远程管理工具登录其他电脑。

30秒速查卡

维度你需要知道的
这是什么?攻击者偷到账号密码后,用RDP、SSH、SMB、WinRM等远程管理工具像“合法管理员“一样登录内网其他电脑,在一台台机器之间跳跃
为什么危险?远程服务是企业日常管理的必需品(RDP连服务器、SSH连Linux、SMB共享文件),几乎不可能完全禁用;攻击者使用合法凭据登录,行为与正常管理员无异,传统检测规则无法区分
谁需要关心?安全监控团队、SOC分析师、IT运维管理员
你的第一步防御部署堡垒机/跳板机作为所有远程管理连接的唯一入口,限制谁可以从哪里连接到哪台服务器
如果只做一件事监控登录类型10(RDP远程交互登录)的非预期来源——尤其是非管理工作站发起的RDP连接

难度等级

  • ⭐⭐ 中级(需要一定基础)

前置知识检查

读这个文件需要什么?

  • 网络协议基本概念: 就像知道“打电话需要拨号才能接通“一样,了解客户端和服务器通过约定的规则(协议)通信,每种远程服务有自己的协议和端口
  • 身份认证基础: 就像用密码登录邮箱一样,理解系统通过用户名和密码(或更复杂的机制如Kerberos票据)验证你是谁
  • 远程桌面/SSH基本认知: 就像用遥控器操作电视一样,知道可以通过网络远程操作另一台电脑——即使没实践过,至少听说过RDP和SSH这两个名词

技术描述

远程服务(T1021)是MITRE ATT&CK框架中横向移动战术下的一种技术。

通俗解释: 企业在日常管理中,IT管理员需要用远程桌面(RDP)连到服务器、用SSH连到Linux系统、用SMB共享文件。这些“远程管理工具“就像管理员的一串钥匙。攻击者如果偷到了这些钥匙(账号密码),就可以像合法管理员一样开门进入任何系统。更狡猾的是,这些工具本来就是正常工具,所以攻击者的行为很难被察觉。

过渡段: 上面的“钥匙“比喻帮你建立了直观理解——有了正确的凭据就能通过远程管理通道进入其他系统。但这里有一个认知陷阱需要警惕:把远程服务攻击想象成“捡到钥匙开门“会低估攻击者的技术门槛。真实的横向移动中,攻击者不仅要“有钥匙“,还要知道哪扇门开着(端口扫描)、用哪把钥匙开哪扇门(选择正确的协议和凭据类型)、开门后怎么不被保安发现(绕过行为检测)。而且攻击者不是只用一种远程协议——他们会交叉使用RDP、SMB、WinRM、SSH等不同协议来规避单一协议的检测规则。下面的技术原理将带你从“钥匙开门“的具体想象过渡到攻击者实际的操作流程。

技术原理:

  1. 获取凭据:攻击者先通过凭证转储(如Mimikatz)、网络嗅探或钓鱼等方式,窃取有效的登录账号密码
  2. 扫描目标:使用网络扫描工具(如nmap)发现内网中开放了远程服务端口的其他系统
  3. 建立连接:使用窃取的凭据,通过RDP、SMB、SSH、WinRM等协议连接到目标系统
  4. 执行操作:在目标系统上部署后门、窃取数据、收集更多凭据,然后重复上述过程

用途与影响: 远程服务是横向移动中使用频率最高的技术类别,因为:这些服务在企业中几乎不可能完全禁用;攻击者使用合法凭据登录,行为与正常管理员无异;每种远程服务都有特定的检测盲区,攻击者可交叉使用以规避检测。

子技术列表

该技术共有 8 个子技术:

子技术ID中文名称通俗解释
T1021.001Remote Desktop Protocol用Windows自带的远程桌面功能连到其他电脑,就像坐在那台电脑前操作一样
T1021.002SMB/Windows Admin Shares利用Windows的隐藏共享文件夹(如ADMIN$),远程复制文件和执行命令
T1021.003Distributed Component Object Model利用Windows组件模型,在远程系统上创建对象和执行代码
T1021.004SSH通过加密的SSH协议登录远程Linux/Windows系统,或建立隧道穿透防火墙
T1021.005VNC用VNC远程桌面协议控制其他电脑的图形界面
T1021.006Windows Remote Management利用WinRM通过HTTP/HTTPS远程执行PowerShell命令
T1021.007Microsoft Management Console利用MMC管理控制台远程连接到其他系统进行管理操作
T1021.008Remote Desktop Gateway利用RD网关服务器穿透网络边界,访问内部RDP资源
展开查看各子技术详细说明

各子技术详细说明请参阅独立文档:

  • [T1021.001 - Remote Desktop Protocol](./T1021/T1021.001-Remote Desktop Protocol-Remote Desktop Protocol.md) — 就像用远程遥控器操作另一台电脑的屏幕。
  • [T1021.002 - SMB/Windows Admin Shares](./T1021/T1021.002-SMB-Windows Admin Shares-SMB-Windows Admin Shares.md) — 利用Windows系统默认开启的“后门共享文件夹“来传文件和执行命令。
  • T1021.003 - Distributed Component Object Model — 利用Windows的“远程组件调用“功能,让远程电脑帮你执行程序。
  • T1021.004 - SSH — 用加密通道安全地登录远程Linux/Unix系统,还可以建立隧道绕过防火墙。
  • T1021.005 - VNC — 一个跨平台的远程桌面工具,可以远程控制其他电脑的屏幕。
  • [T1021.006 - Windows Remote Management](./T1021/T1021.006-Windows Remote Management-Windows Remote Management.md) — 通过HTTP协议在远程Windows系统上执行PowerShell命令,就像远程操作PowerShell一样。
  • T1021.007 - Microsoft Management Console — 利用Windows管理控制台远程连接到其他系统进行管理操作。
  • [T1021.008 - Remote Desktop Gateway](./T1021/T1021.008-Remote Desktop Gateway-Remote Desktop Gateway.md) — 利用RDP网关服务器作为跳板,穿透网络防火墙连接到内部RDP资源。

攻击流程

典型攻击流程

获取凭据 --> 扫描目标 --> 远程连接 --> 执行操作 --> 继续扩散
graph TD
    A["获取凭据<br/>窃取账号密码"] --> B["网络扫描<br/>发现开放端口"]
    B --> C["远程连接<br/>RDP/SMB/SSH/WinRM"]
    C --> D["执行操作<br/>部署工具/窃取数据"]
    D --> E["继续扩散<br/>重复以上步骤"]

步骤详解:

  1. 获取凭据

    • 通俗描述:攻击者用Mimikatz等工具从当前系统内存中提取登录密码或哈希
    • 技术细节:使用sekurlsa::logonpasswords从LSASS进程提取凭据,或从本地文件、浏览器中收集保存的密码
    • 常用工具:Mimikatz、LaZagne、ProcDump
  2. 网络扫描

    • 通俗描述:扫描内网IP范围,找出哪些电脑开放了远程管理端口
    • 技术细节:扫描445端口(SMB)、3389端口(RDP)、22端口(SSH)、5985/5986端口(WinRM)
    • 常用工具:nmap、Masscan、PowerShell Test-NetConnection
  3. 远程连接

    • 通俗描述:使用窃取的凭据,通过选定的远程服务协议登录目标系统
    • 技术细节:RDP使用mstsc.exe,SMB使用net use,SSH使用ssh命令,WinRM使用Enter-PSSession
    • 常用工具:mstsc、PsExec、ssh、Enter-PSSession
  4. 执行操作

    • 通俗描述:在目标系统上部署后门、提取更多凭据、寻找高价值数据
    • 技术细节:部署Cobalt Strike Beacon、运行Mimikatz提取凭据、扫描网络寻找域控制器
    • 常用工具:Cobalt Strike、PowerShell、Mimikatz
  5. 继续扩散

    • 通俗描述:以新入侵的系统为跳板,继续向网络深处推进
    • 技术细节:重复以上步骤,从新系统继续扫描和连接,逐步接近核心目标
    • 常用工具:同上

真实案例

案例1:APT29使用多种远程服务在SolarWinds事件中横向移动(2020-2021年)

  • 时间: 2020年至2021年
  • 目标: 美国政府机构、IT公司和网络安全组织
  • 攻击组织: APT29(Cozy Bear,俄罗斯SVR)
  • 手法: APT29在SolarWinds供应链攻击中展示了极高的横向移动水平。通过SUNBURST后门获得初始访问后,他们使用RDP(T1021.001)连接到跳板服务器;使用SMB(T1021.002)将TEARDROP和RAINDROP载荷传播到目标系统;使用WinRM(T1021.006)通过PowerShell Remoting执行远程命令。他们还特别注重使用“工具“而非“恶意软件“进行横向移动,以规避基于签名的检测。在Azure AD和ADFS服务器之间使用RDP会话传递认证Cookie和令牌,成功访问云资源。这次攻击持续了数月之久,直到被发现前,攻击者已在美国政府网络中建立了广泛的横向移动网络。
  • 影响: 影响了超过18,000个组织的SolarWinds客户,包括多个美国联邦机构
  • 参考链接: Mandiant SolarWinds事件分析

案例2:Black Basta勒索软件使用RDP进行横向移动(2022-2024年)

  • 时间: 2022年至2024年
  • 目标: 全球500+组织,涵盖医疗、制造、政府等12个关键基础设施领域
  • 攻击组织: Black Basta(勒索软件即服务组织)
  • 手法: Black Basta的附属成员广泛使用RDP进行横向移动,联合安全公告(CISA AA24-131A)指出他们使用BITSAdmin和PsExec配合RDP进行横向扩散。攻击者通常通过钓鱼邮件或暴露的RDP服务器获得初始访问,然后用Mimikatz提取凭据,再通过RDP(T1021.001)连接到内网其他系统。他们还使用Cobalt Strike Beacon建立持久通道,通过SMB(T1021.002)传播勒索软件载荷。Black Basta还利用Splashtop和ScreenConnect等远程管理工具作为替代RDP的横向移动通道。截至2024年5月,该组织已攻击超过500个组织,勒索金额超过1.07亿美元。
  • 影响: 超过500个组织受害,勒索金额超1.07亿美元
  • 参考链接: CISA Black Basta联合公告

案例3:LockBit使用SMB和RDP在制造业网络中横向移动(2022-2024年)

  • 时间: 2022年至2024年
  • 目标: 全球制造业、医疗保健和能源组织
  • 攻击组织: LockBit(勒索软件即服务组织)
  • 手法: LockBit的附属成员被观察到大量使用SMB和RDP进行横向移动。攻击者首先通过钓鱼或漏洞利用获得初始访问,然后使用SMB的ADMIN$共享(T1021.002)将LockBit加密器部署到内网所有可达的Windows系统。他们使用net use命令映射远程管理共享,通过PsExec创建远程服务执行恶意代码。LockBit 3.0(Black)还集成了自动传播模块,扫描内网中的SMB服务,利用窃取的凭据自动部署到新系统。在部署勒索软件前,攻击者通过RDP连接到关键服务器进行手动侦察,识别域控制器和备份服务器。LockBit使用了间歇加密技术来加快加密速度,使横向移动更加高效。
  • 影响: LockBit在运营期间攻击了数千个组织,成为全球最活跃的勒索软件家族之一
  • 参考链接: TrendMicro LockBit分析

红队视角

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

实战技巧

  1. 交叉使用远程服务规避检测 如果SMB(445端口)被防火墙阻止,可以尝试WinRM(5985/5986端口)或RDP(3389端口)。不同远程服务的检测规则不同,交叉使用可以绕过单一协议的监控。

  2. 使用RDP受限管理模式 在建立RDP连接时使用/restrictedAdmin参数,可以防止凭据缓存在远程系统上,减少被其他攻击者窃取凭据的风险。命令示例:mstsc.exe /restrictedAdmin

  3. 利用SSH隧道穿透网络分段 在被入侵的Linux跳板机上建立SSH反向隧道,将内部服务端口映射到攻击者可控的外部服务器,绕过网络分段限制。

常用工具

工具名称用途平台链接
PsExec通过SMB在远程系统上执行命令Windowshttps://docs.microsoft.com/en-us/sysinternals/downloads/psexec
Impacket包含多种远程服务和横向移动工具的Python套件跨平台https://github.com/fortra/impacket
CrackMapExec自动化远程服务利用和横向移动Linuxhttps://github.com/byt3bl33d3r/CrackMapExec
evil-winrm通过WinRM进行远程连接的Ruby工具Linuxhttps://github.com/Hackplayers/evil-winrm
SharpRDP利用RDP执行远程命令的工具Windowshttps://github.com/0xthirteen/SharpRDP

注意事项

  • 合法的渗透测试必须有书面授权,明确测试范围和边界
  • 使用远程服务进行横向移动时,注意不要在远程系统上留下过多操作痕迹
  • RDP会话可能被蓝队监控(Event ID 4624登录类型10),使用前确认测试环境
  • SMB管理共享(ADMIN$、C$)的访问会被Windows安全日志记录

蓝队视角

检测要点

  1. 监控异常的RDP连接

    • 日志来源:Windows安全日志(Event ID 4624)
    • 关注字段:登录类型=10(远程交互式登录)、源IP地址、登录账户
    • 异常特征:非管理工作站发起的大批量RDP连接;管理员账户从非跳板机直接登录服务器;RDP登录来源IP分布异常
  2. 检测SMB管理共享的异常访问

    • 日志来源:Windows安全日志(Event ID 5145)
    • 关注字段:共享名称(ADMIN$、C$)、源IP、访问权限
    • 异常特征:对多台服务器的ADMIN$共享在短时间内集中访问;非常用管理账户访问管理共享
  3. 监控WinRM远程执行活动

    • 日志来源:Microsoft-Windows-WinRM/Operational(Event ID 6、91、169)
    • 关注字段:远程连接来源、执行命令内容
    • 异常特征:非IT管理员的PowerShell远程会话;来自未知来源的WinRM连接

监控建议

  • 在SIEM中建立远程服务连接的基线模型,标记偏离基线的异常行为
  • 启用PowerShell脚本块日志记录(Event ID 4104)以捕获通过WinRM执行的命令
  • 对RDP、SMB和WinRM的日志进行关联分析,建立用户行为画像
  • 部署网络流量分析工具,检测异常的SMB和RDP流量模式

检测建议

网络层检测

检测方法: 监控跨网段的远程服务协议流量,标记异常连接模式。

具体规则/命令示例:

# Zeek检测规则 - 批量SMB连接
event smb::new_connection(c: connection)
{
    if (c$id$orig_h in local_nets && c$id$resp_h in local_nets)
    {
        SMB::log_activity(c);
    }
}

示例(Suricata规则):

alert smb any any -> $HOME_NET any (msg:"SMB lateral movement - many connections from single source"; threshold: type both, track by_src, count 10, seconds 60; sid:1000001; rev:1;)

主机层检测

Windows事件ID:

  • 事件ID 4624(登录类型10):RDP远程登录成功
  • 事件ID 4648:使用显式凭据登录(可能表明Pass the Hash)
  • 事件ID 5145:网络共享对象检查(SMB共享访问)
  • 事件ID 7045:新服务创建(可能表明PsExec使用)

具体命令示例:

# 查询RDP登录事件
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624} | Where-Object {$_.Properties[8].Value -eq 10}

应用层检测

用人话说:

远程服务(T1021)是横向移动的“万能钥匙“——攻击者利用合法的远程管理协议(RDP、SSH、SMB、WinRM、VNC)登录其他机器执行操作。这些服务本身就是Windows/Linux的正常管理功能,所以攻击者不需要使用任何恶意软件或漏洞,只需要窃取到有效的凭据。实战中,攻击者常用CrackMapExec等工具自动化扫描内网中的开放远程服务,然后用之前窃取的密码哈希或明文密码批量尝试登录。一旦成功,立即用wmic、schtasks或PowerShell远程执行命令部署后门。正因为用的是“合法“的远程管理通道,检测难度很高,需要将登录事件与用户行为基线进行对比。

避坑指南:只监控外部RDP,忽略内网横向RDP;忽略SMB管理共享异常访问;未区分正常SSH管理连接和异常横向。

Sigma规则示例:

title: RDP Lateral Movement from Non-Workstation
status: experimental
description: Detects RDP connections originating from non-IT workstation systems
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4624
        LogonType: 10
    condition: selection
level: medium
tags:
    - attack.t1021

缓解措施

优先级1:关键措施

措施名称: 实施网络分段和访问控制

具体实施步骤:

  1. 将网络划分为不同的安全区域(办公区、生产区、管理区)
  2. 在区域间部署防火墙,仅允许必要的管理端口通信
  3. 限制RDP和SSH连接的源IP范围,只允许跳板机/堡垒机发起管理连接

配置示例:

# Windows防火墙规则:限制RDP源IP
netsh advfirewall firewall add rule name="Restrict RDP" dir=in protocol=tcp localport=3389 action=allow remoteip=192.168.1.100-192.168.1.120

优先级2:重要措施

措施名称: 配置跳板机/堡垒机集中管理远程访问

具体实施步骤:

  1. 部署堡垒机作为所有远程管理连接的唯一入口
  2. 除堡垒机外的所有系统禁止直接RDP/SSH连接
  3. 对堡垒机上的所有操作进行会话审计和录像

优先级3:建议措施

措施名称: 实施特权访问工作站(PAW)

具体实施步骤:

  1. 为IT管理员配备专用的管理工作站
  2. 管理工作站上禁止浏览网页、收发邮件等日常操作
  3. 管理工作站使用单独的管理账户登录域

MITRE ATT&CK 缓解措施映射

缓解措施ID缓解措施名称适用性说明
M1035Limit Access to Resource Over Network适用限制对远程服务端口的网络访问
M1030Network Segmentation适用网络分段限制横向移动范围
M1042Disable or Remove Feature or Program部分适用禁用不必要的远程服务(如SMBv1)
M1026Privileged Account Management适用管理特权账户的使用和访问
M1018User Account Management适用实施最小权限原则和账户审计

动手实验

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

实验环境准备

推荐靶场/实验平台:

平台名称类型难度链接
TryHackMe - Lateral Movement虚拟靶场中级https://tryhackme.com
Hack The Box - Active DirectoryCTF高级https://www.hackthebox.com
Detection Lab自建实验室中高级https://github.com/clong/DetectionLab

所需工具:

  • VirtualBox或VMware:搭建实验网络
  • Windows Server 2019/2022:搭建域控制器和成员服务器
  • Kali Linux:作为攻击机使用

实验1:RDP横向移动(初级)

实验目标: 通过RDP使用窃取的管理员凭据登录远程系统。

实验步骤:

  1. 在实验室中搭建两台Windows虚拟机,加入同一个域
  2. 使用Mimikatz从域控制器提取管理员凭据
  3. 在普通用户机器上使用mstsc.exe /v:TARGET_IP通过RDP连接域控制器
  4. 观察Windows安全日志中的登录事件(Event ID 4624)

预期结果: 成功通过RDP登录远程系统,并在安全日志中留下登录类型10的记录。

学习要点: 理解RDP横向移动的基本原理和日志特征。

实验2:SMB横向移动(中级)

实验目标: 通过SMB管理共享将工具复制到远程系统并执行命令。

实验步骤:

  1. 使用net use \\TARGET_IP\C$ /u:DOMAIN\AdminUser映射远程管理共享
  2. 使用copy tool.exe \\TARGET_IP\C$\Windows\Temp\复制文件
  3. 使用PsExec在远程系统上执行命令:psexec \\TARGET_IP -s cmd.exe

预期结果: 成功在远程系统上创建进程,并在事件日志中留下7045和5145记录。

术语解释

术语英文原名通俗解释
RDPRemote Desktop ProtocolWindows自带的远程桌面协议,让用户像坐在电脑前一样操作远程系统
SMBServer Message BlockWindows系统中用于文件共享、打印机共享的网络协议
WinRMWindows Remote ManagementWindows远程管理服务,通过HTTP/HTTPS执行远程管理命令
SSHSecure Shell加密的远程登录协议,广泛用于Linux/Unix系统的远程管理
DCOMDistributed Component Object ModelWindows的分布式组件模型,允许程序调用远程电脑上的程序
NLANetwork Level AuthenticationRDP的网络级认证,在建立RDP连接前要求用户先通过身份验证
PsExecPsExecWindows Sysinternals工具,通过SMB在远程系统上执行命令
管理共享Admin ShareWindows自动创建的隐藏共享(ADMIN$、C$),仅管理员可访问

参考资料

📚 官方文档

📰 APT案例分析

🔧 工具与实验

📚 学习资料