域内信息搜集
目标:判断域环境,定位域控制器的IP地址,获取域内其他成员机器的信息
DOS命令
net time /domain
通过查询时间服务器判断是否存在域
一般时间服务器就是域控机器,可以ping获取其IP
ipconfig /all
通过DNS后缀判断是否存在域
nltest /domain_trusts /all_trusts /v /server:<域控ip> //查询信任域
nltest /dsgetdc:<域名> /server:<域控ip> //查询域详细信息
查询域内各种资源服务器: setspn -T <域名> -Q */* | findstr <过滤字符串/可不加>
net group "domain controllers" /domain //得到域控制器主机名
net group "domain admins" /domain //查询域管理用户
net group "domain controllers" /domain //查询域控制器
net group "domain computers" /domain /查询域机器
net group /domain //查询域里面的组
net user /domain //查询域用户列表
net view //查看当前域内机器列表
net view \\ip //查看某ip开启的共享
net view \\主机名 //查看主机的共享资源列表
只开启默认共享的情况下列表为空
net view /domain //查看内网存在多少个域
net view /domain:XXX //查看XXX域中的机器列表
wmic useraccount get Caption,sid //获取域内所有用户sid
csvde -setspn <域名> -f c:\windows\temp\xxx.csv 导出域详细信息:(winserver 2008内置工具,安装了AD DS或者Active Directory轻型目录服务服务器角色则此功能可用)
外部工具
nbtscan.exe 192.168.10.0/24 //扫描内网存活机器,如果开启了防火墙无法被扫描到
dnsdump.exe -u <域名>\<用户名> -p <用户密码> -r <域控主机名> //dump域内dns记录,导出文件名为record.scv
BloodHound
BloodHound是一款域内信息收集分析工具,可以以图形化的方式将获取到的信息展示出来
以Mac的安装方式为例:其他系统可参考官方wiki
releases页面中可下载Mac的发布版本
下载neo4j数据库
解压后在bin目录执行启动程序
chmod +x neo4j
./neo4j start
neo4j需要java11 才可运行,否则会出现
Unable to find any JVMs matching version "11".
Mac同时安装JDK11和JDK8,JDK11将成为Jar Launcher默认使用的版本,导致burpsuite无法正常运行
可编辑 neo4j启动程序, 在文件头部添加下列代码来指定使用jdk11,参考这里来避免JDK11 成为Jar Launcher默认使用的java版本
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home JAVA=$JAVA_HOME/bin/java
浏览器访问127.0.0.1:7474 修改默认密码(初始neo4j/neo4j)
修改完成后启动之前下载的BloodHound程序,输入用户名密码登录
此时配置完成,下一步进行数据采集
下载数据采集器: https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors
以可执行程序版本SharpHound.exe为例
下载后复制到域内机器上执行SharpHound.exe -c all
执行完成后会将所有信息打包成zip
SharpHound需要.net环境,这点很蛋疼,如果目标机器权限较低没有.net环境并且无法引入powershell模块,那SharpHound基本没用了
获取到数据后复制到装有BloodHound到机器上,点击upload 上传压缩包文件
完成后会显示上传的数据信息
点击queries进入查询模块
预置的查询条件有12个,分别为:
查询所有域管理员
查询到达域管的最短路径
寻找具有DCSync权限的主体
具有外部域组成员身份的用户
具有外部组成员身份的组
域信任地图
到达无约束委派系统的最短路径
到达Kerberoastable用户的最短路径
从Kerberoastable用户到域管理员的最短路径
到达自拥有主体的最短路径
从拥有的主体到域管理员的最短路径
到达高价值目标的最短路径
选择查询模块后会出现对应的拓扑图
点击拓扑图上的节点将出现节点的详细信息