在渗透测试期间获得对远程机器的访问权限后,您可能想要查找有趣的配置文件或二进制文件,以尝试进行权限提升。
该脚本是自包含的,可在 Python3 和 Python2.7 上运行,因此既能兼容较新的机器(默认不附带 Python2),也能兼容较旧的机器。
无需执行多个 find 命令,这个简单的脚本仅需对您的整个磁盘目录树结构执行一次遍历,并通过应用所有谓词(以 _p 结尾的函数,或仅应用于文件的以 _filep 结尾的谓词)来跟踪这些文件。
仍处于开发阶段(WIP),但代码非常紧凑,编写您自己的谓词也非常容易:只需一个接收文件路径并返回布尔值的函数即可。
最后,所有文件集都存储在一个名为 d 的字典中,其键为谓词名称。要访问它,只需执行 python3 -i diskwalk.py。您将被放入一个 Python REPL 中,由于这些是 Python 集合,您可以轻松地进行如下操作
d['executable_files'] & d['writable_files']
获取既可写又可执行的文件集
d['executable_files'] - d['readable_files']
获取可执行但不可读的文件
d['owned_by_nobody_dirs'] | d['owned_by_nobody_files']
获取 nobody 用户拥有的目录和文件的并集
获得的数据将保存到一个经过 pickle 编码并压缩的文件 dump.gz 中,只需将其作为参数传入即可加载数据,避免再次扫描磁盘
python -i diskwalk.py dump.gz
由于 Python pickle 的工作方式,通常的注意事项同样适用:例如,您无法将此文件加载到与生成该文件时所用的不同的 Python 解释器中。