从工作组到域控 | 图文详解内网渗透中的信息收集

当我们通过漏洞(如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 使用步骤

  1. 上传收集器
    将 SharpHound.exe(位于 BloodHound\resources\app\Collectors)上传到目标主机。

  2. 收集数据

    cmd
    
    SharpHound.exe -c all
    
      

    运行后会生成一个 .zip 压缩包,下载到本地。

  3. 启动Neo4j数据库

    cmd
    
    cd neo4j-community-3.5.9\bin
    neo4j.bat console
    
      

    默认地址:http://localhost:7474,默认账号密码均为 neo4j(首次登录需修改)。

  4. 启动BloodHound
    运行 BloodHound.exe,连接 Neo4j(bolt://localhost:7687)。

  5. 上传数据
    将 .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木马上线,你就能在内网中游刃有余地扩大战果。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