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*
工具安装
广大研究人员可以直接访问该项目的【https://github.com/D00Movenok/BounceBack/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:
https://github.com/D00Movenok/BounceBack
https://git-lfs.com/ https://goreleaser.com/install/