用途限制声明
本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。
在进行信息收集和权限提升后,我们就可以进行横向移动,那么什么是横向移动呢?横向移动(Lateral Movement) 是指攻击者在突破目标网络的初始边界(如通过钓鱼、漏洞利用等方式获取某台主机的控制权)后,进一步在网络内部扩散,从已控制的节点(主机、设备等)向其他节点(如服务器、工作站、数据库等)渗透的行为。其核心目的是扩大控制范围、获取更高权限或敏感数据,最终达成攻击目标(如窃取核心信息、破坏系统等)。
横向移动的原理
横向移动的实现依赖于攻击者对网络环境的探测、凭证的利用以及对网络协议 / 系统漏洞的滥用,核心流程可分为以下几步:
1. 初始立足点(Initial Foothold)
攻击者首先需要通过外部入侵手段(如钓鱼邮件、Web 漏洞、供应链攻击等)获取网络内某台设备的初步控制权(例如普通用户权限的主机),这是横向移动的前提。
2. 信息收集(Reconnaissance)
为了向其他节点移动,攻击者需要先探测网络内部环境,收集关键信息,包括:
- 存活主机列表(通过 ping 扫描、ARP 扫描等);
- 开放端口与服务(如远程桌面 RDP、文件共享 SMB、SSH 等);
- 本地用户凭证(如密码哈希、明文密码,通过读取系统文件、内存 dump 等方式获取);
- 网络拓扑(如子网划分、域结构等)。
3. 利用技术实现移动
基于收集到的信息,攻击者通过以下常见技术横向渗透到其他节点:
-
凭证复用:利用获取的用户凭证(如密码哈希、Kerberos 票据)登录其他主机,典型技术包括:
- Pass-the-Hash(哈希传递):直接使用用户密码的哈希值认证,无需明文密码;
- Pass-the-Ticket(票据传递):复用 Kerberos 票据(如 TGT、ST)访问域内资源。
-
滥用网络协议 / 服务:利用系统默认开放的服务或协议远程控制其他主机,例如:
- RDP(远程桌面协议):通过获取的账号密码远程登录目标主机;
- SMB/CIFS(文件共享服务):访问共享文件夹并植入恶意文件(如后门);
- PowerShell 远程管理:通过 PowerShell 命令远程执行代码;
- WMI(Windows 管理规范):远程调用系统接口执行命令。
-
漏洞利用:针对网络内主机的未修复漏洞(如 EternalBlue、Log4j 等)直接攻击,获取控制权。
-
恶意软件自动扩散:通过蠕虫类恶意程序(如 Conficker)自动扫描网络内漏洞并传播,实现横向移动。
4. 目标与最终目的
横向移动的最终目标是接近网络中的 “高价值资产”(如数据库服务器、域控制器、核心业务系统等),进而窃取敏感数据、加密勒索(如勒索软件)或破坏系统。同时,攻击者可能会在移动过程中提升权限(如从普通用户到管理员),并植入后门以维持长期控制。
通俗地说,横向移动就是拿到目标计算机的用户明文密码或者NTLM Hash后,可以通过PTH(pass the Hash,凭据传递)的方法,将散列值或明文密码传送到目标机器中进行验证。与目标机器建立连接后,可以使用相关方法在远程windows操作系统中执行命令。
在我以前的文章中,有关于信息收集和权限提升的文章,有兴趣的读者可以去看一下。
内网后渗透攻击过程(实验环境)--1、信息收集-CSDN博客
内网后渗透攻击过程(实验环境)--2、权限提升-CSDN博客
所以在此次实验中我们主要是根据获得的服务器权限进行横向移动,以此为跳板,访问其他域内的主机,扩大资产范围。横向移动主要的点在于抓取hash,然后进行连接,最后登录。所以说抓取 hash 主要用于横向移动,其次可辅助权限提升。所以在我的文章权限提升中并没有详细进行讲述,所以这里就是详细讲述hash抓取。
主要实验工具,VM,windows server 2019,windows 7,windows server 2016,我们主要通过在windows 7进行攻陷作为跳板,进行横向移动。
首先先介绍在命令提示符情况下进行远程连接的管道(IPC)以及相关的命令。
1、IPC
IPC 通常指 Windows 的 IPC$ 共享(IPC 共享)。这是一种系统默认开启的特殊网络共享,无需实际目录,专门用于跨计算机的进程间通信,支持远程主机通过网络建立会话并交换数据。
IPC$ 共享在横向移动中的作用
横向移动(Lateral Movement)是攻击者入侵内网后,从已控制的主机向同一网络内其他主机扩散的过程。IPC$ 共享是攻击者实现横向移动的关键工具之一,核心作用如下:
(1)建立远程会话,验证凭据
IPC$ 共享允许攻击者通过网络与目标主机建立“空会话”或“认证会话”,用于测试目标主机的账号密码(凭据)是否有效。
例如,通过 Windows 命令 net use \\目标IP\ipc$ /user: 用户名 密码 \
,攻击者可尝试用已知的账号密码(或哈希值)与目标主机建立 IPC$ 连接:
- 若连接成功,说明凭据有效,可进一步利用;
- 若失败,可通过暴力破解(枚举账号密码)尝试获取权限。
(2)作为横向移动的 “桥梁”,传递工具与执行命令
一旦通过 IPC$ 建立成功的会话,攻击者可借助该连接完成以下操作,实现横向扩散:
- 文件传输:通过已建立的 IPC$ 会话,用
copy
命令将恶意文件(如后门、木马)从本地复制到目标主机的共享目录(如C$
、Admin$\
等),为后续攻击铺路。 - 远程命令执行:结合其他工具(如
psexec
、schtasks
、wmic
等),通过 IPC$ 会话远程执行命令。例如:- 用
schtasks
创建计划任务,让目标主机在指定时间运行恶意程序; - 用
psexec
直接远程启动进程(依赖 IPC$ 会话的权限)。
- 用
(3)扩大攻击范围,实现内网扩散
攻击者通过 IPC$ 共享可快速横向渗透到同一域或工作组内的其他主机:
- 利用已获取的管理员凭据(或哈希传递攻击),通过 IPC$ 批量连接内网主机;
- 结合漏洞利用(如永恒之蓝),在无凭据情况下通过 IPC$ 相关端口(如 445)植入恶意代码,完成横向移动。
1)建立一个ipc$
命令:net use \\ip地址\ipc$ "密码" /user:administrator
net use
:Windows 系统内置命令,用于创建、删除或配置网络连接(如映射网络驱动器、建立 IPC 会话)。\\IP地址\ipc$
:目标主机的 IPC$ 共享路径。\\IP地址
:目标计算机的 IP 地址(如\\192.168.1.100
);ipc$
:特殊的隐藏共享名(以$
结尾表示隐藏),代表 IPC(Inter-Process Communication)共享。
"密码"
:用于验证的用户密码(需用双引号括起,若密码包含空格或特殊字符)。/user:administrator
:指定用于身份验证的用户名(此处为administrator
)。
比如通过物理机连接虚拟机
成功建立连接,如果成功抓取明文密码和用户或者抓取hash成功破解就能够通过此方法进行登录。
建立连接后,就可以通过自带的工具获取远程主机的信息。如下所示,
2)dir命令
用于列出远程主机C盘中的文件,图中访问失败,原因是C$ 是 Windows 默认的管理员隐藏共享,并没有在虚拟机开启默认共享,所以拒绝访问。
3)tasklist命令
命令:tasklist /S 192.168.237.141 /U 用户名 /P 密码
此命令列出远程主机上运行的进程
4)计划任务
在通过 IPC$ 建立远程会话后,计划任务(Scheduled Tasks)