# 重要文件

这一节，我们来讲述需要关注的一些敏感文件。如果我们还不是最高权限，可能无法访问到所有的敏感文件，那么提权势必会有所帮助。主机上的敏感文件除了操作系统自带的 (例如 shadow，SAM数据库等)，还有第三方应用的，例如Web应用，VncViewer, Putty，KeePass等。对于第三方应用，我们不做过多延伸，因为这类的应用是无穷无尽的，我们着重关注于系统自带的重要文件。

### **Windows**

##### **用户目录**

Windows 用户目录下有这些目录：桌面、文档、下载、收藏等。尤其是对于有用户登录的个人主机，用户目录往往包含个人文件、办公文件，我们能从中收获丰富的信息。此外，我们甚至可能在用户目录中找到 SSH 密钥对，例如 srv02 上用户 october 的个人文件夹中。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/FxpzqEZCG9FMdQ21-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/FxpzqEZCG9FMdQ21-image.png)

##### **Web应用**

可以从配置文件中提取到其他组件的凭证，访问应用源代码找到可能硬编码的凭证。例如，我们在 **Web02** 主机上找到了 .Net 应用连接到 MSSQL 数据库的帐号密码。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/XkXTdZh6suFkU8e6-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/XkXTdZh6suFkU8e6-image.png)

##### **PowerShell 历史**

我们可以在 **C:\\Users\\用户\\AppData\\Roaming\\Microsoft\\Windows\\PowerShell\\PSReadLine** 中找到该用户的 PowerShell 历史。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/kqH3VwH1wyuKLrDR-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/kqH3VwH1wyuKLrDR-image.png)

##### **SAM 数据库**

在 **C:\\Windows\\System32\\config** 目录下，有着 SAM 数据库文件。至于 SAM 数据库为何物，以及如何利用，我们在后面章节介绍。简单地说，SAM数据库保存着本地用户的密码哈希值。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/efErbAmKZ7K4xxax-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/efErbAmKZ7K4xxax-image.png)

### **Linux**

##### **/etc 目录**

**/etc/passwd**

查看所有用户，有的时候 passwd 会存放用户的密码哈希

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/L6Ey8cU3C2T5FV5M-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/L6Ey8cU3C2T5FV5M-image.png)

**/etc/shadow**

默认需要提升特权查看。如果可读，可以尝试破解帐号密码的哈希值

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/LFRLgkoCJcpfVdDx-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/LFRLgkoCJcpfVdDx-image.png)

**/etc/crontab**

如果我们对计划任务中的条目具有控制权，或者对计划任务文件本身具有控制权，可以协助我们提权。我们也可以通过非默认的计划任务文件观察到自定义的文件或者脚本

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/EaIvO83U2srWImBO-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/EaIvO83U2srWImBO-image.png)

**/etc/krb5.keytab**

加入域的Linux主机的主机账号的keytab文件。默认需要提升特权，如果可读，可以得到主机账号的NTLM或者密钥值，从而枚举域内信息。文件本身难以阅读，但我们可以通过工具 [https://github.com/sosdave/KeyTabExtract/blob/master/keytabextract.py](https://github.com/sosdave/KeyTabExtract/blob/master/keytabextract.py) 来解析：

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/oBlISf5s8FsLUO6W-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/oBlISf5s8FsLUO6W-image.png)

```shell
root@web01:/home/john@prod.raven-med.local# python3 ext.py  /etc/krb5.keytab 
[*] RC4-HMAC Encryption detected. Will attempt to extract NTLM hash.
[*] AES256-CTS-HMAC-SHA1 key found. Will attempt hash extraction.
[*] AES128-CTS-HMAC-SHA1 hash discovered. Will attempt hash extraction.
[+] Keytab File successfully imported.
	REALM : PROD.RAVEN-MED.LOCAL
	SERVICE PRINCIPAL : WEB01$/
	NTLM HASH : 32c6125ea4dd7bad17678b3fcf11c6f8
	AES-256 HASH : 6688494b7f01d8e290115890934e8cf7183caa0750669c32c7a943ed9f391fc3
	AES-128 HASH : 7371d20faf69e07a6000a401be641ea1
```

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/EJHjPYI2IzPwScqC-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/EJHjPYI2IzPwScqC-image.png)

