由 NCC Group Plc 以开源形式发布 - http://www.nccgroup.com/
开发者:Corey Arthur,[email protected]
http://www.github.com/nccgroup/CollaboratorPlusPlus
本项目根据 AGPL 许可证发布,更多信息请参阅 LICENSE。
从发布版下载。
该工具旨在扩展 Burp Suite 现有的 Collaborator 功能,提供许多提升使用体验的功能,并实现一种身份验证机制来保护私有 collaborator 部署,同时仍兼容所有现有的、用于生成和轮询 Collaborator 上下文的扩展。
CollaboratorPlusPlus 充当 Burp 与所配置的 Collaborator 服务器之间的代理,能够捕获客户端正在使用的 Collaborator 上下文。随后,CollaboratorPlusPlus 可以在一个中央界面中存储并显示所观察到的上下文及其检索到的交互。此外,还可以手动轮询旧上下文,即使在 Collaborator 客户端窗口关闭后也能检索交互。

除了 Burp 扩展之外,Collaborator++ 项目还包含一个可选的服务器端身份验证组件,用于在将传入的轮询请求传递到 Collaborator 服务器之前对其进行身份验证。私有 Burp Collaborator 服务器的所有者可以部署此组件,以将轮询权限限制为仅限知道共享密钥的人。
当 Burp 请求 Collaborator 服务器收到的交互列表时,扩展使用 AES256-CBC 加密方案对轮询请求进行加密,并使用共享密钥生成加密密钥。只要共享密钥正确,身份验证服务器就能解密请求,并将其转发给 Collaborator 服务器,以检索给定 Collaborator 实例的交互。随后,响应会先使用共享密钥加密,再发送回 Burp 客户端。
通过使用共享密钥加密 Burp 客户端与身份验证服务器之间的传输,共享密钥无需随请求一起传输,即使在客户端与服务器之间必须使用 HTTP 通信的情况下,也能保持机密性。
为了方便使用,Collaborator Auth 新增了一些附加设置。
使用 SSL: 切换客户端与服务器之间是否使用 SSL。 请确保你的服务器也在目标端口上配置了 SSL。
忽略证书错误: 禁用证书有效性检查。 允许使用自签名/过期证书。
启用 SSL 主机名验证: 不检查证书主机名是否与目标域匹配。
阻止公共 Collaborator 服务器: 防止意外使用公共 Burp collaborator 服务器。 在 Burp 的主机名解析配置中为 "burpcollaborator.net" 添加一条指向 127.0.0.1 的 DNS 记录。
java -jar CollaboratorPlusPlus.jar 生成默认配置。
java -jar CollaboratorPlusPlus.jar YOURCONFIGFILE.properties注意:要允许对 Collaborator++ Auth 服务器发起 HTTP 和 HTTPS 请求,请创建配置文件的两个副本,一个配置为 HTTP,一个配置为 HTTPS,并运行两个 Collaborator++ Auth 服务器实例。
要启用 SSL,请为服务器生成证书,并使用以下方法之一配置服务器。
对于这两种方法,请确保配置文件中的 enable_ssl 为 true。
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemssl_private_key_path 设置为你的私钥路径。ssl_certificate_path 设置为你的证书路径。ssl_intermediate_certificate_path 设置为你的中间证书路径。此方法纯粹出于兼容性原因而添加。除非另有原因,否则我强烈建议使用简单配置。
ssl_private_key_path 的 serializedValue 设置为空字符串 ""。
openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out certificate.pemopenssl pkcs12 -export -in certificate.pem -inkey privatekey.pem -out polling.p12 -name pollingkeytool -importkeystore -deststorepass NEW_PASSWORD_FOR_KEYSTORE -destkeypass NEW_PASSWORD_FOR_PRIVATE_KEY \
-destkeystore polling.jks -srckeystore polling.p12 -srcstoretype PKCS12 \
-srcstorepass PASS_FROM_PREVIOUS_STEP -alias pollingjava -jar CollaboratorAuth-SERVER.jar CollaboratorServer.properties为防止在未使用 Collaborator Auth 的情况下轮询 Collaborator 服务器,必须限制 Burp Collaborator 的轮询位置。
这可以通过你的防火墙,或通过修改轮询事件的监听接口来完成。
选项 1 - 始终要求使用 Collaborator Auth。
如果你希望强制 Burp Collaborator 实例的用户无论使用何种网络都必须进行身份验证,可以将 Burp Collaborator 配置为仅在本机(即来自 Collaborator Auth)上监听轮询事件。
这可以通过将 Burp Collaborator 的轮询事件监听地址更改为回环接口(127.0.0.1),或使用 iptables 之类的工具丢弃传入请求来实现。
选项 2 - 仅在外部网络上要求使用 Collaborator Auth。
为了在服务器所在同一网络时允许正常使用 Burp Collaborator,同时在外部网络时要求使用 Collaborator Auth,可以将 Burp Collaborator 配置为仅监听来自内部地址的轮询事件。
这可以通过将 Burp Collaborator 的轮询事件监听地址更改为服务器的内部地址(192.168.x.x、10.x.x.x 等)来实现。
为确保 Burp Collaborator 不会处理外部轮询事件,应在面向互联网的防火墙上阻止轮询端口。或者,使用 iptables 丢弃来自外部网络的传入流量。