长亭百川云 - 文章详情

扫描器开发系列之敏感信息提取

Medi0cr1ty

40

2024-07-13

0x01 写在前面

整体思路:在扫描器的上层代理(使用proxify)做流量镜像储存到es,通过kb做可视化,方便做扫描器整体的流量回溯,敏感信息识别等(使用trufflehog)

  1. 1. 这是剥离出来,通用的方案。如果自己的扫描器需要缝合proxify和trufflehog的话,还有非常多的bug fix的活得干,当然也可以选择将结果输出至自己的系统即可。

  2. 2. 该方案一行代码也不需要写(bash不算.)

0x02 方案介绍

ES部署

密码根据自己的需求设置,版本需要选择7.x是因为proxify用的依赖也是7.x的版本,如果需要用更高版本的需要自己修改并重新编译下proxify

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 \  
  -e "discovery.type=single-node" \  
  -e "xpack.security.enabled=true" \  
  -e "ELASTIC_PASSWORD=jjfujj" \  
  docker.elastic.co/elasticsearch/elasticsearch:7.17.10

proxify配置‍‍‍‍‍‍‍‍‍‍

选择0.0.13版本,新版本bug挺多,选新版本需要自己fix下。

https://github.com/projectdiscovery/proxify/releases/tag/v0.0.13

配置proxify流量储存到es

❯ cat ~/.config/proxify/export-config.yaml  
kafka:  
  addr:""  
  topic:""  
elastic:  
  addr:"127.0.0.1:9200"  
  ssl:false  
  ssl-verification:false  
  username:"elastic"  
  password:"jjfujj"  
  index-name: "jj"

启动

./proxify -store-resposne=/tmp/proxify_logs/

trufflehog配置

下载最新版即可,他是支持直接扫描es的,支持的es是8.x,和上面冲突,且es扫描也有bug需要修,这也是上面为什么让proxify吐出来一份响应的原因。

https://github.com/trufflesecurity/truffleHog

敏感信息扫描以及通知

./trufflehog filesystem /tmp/proxify_logs/ --no-verification --json | jq -r -c '{rule_name:.DetectorName,data:.Raw,filepath:.SourceMetadata.Data.Filesystem.file}' | while read result; do curl -H "Content-Type: application/json" -d $'{"msgtype":"markdown", "markdown":{"content":"bingo:'"${result//\"/\\\"}"'"}}' 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXX'; done

定时通知扫描并清理proxify日志

*/2 * * * * /path/to/trufflehog.sh  
*/2 * * * * find /tmp/proxify_logs/ -type f -mmin +5 -exec rm -f {} \;

可视化

docker run -d -p 5601:5601 -e "ELASTICSEARCH_USERNAME=elastic" \  
  -e "ELASTICSEARCH_PASSWORD=jjfujj" \  
  --link elasticsearch:elasticsearch \  
  docker.elastic.co/kibana/kibana:7.17.10

0x03 功能验证

trufflehog提供了非常多敏感信息验证代码

`cd trufflehog/pkg/sources/   `

`python3 -m http.server 8889`

`   `

`#测试浏览走proxify代理进行验证‍‍‍‍‍`

`curl -x 'http://127.0.0.1:8888' 'http://127.0.0.1:8889/git_test.go'`

后续所有接口重放/漏洞扫描的流量走proxify的代理即可

0x04 写在后面

  • • 需要大量正则匹配(性能消耗)的工作放到端上做对日站的体验影响非常大,非常难受。

  • • 修别人的bug真难受,需求不复杂的话不如自己造轮子。

  • • 实际上开发/运维领域有很多现成的系统也可以完成该需求,不过对于这样一个小的需求来说,过于臃肿了,规则维护也比较麻烦。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2