我是谁 ——对当前机器角色地判断
这是哪——对当前机器所处地网络环境的拓扑结构进行分析和判断
我在哪—— 对当前机器所处的区域的判断
内网结构 是什么样的 角色是什么 使用这台机器的角色是什么 安装了什么杀毒软件 通过什么方式上网 是台式还是笔记本
2.1 手动收集信息
本机信息包括操作系统 权限,内网ip地址 ,杀毒软件 端口 服务 补丁 网络连接 共享 会话
1,查询网络配置信息
获取本机网络配置信息
ipconfig / all
2,查询操作系统及软件的信息
(1)查询操作系统和版本信息
英文版本
systeminfo | findstr /B /C:“os Name”/ C:“os Version”
中文版本
systeminfo | findstr /B /C:“os 名称”/ C:“os 版本”
echo %PROCESSOR_ARCHITECTURE%
(3)查看安装的软件及版本,路径等
利用wmic命令,将结果输出到文本文件中
wmic product get name,version
powershell "Get-WmiObject -class Win32_Product | select-Object -Property name,version"
wmic service list brief
4,查询进程列表
查看当前进程列表和进程用户,分析软件,邮件客户端 和杀毒软件
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
10,查询端口列表
查看端口列表,本地开放的端口所对应的服务和应用程
netstat -ano
systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn
net share
wmic share get name,status
13,查询路由表及所有的可用接口的arp缓存表
查询路由 : route print
查看所有可用接口的arp缓存表: arp -a
14,查询防火墙相关配置
(1)关闭防火墙
Win server2003及之前的版本: netsh firewall set opmode disable
Win server2003之后的版本: netsh advfirewall set allprofiles state off
(2)查看防火墙设置
netsh firewall show config
(3)查看防火墙配置
Win server2003及之前的版本 允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc” enable
Win server2003之后的版本 允许指定程序进入
netsh advfirewall add rule name="pass nc" dir=in action=allow progrom="C: \nc.exe"
允许指定程序退出
netsh advfirewall add rule name="Allow nc" dir=out action=allow progrom="C: \nc.exe"
允许3389端口放行
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
(4)自定义防火墙日志的储存位置
Netsh advfirewall set currentprofile logging filename "C:\Windowws\temp\fw.log"
15,查看代理配置情况
下列命令可查看服务器127.0.0.1的0180端口的代理配置信息
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
(2)在windows server2003中开启3389端口
Wmic path win32_teminalservicesetting where (__CLASS !="") call Setallowtscommections
(3)在windows server2008 和windows server 2012中开启3389端口
Wmic /namespace:\\root\cimv2\terminalservices path
Win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
2.2自动收集信息
脚本在目标机器上完成流程,服务,用户信息,用户组,网络接口,硬盘信息,网络共享信息,操作系统,安装的补丁 安装的软件,启动时运行的程序,时区等信息的查询工作
Wmic 管理工具命令 (任何版本的windows xp 的低权限用户不能访问wmic windows7以上的版本的低权限用户允许访问wmic并执行相关的查询操作)
执行脚本后,会将所有结果写入一个HTML文件
下载地址 :
链接:https://pan.baidu.com/s/1k_tEiQoE7fBVTnBDKWzF3A
提取码:kfwi
1,查看当前权限
whoami
本地普通用户
域内用户
本地管理员用户
内网存在域,本地普通用户只能查询本机相关信息不能查询域内信息 本地用户和域内用户可以查询域内信息
原理是 :域内的所有查询都是通过域空指器实现的 需要通过权限认证 只有域内用户才拥有这个权限 域内用户执行查询命令时 会自动使用kerberos协议进行认证 无需额外输入账号和密码
本地管理员可以提升为system权限
2,获取域sid
whoami /all
当前域hacke的sid值为 s-1-5-21-2507302915-3190265213
当前域testuser的sid为s-1-5-21-2507302915-3190265213-1104
3,查询指定用户的详细信息
net user XXX /domain
获取勒本机信息后要判断当前内网中是否存在域 存在 域 就需要判断所控主机是否在域内
1,使用ipconfig
查看网关地址 dns地址 域名 本机是否和dns服务器处于同一网段
ipconfig /all
通过反向解析查询命令nslookup来解析的ip地址 用解析得到的ip地址进行对比 判断域控制器和dns手机否在同一台服务器上
2,查看系统详细信息 如果 “域”为"WORKGROUP" 表示当前服务器不在域内
3,查询当前登陆及登陆用户信息
工作站域DNS名称为 域名(如果为“WORKGROUP"表示当前为非域环境, 登陆域 用于表示当前登陆的用户是域内用户还是本地用户 此处表示当前用户是域用户
Net config workstation
Net time /domain
三种情况
存在域,当前用户不是域用户
存在域,且当前用户是域用户
当前网络环境为工作组,不存在域
可在白天和晚上分别进行扫描对比分析存活主机和对应的ip地址
5.1 利用NetBIOS快速探测内网
nbtscan是一个命令行工具 用于扫描本地和远程TCP/IP网络上的来访的名称服务器
把nbtscan上传到目标主机 直接输入ip地址范围并运行
利用NetBIOS快速侦探内网
第一列是ip地址 第二列是机器名和所在域的名称 最后一列是机器所开启的服务的列表
5.2 利用ICMP协议快速探测内网
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
也可以使用VBS脚本探测
strSubNet = “1.1.1.” Set objFSO= CreateObject(“Scripting.FileSystemObject”) Set objTS = objfso.CreateTextFile(“C:\Windows\Temp\Result.txt”) For i = 1 To 254 strComputer = strSubNet & i blnResult = Ping(strComputer) If blnResult = True Then objTS.WriteLine “Ping " & strComputer & " success!” End If Next objTS.Close WScript.Echo “Done!” Function Ping(strComputer) Set objWMIService = GetObject(“winmgmts:\.\root\cimv2”) Set colItems = objWMIService.ExecQuery(“Select * From Win32_PingStatus Where Address=’” & strComputer & “’”) For Each objItem In colItems Select case objItem.StatusCode Case 0 Ping = True Case Else Ping = False End select Exit For Next End Function
使用的时候要修改IP
扫描结果默认保存在"C:\Windows\Temp\Result.txt中
5.3 通过arp扫描探测主机
1,arp-scan工具
直接把arp.exe上传到目标主机机器中并运行 可以自定义掩码,指定扫描范围
** 利用telnet命令进行扫描, 想快速探测某台主机上的某个高危端口是否开放 使用telnet命令是最方便的**
1,查询域
2,查询域内所有计算机
3,查询域内所有用户组列表
域内有13个组,系统自带的常见用户
*Cloneable Domain Controllers
*DnsUpdateProxy
*Domain Admins :域管理员
*Domain Computers : 域内机器
*Domain Controllers:域控制器
*Domain Guests:域访客,权限较低
*Domain Users:域用户
*Enterprise Admins:企业系统管理员用户
*Enterprise Read-only Domain Controllers
*Group Policy Creator Owners
*Protected Users
*Read-only Domain Controllers
*Schema Admins
默认情况下Domain Admins和Enterprise Admins对域内所有域控制器有完全控制权限
4,net group "domain computers" /domain
:查询所有域成员计算机列表
5,获取域密码信息
net accounts /domain
6,nltest /domain_trusts
:获取域信任信息
1,查看域内控制器的机器名 nltest /DCLIST:XXX
2,查看域控制的主机名
nslookup -type=SRV _ldap._tcp
net time /domain
Net group "domain controllers" /domain
netdom query pdc
:可以看到域控制器的机器名
1,向域控制器进行查询
net user /domain
wmic useraccount get /all
daquery user
net localgroup administrators
Domain Admin 组中的用户默认为域内机器的本地管理员用户,为了方便管理会有域用户被设置为域机器的本地管理员用户
2.9.2 查询域管理员用户组
1,查询域管理员用户
net group “domain admins” /domain
net group “enterprise admins” /domain
内网测试的需求是,获取内网中特定用户或机器的权限,获得用户或机器的权限,进而获得特定的资源。
10.1常用域管理员定位工具
常用域管理员定位工具有psloggedon.exe,PVEFindADUser.exe,netsess.exe,以及hunter,NetView,
在powershell中常用的工具是powerView
psloggedon.exe
下载链接:
链接:https://pan.baidu.com/s/1NQMHcB7l2CZUxxvqKDZ2gg
提取码:77lm
在windows平台上可执行net session查看谁使用了本机资源,没有命令查看谁登陆了本地和远程计算机
使用psloggedon.exe可以查看本地登陆的用户和通过本地计算机或远程计算机的资源登陆的用户
11.1 本机检查
1,获取域管理员列表
net group "domain admins" /domain
tasklist /v
3,寻找进程所有者为域管理员的进程
以上操作可以看出当前存在域管理员
11.2,查询域控制器的域用户会话
1,查询域控制列表
net group "domain controllers" /domain
net group "domain admins" /domain