在 Linux 上的信息搜集
在 Linux 上的信息搜集,这里有两层含义,一是指在Linux域主机上对所在域进行侦查,另一层是指使用 Kali Linux或Linux 或其他Linux攻 Linux 攻击主机对目标域进行侦查。
目前,我们只有一个来自 Web02 的 Beacon,以及 Web01 的 root 权限 Shell,还没有其他 PROD 域中用户的明文凭证。会想 chatjs 应用中出现的用户,我们发现他们都是域用户。
那么就可能存在密码重用,尤其是我们已经破解出 Alice 的密码为 elizabeth。再加上默认情况下,所有域用户都可以访问 SSH,那么我们不妨尝试使用 alice:elizabeth 登陆 Web01 的 SSH 服务。
我们成功登陆了 Web01。并且,我们通过 Chatjs 的利用获得了 root 权限,我们可以灵活地在 alice 与 root 用户之间切换。
在Linux域主机上
有时,面向公众的服务器是 Linux 操作系统,例如 Web 服务器。在利用 Web 应用的漏洞后,我们成功地以普通用户或 root 的身份访问该 Linux 服务器。如果作为普通用户身份,甚至不是域用户,而是 www-data 等服务账户,这时候我们既不知道任意域用户的明文凭证,也无法访问所有文件,因此我们最好的策略是想办法提升到 root 权限,但不排除服务器有一些文件权限的不当配置,使得普通用户也能读取甚至更改一些敏感文件。如果作为root用户,我们可以访问所有的文件了,但依旧没有任何用户的明文密码。在之前的章节里说了,我们需要关注用户的ccache文件,位于/tmp目录下,以及用户与主机的keytab文件。域主机的keytab文件固定位于/etc/krb5.keytab,而用户的keytab文件不固定,取决于用户习惯。
通常来讲,我们可以把发现的这些凭证文件转移到攻击主机上进行后续枚举,但有的加入域的主机会自带一些工具,例如ldapsearch,pbis-open (https://github.com/BeyondTrust/pbis-open),以及系统自带的rpcclient等。
在Linux攻击主机上
我们可以把在Linux域主机上搜集到的 ccache文件以及keytab文件转移到攻击主机上,使用 KeyTabExtract (https://github.com/sosdave/KeyTabExtract) 脚本从keytab文件中提取出NTLM哈希或者密钥值,然后使用 python 版的 BloodHound 即bloodhound-python (https://github.com/fox-it/BloodHound.py) 对目标域进行枚举
python3 keytabextract.py krb5.keytab
bloodhound-python -c ALL -u '[域主机或域用户]' --hashes 00000000000000000000000000000000:[NTLM哈希] -d [域名] -ns [域控制器IP] --dns-tcp
当然也有一些其他的工具协助我们在Linux攻击主机上对域进行枚举甚至进行利用,例如 Impacket (https://github.com/SecureAuthCorp/impacket)系列工具、CME (https://github.com/Porchetta-Industries/CrackMapExec) 工具、pywerview (https://github.com/the-useless-one/pywerview) 等,以及上述提到的pbis-open,ldapsearch,rpcclient等工具,这里不做具体的用法展示,请学员们自行探索用法。