远程系统发现是攻击者通过各类网络协议和系统工具识别目标环境中可用设备及其拓扑关系的技术手段,通常为后续横向移动和权限提升提供关键情报。传统检测方法主要监控异常进程行为(如短时间内连续执行ping、net view命令)、分析协议交互特征(如非常规端口扫描模式)以及识别非常规工具使用(如渗透测试框架中的网络发现模块)。防御措施包括强化网络设备日志审计、实施严格的权限隔离策略以及部署网络流量异常检测系统。
为规避传统检测机制对集中式、高频次探测行为的识别能力,攻击者发展出多种新型隐蔽发现技术,通过协议深度伪装、云服务机制滥用、分布式任务调度及合法管理通道劫持等策略,将节点发现过程解构为低强度、多源化的合法网络交互,实现攻击行为的"去特征化"和"业务场景融合"。
现有远程系统发现匿迹技术的核心演进路径体现在三个维度:首先是攻击面的技术栈下沉,从传统网络层探测转向云原生API调用和管理协议交互,利用基础设施的信任机制绕过边界防护;其次是行为特征的时空重构,通过分布式架构将单点高频探测转化为多点低频交互,破坏基于时间序列分析和源IP聚类的检测模型;最后是攻击上下文的深度适配,将恶意载荷嵌入目标环境的业务工作流,如利用运维系统的周期性任务调度或云平台的自动化扩展机制。四类子技术的共性在于突破传统攻击流量与合法流量的可区分边界,通过协议合规性证明、业务逻辑寄生和资源权限滥用,赋予恶意发现行为与正常网络操作相同的特征属性。
匿迹技术的发展使得传统基于规则匹配和单维阈值告警的防御体系面临严峻挑战,防御方需构建云网端协同的深度行为审计能力,实施细粒度的API调用权限管控,并引入基于上下文感知的动态基线分析技术,实现对隐蔽发现行为的精准识别与阻断。
| 效应类型 | 是否存在 |
|---|---|
| 特征伪装 | ✅ |
| 行为透明 | ❌ |
| 数据遮蔽 | ✅ |
| 时空释痕 | ✅ |
攻击者通过精确模拟合法管理协议(如SNMP、CDP)的交互模式,使恶意探测流量在协议字段结构、会话时序等方面与正常运维流量完全一致。在云环境场景中,通过严格遵循云服务商API规范构造请求参数,使得元数据查询行为与自动化运维工具的操作特征难以区分,实现攻击流量的"协议级隐身"。
在基于云服务元数据API的探测过程中,攻击者利用HTTPS加密通道隐藏查询内容和响应数据,使网络层监控设备无法通过深度包检测识别恶意意图。同时,探测结果通过多跳加密链路回传,中间节点实施数据分片混淆,阻断防御方对信息外传链路的追踪分析。
分布式低频探测技术通过将传统集中式扫描任务拆解为跨地域、长周期的离散请求,使单次探测行为的时间间隔和空间分布均符合目标网络的正常业务特征。结合自适应节奏控制算法动态调整探测频率,避免形成可识别的周期性模式,将攻击特征稀释在复杂的网络背景流量中。
| ID | Name | Description |
|---|---|---|
| C0028 | 2015 Ukraine Electric Power Attack |
During the 2015 Ukraine Electric Power Attack, Sandworm Team remotely discovered systems over LAN connections. OT systems were visible from the IT network as well, giving adversaries the ability to discover operational assets. [1] |
| C0025 | 2016 Ukraine Electric Power Attack |
During the 2016 Ukraine Electric Power Attack, Sandworm Team checked for connectivity to resources within the network and used LDAP to query Active Directory, discovering information about computers listed in AD.[2] |
| S0552 | AdFind |
AdFind has the ability to query Active Directory for computers.[3][4][5][6] |
| G1030 | Agrius |
Agrius used the tool NBTscan to scan for remote, accessible hosts in victim environments.[7] |
| G1024 | Akira |
Akira uses software such as Advanced IP Scanner and MASSCAN to identify remote hosts within victim networks.[8] |
| G0022 | APT3 |
APT3 has a tool that can detect the existence of remote systems.[9][10] |
| G0050 | APT32 |
APT32 has enumerated DC servers using the command |
| G0087 | APT39 |
APT39 has used NBTscan and custom tools to discover remote systems.[12][13][14] |
| G0096 | APT41 |
APT41 has used MiPing to discover active systems in the victim network.[15] |
| S0099 | Arp |
Arp can be used to display a host's ARP cache, which may include address resolutions for remote systems.[16][17] |
| S0093 | Backdoor.Oldrea |
Backdoor.Oldrea can enumerate and map ICS-specific systems in victim environments.[18] |
| S1081 | BADHATCH |
BADHATCH can use a PowerShell object such as, |
| S0534 | Bazar | |
| S0570 | BitPaymer | |
| S1070 | Black Basta |
Black Basta can use LDAP queries to connect to AD and iterate over connected workstations.[22] |
| S1068 | BlackCat |
BlackCat can broadcasts NetBIOS Name Service (NBNC) messages to search for servers connected to compromised networks.[23] |
| S0521 | BloodHound |
BloodHound can enumerate and collect the properties of domain computers, including domain controllers.[24] |
| G0060 | BRONZE BUTLER |
BRONZE BUTLER typically use |
| C0015 | C0015 |
During C0015, the threat actors used the commands |
| S0335 | Carbon | |
| G0114 | Chimera |
Chimera has utilized various scans and queries to find domain controllers and remote services in the target environment.[28] |
| S0154 | Cobalt Strike |
Cobalt Strike uses the native Windows Network Enumeration APIs to interrogate and discover targets in a Windows Active Directory network.[29][30][31] |
| S0244 | Comnie |
Comnie runs the |
| S0575 | Conti |
Conti has the ability to discover hosts on a target network.[32] |
| S0488 | CrackMapExec |
CrackMapExec can discover active IP addresses, along with the machine name, within a targeted network.[33] |
| G0009 | Deep Panda |
Deep Panda has used ping to identify other machines of interest.[34] |
| S0659 | Diavol |
Diavol can use the ARP table to find remote hosts to scan.[35] |
| G0035 | Dragonfly |
Dragonfly has likely obtained a list of hosts in the victim environment.[36] |
| S0694 | DRATzarus |
DRATzarus can search for other machines connected to compromised host and attempt to map the network.[37] |
| S1159 | DUSTTRAP |
DUSTTRAP can use |
| G1006 | Earth Lusca |
Earth Lusca used the command |
| G1003 | Ember Bear |
Ember Bear has used tools such as Nmap and MASSCAN for remote service discovery.[40] |
| S0091 | Epic | |
| G0053 | FIN5 |
FIN5 has used the open source tool Essential NetTools to map the network and build a list of targets.[42] |
| G0037 | FIN6 |
FIN6 used publicly available tools (including Microsoft's built-in SQL querying tool, osql.exe) to map the internal network and conduct reconnaissance against Active Directory, Structured Query Language (SQL) servers, and NetBIOS.[43] |
| G0061 | FIN8 |
FIN8 has used dsquery and other Active Directory utilities to enumerate hosts; they have also used |
| S0696 | Flagpro |
Flagpro has been used to execute |
| G0117 | Fox Kitten |
Fox Kitten has used Angry IP Scanner to detect remote systems.[47] |
| S1044 | FunnyDream |
FunnyDream can collect information about hosts on the victim network.[48] |
| C0007 | FunnyDream |
During FunnyDream, the threat actors used several tools and batch files to map victims' internal networks.[49] |
| G0093 | GALLIUM |
GALLIUM used a modified version of NBTscan to identify available NetBIOS name servers over the network as well as |
| G0125 | HAFNIUM |
HAFNIUM has enumerated domain controllers using |
| S0698 | HermeticWizard |
HermeticWizard can find machines on the local network by gathering known local IP addresses through |
| G1001 | HEXANE | |
| G0119 | Indrik Spider |
Indrik Spider has used PowerView to enumerate all Windows Server, Windows Server 2003, and Windows 7 instances in the Active Directory database.[54] |
| S0604 | Industroyer |
Industroyer can enumerate remote computers in the compromised network.[55] |
| G0004 | Ke3chang |
Ke3chang has used network scanning and enumeration tools, including Ping.[56] |
| S0599 | Kinsing |
Kinsing has used a script to parse files like |
| S0236 | Kwampirs |
Kwampirs collects a list of available servers with the command |
| G0077 | Leafminer |
Leafminer used Microsoft’s Sysinternals tools to gather detailed information about remote systems.[59] |
| G0059 | Magic Hound |
Magic Hound has used Ping for discovery on targeted networks.[60] |
| G0045 | menuPass |
menuPass uses scripts to enumerate IP ranges on the victim network. menuPass has also issued the command |
| S1146 | MgBot |
MgBot includes modules for performing ARP scans of local connected systems.[63] |
| S0233 | MURKYTOP |
MURKYTOP has the capability to identify remote hosts on connected networks.[64] |
| G0019 | Naikon |
Naikon has used a netbios scanner for remote machine identification.[65] |
| S0590 | NBTscan | |
| S0039 | Net |
Commands such as |
| S0385 | njRAT | |
| S0359 | Nltest |
Nltest may be used to enumerate remote domain controllers using options such as |
| S0365 | Olympic Destroyer |
Olympic Destroyer uses Windows Management Instrumentation to enumerate all systems in the network.[71] |
| C0012 | Operation CuckooBees |
During Operation CuckooBees, the threat actors used the |
| C0014 | Operation Wocao |
During Operation Wocao, threat actors used |
| S0165 | OSInfo |
OSInfo performs a connection test to discover remote systems in the network[9] |
| S0097 | Ping |
Ping can be used to identify remote systems within a network.[74] |
| G1040 | Play |
Play has used tools such as AdFind, Nltest, and BloodHound to enumerate shares and hostnames on compromised networks.[75] |
| S0428 | PoetRAT | |
| S0650 | QakBot |
QakBot can identify remote systems through the |
| S0241 | RATANKBA |
RATANKBA runs the |
| S0125 | Remsec | |
| S0684 | ROADTools | |
| G0106 | Rocke |
Rocke has looked for IP addresses in the known_hosts file on the infected system and attempted to SSH into them.[83] |
| G0034 | Sandworm Team |
Sandworm Team has used a tool to query Active Directory using LDAP, discovering information about computers listed in AD.[84][2] |
| G1015 | Scattered Spider |
Scattered Spider can enumerate remote systems, such as VMware vCenter infrastructure.[85] |
| S0140 | Shamoon |
Shamoon scans the C-class subnet of the IPs on the victim's interfaces.[86] |
| S0063 | SHOTPUT |
SHOTPUT has a command to list all servers in the domain, as well as one to locate domain controllers on a domain.[87] |
| G0091 | Silence |
Silence has used Nmap to scan the corporate network, build a network topology, and identify vulnerable hosts.[88] |
| S0692 | SILENTTRINITY |
SILENTTRINITY can enumerate and collect the properties of domain computers.[89] |
| C0024 | SolarWinds Compromise |
During the SolarWinds Compromise, APT29 used AdFind to enumerate remote systems.[90] |
| S0646 | SpicyOmelette |
SpicyOmelette can identify payment systems, payment gateways, and ATM systems in compromised environments.[91] |
| S0018 | Sykipot |
Sykipot may use |
| S0586 | TAINTEDSCRIBE |
The TAINTEDSCRIBE command and execution module can perform target system enumeration.[93] |
| G0027 | Threat Group-3390 |
Threat Group-3390 has used the |
| G1022 | ToddyCat |
ToddyCat has used |
| S0266 | TrickBot | |
| G0010 | Turla |
Turla surveys a system upon check-in to discover remote systems on a local network using the |
| S0452 | USBferry |
USBferry can use |
| G1017 | Volt Typhoon |
Volt Typhoon has used multiple methods, including Ping, to enumerate systems on compromised networks.[99][100] |
| S0366 | WannaCry |
WannaCry scans its local network segment for remote systems to try to exploit and copy itself to.[101] |
| G0102 | Wizard Spider |
Wizard Spider has used networkdll for network discovery and psfin specifically for financial and point of sale indicators. Wizard Spider has also used AdFind, |
| S0248 | yty |
This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.
| ID | Data Source | Data Component | Detects |
|---|---|---|---|
| DS0017 | Command | Command Execution |
Monitor executed commands and arguments that may attempt to get a listing of other systems by IP address, hostname, or other logical identifier on a network that may be used for Lateral Movement from the current system. For network devices, monitor executed commands in AAA logs, especially those run by unexpected or unauthorized users. Windows PowerShell log Event ID 4104 (PS script execution) can be used to capture PowerShell script block contents which may contain commands used as a precursor to RDP Hijacking. For example, the following command in a PowerShell script block may be used to enumerate the systems on a network which have RDP access: |
| DS0022 | File | File Access |
Monitor for files (such as For Windows, Event ID 4663 (An Attempt Was Made to Access An Object) can be used to alert on access attempts of local files that store host data, including C:\Windows\System32\Drivers\etc\hosts. For Linux, auditing frameworks such as the audit daemon (auditd) can be used to alert on access attempts of local files that store host data, including /etc/hosts. |
| DS0029 | Network Traffic | Network Connection Creation |
Monitor for newly constructed network connections associated with pings/scans that may attempt to get a listing of other systems by IP address, hostname, or other logical identifier on a network that may be used for Lateral Movement from the current system. |
| DS0009 | Process | Process Creation |
Monitor for newly executed processes that can be used to discover remote systems, such as |