域渗透学习(一)Windows认证机制
域渗透学习(二)Kerberos协议

域内信息搜集

目标:判断域环境,定位域控制器的IP地址,获取域内其他成员机器的信息

DOS命令

1
net time /domain

通过查询时间服务器判断是否存在域

一般时间服务器就是域控机器,可以ping获取其IP

1
ipconfig /all

通过DNS后缀判断是否存在域

1
nltest /domain_trusts /all_trusts /v /server:<域控ip> //查询信任域

1
nltest /dsgetdc:<域名> /server:<域控ip> //查询域详细信息

1
查询域内各种资源服务器: setspn -T <域名> -Q */* | findstr <过滤字符串/可不加>

1
2
net group "domain controllers" /domain //得到域控制器主机名

1
2
3

net group "domain admins" /domain //查询域管理用户

1
2
net group "domain controllers" /domain  //查询域控制器

1
2
net group "domain computers" /domain  /查询域机器

1
net group /domain  //查询域里面的组

1
net user /domain  //查询域用户列表

1
net view   //查看当前域内机器列表

1
2
net view \\ip //查看某ip开启的共享
net view \\主机名 //查看主机的共享资源列表

只开启默认共享的情况下列表为空

1
net view /domain //查看内网存在多少个域

1
net view /domain:XXX //查看XXX域中的机器列表

1
wmic useraccount get Caption,sid //获取域内所有用户sid

1
csvde -setspn <域名> -f c:\windows\temp\xxx.csv 导出域详细信息:(winserver 2008内置工具,安装了AD DS或者Active Directory轻型目录服务服务器角色则此功能可用)

外部工具

1
nbtscan.exe 192.168.10.0/24 //扫描内网存活机器,如果开启了防火墙无法被扫描到

1
dnsdump.exe -u <域名>\<用户名> -p <用户密码>  -r <域控主机名> //dump域内dns记录,导出文件名为record.scv


BloodHound

https://github.com/BloodHoundAD/BloodHound/releases

BloodHound是一款域内信息收集分析工具,可以以图形化的方式将获取到的信息展示出来

以Mac的安装方式为例:其他系统可参考官方wiki

releases页面中可下载Mac的发布版本

下载neo4j数据库

https://neo4j.com/download-center/?ref=web-product-database/#community

解压后在bin目录执行启动程序

1
2
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版本

1
2
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个,分别为:

1
2
3
4
5
6
7
8
9
10
11
12
查询所有域管理员
查询到达域管的最短路径
寻找具有DCSync权限的主体
具有外部域组成员身份的用户
具有外部组成员身份的组
域信任地图
到达无约束委派系统的最短路径
到达Kerberoastable用户的最短路径
从Kerberoastable用户到域管理员的最短路径
到达自拥有主体的最短路径
从拥有的主体到域管理员的最短路径
到达高价值目标的最短路径

选择查询模块后会出现对应的拓扑图

点击拓扑图上的节点将出现节点的详细信息

⬆︎TOP