##### **keytab 文件**

这里指域用户的keytab文件，类似于krb5.keytab，域用户的keytab文件包含了用户的NTLM哈希，我们可以用来枚举域内信息或者用于哈希传递。

```shell
root@web01:/home/john@prod.raven-med.local# python3 ext.py  john.keytab 
[*] RC4-HMAC Encryption detected. Will attempt to extract NTLM hash.
[!] Unable to identify any AES256-CTS-HMAC-SHA1 hashes.
[!] Unable to identify any AES128-CTS-HMAC-SHA1 hashes.
[+] Keytab File successfully imported.
	REALM : prod.raven-med.local
	SERVICE PRINCIPAL : john/
	NTLM HASH : f442e0cc228d1a0cb4621ebce433bcdc
```

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/9Oq7yKI0JeoXm5y9-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/9Oq7yKI0JeoXm5y9-image.png)

##### **ccache 文件**

默认存在于 /tmp 目录下，ccache 文件保存了 Linux 域主机的 Kerberos 凭证。如果有任何在线的域用户会话，我们可以在 /tmp 中看到 ccache 文件。默认情况下，只有用户自身以及 root 用户才能读取，因此当我们提升至 root 权限后，可以对 ccache 文件进行窃取。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/I5eEyE8nvEzgSQ0b-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/I5eEyE8nvEzgSQ0b-image.png)

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/J37mJSe72egJTtXX-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/J37mJSe72egJTtXX-image.png)

##### **home 目录**

**Bash 历史**

有可能会包含明文凭证，例如该用户运行过 psql，mysql 等可以在命令行中提供明文密码的程序。默认情况下只有用户自己以及 root 用户能查看。并且可以将 bash 历史重定向到 **/dev/null** 来实现隐藏 bash 历史。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/J15jkHn4VlFZ1Lgh-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/J15jkHn4VlFZ1Lgh-image.png)

**SSH 文件夹**

SSH 私钥默认只有用户自身或者 root 用户可以访问。在提权之后，或者权限配置不当的情况下，我们可以窃取用户的 ssh 私钥。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/cohYlHCI3ixQXo7x-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/cohYlHCI3ixQXo7x-image.png)

**Web 应用根目录**

可以从配置文件中提取到其他组件的凭证、访问应用源代码找到可能硬编码的凭证。由于 Web01 的 PHP 应用并没有用数据库，因此没有数据库的凭证。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/fDjx2ncxfJw6xS3J-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/fDjx2ncxfJw6xS3J-image.png)

而 NodeJS 应用的后端数据库是 MongoDB，但 Web01 的 MongoDB 没有设置认证。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/gIoMaGTd2aDivFsg-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/gIoMaGTd2aDivFsg-image.png)

对于 **Wordpress** 等常见的 web 应用，特定的文件中会包含数据库的连接凭证。

```shell
ubuntu@blog:/var/www/html/wordpress$ cat wp-config.php  | grep -v '*'
<?php

define( 'DB_NAME', 'wordpress' );

define( 'DB_USER', 'wordpress' );

define( 'DB_PASSWORD', 'Passw0rdw0rdpr3ss' );

define( 'DB_HOST', 'localhost' );

define( 'DB_CHARSET', 'utf8' );

define( 'DB_COLLATE', '' );

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );





if ( ! defined( 'ABSPATH' ) ) {
        define( 'ABSPATH', __DIR__ . '/' );
}

require_once ABSPATH . 'wp-settings.php';

```

**其他**

非上述目录下的 **sh、txt、xml、yml** 等类型的文本文件可能会包含凭证或者其他重要信息

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/x7ZUXREnalCUZt3B-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/x7ZUXREnalCUZt3B-image.png)

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-03/scaled-1680-/ZOEvncm9vaidYys2-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-03/ZOEvncm9vaidYys2-image.png)