Outpost 是一个简单工具,用于生成 AssumeRole 的 AWS 配置文件,具备验证账户是否可用的测试能力,以及 ScoutSuite 扫描结果的报告生成器。
Outpost 需要 Python3 和 boto3 才能运行。
安装依赖。
virtualenv -p python3 .
source bin/activate
pip install -r requirements.txt
python outpost.py --help
usage: outpost.py [-h] --command COMMAND [--config-creds] [--assume ASSUME] [--accounts ACCOUNTS] [--primary PRIMARY] [--token TOKEN]
[--secret-key SECRET_KEY] [--access-key ACCESS_KEY] [--directory DIRECTORY] [--risk RISK] [--project PROJECT]
optional arguments:
-h, --help show this help message and exit
--command COMMAND Commands: generate, report, testaccounts
--config-creds Configure creds while using the generate command
--assume ASSUME Optional assume role ARN, use ACCOUNT_ID for placeholder. (i.e. arn:aws:iam::ACCOUNT_ID:role/ROLENAME
--accounts ACCOUNTS File containing account numbers (one account per line)
--primary PRIMARY Primary account used to assume roles
--token TOKEN Primary AWS session token
--secret-key SECRET_KEY
Primary AWS secret access key
--access-key ACCESS_KEY
Primary AWS access key
--directory DIRECTORY
Parent directory of ScoutSuite report(s)
--risk RISK Select finding risk to report: danger, warning
--project PROJECT Project name for report details
Outpost 将以递归方式遍历所有报告文件夹,查找可供解析的 scoutsuite_results*.js 文件。这意味着,如果报告根文件夹包含多个独立的 ScoutSuite 报告,则应将根文件夹作为 --directory 标志提供。
示例结构如下:
~/Engagements/CustomerName/reports/account1/
~/Engagements/CustomerName/reports/account2/
~/Engagements/CustomerName/reports/account3/
要解析全部 3 个账户报告,请提供以下命令:
python outpost.py --command report --directory ~/Engagements/CustomerName/reports/ --project Customer_2022-123
该工具会在 ScoutSuite 结果的根文件夹中创建一个名为 data_archive 的文件夹。它会生成一个名为 <project name>.txt 的文件,其中包含可直接复制/粘贴到报告中的发现。此外,文件夹中还会为每项发现创建补充文件,这些文件概述了存在漏洞的账户和特定资源。