内网渗透实战:从工作组到域控全攻略
从工作组到域控 | 图文详解内网渗透中的信息收集
当我们通过漏洞(如MS08-067、永恒之蓝)或木马(如CobaltStrike的Beacon)成功拿下目标服务器的控制权后,渗透并没有结束——真正的挑战才刚刚开始:内网渗透。而内网渗透的第一步,也是最关键的一步,就是信息收集。
一、内网基础概念
在深入命令之前,必须先理清三个核心概念:局域网、工作组、域。
| 概念 | 说明 | 适用场景 |
|---|---|---|
| 局域网 | 一定区域内设备互联形成的通信网 | 家庭WiFi、小型办公室 |
| 工作组 (WorkGroup) | 按功能将计算机分组,便于管理,但无集中认证 | 网吧、高校机房(几十台规模) |
| 域 (Domain) | 集中管理所有计算机和用户,由域控制器(DC)统一认证 | 企业、政府(成百上千台主机) |

域的核心概念
-
单域:一个网络中只有一个域。
-
父域与子域:一个大域可划分为多个子域,原域为父域。
-
域树:多个域通过信任关系组成的集合。
-
域林:多个域树组成的集合。
-
域控制器(DC):域中的“门卫”,存储所有账号密码信息,认证每一台登录的计算机和用户。拿下DC ≈ 拿下整个内网。
💡 域管理员账号拥有域内最高权限,可登录任意一台域成员主机。因此,渗透的核心目标就是获取域管密码。
二、内网信息收集(本地主机)
当拿到一台跳板机后,首先要对当前主机进行信息收集,了解它的“底细”。
渗透的本质是信息收集。有效的信息收集可以⼤⼤缩短渗透测试的时间。 当我们通过前⾯所学的知识和⽅法通过web⽹站写⼊⼀句话⽊⻢控制⽬标服务之后,需要以该服务器 作为跳板,对其内⽹环境进⾏渗透。 对于我们⽬前的这台主机: 所在的⽹络位置、当前登录的⽤⼾、当前⽤⼾的权限、操作系统的信息、 ⽹络配置信息以及当前主机运⾏的服务、进程信息等都是未知的。这就需要测试⼈员以当前主机为中 ⼼进⾏信息收集!
| 命令 | 作用 | 收集目的 |
|---|---|---|
whoami /all |
查看当前用户及权限、用户组、特权 | 判断是否需要提权 |
ipconfig /all |
查看网络配置(IP、网卡、DNS) | 定位内网段,为扫描做准备 |
route print |
查看路由表 | 发现可直接访问的其他网段 |
systeminfo |
查看操作系统版本、补丁信息 | 寻找提权漏洞(如缺失的补丁) |
netstat -ano |
查看端口连接状态 | 发现监听服务及与其他主机的连接 |
net session |
查看当前会话列表 | 发现连接过来的客户端 |
tasklist |
查看进程列表 | 识别杀软、邮件客户端等敏感进程 |
schtasks /query /v /fo list |
查看计划任务 | 发现定时执行的脚本或后门 |
wmic startup get caption,command |
查看自启动程序 | 发现开机运行的可疑软件 |
wmic /node:localhost /namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName |
获取杀毒软件名称 | 判断免杀难度 |

三、域环境下的信息收集
如果当前主机处于域环境,就需要额外收集域信息。域内查询命令大多需要域用户权限(本地System权限也可),本地普通用户无法执行。
3.1 判断是否存在域
bash
net config workstation # 查看工作站信息,会显示“登录域”
net time /domain # 查询域时间,如果返回找不到域控制器,则非域环境
3.2 域用户与组
| 命令 | 作用 |
|---|---|
net user /domain |
列出所有域用户 |
net user 用户名 /domain |
查看指定域用户详情 |
net group /domain |
列出所有域用户组 |
net group "domain admins" /domain |
查看域管理员组(重点!) |
net group "enterprise admins" /domain |
查看企业管理员组 |
net accounts /domain |
查看域密码策略(可构造字典爆破) |
3.3 定位域控制器
bash
net group "domain controllers" /domain # 列出所有域控主机名
net time /domain # 主域控同时也是时间服务器
ping 域控主机名 -4 # 解析出IP地址
ipconfig /all # 查看DNS服务器地址,通常就是域控
3.4 域信任关系(多域环境)
bash
nltest /domain_trusts
四、CS插件收集用户凭据
内网横向移动最依赖的就是域用户的明文密码或哈希值。CobaltStrike 集成了 Mimikatz 等工具,可以通过插件轻松抓取。
4.1 前提条件
-
已通过CS上线目标主机(生成木马 → 运行 → Beacon会话)。
-
当前会话权限最好为 administrator 或 system(否则需要提权)。
4.2 使用CS插件提权
端⼝扫描 作⽤:扫描内⽹环境下对外开放的端⼝

密码凭证获取
使⽤CS中集成的mimikatz来进⾏密码的获取 选择”凭证提权“⸺>选择"抓取铭⽂密码" 运⾏时报错原因:权限不够,使用插件

4.3 抓取密码
-
右键 system 会话 →
凭证提权→抓取明文密码。 -
或直接在Beacon中执行
run mimikatz。 -

成功后可获得域管账号的明文密码或 NTLM 哈希。利用这些凭据,可以尝试横向移动(例如通过 psexec 连接其他主机)。

五、BloodHound:内网可视化分析
BloodHound 是一款强大的内网关系分析工具,它能图形化地展示域内用户、计算机、组、ACL等关系,并自动推荐最佳攻击路径。
5.1 使用步骤
-
上传收集器
将SharpHound.exe(位于BloodHound\resources\app\Collectors)上传到目标主机。
-
收集数据
cmd SharpHound.exe -c all运行后会生成一个
.zip压缩包,下载到本地。 -
启动Neo4j数据库
cmd cd neo4j-community-3.5.9\bin neo4j.bat console默认地址:
http://localhost:7474,默认账号密码均为neo4j(首次登录需修改)。
-
启动BloodHound
运行BloodHound.exe,连接 Neo4j(bolt://localhost:7687)。 -
上传数据
将.zip文件拖入BloodHound界面,点击上传。
5.2 常用查询分析
BloodHound 预置了大量查询,例如:
| 查询名称 | 作用 |
|---|---|
| Find all Domain Admins | 列出所有域管理员 |
| Find Shortest Paths to Domain Admins | 找到从当前主机到域管的最短路径 |
| Find Computers where Domain Admin has Session | 查找域管登录过的主机(可以从这些主机内存中抓密码) |
| List all Kerberoastable Users | 列出可进行Kerberoasting攻击的用户 |

六、内网渗透完整信息收集流程图

七、总结
内网渗透的本质是信息收集。通过本文介绍的命令和工具,你可以快速:
-
了解当前主机的权限、网络、补丁、进程等基本情况。
-
判断是否处于域环境,并定位域控制器。
-
利用CS插件抓取密码,进行横向移动。
-
使用BloodHound可视化攻击路径,找到最短路线。
掌握这些信息收集技巧,配合前面学习的MSF漏洞利用和CobaltStrike木马上线,你就能在内网中游刃有余地扩大战果。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)