0x00:from

--《内网安全攻防》

0x01:内网信息收集概述

渗透测试人员进入内网后,面对的是一片“黑暗森林”。所以,渗透测试人员首先需要对当前所处的网络环境进行判断。判断涉及如下三个方面。

我是谁?--对当前机器角色的判断。
这是哪?--对当前机器所处网络环境的拓扑结构进行分析和判断
我在哪?--对当前机器所处区域的判断

对当前机器角色的判断,是指判断当前机器是普通web服务器、开发测试服务器、公共服务器、文件服务代理服务器、DNS服务器还是存储服务器等。具体的判断过程,是根据机器的文件名、文件、网络连接等情况综合完成的。

对当前机器所处网络环境的拓扑结构进行分析和判断,是指对所处内网进行全面的数据收集和分析整理,绘制出大致的内网整体拓扑结构图。

对当前机器所处区域的判断,是指判断机器处于网络拓扑的那个区域,是在DMZ、办公区还是核心区。当然,这里的区域不是绝对的,只是一个大概的环境,处于不同位置的网络,环境不一样,区域界限也不一定明显。

0x02:收集本机信息

不管是在外网还是在内网中,信息收集都是重要的第一步。对于内网中的一台机器,其所处内网的结构是什么样的、其角色是什么使用这台机器的人的角色是什么,以及这台机器上安装了什么杀毒软件、这台机器是通过什么方式上网的、这台机器是笔记本还是台式机还是虚拟机,都需要通过信息收集来解答。

1.手动收集信息

本机信息包括操作系统、权限、内网IP地址、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。如果是域内主机,操作系统、应用软件、补丁、服务、杀毒软件一般都是批量安装的。

通过本机的相关信息,可以进一步了解整个域的操作系统版本、软件及补丁安装情况、用户命名方式等。

1.查询网络配置信息

执行如下命令,获取本机网络配置信息。

ipconfig /all

2.查询操作系统及软件的信息

(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

利用PowerShell命令,收集软件的版本信息。

powershell "Get-wmiobject  -class win32_product | select-object -property name,version"

3.查询本机服务信息

执行如下命令,查询本机服务信息

wmic service list brief

4.查询进程列表

执行如下命令,可以查看当前进程列表和进程用户、分析软件、邮件客户端、vpn和杀毒软件等进程。

tasklist

执行如下命令,查看进程信息

wmic process list brief

常见杀软进程

或者:WMIC /Node:localhost /Namespace:\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List

5.查看启动程序信息

执行如下命令。查看启动程序信息。

wmic startup get command,caption

6.查看计划任务

执行如下命令,查看计划任务

schtasks  /query  /fo  LIST  /v

7.查看主机开机时间

执行如下命令,查看主机开放时间

net statistics workstation

8.查询用户列表

net user

通过分析编辑用户列表,可以找出内网机器的命名规则。特别是个人机器的名称,可以用来推测整个域的用户命名方式。

执行如下命令,获取本地管理员(通常包含域用户)信息

net localgroup administrators

执行如下命令,查看当前在线用户

query user || qwinsta

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

执行如下命令,列出或断开本地计算机与所连接的客户端之间的会话。

net session

10.查看端口列表

执行如下命令,查看端口列表、本机开放端口所对应的服务和应用程序

netstat -ano

此时可以看到当前机器和哪些主机建立了连接,以及TCP、UDP等端口的使用和监听情况。可以先通过网络连接进行初步判断(例如,在代理服务器中可能会有很多机器开放了代理端口,更新服务器可能开放了更新端口8530,DNS可能开放了53端口等)。

11.查看补丁列表

执行如下命令,查看系统的详细信息

systeminfo

需要注意系统版本、位数、域、补丁信息及更新频率等。域内主机的补丁通常是批量安装的,通过查看本机补丁列表,就可以找到未打补丁的漏洞。

可以看到,当前系统更新了162个补丁。

使用wmic命令查看安装在系统中的补丁。

wmic qfe get Caption,Description,HotFixID,InstalledOn

补丁的名称,描述,ID,安装时间等信息

12.查询本机共享列表

执行如下命令,查看本机共享列表和可访问的域共享列表(域共享在很多时候是相同的)。

net share

利用wmic命令查找共享列表。

wmic share get name,path,status

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

执行如下命令,查询路由表及所有可以接口的ARP(地址解析协议)缓存表。

route print
arp -a

14.查询防火墙相关配置

(1)关闭防火墙

Windows server 2003及之前的版本,命令如下

netsh   firewall  set  opmode   disable

Windows server 2003及之后的版本,命令如下

netsh  advfirewall  set allprofiles  state off

(2)查看防火墙配置

netsh  firewall  show  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 no" dir=out action=allow program="C: \nc.exe"

允许3389端口放行,命令如下:

netsh  advfirewall  firewall add rule name="Remote Desktop" protocol=TCP  dir=inlocalport=3389 action=allow

(4)自定义防火墙日志的存储位置

netsh advfirewall  set  currentprofile  logging  filename "C:\windows\temp\fw.log"

15.查看代理配置情况

执行如下命令,可以看到服务器127.0.0.1 的1080端口的代理配置信息。

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

16.查询并开启远程连接服务

(1)查看远程连接端口

在命令行环境中执行注册表查询语句,命令如下。连接的端口为0xd3d,转换后为3389.

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp"   /V  PortNumber

(2)在Windows server 2003中开启3389端口

wmic path win32_terminalservicesetting  where (_CLASS !="") call setallowtsconnections 1

(3)在Windows server 2008 和Windows server 2012中开启3389端口

wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (_CLASS !="") call setallowtsconnections 1

wmic  /namespace:\\root\cimv2\terminalservices path  win32_terminalservicesetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

17.远程桌面连接历史记录

cmdkey /l

0x03:自动收集信息

1.wmic_info.bat

为了简化操作,我们可以编写一个脚本,在目标机器上完成流程、服务、用户账户、用户组、网络接口、硬盘信息、网络共享信息、操作系统、安装的补丁、安装的软件、启动时运行的程序、时区等信息的查询工作。

WMIC(Windows management instrumentation command-line ,Windows管理工具命令行)是最有用的Windows命令行工具。在默认情况下,任何版本的Windows xp 的低权限用户不能访问wmic,win 7以上版本的低权限用户允许访问wmic并执行相关查询命令。

wmic脚本地址:http://www.fuzzysecurity.com/scripts/files/wmic_info.rar

执行该脚本,会将所有结果写入一个html文件中。

2.empire

Empire提供了用于收集主机信息的模块。输入命令"usemodule situational_awareness/host/winenum" 即可查看本机用户、域组成员、密码设置时间、剪贴板内容、系统基本信息、网络适配器信息、共享信息等。

另外,situational_awareness/host/computerdetails模块几乎包含了系统中所有有用的信息,例如目标主机事件日志、应用程序控制策略,包括RDP登录信息、PowerShell脚本运行和保存的信息等。需要管理员权限才能运行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注