敏感文件
当在成功的利用之后,我们获得已经拿到了初始shell后服务器本地的访问了,根据服务器配置的不同,此时我们可能已经是最高权限了,也可能是低权限用户。无论如何,我们需要珍惜现有的访问,对当前的主机本地信息进行枚举详尽的侦查,因为这时候我们包括但不局限于网络配置、本地文件、用户和群组、分配的权限往往是比较低、系统版本、存储的,但即便如此我们也能枚举出大量信息,其中有些对于我们本地提权甚至域内提权很有帮助凭证等。其中
这一节,我们来讲述需要关注一些特定的敏感文件。有的敏感文件需要提升特权才能查看,例如Linux系统中的/etc/shadow和/etc/krb5.keytab,但如果配置不当,我们也是有可能访问到的。例如,在笔者的渗透经历中,遇到过几次目标主机的/etc/krb5.keytab没有被设置为仅root可读,因此得以对域内信息进行枚举。除此之外,有些敏感文件是不需要提升特权的,例如web根目录下的配置文件,会包含明文数据库帐号密码。在之后,我们可以利用该凭证访问数据库内数据,或者将密码进行重用。
以下是Windows以及Linux系统上的一些敏感文件,这。如果我们还不是一个穷尽最高权限,可能无法访问到所有的列表敏感文件,那么提权势必会有所帮助。主机上的敏感文件除了操作系统自带的 (例如 shadow,SAM数据库等),还有第三方应用的,例如Web应用,VncViewer, Putty,KeePass等。对于第三方应用,我们不做过多延伸,因为这和安装类的应用息息相是无穷无尽的,我们着重关注于系统自带的重要文件。
Windows
用户目录:
即便是windows平台也可能找到SSH私钥,用户个性化文件
Web应用根目录:
可以从配置文件中提取到其他组件的凭证,访问应用源代码找到可能硬编码的凭证
其他
非常规目录下的xml、powershell、txt、ini、conf等类型的文本文件:可能包含凭证
Linux
/etc 目录
/etc/passwd:passwd: 查看所有用户,有的时候 passwd 会存放用户的密码哈希
/etc/shadow:shadow: 默认需要提升特权查看。如果可读,可以尝试破解帐号密码的哈希值
/etc/crontab: 计划任务
/etc/krb5.keytab:加入域的Linux主机的主机账号的keytab文件。默认需要提升特权,如果可读,可以得到主机账号的NTLM或者密钥值,从而枚举域内信息
keytab 文件
其他keytab文件:这里指域用户的keytab文件,类似于krb5.keytab,域用户的keytab文件包含了用户的NTLM哈希或者密钥值,我们可以用来枚举域内信息或者用于哈希传递。
ccache 文件
/tmp/krb5cc_xxx:即ccache文件。ccache 文件保存了向linux域主机的Kerberos凭证。如果有任何在线的域用户会话,我们可以在 /tmp 中看到 ccache 文件,该文件的格式为 krb5cc_xxxxx。
/etc/crontab:查看计划任务。如果存在自定义的计划任务,可能为我们带来提权向量
home目录
用户的home目录:尤其是SSH私钥、bash历史等
web应用根目录:可以从配置文件中提取到其他组件的凭证、访问应用源代码找到可能硬编码的凭证
非常规目录下的sh、txt、xml等类型的文本文件:可能包含凭证