D00Movenok/BounceBack
GitHub: D00Movenok/BounceBack
BounceBack 是一款具备 WAF 功能的反向代理工具,旨在通过多层过滤机制隐藏红队基础设施以防止被蓝队或扫描器发现。
Stars: 1069 | Forks: 106
# BounceBack
[](/LICENSE)
[](https://goreportcard.com/report/github.com/D00Movenok/BounceBack)
[](https://github.com/D00Movenok/BounceBack/actions/workflows/tests.yml)
[](https://github.com/D00Movenok/BounceBack/actions/workflows/codeql.yml)
[](https://github.com/D00Movenok/BounceBack/wiki)
↕️🤫 用于红队行动安全的隐蔽重定向器。

## 概述
BounceBack 是一个功能强大、高度可配置和可定制的反向代理,具有 WAF 功能,用于向蓝队、沙箱、扫描器等隐藏您的 C2/网络钓鱼/等基础设施。它通过各种过滤器及其组合进行实时流量分析,从而将您的工具隐藏在非法访问者之外。
该工具随附预配置的阻止词列表以及阻止和允许的 IP 地址列表。
有关工具使用的更多信息,您可以访问 [项目 wiki](https://github.com/D00Movenok/BounceBack/wiki)。
## 功能
* 高度可配置和可定制的过滤器管道,采用基于布尔值的规则连接,能够避开最敏锐的蓝队视线,隐藏您的基础设施。
* 轻松扩展的项目结构,每个人都可以为自己的 C2 添加规则。
* 集成并策划了大量与 IT 安全供应商相关的 IPv4 地址池和范围的黑名单,结合 IP 过滤器,禁止它们使用/攻击您的基础设施。
* Malleable C2 Profile 解析器能够根据 Malleable 配置验证入站 HTTP(s) 流量,并拒绝无效数据包。
* 开箱即用的域前置 支持让您可以进一步隐藏您的基础设施。
* 能够根据 IP 地理位置反向查找数据检查请求的 IPv4 地址,并将其与指定的正则表达式进行比较,以排除连接到允许的公司、国家、城市、域等之外的同行。
* 可以在任何时间段允许/禁止所有传入请求,因此您可以配置工作时间过滤器。
* 支持在一个 BounceBack 实例中运行具有不同过滤器管道的多个代理。
* 详细的日志记录机制使您可以跟踪所有传入请求和事件,以便分析蓝队行为和调试问题。
## 规则
规则的主要思想是 BounceBack 如何匹配流量。该工具目前支持以下规则类型:
* 基于布尔值(and、or、not)的规则组合
* IP 和子网分析
* IP 地理位置字段检查
* 反向查找域探测
* 原始数据包正则表达式匹配
* Malleable C2 配置文件流量验证
* 工作(或非工作)时间规则
可以轻松添加自定义规则,只需注册您的 [RuleBaseCreator](/internal/rules/rules.go#L9) 或 [RuleWrapperCreator](/internal/rules/rules.go#L3)。请参阅已创建的 [RuleBaseCreators](/internal/rules/base_common.go) 和 [RuleWrapperCreators](/internal/rules/wrappers.go)
规则配置页面可以在[这里](https://github.com/D00Movenok/BounceBack/wiki/1.-Rules)找到。
## 代理
代理部分用于配置监听和代理流量的位置、使用的协议以及如何将规则链接在一起以进行流量过滤。目前,BounceBack 支持以下协议:
* 用于您的 Web 基础设施的 HTTP(s)
* 用于您的 DNS 隧道的 DNS
* 用于自定义协议的 Raw TCP(带或不带 tls)和 UDP
可以轻松添加自定义协议,只需[在管理器中](/internal/proxy/manager.go)注册您的新类型。示例代理实现可以在[这里](/internal/proxy)找到。
代理配置页面可以在[这里](https://github.com/D00Movenok/BounceBack/wiki/2.-Proxies)找到。
## 安装
只需从[发布页面](https://github.com/D00Movenok/BounceBack/releases)下载最新版本,解压,编辑配置文件即可继续。
如果您想从源代码构建,请克隆它(别忘了 [GitLFS](https://git-lfs.com/)),[安装 goreleaser](https://goreleaser.com/install/) 并运行:
```
goreleaser release --clean --snapshot
```
## 使用
1. **(可选)** 更新 `banned_ips.txt` 列表:
bash scripts/collect_banned_ips.sh > data/banned_ips.txt
2. 根据您的需求修改 `config.yml`。配置 [规则](https://github.com/D00Movenok/BounceBack/wiki/1.-Rules) 以匹配流量,配置 [代理](https://github.com/D00Movenok/BounceBack/wiki/2.-Proxies) 以使用规则分析流量,以及配置 [全局设置](https://github.com/D00Movenok/BounceBack/wiki/3.-Globals) 用于深度规则配置。
3. 运行 BounceBack:
./bounceback
标签:C2 基础设施, DNS解析, EVTX分析, Go 语言, IP 黑名单, Malleable C2 Profile, Streamlit, WAF, Web 应用防火墙, 反向代理, 域名前置, 安全合规, 安全防护, 底层编程, 开源项目, 日志审计, 私有化部署, 网络代理, 访问控制, 防御规避, 隐蔽重定向