找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2945

积分

0

好友

393

主题
发表于 3 小时前 | 查看: 4| 回复: 0

在Windows渗透测试或内网渗透中,发现立足点后,寻找权限提升的路径是关键。我们经常会尝试那些广为人知的漏洞和错误配置,但有时,突破口就藏在系统管理员不经意间留下的“痕迹”里。本次我们将探讨四种在实战中颇为有效的提权思路,它们并不依赖复杂的漏洞利用,而是通过对系统常见位置进行信息搜集,寻找那些被遗忘或保存不当的凭据。

09 无人值守安装文件中的秘密

当你进入一台主机,尤其是企业域环境中的主机时,可以留意它是否通过自动化工具部署。无人值守安装 (Unattended Installation) 是一种无需人工交互即可部署Windows操作系统的技术,通常借助Windows部署服务(WDS)、微软部署工具包(MDT)等工具完成。为了方便部署,安装过程中使用的配置信息(包括管理员账户)可能会被保存在系统中。

如何利用?
思路很简单:在系统中搜索这些无人值守安装留下的配置文件。常见的文件名包括:

  • 旧版Windows:sysprep.inf, sysprep.xml
  • 新版Windows:unattend.xml, unattend.txt

这些文件中可能包含用于初始设置的本地管理员账户和密码。密码可能是Base64编码、AES加密的,甚至是明文。

实战演示
假设我们已获得对一台域内主机的初始访问权限。首先,在全盘搜索上述配置文件。

我们可以使用如下命令在文件系统中进行搜索:

dir /s *sysprep.inf *sysprep.xml *unattended.xml *unattend.xml *unattend.txt 2>nul

在C:\Windows\Panther目录下发现Unattend.xml文件

搜索结果显示,在 C:\Windows\Panther 目录下找到了一个 Unattend.xml 文件。查看其内容,发现其中配置了自动登录。

XML文件中发现了Base64编码的密码

文件片段显示,为 Admin 用户配置了自动登录,其密码值 (Value) 为 cGFzc3dvcmQxMjM=。这明显是Base64编码。

使用简单的命令即可解码:

$echo 'cGFzc3dvcmQxMjM=' | base64 -d
password123

解码Base64得到明文密码

现在我们拥有了用户名 Admin 和密码 password123。在域环境中,我们可以尝试用这些凭据访问其他系统,或者直接在当前主机上使用 runas 命令提权。

使用 runasAdmin 身份启动一个新的命令行窗口:

runas /noprofile /user:Admin “cmd.exe”

根据提示输入密码 password123

使用runas命令以Admin身份启动cmd

命令成功执行后,会弹出一个新的命令提示符窗口,标题栏显示 (running as ...\Admin)。执行 whoami 确认权限。

新cmd窗口显示当前用户为Admin

至此,我们成功将权限提升到了本地管理员。这类问题在通过自动化工具部署的系统上并不少见,是内网渗透中一个高效的提权切入点。

10 注册表里的“密码本”

许多软件为了用户体验(如自动登录)或功能需要(如服务账户),会将凭据存储在Windows注册表中。当这些凭据以明文或可逆的加密方式存储,并且普通用户有权读取时,就构成了安全风险。

如何利用?
核心是搜索注册表。我们可以使用 reg query 命令,在庞大的注册表中筛选包含特定关键词(如“password”)的项和值。

REG QUERY HKLM /F “password” /t REG_SZ /S /K
REG QUERY HKCU /F “password” /t REG_SZ /S /K

上述命令会搜索整个 HKLM(本地机器)和 HKCU(当前用户)配置单元,寻找类型为 REG_SZ(字符串)且数据中包含“password”的值。/S表示递归,/K表示搜索键名。这个过程可能较慢。

实战演示
在对注册表进行搜索时,我们在当前用户(HKCU)的配置单元下发现了PuTTY(一个SSH客户端)的会话配置,其中包含了代理服务器的明文用户名和密码。

c:\>reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f “Proxy” /s

在注册表中发现PuTTY保存的代理凭据

输出显示,在某个PuTTY会话配置中,ProxyUsernamethom_smithProxyPasswordCoolPass2021。这显然是用户为了免去每次输入密码的麻烦而保存的。

