访问其他用户的最简单方法是从受感染的机器收集凭据。此类凭证可能存在多种原因,包括粗心的用户将其放在明文文件中;或者甚至由浏览器或电子邮件客户端等软件存储。

此任务将显示在Windows系统上查找密码的一些已知位置。

无人值守的Windows安装
在大量主机上安装Windows时,管理员可以使用Windows部署服务,该服务允许通过网络将单个操作系统映像部署到多个主机。这类安装称为无人值守安装,因为它们不需要用户交互。此类安装需要使用管理员帐户来执行初始设置,最终可能会存储在计算机中的以下位置:

  • C:\Unattend.xml
  • C:\Windows\Panther\Unattend.xml
  • C:\Windows\Panther\Unattend\Unattend.xml
  • C:\Windows\system32\sysprep.inf
  • C:\Windows\system32\sysprep\sysprep.xml

作为这些文件的一部分,您可能会遇到凭据:

<Credentials>
    <Username>Administrator</Username>
    <Domain>thm.local</Domain>
    <Password>MyPassword123</Password>
</Credentials>

Powershell历史
每当用户使用Powershell运行命令时,它都会被存储到一个文件中,该文件会保留过去命令的内存。这对于快速重复您以前使用过的命令非常有用。如果用户在Powershell命令行中直接运行包含密码的命令,则稍后可以在cmd.exe提示符下使用以下命令进行检索:

type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

注意:上述命令仅适用于cmd.exe,因为Powershell不会将%userprofile%识别为环境变量。要从Powershell读取文件,您必须将%userprofile%替换为$Env:userprofile。

已保存的Windows凭据
Windows允许我们使用其他用户的凭据。此功能还提供了在系统上保存这些凭据的选项。下面的命令将列出已保存的凭据:

cmdkey /list

虽然您看不到实际的密码,但如果您注意到任何值得尝试的凭据,您可以将其与runas命令和/savecred选项一起使用,如下所示。

runas /savecred /user:admin cmd.exe

IIS配置
Internet信息服务(IIS)是Windows安装上的默认web服务器。IIS上网站的配置存储在名为web.config的文件中,可以存储数据库的密码或配置的身份验证机制。根据安装的IIS版本,我们可以在以下位置之一找到web.config:

  • C:\inetpub\wwwroot\web.config
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config

以下是在文件上查找数据库连接字符串的快速方法:

type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString

从软件检索凭据:PuTTY
PuTTY是Windows系统上常见的SSH客户端。用户不必每次都指定连接的参数,而是可以存储会话,其中可以存储IP、用户和其他配置以供以后使用。虽然PuTTY不允许用户存储他们的SSH密码,但它将存储包括明文身份验证凭据的代理配置。

要检索存储的代理凭据,您可以使用以下命令在以下注册表项下搜索ProxyPassword:

reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s

注意:Simon Tatham是PuTTY的创建者(他的名字是路径的一部分),而不是我们检索密码的用户名。运行上述命令后,存储的代理用户名也应可见。

正如putty存储凭据一样,任何存储密码的软件,包括浏览器、电子邮件客户端、FTP客户端、SSH客户端、VNC软件等,都有方法恢复用户保存的任何密码。

更多推荐