pwnSpoof(来自 Punk Security)可针对常见 Web 服务器生成逼真的伪造日志文件,并支持可自定义的攻击场景。
每个日志包都是独一无二且完全可定制的,非常适合生成 CTF 场景以及培训系列。
您能否找到攻击者会话并构建事件全貌?
pwnSpoof 的诞生源于 Punk Security 为客户提供的威胁狩猎培训演练。该培训演练使用 Splunk(也可使用其他日志分析工具)和 IIS 日志来查找登录暴力破解攻击和命令注入。
pwnSpoof 应用的设计理念如下:
创建一组日志后,您需要将其加载到 Splunk 中,并使用各种技术来回答以下问题:
以下内容将解释如何开始使用 pwnSpoof。
pwnSpoof 使用 Python 编写,并在 python3 下测试通过。无需额外模块,仅使用标准库。
如果出现以下错误消息,请在运行 pwnSpoof 时指定 python3。不支持 Python2。
File "pwnspoof.py", line 176
print("{:6.2f}% ".format(y * x), end="\r", flush=True)
^
SyntaxError: invalid syntax
git clone https://github.com/punk-security/pwnspoof
cd pwnspoof
python pwnspoof.py --help
positional arguments:
{banking,wordpress,generic}
要模拟的应用
options:
-h, --help 显示此帮助信息并退出
--out OUT 输出文件(默认:pwnspoof.log)
--iocs 是否显示攻击者的 IOC 以便更轻松搜索?(默认:False)
日志生成设置:
--log-start-date LOG_START_DATE
日志的起始日期,格式为 YYYYMMDD,例如 "20210727"
--log-end-date LOG_END_DATE
日志的结束日期,格式为 YYYYMMDD,例如 "20210727"
--session-count SESSION_COUNT
要伪造的合法会话数量(默认:2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
每个用户的最大合法会话数(默认:3)
--server-fqdn SERVER_FQDN
覆盖模拟 web 应用的默认 FQDN
--server-ip SERVER_IP
覆盖模拟 web 应用的随机 IP
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
要伪造的服务器类型(默认:IIS)
--uri-file URI_FILE 包含 web URI 的文件,用于覆盖默认值,不包括扩展名
--noise-file NOISE_FILE
包含噪声 URI 的文件,用于覆盖默认值,包括扩展名
攻击设置:
--spoofed-attacks SPOOFED_ATTACKS
要伪造的攻击序列数量(默认:1)
--attack-type {bruteforce,command_injection}
要伪造的攻击序列数量(默认:bruteforce)
--attacker-geo ATTACKER_GEO
用两个字母的区域代码设置攻击者地理位置。使用 RD 表示随机(默认:RD)
--attacker-user-agent ATTACKER_USER_AGENT
设置攻击者的 User-Agent。使用 RD 表示随机(默认:RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
额外的攻击者 IP 地址,逗号分隔(默认:空)。如果希望独占使用此列表,请设置 spoofed-attacks 为 0
以下示例将针对 pwnedbank.co.uk 生成一组用于暴力破解的 IIS 日志。
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
以下示例将针对 pwnedbank.co.uk 生成一组用于命令注入的 NGINX 日志。
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
以下示例将生成包含 5000 个常规会话和 3 个攻击会话的日志。
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
以下示例将生成一组日志并输出攻击者的 IP 地址。
python pwnspoof.py banking --spoofed-attacks 3 --iocs
以下示例将生成一组日志,并仅使用指定的 IP 地址。
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof 旨在生成真实的 Web 攻击日志,并且在这方面表现出色。目前我们专注于重构代码、完善测试套件,以及首次推送至 PyPi,但我们对 pwnSpoof 抱有巨大的雄心。
增加除 banking 之外的更多 Web 应用,为日志提供更多多样性。
增加更多额外且动态的 Web 攻击。
培训视频!
pwnSpoof 的初衷是成为蓝队培训的绝佳工具,因此制作一些培训材料来展示其功能是非常合理的。
不止是 Web 日志
我们期待 pwnSpoof 能够生成各种威胁狩猎日志,例如 SharePoint、OneDrive 和 AzureAD 的 Office365 审计日志。
Blackhat Arsenal
我们已经将 pwnSpoof 提交给 Blackhat Arsenal 进行评审,如果能在今年的 Blackhat London(2021 年)上展示它,那将是非常棒的。
为什么不联系我们提出更多想法,或者向项目贡献代码呢?
本产品包含来源于 https://lite.ip2location.com 的 IP2Location LITE 数据。