域渗透学习(三)域内信息搜集
域内信息搜集
目标:判断域环境,定位域控制器的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 | net group "domain controllers" /domain //得到域控制器主机名 |
1 |
|
1 | net group "domain controllers" /domain //查询域控制器 |
1 | net group "domain computers" /domain /查询域机器 |
1 | net group /domain //查询域里面的组 |
1 | net user /domain //查询域用户列表 |
1 | net view //查看当前域内机器列表 |
1 | net view \\ip //查看某ip开启的共享 |
只开启默认共享的情况下列表为空
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 | chmod +x neo4j |
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 | 查询所有域管理员 |
选择查询模块后会出现对应的拓扑图
点击拓扑图上的节点将出现节点的详细信息