目录
一、内网信息收集简介
1.对当前机器角色进行判断
2.对当前机器所处网络环境及拓扑结构进行判断分析
3.对当前机器所处区域进行判断
二、本机信息收集
1.手动收集
2.相关查询命令
(1)获取本机网络配置信息
(2)操作系统和软件信息
#1.操作系统及其版本信息
#2.系统体系结构
#3.安装的软件及版本,路径等
3.查询本机服务信息
4.查询进程列表
(1)可以查看到当前进程列表和用户,分析软件,邮件客户,VPN和杀毒软件等进程
(2)查看进程信息
5.查看启动程序信息
6.查看计划任务
7.查看主机开机时间
8.查询用户列表
(1)查看本机用户列表
(2)获取本地管理员信息
(3)查看当前在线用户
9.列出或断开本地计算机与所连接的客户端之间的会话
10.查询端口列表
11.查看补丁列表
(1)查看系统的详细信息
(2)查看安装在系统中的补丁
12.查询本机共享列表
13.查询路由表及所有可用接口的ARP缓存表
14.查询防火墙配置
(1)关闭防火墙
(2)查看防火墙配置
(3)修改防火墙配置
#1.允许指定程序全部连接
15.查看代理配置情况
16.查询并开启远程连接服务
(1)查看远程连接端口
(2)在windows server 2003中开启3389端口
(3)在windows server 2008和2012中开启3389端口
三、权限查询
1.查看当前权限
2.获取域SID
3.查询指定用户的详细信息
四、判断是否存在域
1.ipconfig查询
2.查看系统详细信息
3.查询当前登录域及登录用户信息
4.判断主域
五、探测域内存活主机
1.NetBIOS快速探测
2.ICMP协议探测
3.ARP协议探测
(1)arp-sacn工具
(2)Empire中的arpsacn模块
(3)Nishang中的Invoke-ARPScan.ps1脚本
(4)通过TCP/IP端口探测内网
一、内网信息收集简介
渗透测试进入内网之后,首先要对所处的内网环境进行判断,有以下三个方面:
对当前机器角色进行判断
对当前机器所处网络环境及拓扑结构进行判断分析
对当前机器所处区域进行判断
1.对当前机器角色进行判断
对当前机器角色的判断,是指判断当前机器是普通 Web 服务器、开发测试服务器、公共服务器、文件服务器、代理服务器、DNS 服务器还是存储服务器等。具体的判断过程,是根据机器的主机名、文件、网络连接等情况综合完成的。
2.对当前机器所处网络环境及拓扑结构进行判断分析
对当前机器所处网络环境的拓扑结构进行分析和判断,是指对所处内网进行全面的数据收集和分析整理,绘制出大致的内网整体拓扑结构图。
3.对当前机器所处区域进行判断
对当前机器所处区域的判断,是指判断机器处于网络拓扑中的哪个区域,是在 DMZ、办公区还是核心区。当然,这里的区域不是绝对的,只是一个大概的环境。处于不同位置的网络,环境不一样,区域界限也不一定明显。
二、本机信息收集
1.手动收集
范围包括:操作系统,权限,内网IP地址段,杀毒软件,端口,服务,补丁及其更新频率,网络连接,共享,会话等。若是域内主机,一般操作系统,软件,补丁,服务,杀毒软件都是批量安装的。通过这些可以了解整个域内操作系统版本,软件及其补丁情况和用户命名方式。
2.相关查询命令
(1)获取本机网络配置信息
ipconfig /all
(2)操作系统和软件信息
#1.操作系统及其版本信息
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.查询进程列表
(1)可以查看到当前进程列表和用户,分析软件,邮件客户,VPN和杀毒软件等进程
tasklist
(2)查看进程信息
wmic process list brief
5.查看启动程序信息
wmic startup get command,caption
6.查看计划任务
schtasks /query /fo LIST /v
7.查看主机开机时间
net statistics workstation
8.查询用户列表
(1)查看本机用户列表
net user
(2)获取本地管理员信息
net localgroup administrators
(3)查看当前在线用户
query user || qwinsta
9.列出或断开本地计算机与所连接的客户端之间的会话
net session
10.查询端口列表
netstat -ano
11.查看补丁列表
(1)查看系统的详细信息
systeminfo
(2)查看安装在系统中的补丁
wmic qfe get Caption,Description,HotFixID,InstalledOn
12.查询本机共享列表
net share
利用wmic命令查找
wmic share get name,path,status
13.查询路由表及所有可用接口的ARP缓存表
route print
arp -a
14.查询防火墙配置
(1)关闭防火墙
win server 2003之前的版本
netsh firewall set opmode disable
win server 2003之后的版本
netsh advfirewall set allprofiles state off
(2)查看防火墙配置
netsh firewall show config
(3)修改防火墙配置
#1.允许指定程序全部连接
win server 2003之前的版本
netsh firewall add allowedprogram C:\nc.exe "allow nc" enable
win server 2003之后的版本
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
#2.允许指定程序退出
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:\nc.exe"
#3.允许3389端口放行
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C:\nc.exe"
#4.自定义防火墙日志的存储位置
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"
15.查看代理配置情况
reg query "HKEY_CURRENT_USER\Software\Micrsoft\Windows\CurrentVersion\Internet Settings"
16.查询并开启远程连接服务
(1)查看远程连接端口
在cmd环境中执行注册表查询语句,连接端口为0x3d,转换后为3389
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
(2)在windows server 2003中开启3389端口
wmic path win32_terminalservicesetting where (_CLASS != "") call setallowsconnections 1
(3)在windows server 2008和2012中开启3389端口
wmic /namespace:\\root\cimv2\terminalservices path
win32_terminalservicesetting where (_CLASS !="") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalserver path win32_tsgenralsetting
where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v
fSingleSessionPerUser /t REG_DWORD /d 0 /f
三、权限查询
1.查看当前权限
whoami
如果内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息,而本地管理员用户和域内用户可以查询域内信息。
本地管理员Administrator权限可以直接提升为Ntauthority或System权限,因此,在域中,除普通用户外,所有机器都有一个机器用户(用户名是机器名加上$),在本质上,机器的system用户对应的就是域里面的机器用户,所以,使用system权限可以运行域内查询命令
2.获取域SID
whoami /all
3.查询指定用户的详细信息
net user 用户名 /domain
四、判断是否存在域
1.ipconfig查询
查看网关IP地址,DNS的IP地址,域名,本机是否和DNS服务器处于同一网段,然后通过反向nslookup来解析域名的IP地址,用解析得到的IP地址进行对比,判断域控制器和DNS服务器是否在同一服务器上
2.查看系统详细信息
systeminfo
域即域名,登录服务器为域控制器,如果域为WORKGROUP,表示当前服务器不在域内
3.查询当前登录域及登录用户信息
net config workstation
4.判断主域
net time /domain
执行之后通常有三种情况:存在域,但当前用户不是域用户;存在域,且当前用户是域用户;当前网络环境为工作组,不存在域
五、探测域内存活主机
1.NetBIOS快速探测
NetBIOS是局域网程序使用的一种应用程序编程接口(API),为程序提供了请求低级别服务的统一的命令集,为局域网提供了网络及其他特殊功能。几乎所有的局域网都是在 NetBIOS 协议的基础上工作的。NetBIOS 也是计算机的标识名,主要用于局域网中计算机的互访。NetBIOS 的工作流程就是正常的机器名解析查询应答过程,因此推荐优先使用。nbtscan 是一个命令行工具,用于扫描本地或远程TCP/IP网络上的开放 NetBIOS 名称服务器。nbtscan 有 Windows 和 Linux 两个版本,体积很小,不需要安装特殊的库或 DLL 就能使用。
2.ICMP协议探测
依次对内网中的每个IP地址执行ping命令,可以使用以下命令探测整个C段
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
3.ARP协议探测
(1)arp-sacn工具
将arp.exe下载到机器上运行,可以自定义掩码,指定扫描范围,kali中也带有此工具
arp.exe -t 192.168.1.0/20
(2)Empire中的arpsacn模块
用于在局域网内发送ARP包,收集活跃主机的IP和MAC地址,在Empire中输入一下命令可以使用arpscan模块
usemodule situational_awareness/network/arpscan
(3)Nishang中的Invoke-ARPScan.ps1脚本
可以将脚本上传到目标主机中运行,也可以直接远程加载脚本,自定义掩码和扫描范围,命令如下:
powershell.exe -exec bypass -Command "& {Import-Module C:\windows\temp\Invoke-ARPScan,psl; Invoke-ARPScan -CIDR 192.168.1.0/20}" >> C:\windows\temp\log.txt
(4)通过TCP/IP端口探测内网
使用sacnline工具
scanline -h -t 22.80-89,110,3389,3306 -u 53,161,137,139 -o c:\windows\temp\log.txt -p 192.168.1.1-254 /b