域渗透学习(一)Windows认证机制域渗透学习(二)Kerberos协议
域内信息搜集
目标:判断域环境,定位域控制器的IP地址,获取域内其他成员机器的信息
DOS命令1net time /domain
通过查询时间服务器判断是否存在域
一般时间服务器就是域控机器,可以ping获取其IP
1ipconfig /all
通过DNS后缀判断是否存在域
1nltest /domain_trusts /all_trusts /v /server:<域控ip> //查询信任域
1nltest /dsgetdc:<域名> /server:<域控ip> //查询域详细信息
1查询域内各种资源服务器: setspn -T <域名> -Q */* | findstr <过滤字符串/可不加>
12net group "domain controllers" /domain //得到域控制器主机名
123net group "domain admins" /domain //查询域管理用户
12net group "domain controllers" /domain //查询域控制器
12net group "domain computers" /domain /查询域机器
1net group /domain //查询域里面的组
1net user /domain //查询域用户列表
1net view //查看当前域内机器列表
12net view \\ip //查看某ip开启的共享net view \\主机名 //查看主机的共享资源列表
只开启默认共享的情况下列表为空
1net view /domain //查看内网存在多少个域
1net view /domain:XXX //查看XXX域中的机器列表
1wmic useraccount get Caption,sid //获取域内所有用户sid
1csvde -setspn <域名> -f c:\windows\temp\xxx.csv 导出域详细信息:(winserver 2008内置工具,安装了AD DS或者Active Directory轻型目录服务服务器角色则此功能可用)
外部工具1nbtscan.exe 192.168.10.0/24 //扫描内网存活机器,如果开启了防火墙无法被扫描到
1dnsdump.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目录执行启动程序
12chmod +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版本
12JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/HomeJAVA=$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个,分别为:
123456789101112查询所有域管理员查询到达域管的最短路径寻找具有DCSync权限的主体具有外部域组成员身份的用户具有外部组成员身份的组域信任地图到达无约束委派系统的最短路径到达Kerberoastable用户的最短路径从Kerberoastable用户到域管理员的最短路径到达自拥有主体的最短路径从拥有的主体到域管理员的最短路径到达高价值目标的最短路径
选择查询模块后会出现对应的拓扑图
点击拓扑图上的节点将出现节点的详细信息
本博客采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0) 发布.