获得 thom_smith 的凭据后,在域环境中,我们可以尝试用其登录对应的计算机,从而横向移动,扩大战果。记住,不仅仅是PuTTY,许多应用程序如浏览器、邮件客户端、FTP工具等都可能将密码存在注册表里。掌握逆向工程的思路,能帮助你更快地定位这些敏感信息存储点,这在渗透测试的后期利用阶段至关重要。

11 Web配置文件泄露的数据库密码

Web服务器的配置文件(如 web.config, httpd.conf, nginx.conf)是应用程序的核心,它们控制着服务器行为、安全设置,也常常包含数据库连接字符串。如果攻击者能够读取这些文件,就可能获得高权限的数据库访问凭证。

如何利用?

  1. 识别目标系统上运行的Web服务器类型(IIS, Apache, Nginx等)。
  2. 根据服务器类型,在其默认或自定义的路径下查找配置文件。
  3. 仔细审查配置文件内容,寻找连接字符串(connectionStrings)、API密钥等敏感信息。

实战演示
假设目标是一台运行IIS并托管ASP.NET应用的服务器。ASP.NET应用的配置通常存储在 web.config 文件中。我们可以搜索系统中的 web.config 文件。

dir /s *web.config

在多个.NET框架目录下发现web.config文件

搜索结果显示在多个 .NET Framework 的配置目录下都存在 web.config 文件。逐一检查,在 .NET v4.0.30319 的配置目录中发现了包含数据库连接字符串的配置文件。

web.config文件中发现数据库连接字符串和明文密码

配置文件内容显示了一个名为 TH01_DB 的连接字符串,其中包含数据库服务器地址、数据库名、用户名 admin明文密码 098N0x35kKjY

获得数据库管理员密码的危害极大。攻击者可以直接访问数据库,执行任意SQL命令,窃取或篡改所有数据。在许多应用中,数据库权限与系统权限紧密关联,这甚至可能成为获取系统控制权的跳板。对于运维人员而言,确保配置文件权限最小化并避免明文存储密码,是保障网络/系统安全的基本要求。

12 SAM与SYSTEM备份文件的利用

SAM (安全账户管理器) 文件存储着本地用户的密码哈希,而 SYSTEM 文件包含用于加密这些哈希的密钥。正常情况下,系统运行时这些文件被锁定无法访问。但有时,管理员在进行系统维护或更新前,会创建注册表的备份,这些备份可能包含SAM和SYSTEM配置单元的副本,并且权限设置可能较为宽松。

如何利用?

  1. 在常见备份目录中查找 SAMSYSTEM 文件。
  2. 将这些文件传输到攻击机。
  3. 使用工具(如Impacket的 secretsdump.py)离线提取用户密码哈希。
  4. 对哈希进行破解或尝试哈希传递攻击(PTH)。

常见备份位置(假设系统盘为C:\Windows)

C:\Windows\repair\SAM
C:\Windows\System32\config\RegBack\SAM
C:\Windows\repair\SYSTEM
C:\Windows\System32\config\RegBack\SYSTEM

实战演示
检查 C:\Windows\repair\ 目录,成功找到了 SAMSYSTEM 文件的备份。

在C:\Windows\Repair目录下发现SAM和SYSTEM备份文件

我们将这两个文件下载到本地Kali攻击机上。然后使用Impacket工具包中的 secretsdump.py 脚本进行离线哈希提取。

sudo python3 secretsdump.py -sam SAM.bak -system SYSTEM.bak LOCAL

使用Impacket的secretsdump.py从备份文件中提取NTLM哈希

脚本成功运行,提取出了本地用户(如 Administrator)的NTLM哈希。接下来,我们可以尝试在线破解这些哈希。将提取到的 thmuser1 的NTLM哈希提交到如CrackStation这样的在线哈希破解网站。

通过在线破解NTLM哈希获得明文密码

很快,我们得到了明文密码 Password1。现在,我们可以使用此凭据通过如 evil-winrm 等工具远程登录到域内 thmuser1 用户所在的机器。

ruby evil-winrm.rb -i 10.10.165.118 -u thmuser1 -p Password321

使用破解得到的凭据通过evil-winrm成功登录

登录成功,实现了权限提升和横向移动。此方法再次印证了,在安全防护中,权限最小化原则不仅适用于运行账户,也适用于那些看似不起眼的备份文件。




上一篇:主流Coding Agent工具能力横向对比与实现解析
下一篇:MySQL批量插入1万条数据实战:6种方案性能对比与选型指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-8 08:58 , Processed in 0.570720 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表