前言
我们在做渗透测试的过程中,遇到Windows系统的环境是最多的,然而在拿到一台Windows胸膛呢权限之后,我们要进行横向渗透测试或者纵向渗透测试,这时候针对Windows的信息收集就显得尤为重要,下面我们聊聊在Windows下我们需要了解哪些信息,这些信息对我们在后续的渗透测试中又会有什么样的帮助。
基本信息
系统的基本信息包括:主机名、所属域、环境变量、IP地址等信息,涉及以下命令:
获取主机名
hostname echo %COMPUTERNAME
获取所属域信息
systeminfo
注:从这个命令当中你不仅仅可以看到有关域名的信息,还有OS版本、主机名、Windows目录、时区、登录服务器、修补程序、网卡等信息。
获取环境变量
set
注:从环境变量中你可以看到一些常用的软件、临时文件的目录以及与用户相关的一些信息。
获取系统安装的软件的信息
通过获取软件安装的信息,我们可以从中找出我们可以利用的软件,或者可以获取到进一步权限信息的软件,比如:filezilla\securecrt等软件。也可以大概了解系统的安全防护软件的情况。
查看当前进程信息
tasklist
获取系统补丁情况
获取系统补丁修补的信息可以在我们进行提权操作的时候起到非常重要的作用,根据补丁信息来获取exp来进行溢出提权。虽然前面的systeminfo命令可以获取补丁的情况,但是其获取的内容不是很完整,只是提供了补丁的编号,下面这条命令可以完全获取完整的补丁信息。
wmic qfe list
wmic 是一个非常强大的工具,可以做很多的事情,在渗透测试中进程会使用到。
获取系统注册的服务信息
从服务信息中可以看出本系统提供哪些服务,针对不同的服务器有不同的利用方式,命令如下:
sc query state=all
获取在线主机信息
通常我们获取在线主机的方式是扫描ip地址,在域的内网中我们可以通过一条命令获取主机在同一网段或者有联系的主机列表,命令如下:
net view
收集本地用户和组信息
这个在内网渗透测试中至关重要,这是在任何一台Windows主机上都要执行的命令,这个命令的作用包括:判断主机是否在域中、主机管理员组是什么、本地管理员用户有哪些等等。
获取本地用户组:
net localgroup
获取本地用户
net user
获取本地管理员信息
net localgroup administrators
获取本地共享信息
本地共享目录也是我们需要关注的目录,这里可能会有很多对我们提升权限有帮助的重要文件。命令如下:
net view /a \%COMPUTERNAME%
获取IP地址
其实这个命令是一开始就应该执行的,从这个命令结果中可以大概看出内网的网络环境、dns服务器IP地址、域名信息等,命令如下:
ipconfig /all
获取本地开放的端口与连接信息
查看本地的计划任务
schtask
这条命令必须在系统权限下才可以执行,否则会提示拒绝服务。
列出IIS的站点
在安装了IIS服务的系统上,我们可以执行以下命令阿里获取站点信息:
%windir%\system32\inetsrv\AppCmd.exe list site
保存系统上有所注册表信息
这几个命令比较暴力,有时候我们需要多次查询注册表信息,这样就需要执行很多条命令,我们可以吧系统的所有注册表信息dump下来,本地分析,也可以尽量减少执行命令的次数,减少日志量,减少被发现的几率:
reg export HKLM hklm.reg reg export HKCU hkcu.reg reg export HKCU hkcr.reg reg export HKCU hku.reg reg export HKCU hkcc.reg
获取系统日志信息
日志信息不管在任何系统上都是非常重要的,所以在Windows信息收集方面,收集日志信息是必不可少的操作,获取日志的方式有两种,一种是可以将系统的日志复制到本地,一种是使用Windows官方的工具将日志导出然后保存到本地。
复制日志文件:
copy C:\Windows\System32\winevt\Logs\System.evtx copy C:\Windows\System32\winevt\Logs\security.evtx copy C:\Windows\System32\winevt\Logs\application.evtx
使用工具导出:
..\psloglist -x system > system.log ..\psloglist -x security > security.log ..\psloglist -x application > application.log