zoukankan      html  css  js  c++  java
  • 【内网信息收集】之搜集本机信息

    为什么要进行内网本机信息收集:

    在内网渗透测试环境中,有很多的设备和防护软件。通过收集目标内网信息,洞察内网网络拓扑结构,找到内网中最薄弱的环节。

    渗透人员进入内网后,需要先对当前的网络环境进行判断,所处的内网结构是什么样的、其角色是什么、使用这台机器的人的角色是什么、以及这台机器上装了什么杀毒软件等,都需要进行信息收集。

    正如某大佬所说:渗透的本质就是信息收集。

    手动信息收集:

    本机信息包括操作系统、权限、内网IP地址段杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。如果是域内主机,操作系统、应用软件、补丁、服务、杀毒软件一般都是批量安装的。
    通过本机的相关信息,可以进一步了解整个域的操作系统版本、软件及补丁安装情况、用户命名方式。

    查询网络配置信息:

    命令: ipconfig/all

    查询操作系统及软件信息:

    1. 查询操作系统和版本系统:
      命令: systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
      如果为中文版系统则执行命令: systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

    2. 查看系统体系结构:
      命令: echo %PROCESSOR_ARCHITECTURE%

    3. 查看安装的软件及版本、路径等:
      利用 wmic 命令,将结果输出到文本文件: wmic product get name,version

    4. 利用PowerShell命令,收集软件的版本信息: powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name,version"

    查询本机服务信息:

    命令: wmic service list brief

    查询进程列表:

    1. 查看当前进程列表和进程用户,分析软件、邮件客户端、VPN和杀毒软件等进程
      命令: tasklist

    2. 查看进程信息
      命令: wmic process list brief

    查看启动程序信息:

    命令: wmic startup get command,caption

    查看计划任务:

    命令: schtasks /query /fo LIST /V
    如果在执行时报错,无法加载列资源,可以使用chcp命令将编码暂时设置为英文。
    执行: chcp 437
    运行完schtasks以后再使用chcp命令将编码设置回中文GBK(936)。
    执行: chcp 936

    查看主机开机时间:

    命令: net statistics workstation

    查询用户列表:

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

    2. 查看本地管理员: net localgroup administrators

    3. 显示有关登录到系统的所有用户的信息: query user

    列出或断开本地计算机与所连接的客户端之间的会话:

    命令: net session

    查询端口列表:

    命令:netstat -ano

    查看补丁列表:

    命令: systeminfo

    使用wmic查看安装在系统的补丁: wmic qfe get Caption,Description,HotFixID,InstalledOn

    查看本机共享列表:

    命令: net share

    利用wmic命令查找共享列表: wmic share get name,path,status

    查询路由表及所有可用接口的ARP缓存表

    命令:route print 和 arp -a

    防火墙相关配置:

    1. 关闭防火墙
    • Windows Server 2003及之前版本
      命令:netsh firewall set opmode disable
    • Windows Server 2003之后版本
      命令:netsh advfirewall set allprofiles state off
    1. 查看防火墙配置
      命令: netsh advfirewall show allprofiles

    2. 修改防火墙配置

    • Windows Server 2003及之前版本,允许指定程序全部连接
      命令: netsh firewall add allowedprogram c: c.exe "allow nc" enable
    • Windows Server 2003之后版本,允许指定程序全部连接
      命令: netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C: c.exe"
    • 允许指定程序退出
      命令: netsh advfirewall firewall add rule name="Allow nc" dir=out action=out program="C: c.exe"
    • 允许3389端口放行
      命令:netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
    1. 自定义防火墙储存位置
      命令: netsh advfirewall set currentprofile logging filename "C:windows empfw.log"

    查看代理配置情况:

    命令: reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings"

    查询并开启远程连接服务:

    • 查询远程连接端口
      命令: REG query HKLMSYSTEMCurrentControlSetControlTerminal" "ServerWinStationsRDP-Tcp /v PortNumber
      0xd3d转换为十进制就是3389
    • 在Windows Server 2003中开启3389端口
      命令: wmic path win32_terminalservicesetting where (__CLASS !="") call setallowsconnections 1
    • 在其它系统(亲测了server2012、win7、win10)开启和关闭3389端口
      开启命令: REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
      关闭命令: REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f

    自动收集本机信息:

    任何版本的Windows xp低权限无法执行wmic,Windows 7以上版本的低权限用户允许访问wmic并执行相关操作
    创建.bat文件执行后结果会写入HTML文件:

    for /f "delims=" %%A in ('dir /s /b %WINDIR%system32*htable.xsl') do set "var=%%A"
    
    wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
    wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
    wmic USERACCOUNT list full /format:"%var%" >> out.html
    wmic group list full /format:"%var%" >> out.html
    wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
    wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
    wmic netuse list full /format:"%var%" >> out.html
    wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
    wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
    wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
    wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
    wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html
    

    查询当前权限:

    查看当前权限:

    当内网中存在域时,本地普通用户只能查询本机相关信息,不能查询域内信息。本地管理员用户和域内用户可以查询域内信息。原理:域内所有查询都是通过域控制器实现的(基于LDAP协议),而这个查询需要权限认证,所以只有域内用户才有这个权限,当域用户执行命令时,会自动使用Kerberos协议进行认证,无须额外输入账号密码。

    获取域SID:

    命令: whoami /all

    查询指定用户详细信息:

    命令: net user username /domain

    判断是否有域:

    获取了本机相关信息后,判断当前内网是否有域,如果存在域,就需要判断所控主机是否在域内。

    使用ipconfig命令

    执行命令查看网关IP、DNS的IP地址、域名、本机是否和DNS服务器处于同一网段等信息。
    命令: ipconfig /all

    然后,通过反向查询命令nslookup来解析域名IP。用解析后的IP地址进行对比,判断域控制器和DNS服务器是否在同一台服务器上。

    查看系统详细信息:

    "域"即域名,"登陆服务器"为域控制器。如果"域"为"WORKGROUP",表示当前服务器不在域内。
    命令:systeminfo

    查询当前登陆域及登陆用户状态:

    "工作站域DNS名称"为域名(如果为"WORKGROUP"表示当前为非域环境),"登陆域"表示当前登陆用户是域用户还是本地用户。
    命令: net config workstation

    判断主域:

    命令:net time /domain,三种情况:

    • 存在域,但当前不是域用户

    • 存在域,当前是域用户

    • 不存在域,当前网络环境为工作组

  • 相关阅读:
    LOJ.6435.[PKUSC2018]星际穿越(倍增)
    webpack---style-loader的配置:insertAt 和insert
    react-native项目启动报错——watchman安装问题(mac pro)
    js基础---event.target/ event.currentTarget/this的区别
    js基础---querySelector系列和getElementsBy系列获取页面元素的最大差异(返回值的属性区别)
    js基础----用户在浏览器输入网址后页面的加载
    js基础----dom节点使用console.log打印始终是最新的现象(待验证)
    js基础---嵌套循环中的break使用
    环境变量的配置之——全局安装@vue/cli脚手架,出现vue不是内部或外部命令(Windows)
    Chocolatey 和 Scoop的安装和介绍 (windows)
  • 原文地址:https://www.cnblogs.com/riyir/p/12593856.html
Copyright © 2011-2022 走看看