1、判断是否存在域
ipconfig
查看网关 IP 地址、DNS 的 IP 地址、域名、本机是否和 DNS 服务器处于同一网段。
ipconfig /all
C:\Users\daniel10> ipconfig /all
Windows IP 配置
主 DNS 后缀 . . . . . . . . . . : teamssix.com
DNS 后缀搜索列表 . . . . . . . . : teamssix.com
以太网适配器 Ethernet0:
IPv4 地址 . . . . . . . . . . .. : 192.168.7.110
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.7.1
DNS 服务器 . . . . . . . . . . . : 192.168.7.7
接着使用 nslookup 解析域名的 IP 地址,查看是否与 DNS 服务器为同一 IP
nslookup teamssix.com
C:\Users\daniel10> nslookup teamssix.com
服务器: UnKnown
Address: 192.168.7.7
名称: teamssix.com
Address: 192.168.7.7
系统详细信息
systeminfo
C:\Users\daniel10> systeminfo | findstr 域:
域: teamssix.com
当前登录域与域用户
net config workstation
C:\Users\daniel10> net config workstation | findstr 域
工作站域 TEAMSSIX
工作站域 DNS 名称 teamssix.com
登录域 TEAMSSIX
判断主域
net time /domain
C:\Users\daniel10> net time /domain
\\dc.teamssix.com 的当前时间是 2021/2/13 20:49:56
命令成功完成。
2、收集域内基础信息
查看域
net view /domain
C:\Users\daniel10> net view /domain
Domain
-------------------------------------------------------------------------------
TEAMSSIX
命令成功完成。
查看域内计算机
net view /domain:domain_name
C:\Users\daniel10> net view /domain:teamssix
服务器名称 注解
-------------------------------------------------------------------------------
\\DANIEL10
\\DANIEL7
\\DC
命令成功完成。
查看域内用户组列表
net group /domain
C:\Users\daniel10> net group /domain
这项请求将在域 teamssix.com 的域控制器处理。
\\dc.teamssix.com 的组帐户
-------------------------------------------------------------------------------
*Admins
*Domain Admins
*Domain Computers
*Domain Users
*Enterprise Admins
命令成功完成。
查看域用户组信息
net group "Enterprise Admins" /domain
C:\Users\daniel10> net group "Enterprise Admins" /domain
这项请求将在域 teamssix.com 的域控制器处理。
组名 Enterprise Admins
注释 指定的公司系統管理員
成员
-------------------------------------------------------------------------------
Administrator
命令成功完成。
查看域密码策略信息
net accounts /domain
C:\Users\daniel10> net accounts /domain
这项请求将在域 teamssix.com 的域控制器处理。
强制用户在时间到期之后多久必须注销?: 从不
密码最短使用期限(天): 1
密码最长使用期限(天): 42
密码长度最小值: 7
保持的密码历史记录长度: 24
锁定阈值: 从不
锁定持续时间(分): 30
锁定观测窗口(分): 30
计算机角色: PRIMARY
命令成功完成。
查看域信任信息
nltest /domain_trusts
C:\Users\daniel10> nltest /domain_trusts
域信任的列表:
0: TEAMSSIX teamssix.com (NT 5) (Forest Tree Root) (Primary Domain) (Native)
此命令成功完成
3、收集域用户和管理员信息
查询域用户列表
net user /domain
C:\Users\daniel10> net user /domain
这项请求将在域 teamssix.com 的域控制器处理。
\\dc.teamssix.com 的用户帐户
-------------------------------------------------------------------------------
admin Administrator daniel10
查询域用户详细信息
wmic useraccount get /all
C:\Users\daniel10> wmic useraccount get /all
AccountType Caption Description Disabled Domain FullName InstallDate LocalAccount Lockout Name PasswordChangeable PasswordExpires PasswordRequired SID SIDType Status
512 DANIEL10\Administrator 管理计算机(域)的内置帐户 TRUE DANIEL10 TRUE FALSE Administrator TRUE FALSE TRUE S-1-5-21-1097120846-822447287-3576165687-500 1 Degraded
512 DANIEL10\DefaultAccount 系统管理的用户帐户。 TRUE DANIEL10 TRUE FALSE DefaultAccount TRUE FALSE FALSE S-1-5-21-1097120846-822447287-3576165687-503 1 Degraded
查询存在的用户
dsquery user
C:\Users\daniel10> dsquery user
"CN=Administrator,CN=Users,DC=teamssix,DC=com"
"CN=Guest,CN=Users,DC=teamssix,DC=com"
常用的 dsquery 命令
dsquery computer - 查找目录中的计算机
dsquery contact - 查找目录中的联系人
dsquery subnet - 查找目录中的子网
dsquery group - 查找目录中的组
dsquery ou - 查找目录中的组织单位
dsquery site - 查找目录中的站点
dsquery server - 查找目录中的域控制器
dsquery user - 查找目录中的用户
dsquery quota - 查找目录中的配额
dsquery partition - 查找目录中的分区
dsquery * - 用通用的 LDAP 查询查找目录中的任何对象
4、查找域控制器
查看域控器机器名
nltest /DCLIST:teamssix
C:\Users\daniel10> nltest /DCLIST:teamssix
获得域“teamssix”中 DC 的列表(从“\\DC”中)。
dc.teamssix.com [PDC] [DS] 站点: Default-First-Site-Name
此命令成功完成
查看域控器主机名
nslookup -type=SRV _ldap._tcp
C:\Users\daniel10> nslookup -type=SRV _ldap._tcp
_ldap._tcp.teamssix.com SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dc.teamssix.com
dc.teamssix.com internet address = 192.168.7.7
netdom query pdc
C:\Users\daniel10> netdom query pdc
域的主域控制器:
DC
命令成功完成。
查看域控器组
net group "domain controllers" /domain
C:\Users\daniel10> net group "domain controllers" /domain
这项请求将在域 teamssix.com 的域控制器处理。
组名 Domain Controllers
注释 在網域所有的網域控制站
成员
-------------------------------------------------------------------------------
DC$
命令成功完成。
5、定位域管理员
psloggedon
在 Windows 上使用 net session
可以查看谁使用了本机资源,但不能查看谁在使用远程计算机资源、谁登录了本地或远程计算机,使用 psloggedon 可以查看本地登录的用户和通过本地计算机或远程计算机进行资源登录的用户。
psloggedon 下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
psloggedon.exe [-] [-l] [-x] [\\computername|username]
- 显示支持的选项和用于输出值的单位。
-l 仅显示本地登录,不显示本地和网络资源登录。
-x 不显示登录时间。
\\computername 指定要列出登录信息的计算机的名称。
Username 指定用户名,在网络中搜索该用户登录的计算机。
C:\Users\daniel10> PsLoggedon.exe -l \\192.168.7.7
Users logged on locally:
2021/2/13 20:53:08 TEAMSSIX\Administrator
PVEFindADUser
PVEFindADUser 用于查找活动目录用户登录的位置、枚举域用户,以及查找在特定计算机上登录的用户,包括本地用户、通过 RDP 登录的用户、用于运行服务器和计划任务的用户,该工具需要管理员权限。
PVEFindADUser 下载地址:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
-h 显示帮助信息
-u 检测程序是否有新版本
-current ["username"] -current参数显示每台PC上当前登录的用户在域中。如果指定用户名(在引号之间),则仅将显示该特定用户登录的PC
-noping 阻止尝试枚举用户登录名之前对目标计算机执行ping命令
-target 此可选参数允许您指定要查询的主机。如果未指定此-target参数,则将查询当前域中的所有主机。如果决定指定-target,然后指定以逗号分隔的主机名。查询结果将被输出到report.csv文件中
C:\Users\daniel10> PVEFindADUser.exe -current
[+] Finding currently logged on users ? true
[+] Finding last logged on users ? false
[+] Enumerating all computers...
[+] Number of computers found : 15
[+] Launching queries
[+] Processing host : dc.teamssix.com (Windows Server 2008 R2 Datacenter;Service Pack 1)
- Logged on user : teamssix\administrator
[+] Processing host : daniel7.teamssix.com (Windows 7 专业版;Service Pack 1)
[+] Processing host : daniel10.teamssix.com (Windows 10 专业版)
[+] Report written to report.csv
netview
netview 是一个枚举工具,使用 WinAPI 枚举系统,利用 NetSessionEnum 寻找登录会话,利用 NetShareEnum 寻找共享,利用 NetWkstaUserEnum 枚举登录的用户,netview 可以查询共享入口和有价值的用户,其绝大部分功能无需管理员权限就可使用。
Netview 下载地址:https://github.com/mubix/netview
-h 显示帮助信息
-f filename.txt 指定要提取主机列表的文件
-e filename.txt 指定要排除的主机名的文件
-o filename.txt 将所有输出重定向到指定的文件
-d domain 指定要提取主机列表的域。如果没有指定,则从当前域中提取主机列表
-g group 指定搜索的组名。如果没有指定,则在Domain Admins组中搜索
-c 对已找到的共享目录/文件的访问权限进行检查
-i interval 枚举主机之间等待的秒数
-j jitter 应用于间隔的抖动百分比(0.0-1.0)
C:\Users\daniel10> netview.exe -d
[+] Number of hosts: 3
[+] Host: DANIEL10
Enumerating AD Info[+] DANIEL10 - Comment -
[+] D - OS Version - 10.0
[+] DANIEL10 - MSSQL Server
Enumerating IP Info
[+] (null) - IPv4 Address - 192.168.7.110
Enumerating Share Info
Enumerating Session Info
Enumerating Logged-on Users
[+] DANIEL10 - Logged-on - TEAMSSIX\daniel10
[+] Host: DC
Enumerating AD Info[+] DC - Comment -
[+] D - OS Version - 6.1
[+] DC - Domain Controller
Enumerating IP Info
[+] (null) - IPv4 Address - 192.168.7.7
……内容较多故省略……
NSE 脚本
常用的 NSE 脚本如下:
smb-enum-domains.nse
:对域控制器进行信息收集,可以获取主机信息、用户、可使用密码策略的用户等
smb-enum-users.nse
:在进行域渗透时,如获取了域内某台主机权限,但权限有限,无法获取更多的域用户信息,可借助此脚本对域控制器进行扫描
smb-enum-shares.nse
:遍历远程主机的共享目录
smb-enum-processes.nse
:对主机的系统进程进行遍历,通过此信息,可知道目标主机运行着哪些软件
smb-enum-sessions.nse
:获取域内主机的用户登陆会话,查看当前是否有用户登陆,且不需要管理员权限
smb-os-discovery.nse
:收集目标主机的操作系统、计算机名、域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等信息
NES 脚本下载地址:https://nmap.org/nsedoc/scripts/
C:\Users\daniel10> nmap --script=smb-os-discovery.nse -p 445 192.168.7.107
Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-21 09:44 CST
Nmap scan report for 192.168.7.107
Host is up (0.00053s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
Host script results:
| smb-os-discovery:
| OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)
| OS CPE: cpe:/o:microsoft:windows_7::sp1:professional
| Computer name: daniel7
| NetBIOS computer name: DANIEL7\x00
| Domain name: teamssix.com
| Forest name: teamssix.com
| FQDN: daniel7.teamssix.com
|_ System time: 2021-02-21T09:44:33+08:00
Nmap done: 1 IP address (1 host up) scanned in 0.50 seconds
PowerView 脚本
PowerView 脚本中包含了一系列的 powershell 脚本,信息收集相关的脚本有 Invoke-StealthUserHunter、Invoke-UserHunter 等,要使用 PowerView 脚本需要将 PowerView 文件夹复制到 PowerShell 的 Module 文件夹内, Module 文件夹路径可以通过在 PowerShell 中输入 $Env:PSModulePath
查看,我这里将其复制到了C:\Program Files\WindowsPowerShell\Modules文件夹内。
接着在 powershell中输入 Import-Module PowerView
即可导入PowerView,使用 Get-Command -Module PowerView
可查看已导入的 PowerView 命令
PS C:\Users\daniel10> Import-Module PowerView
PS C:\Users\daniel10> Get-Command -Module PowerView
CommandType Name Version Source
----------- ---- ------- ------
Alias Find-UserTrustGroup 1.0 PowerView
Alias Get-ComputerProperties 1.0 PowerView
……内容较多故省略……
PowerView 脚本下载地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
注:在打开上面的下载地址时会看到该项目已被转移到其他项目下,但是当我在使用新版本的 PowerView 脚本时,发现找不到
Invoke-StealthUserHunter
命令,而旧版本的 PowerView 有Invoke-StealthUserHunter
命令
Invoke-StealthUserHunter:只需要进行一次查询,就可以获取域里面的所有用户。其原理为:从user.HomeDirectories
中提取所有用户,并对每个服务器进行Get-NetSession
获取。因不需要使用Invoke-UserHunter
对每台机器进行操作,所以这个方法的隐蔽性相对较高(但涉及的机器不一定全面)。PowerView 默认使用Invoke-StealthUserHunter
如果找不到需要的信息,就会使用Invoke-UserHunter
.
Invoke-UserHunter:找到域内特定的用户群,接受用户名、用户列表和域组查询,接收一个主机列表或查询可用的主机域名。使用Get-NetSession
和Get-NetLoggedon
(调用 NetSessionEnum 和 NetWkstaUserEnumAPI )扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,在使用时不需要管理员权限。
PS C:\Users\daniel10> Invoke-UserHunter
UserDomain : TEAMSSIX
UserName : Administrator
ComputerName : dc.teamssix.com
IP : 192.168.7.7
SessionFrom :
LocalAdmin :
UserDomain : TEAMSSIX
UserName : daniel10
ComputerName : daniel10.teamssix.com
IP : 192.168.7.110
SessionFrom :
LocalAdmin :
UserDomain : TEAMSSIX
UserName : Administrator
ComputerName : daniel7.teamssix.com
IP : 192.168.7.107
SessionFrom :
LocalAdmin :
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:根据用户日志查询某域用户登陆过哪些域机器
Empire
Empire中的user_hunter
模块用于查找域管理员登陆的机器,使用 powershell/situational_awareness/network/powerview/user_hunter 模块,可查看哪个用户登陆哪台主机。
(Empire: listeners) > agents
[*] Active agents:
Name La Internal IP Machine Name Username Process PID Delay Last Seen
---- -- ----------- ------------ -------- ------- --- ----- ---------
3XRCWAB2 ps 192.168.7.7 DC *TEAMSSIX\administrator powershell 2256 5/0.0 2021-02-22 20:39:54
(Empire: agents) > usemodule powershell/powershell/situational_awareness/network/powerview/user_hunter
(Empire: powershell/situational_awareness/network/powerview/user_hunter) > set Agent 3XRCWAB2
(Empire: powershell/situational_awareness/network/powerview/user_hunter) > execute
[*] Tasked 3XRCWAB2 to run TASK_CMD_JOB
[*] Agent 3XRCWAB2 tasked with task ID 1
[*] Tasked agent 3XRCWAB2 to run module powershell/situational_awareness/network/powerview/user_hunter
[*] Valid results returned by 192.168.7.7
……
6、查找域管理员进程
获取域管理员列表
net group "Domain Admins" /domain
C:\Users\daniel10>net group "Domain Admins" /domain
这项请求将在域 teamssix.com 的域控制器处理。
组名 Domain Admins
注释 指定的域管理员
成员
-------------------------------------------------------------------------------
Administrator
命令成功完成。
列出本机的所有进程及进程用户
tasklist /v
C:\Users\daniel10>tasklist /v
映像名称 PID 会话名 会话# 内存使用 状态 用户名 CPU 时间 窗口标题
========================= ======== ================ =========== ============ =============== ================================================== ============ ========================================================================
System Idle Process 0 Services 0 8 K Unknown NT AUTHORITY\SYSTEM 68:35:16 暂缺
System 4 Services 0 924 K Unknown 暂缺 0:24:14 暂缺
svchost.exe 9228 Console 2 2,932 K Unknown TEAMSSIX\daniel10 0:00:00 暂缺
tasklist.exe 10768 Console 2 9,540 K Unknown TEAMSSIX\daniel10 0:00:00 暂缺
……内容过多省略……
如果在列出的进程中看到了用户名为管理员用户名的话,便是找到了域管理员进程。
参考链接:
https://blog.csdn.net/qq_36279445/article/details/110647055
更多信息欢迎关注我的微信公众号:TeamsSix