windows下的信息收集

渗透测试 2017-11-12

通常我们在渗透测试过程中,遇到的 Windows 的环境是最多的,然而在拿到一台 windows 系统权限之后,我们要进行横向或者纵向渗透,这是针对windows 的信息收集就显得尤为重要,下面我们就聊一下在 windows 下我们需要了解哪些信息,这些信息对于我们在后续的渗透测试中有有什么样的帮助。

基本信息

对于系统的基本信息一般包括:主机名、所属域、环境变量等,涉及的命令如下:

获取主机名:

hostname或者echo %COMPUTERNAME%

1.png

获取所属域信息:

systeminfo

2.png

从这个命令中不只是可以看到有关域名的信息,还有很多有用的信息,比如:开机时间、安装时间、补丁修补情况、系统版本等信息。

获取环境变量:

set

3.jpg

从环境变量中可以看出用户的一些常用软件、临时文件的目录以及与用户相关的一些信息。

获取系统安装的软件信息

通过获取软件安装信息,我们可以从中找出我们可以利用的软件,或者可以获取到进一步权限信息的软件,比如:securecrt、filezilla 等软件。也可以大概了解系统的安全防护软件的情况。可以利用注册表来获取这些信息,命令如下:

到处注册表信息:

reg export HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall reg.txt

匹配出注册表信息中的软件:

find "DisplayName" reg.txt |find /V "ParentDisplayName" > tmplist.txt

获得最终结果:

for /f "tokens=2,3 delims==" %%a in (tmplist.txt) do (echo %%a >> software.txt)

最终结果截取部分内容如图:

4.jpg

获取系统补丁情况

获取补丁修补信息可以在我们进行提权操作的时候起到指导性的作用,根据其补丁情况来使用 exp 溢出提权。虽然前面的 systeminfo 命令可以获取补丁的情况,但是其获取的内容不是很完整,只能看到补丁的编号,下面这条命令可以获取完整的补丁信息。

wmic qfe list

wmic 是一个非常强大的工具,可以做很多事情,在渗透测试中有很多机会使用它。部分截图如下:

5.jpg

获取系统注册的服务信息

从服务信息中可以看出本系统提供哪些服务,针对不同的服务器有不同的利用方式。命令如下:

sc query state= all

部分截图如下;

6.png

获取在线主机信息

通常我们获取在线主机的方式是扫描 IP 段,在域的内网中我们可以通过一条命令获取主机在同一网段或者有联系的主机列表,命令如下:

net view

由于我主机所处环境的问题,没有列出主机列表,大家可以在域中测试这个命令。

7.png

收集本地用户和组信息

这个在内网渗透测试中至关重要,这是在任何一台 Windows 主机上都要执行的命令,这个命令的作用包括:判断主机是否正在域中、主机管理员组是什么、本地管理员用户有哪些等等。

获取本地用户组:

net localgroup

获取本地用户:

net user

获取本地管理员信息:

net localgroup administrators

8.png

获取本地共享信息

本地共享目录也是我们需要关注的目录,这里面可能会有很多对我们提升权限有帮助的重要文件。命令如下:

net view /a %COMPUTERNAME%

9.png

获取IP信息

其实这个命令是一开始就应该执行的,从这个命令结果中可以大概看出内网的网络环境、dns 服务器 IP、域名信息等,命令如下:

ipconfig /all

部分结果如图:

10.png

获取本地端口开放与连接信息

这里可以看出本地系统开放了哪些端口,大概看出提供哪些服务以及有哪些内网主机与本机进行数据交流,这里也可以看出一些内网中存活的主机列表。命令如下:

netstat -ano

部分结果如图:

11.jpg

查看本地的计划任务

从计划任务中我们可以了解,这台主机每天做哪些任务,或者当前用户经常做哪些操作,甚至可以通过计划任务信息,可以获取到用户另外的帐号密码信息。命令如下:

at或schtask

这两条命令必须在系统权限下才可以执行,否则会提示拒绝访问。

列出iis的站点

在安装了iis服务的系统上,我们可以执行以下命令来获取站点信息:

%windir%system32inetsrvAppCmd.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

总结

这里基本把在 Windows 系统上的信息收集的差不多了,还有一些用户相关的信息没有在这里提出,下次有机会再把用户在系统上使用产生的重要信息列举一下。最后给大家分享一个大神写的bat脚本,一键自动化收集以上基本信息,请点击原文链接下载脚本以及上文中提到的一个软件 psloglist.exe 。附一张脚本执行完的结果图:

12.jpg

有什么不全的地方或者不对的地方请大家不吝赐教。

脚本下载地址:

https://github.com/myh0st/scripts/tree/master/Windows%E4%B8%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86


本文由 myh0st 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论