【内网信息收集】之搜集本机信息

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

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

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

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

手动信息收集:

本机信息包括操作系统、权限、内网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:\nc.exe "allow nc" enable
  • Windows Server 2003之后版本,允许指定程序全部连接
    命令: netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
  • 允许指定程序退出
    命令: netsh advfirewall firewall add rule name="Allow nc" dir=out action=out program="C:\nc.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\temp\fw.log"

查看代理配置情况:

命令: reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

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

  • 查询远程连接端口
    命令: REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
    0xd3d转换为十进制就是3389
  • 在Windows Server 2003中开启3389端口
    命令: wmic path win32_terminalservicesetting where (__CLASS !="") call setallowsconnections 1
  • 在其它系统(亲测了server2012、win7、win10)开启和关闭3389端口
    开启命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
    关闭命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "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,三种情况:

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

  • 存在域,当前是域用户

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

posted @ 2020-03-30 00:38  riyir  阅读(1947)  评论(0编辑  收藏  举报