域渗透之信息收集
域渗透思路
域渗透思路:通过域成员主机,定位出域控制器IP及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机 IP,设法从域成员主机内存中 dump 出域管理员密码,进而拿下域控制器、渗透整个内网
域信息收集
在信息收集阶段,通常要解决三个问题:本机角色是什么?本机内网拓扑图?本机所在区域?(图片出处右下角)
1. 判断是否存在域
1.1. 查询网络信息
一般通过查询IP网络或系统信息时,就能够发现域控。
ipconfig /all
systeminfo
1.2. 查询当前登录域与域环境
通过查询可以判断当前的登录的域与域环境。
net config workstation
1.3. 判断主域
域服务器通常都会作为时间服务器,可以通过下列的命令来判断主域。
net time /domain
存在域,并且当前用户为域用户。
存在域,但当前用户不属于域用户
工作环境为工作组,不存在域。(拿的博主图片)
2. 查找域控制器
在得到域名后,就可以通过域名进一步的获取域控制器的地址及其它信息。
2.1. 查询DNS地址
一般情况下DNS地址就是域控制器的地址。
ping 域名
nslookup 域名
2.2. 查看域控制器的机器名
nltest /DCLIST:域名
或者
net time /domain
或者
Nslookup -type=SRV _ldap._tcp
或者
net group "Domain Controllers" /domain
或者
netdom query pdc
2.3. 查看域控制器
net group "Domain Controllers" /domain
3. 获取域内用户和管理员
这里主要我们需要收集的就是域内的一下用户以及管理员信息。
3.1. 查询域内所有用户组列表
net group /domain
3.2. 查询域管理员列表
net group "Domain Admins" /domain
3.3. 获取所有域用户列表
net user /domain
3.4. 获取指定域用户的详细信息
net user 用户名称 /domain
3.5. 查看域密码策略
net accounts /domain
3.6. 查看加入域的所有计算机名
net group "domain computers" /domain
3.7. 获取加入域计算机地址
ping 计算机名
3.8.获取域内信任信息
nltest /domain_trusts
查询本地管理员组用户
net localgroup administrators
查询所有用户详细信息
wmic useraccount get /all
查询域管理员用户组
net group "domain admins" /domain
查询管理员用户组
net group "Enterprise Admins" /domain
4.获取操作系统相关信息
4.1.查看操作系统以及版本
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
4.2.查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
4.3.查看安装的软件及其版本、路径等
wmic product get name,version
或者
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"
我这里没安装软件,就直接使用博主的图片
4.4.查询本机信息
wmic service list brief
4.5.查询正在运行的进程
tasklist
4.6.查看开机自启的程序信息(web-2012没有,就用主域控看一下)
4.7.查看计划任务
schtasks /query
如果这里运行命令报错的话输入
chcp 437
调整下CMD编码为美国编码即可
4.8.查看主机开机时间
net statistics workstation
4.9.查看用户列表
net user
4.10.查看本地管理员用户组(由于没有管理员用户组,就直接用博主图片)
net localgroup Administrators
4.11.查看当前在线用户
query user || qwinsta
4.12.列出本地计算机与所连接的客户端的会话
net session
4.13.查询端口列表
netstat -ano
4.14.其他一些命令
systeminfo 或者 wmic qfe get Caption,Description,HotFixID //查看本机补丁
net share 或者 wmic share get name,path,status //查看共享列表
route print //查询路由表
apr -a //所有可用接口的API缓存表
netsh firewall show config //查看防火墙相关配置
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" //查看系统代理
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber //查看远程桌面连接服务
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL SetAllowTSConnections 1 //开启远程桌面连接服务
whoami //查看当前会话权限
whoami /all //获取域SID
net user 用户名 //查看指定用户的详细信息
5.定位域管
在取得了域中的普通权限后,想要进行横向移动,就一定要知道域用户所登陆的位置以及相对应的权限,能够定位域用户的工具有许多,这里介绍两种
5.1. psloggedon.exe
下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psloggedon
psloggedon.exe \\主机名
5.2.Netview
下载地址:https://github.com/mubix/netview/releases/tag/latest
Netview是一个枚举工具,可以枚举共享,用户等信息
netview.exe -d
6.探测域内其他主机信息
6.1.利用nbtscan扫描内网(nmap同理)
下载地址:【NBscan】NBscan 1.0-ZOL软件下载
nbtscan.exe 10.10.10.1/24
6.2.利用ping命令探测内网
for /L %I in (1,1,5) DO @ping -w 1 -n 1 10.10.10.%I | findstr "TTL"
这个方法探测比较慢,所以这里就设置了5个IP意思意思。。。
6.3.使用ARP探测内网
下载地址:QbsuranAlang/arp-scan-windows-: send arp request to whole specific LAN (github.com)
arp-scan -t 10.10.10.1/24
6.4.使用telnet扫描端口
得安装telnet客户端
telnet 10.10.10.3 22
6.5.使用MSF进行端口扫描
需要扫描机器在域中
use auxiliary/scanner/portscan/tcp
show options
set port 1-1000
set rhosts 10.10.10.1
set threads 20
run
参考链接: