关于BounceBack
BounceBack是一款针对红队人员操作的安全性增强工具,该工具功能非常强大,且提供了高度可定制和可配置的具备WAF功能的反向代理,可以帮助红队研究人员隐藏C2、沙箱和扫描工具等红队基础设施。
BounceBack支持通过各种过滤器及过滤器组合,配合实时流量分析来隐藏安全分析行为,以防止被非法访问者检测到。
工具发布的项目库中包含了预配置的屏蔽关键词列表以及阻止/允许的IP地址列表。
规则
BounceBack需要基于规则来匹配流量,当前版本的BounceBack支持下列规则类型:
1、基于布尔(和、或、非)的规则组合;
2、IP和子网分析;
3、IP Geolocation字段检查;
4、反向查询域名探针;
5、原始数据包正则表达式匹配;
6、可扩展的C2配置流量验证;
下面给出的是一个规则配置样例:
rules: - name: default_ip_banlist type: ip params: list: data/banned_ips.txt - *another rule*
参数解析如下:
1、name:唯一规则名称,管道中需要通过名称来使用规则;
2、type:规则类型,例如ip或not::ip;
3、params:传递给基础规则的参数,每一个基础规则都有唯一的参数;
代理
代理部分可以用于配置监听和代理的流量,协议部分用于串联规则以过滤流量,当前版本的BounceBack支持下列协议:
1、HTTPS(Web基础设施);
2、DNS(DNS隧道);
3、原始TCP(带或不带TLS)和UDP(自定义协议);
下面给出的是一个代理配置样例:
proxies: - name: example http proxy type: http listen: 0.0.0.0:80 target: http://127.0.0.1:5002 timeout: 10s # tls: # - cert: test/testdata/tls/cert_bounceback_test.pem # key: test/testdata/tls/key_bounceback_test.pem # - cert: test/testdata/tls/cert_example_com.pem # key: test/testdata/tls/key_example_com.pem # - cert: test/testdata/tls/cert_example_com.pem # key: test/testdata/tls/key_example_com.pem # domain: "*.example.org" filter_settings: reject_action: redirect reject_url: https://www.youtube.com/watch?v=dQw4w9WgXcQ reject_threshold: 5 noreject_threshold: 5 filters: - rule: default_ip_acceptlist action: accept - rule: default_ip_banlist action: reject # - rule: default_ip_allowlist # action: reject - rule: default_geo_rule action: reject - rule: default_lookup_rule action: reject # - rule: example_not_time_rule # action: reject - rule: default_regexp_rule action: reject # - rule: example_malleable_rule # action: reject - *another proxy config*
工具安装
广大研究人员可以直接访问该项目的【Releases页面】下载最新版本的预编译BounceBack,下载完成后解压项目代码,编辑好配置文件即可开始使用。
除此之外,我们还可以将该项目源码克隆至本地:
git clone https://github.com/D00Movenok/BounceBack.git
然后安装goreleaser并手动构建项目代码即可:
goreleaser release --clean --snapshot
工具使用
首先,使用下列命令更新banned_ips.txt文件:
bash scripts/collect_banned_ips.sh > data/banned_ips.txt
然后根据实际情况修改config.yml,配置规则以匹配流量,配置代理并使用规则分析流量。
最后,运行BounceBack即可:
./bounceback
工具参数选项
-c, --config:YAML格式配置文件的路径地址,默认为“config.yml”;
-l, --log:日志文件路径地址,默认为“bounceback.log”;
-v, --verbose:开启Verbose模式日志(0 = info,1=debug,2+=trace);
工具运行截图
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
BounceBack:【GitHub传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022