• 定位域管理员


    域管理员定位概述

    在一个域中,当计算机加入域后,会默认给域管理员赋予本地系统管理员权限。因此,域管理员均可以访问本地计算机,且具备完全控制权限。

    定位域内管理员的两种渠道:日志和会话。
    日志是指本地机器的管理员日志,可以使用脚本或Wevtutil工具导出并查看。
    会话是指域内每台机器的登陆会话,可以使用netsess.exe或PowerView等工具查询(可以匿名查询,不需要权限)。

    psloggedon.exe

    通过检验注册表里HKEY_USERS的key值来查询谁登陆过机器,同样也调用到了NetSessionEnum API。
    PS:该工具的某些功能需要管理员权限

    下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon

    参数 描述
    - 显示支持的选项和用于输出值的度量单位
    -l 仅显示本地登录,而不显示本地和网络资源登录
    -x 不显示登录时间
    computername 指定要为其列出登录信息的计算机的名称
    username 指定用户名,在网络中搜索该用户登陆的计算机
    C:UsersRiyDesktopPSTools>PsLoggedon.exe
    
    PsLoggedon v1.35 - See who's logged on
    Copyright (C) 2000-2016 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    Users logged on locally:
         2020/4/20 0:15:48          WIN-9H5Q3M1HLEHRiy
    
    No one is logged on via resource shares.
    

    PVEFindADUser.exe

    用于查找Active Directory用户的登录位置、枚举域用户,以及查找在特定计算机上登陆的用户,包括本地用户、通过RDP登陆的用户、用于运行服务和计划任务的用户。
    运行该工具需要配置 .NET Framework 2.0 环境,并且需要具有管理员权限。

    下载地址:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn

    参数 描述
    -h 显示帮助信息
    -u 检测程序是否有新版本
    -current ["username"] -current参数显示每台PC上当前登录的用户在域中。如果指定用户名(在引号之间),则仅将显示该特定用户登录的PC
    -noping 阻止尝试枚举用户登录名之前对目标计算机执行ping命令
    -target 此可选参数允许您指定要查询的主机。如果未指定此-target参数,则将查询当前域中的所有主机。如果决定指定-target,然后指定以逗号分隔的主机名。查询结果将被输出到report.csv文件中
    C:UsersRiyDesktop>PVEFindADUser.exe -current
     -----------------------------------------
      PVE Find AD Users
      Peter Van Eeckhoutte
      (c) 2009 - http://www.corelan.be:8800
      Version : 1.0.0.12
     -----------------------------------------
     [+] Finding currently logged on users ? true
     [+] Finding last logged on users ? false
    
     [+] Enumerating all computers...
     [!] Error connecting to AD and enumerating computers
         Error : 指定的域不存在,或无法联系。
    

    netview.exe

    Netview是枚举工具,使用WinAPI枚举系统,利用NetSessionEnum找寻登陆会话,利用NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登陆用户。同时,netview.exe能够查询共享入口和有价值的用户。netview.exe的绝大多数功能不需要管理员权限。

    下载地址:https://github.com/mubix/netview

    参数 描述
    -h 显示帮助菜单
    -f filename.txt 指定一个文件从中提取主机列表
    -e filename.txt 指定要排除的主机名文件
    -o filename.txt 将所有输出重定向到指定文件
    -d domain 指定要提取主机列表的域,如果未指定,则使用当前域
    -g group 指定用于用户搜寻的组名,如果未指定,则使用“域管理员”
    -c 检查找到的共享目录/文件,以进行读取访问
    -i interval 设置枚举主机之间等待的秒数
    -j jitter 应用于间隔的抖动百分比(0 -1.0)
    C:UsersRiyDesktop>netview.exe
    
    Netviewer Help
    --------------------------------------------------------------------
    
    -d domain               : Specifies a domain to pull a list of hosts from
                              uses current domain if none specifed
    
    -f filename.txt         : Speficies a file to pull a list of hosts from
    -o filename.txt         : Out to file instead of STDOUT
    

    Nmap的NSE脚本

    如果存在域账户或者本地账户,就可以使用Nmap的smb-enum-sessions.nse引擎获取远程机器的登陆会话(不需要管理员权限)。
    下载地址:https://nmap.org/nsedoc/scripts/smb-enum-sessions.html

    脚本 描述
    smb-enum-domains 尝试枚举系统上的域及其策略
    smb-enum-users 枚举远程Windows系统上的用户,并提供尽可能多的信息
    smb-enum-shares 便利远程主机共享目录
    smb-enum-processes 通过SMB从远程服务器提取进程列表,可以知道目标主机运行哪些软件。需要管理员权限
    smb-enum-sessions 枚举在本地或通过SMB共享登录到系统的用户
    smb-os-discovery 尝试通过SMB协议(端口445或139)确定操作系统,计算机名称,域,工作组和当前时间。
    C:UsersRiyDesktop>nmap --script=smb-enum-sessions 192.168.1.1
    
    Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-20 11:12 ?D1ú±ê×?ê±??
    Nmap scan report for 192.168.1.110
    Host is up (0.0031s latency).
    Not shown: 992 closed ports
    PORT      STATE SERVICE
    135/tcp   open  msrpc
    139/tcp   open  netbios-ssn
    445/tcp   open  microsoft-ds
    49152/tcp open  unknown
    49153/tcp open  unknown
    49154/tcp open  unknown
    49156/tcp open  unknown
    49159/tcp open  unknown
    MAC Address: 00:0C:29:58:33:FA (VMware)
    
    Nmap done: 1 IP address (1 host up) scanned in 4.67 seconds
    

    PowerView脚本

    powerView.ps1是一款依赖powershell和wmi对内网进行查询的常用渗透测试脚本,集成在powersploit工具包中,是一个收集域信息很好用的脚本。

    下载地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView

    // Import-Module为powershell导入脚本命令,这里假设我们下载的powerview.ps1脚本在C:PowerView.ps1
    命令格式:powershell.exe -exec bypass -Command "& {Import-Module C:PowerView.ps1; powerview的命令参数}"
    
    // 定位域管理员
    powershell.exe -exec bypass -Command "& {Import-Module C:PowerView.ps1; Invoke-UserHunter}"
    
    // 更多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-ADObiect: 获取活动目录的对象
    Get-NetGPO: 获取域内所有的组策略对象
    Get-DomainPolicy: 获取域默认策略或域控制器策略
    Invoke-UserHunter: 获取域用户登录的计算机信息及该用户是否有本地管理员权限
    Invoke-ProcessHunter: 通过查询域内所有的机器进程找到特定用户
    Invoke-UserEvenHunter: 根据用户日志查询某域用户登录过哪些域机器。
    

    Powershell的基础介绍和使用可查看:https://www.cnblogs.com/riyir/p/12585928.html

    Empire的user_hunter模块

    注意:该项目不再受支持

    下载地址:https://github.com/EmpireProject/Empire

    // Empire安装使用
    wget https://raw.githubusercontent.com/backlion/demo/master/Empire-master.zip
    unzip Empire-master.zip
    cd  Empire-master
    cd setup/
    ./install.sh
    
    cd  Empire-master
    ./empire
    

    笔者在安装Empire时一直报错,后期解决再回来补坑......

  • 相关阅读:
    Python操作MySQL之SQLAlchemy
    mysql 中的视图详解。
    mysql终端下进行数据库备份与备份导入。
    python函数的特性。再后面再讲函数装饰器。
    序列解包(for x,y in zip(keys, values):)详解。
    jinja2.exceptions.TemplateAssertionError: no filter named 'zip'(这一类的问题的解决办法)
    flask
    网络基础知识
    测试用例设计要注意的问题
    使用tailf命令查看日志
  • 原文地址:https://www.cnblogs.com/riyir/p/12735443.html
Copyright © 2020-2023  润新知