【内网学习笔记】4、域内信息收集


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-NetSessionGet-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

https://pingmaoer.github.io/2020/03/31/%E5%86%85%E7%BD%91%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E4%BA%8C/

更多信息欢迎关注我的微信公众号:TeamsSix


文章作者: Teams Six
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Teams Six !
评论
 上一篇
【内网学习笔记】域内主机存活探测的一些方法总结 【内网学习笔记】域内主机存活探测的一些方法总结
注:本文中的工具均来源自互联网,后门自查。 在进入目标域后,对域内主机进行存活探测是不可或缺的一步,在此记录一下亿些常见的方法。 1、ping使用 ping 进行检测的优点是不容易触发检测规则,缺点是速度较慢,如果目标开启了禁止 pin
下一篇 
【内网学习笔记】3、本地工作组信息收集 【内网学习笔记】3、本地工作组信息收集
1、手动收集本地工作组信息 查看当前权限 whoami 本机网络配置信息 ipconfig /all 操作系统和版本信息(英文版) systeminfo | findstr /B /C:"OS Name" /
  目录