第二章:内网信息收集
文章目录
概述
当进入内网后,面对的是一片黑暗森林。我们需要对当前网络环境进行判断,涉及如下几个方面:
- 我是谁:对当前机器角色的判断。
- 这是哪:对当前机器所处网络环境的拓扑结构进行分析判断。
- 我在哪:对当前机器所处区域的判断。
收集本机信息
手动信息收集
本机信息收集包括:操作系统、权限、内网ip地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享和会话等。如果是域内主机,操作系统、杀毒软件、应用软件、补丁和服务一般是批量安装的。
查询网络配置信息
输入如下命令获取本机的网络配置信息:
ipconfig /all
如图所示:
查询操作系统及软件的信息
(1)查询操作系统和版本信息(cmd下无乱码,ps下有乱码):
systeminfo | findstr /B /C:"OS"
如图所示:
(2)查看系统体系结构(只能cmd下执行):
echo %PROCESSOR_ARCHITECTURE%
如图所示:
(3)查看安装的软件及版本等: 利用wmic命令,将结果输出到文本文件中:
wmic product get name,version
如图所示:
利用powershell收集软件的版本信息:
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"
如图所示:
查询本机服务信息
执行如下命令查询本机服务信息:
wmic service list brief
如图所示:
查询进程列表
输入如下命令可以查看当前进程列表和进程用户,分析软件、邮件客户端、VPN和杀毒软件等进行:
tasklist
如图所示:
输入如下命令查询进程信息:
wmic process list brief
如图所示:
查询启动程序信息
执行如下命令查看启动程序信息:
wmic startup get command,caption
如图所示:
查询计划任务
输入如下命令查询计划任务:
schtasks /query /fo LIST /v
如图所示:
查询主机开机时间
执行如下命令查询主机的开机时间:
net statistics workstation
如图所示:
查询用户列表
执行如下命令查询本机的用户列表
net user
如图所示:
执行如下命令查询本地管理员(通常包含域用户)信息:
net localgroup administrators
如图所示:
输入如下命令查询当前在线用户:
query user || qwinsta
如图所示:
列出或断开本地计算机与所连接的客户端之间的会话
输入如下命令即可:
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
(2)查询防火墙配置
netsh firewall shwo config
(3)修改防火墙配置 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=allow program="C:\nc.exe"
③ 允许3389端口放行,命令如下:
netsh advfirewall firewall add rule name="Remote Desktop" protocal=TCP dir=in localport=3389 action=allow
(4)自定义防火墙日志的存储位置:
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"
查询代理配置情况
执行如下命令,可以查询服务器127.0.0.1的1080端口的代理配置信息:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
如图所示:
自动化信息收集
通过前面的学习,也发现使用wmic进行本机信息收集比较方便和易于阅读,所以我们可以使用网上开源的利用wmic进行自动化信息收集的脚本来进行信息收集。
这里推荐使用fuzzysecurity上的一个利用wmic进行本机信息收集的一个bat脚本,内容如下:
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
作用就是执行一些wmic命令,输出到当前执行目录的out.html文件夹中。
查询当前权限
输入如下命令查询当前权限:
whoami
但是分为如下三种情况:
- 本地普通用户。
- 本地管理员用户。
- 域的用户。
本地普通用户只能查询本机信息,不能查询域内信息。
输入如下命令可以查看域的SID:
whoami /all
如图所示:
输入如下命令可以查询指定用户的详细信息:
net user XXX /domain
如图所示:
判断是否存在域
当获取完毕本机的信息后,就要判断当前内网中是否存在域。如果当前内网中存在域,就需要判断所控主机是否在域内。
(1)使用ipconfig命令
输入 ipconfig /all
命令,得到网络配置信息,查看网关IP、DNS的IP、域名、本机是否与DNS服务器处于同一网段等信息,如图所示:
然后通过nslookup判断域控和DNS服务器是否在同一台机器上,输入如下命令:
nslookup pinger.testlab
如图所示(可以看到,此处是):
(2)查看系统详细信息
输入如下命令,得到的结果中,域即域名,登录服务器指的是域控,如果域为WORKGROUP,则代表当前服务器不在域内:
systeminfo
如图所示:
(3)查询当前登录域以及登录用户信息
输入如下命令,如果得到的结果中,工作站域DNS名称为WORKGROUP,则代表当前非域环境;登录域表示当前登录的用户是域用户还是本地用户:
net config workstation
如图所示(此处代表当前登录用户是域用户):
(4)判断主域
执行如下命令,判断主域(域服务器通常会作为时间服务器使用):
net time /domain
得到的结果有三种结果:
- 存在域,但当前用户不是域用户。提示"发生系统系统错误 5,拒绝访问"。
- 存在域,且当前用户是域用户。会得到时间结果。
- 当前网络环境为工作组,不存在域。提示"找不到WORKGROUP的域控制器"。
文章作者 P1n93r
上次更新 2021-01-23