0x01 判断是否有域的几种方法
ipconfig /all
systeminfo
如果显示WORKGROUP则可能是不在域里面
net time /domain (这个有三种情况)
1)存在域并且当前用户是域用户
2)存在域,当前用户不是域用户
3)不存在域
net config workstation 查看当前登录域
0x02 域内存活主机探测
利用netbios探测主机存活
工具:nbtscan
利用icmp协议探测内网
ping命令:
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
利用arp扫描探测内网
工具:arp-scan
arp.exe -t IP
0x03 域内端口扫描
telnet命令扫描
s扫描器
s.exe TCP 192.168.52.1 192.168.52.254 端口号 /Banner /save
metasploit端口扫描模块
auxiliary/scanner/portscan/tcp
0x04 查找域控制器
nltest /DCLIST:***
net group "Domain Controllers" /domain
netdom query pdc
nslookup -type=SRV _LDAP._tcp
net time /domain
0x05 获取域内用户和管理员
查询所有域用户列表
net user /domain
wmic useraccount get /all
dsquery user
net localgroup administrators /domain
查询域管理员用户组
net group "domain admins" /domain
net group "Enterprise Admains" /domain
0x06 定位域管理员
利用工具(这里就推荐三个)
PsLoggedon.exe
NetSess.exe // 查看主机当前会话
PVEFindADUser.exe -current
0x07 查找域管理进程
1、本机检查
net group "Domain Admins" /domain //获取域管理员列表
tasklist /v // 列出本机所有进程及进程用户
然后寻找是否有进程所有者为域管理员的进程
2、查询域控制器的域用户会话
net group "Domain Controllers" /domain // 收集域控制器的列表
net group "Domain Admins" /domain // 收集域管理员列表
使用Netsess.exe查询每个域控制器,收集所有活动域会话的列表,将域管理员列表与活动会话列表交叉引用,以确定哪些IP地址具有活动域令牌
Netsess.exe -h
3、扫描远程系统上运行的任务
前提是目标使用了本地域管理员共享账户
FOR /F %i in (ips.txt) DO @echo [+] %i && @tasklist /V /S %i /U user /P password 2>NUL > output.txt && FOR /F %n in (names.txt) DO @type output.txt | findstr %n > NUL && echo [!] %n was found running a process on %i && pause
4、扫描远程系统上NetBIOS信息
for /F %i in (ips.txt) do @echo [+] Checking %i && nbtstat -A %i 2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i
七、利用PowerShell收集域内信息
一笔带过一下PowerShell。
PowerShell 常用的执行权限共有四种。
Restricted:默认设置,不允许执行任何脚本。
Allsigned:只能运行经过证书验证的脚本。
Unrestricted:权限最高,可以执行任意脚本。
RemoteSigned:本地脚本无限制,但是对来自网络的脚本必须经过签名。
在 PowerShell 中输入“Get-ExecutionPolicy”,看到为默认 Restricted 权限,
如果想执行一个 PowerShell 脚本,需要修改 PowerShell 的默认权限为执行权限。
Set-Executionpolicy Unrestricted
PowerView 集成在 PowerSploit 工具包中,下载地址为
https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1
PowerView 中的常用命令
Get-NetDomain // 获取当前用户所在的域名称。
Get-NetUser // 返回所有用户的详细信息。
Get-NetDomainController // 获取所有域控制器。
Get-NetComputer // 获取所有域内机器的详细信息。
Get-NetOU // 获取域中的 OU 信息。
Get-NetGroup // 获取所有域内组和组成员信息。
Get-NetFileServer // 根据 SPN 获取当前域使用的文件服务器。
Get-NetShare // 获取当前域内所有网络共享。
Get-NetSession // 获取在指定服务器存在的会话信息。
Get-NetRDPSession // 获取在指定服务器存在的远程连接信息。
Get-NetProcess // 获取远程主机的进程信息。
Get-UserEvent // 获取指定用户的日志信息。
Get-ADObject // 获取活动目录的对象信息。
Get-NetGPO // 获取域所有组策略对象。
Get-DomainPolicy // 获取域默认或域控制器策略。
Invoke-UserHunter // 用于获取域用户登录计算机及该用户是否有本地管理权限。
Invoke-ProcessHunter // 查找域内所有机器进程用于找到某特定用户。
Invoke-UserEventHunter // 根据用户日志获取某域用户
这里简单列出几个命令,不一一举例
如果在实战中目标powershell的权限是不允许执行任意脚本,那么可以用 -exec bypass 来进行绕过
powershell -exec bypass "import-module c:powerview.ps1;get-netuser"
【往期推荐】
干货|常用渗透漏洞poc、exp收集整理
【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现
【奇淫巧技】如何成为一个合格的“FOFA”工程师
走过路过的大佬们留个关注再走呗
往期文章有彩蛋哦
本文始发于微信公众号(Khan安全攻防实验室):【内网渗透】域内信息收集命令汇总
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论