.webp) 
            一款全面且强大可平替xray的扫描器,支持被动主动扫描-漏洞探测
免责声明:
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。
0x01 工具介绍
为什么称之为 Security Copilot,按照我的构想,这不仅仅是一个漏洞扫描器,还是一个集大成的辅助工具。挂上扫描器后,过一遍网站,即使没有漏洞,也要告诉我这个网站的大致信息(指纹、cdn、端口信息、敏感信息、API 路径、子域名等等),这样帮助人工进行进一步的梳理,辅助挖洞,而不是扫描完毕没洞就是完事了,还要人工重新过一遍。
.png)
.png)
0x02 功能简介
主动模式
命令执行
        使用 crawlergo 爬虫实现 主动模式下可以通过指定 --copilot 来进入 Security Copilot 模式,扫描完不退出,方便查看 web 结果页面。
./Jie web -t https://public-firing-range.appspot.com/ -p xss -o vulnerability_report.html --copilot不指定 web 的用户名密码,会自动生成一个yhy/密码,可以在日志中查看,比如下面就是自动生成的。
INFO [cmd:webscan.go(glob):55] Security Copilot web report authorized:yhy/3TxSZw8t8w被动模式(Security Copilot)
被动代理 通过 go-mitmproxy 实现。
Security Copilot
        为什么称之为 Security Copilot,按照我的构想,这不仅仅是一个漏洞扫描器,还是一个集大成的辅助工具。
挂上扫描器后,过一遍网站,即使没有漏洞,也要告诉我这个网站的大致信息(指纹、cdn、端口信息、敏感信息、API 路径、子域名等等),这样帮助人工进行进一步的梳理,辅助挖洞,而不是扫描完毕没洞就是完事了,还要人工重新过一遍。
证书下载
被动代理下HTTPS 网站需要安装证书,HTTPS 证书相关逻辑与 mitmproxy 兼容,并保存在 ~/.mitmproxy 文件夹中。
安装信任根证书, 安装步骤可参考 Python mitmproxy 文档:About Certificates。
启动
 ./Jie  web --listen :9081 --web 9088 --user yhy --pwd 123 --debug        这样会监听 9081 端口,web 界面(SecurityCopilot)开放会在 9088 端口浏览器指定代理 9081,或者联动 burp。

.webp)
通过主动或者被动收集过来的流量插件内部会判断是否扫描过 (TODO 扫描插件是否要按某个顺序执行)
信息收集
- 网站指纹信息 
- 每个网站请求的 url 收集聚合展示 
- 网站域名信息: cdn/waf/cloud、解析记录 
- Jwt 自动爆破 (todo 根据域名自动生成字典) 
- 敏感信息 
- 主动的路径扫描(bbscan 规则 ,新增了一个指纹字段,存在指纹时只会扫描对应的规则,比如 对 php 网站就不会扫描 springboot 的规则) 
- 端口信息 
- 收集域名、ip、api 
插件
有的扫描会对比收集的指纹信息进行语言环境识别,防止对 php 的网站调用 java 的扫描插件
扫描目录结构
scan目录为扫描插件库,每个目录的插件会处理不同情形
- PerFile 针对每个url,包括参数啥的 
- PerFolder 针对url的目录,会分隔目录分别访问 
- PerServer 对每个domain 的,也就是说一个目标只扫描一次 
逻辑漏洞 TODO
添加多个用户 cookie 进行越权检测
0x03更新介绍
修复 sqlapi 配置文件指定不生效的问题控制进度信息显示修复 web 页面修改插件不生效的问题更新 README 和 帮助信息; 新增 -p all 开启全部插件update README0x04 使用介绍
使用./Jie web -h获取详细介绍,一些配置可以通过 Jie_config.yaml修改,也可以通过http://127.0.0.1:9088/的配置界面修改(web 界面修改后会实时更新到配置文件中)
Flags:      --copilot          Blocking program, go to the default port 9088 to view detailed scan information.                         主动模式下,可以通过指定该参数阻塞程序,扫描完不退出程序,可以到 web 端口查看信息。  -h, --help             help for web      --listen string    use proxy resource collector, value is proxy addr, (example: 127.0.0.1:9080).                         被动模式监听的代理地址,默认 127.0.0.1:9080      --np               not run plugin.                         禁用所有的插件  -p, --plugin strings   Vulnerable Plugin, (example: --plugin xss,csrf,sql,dir ...)                         指定开启的插件,当指定 all 时开启全部插件      --poc strings      specify the nuclei poc to run, separated by ','(example: test.yml,./test/*).                         自定义的nuclei 漏洞模板地址      --pwd string       Security Copilot web report authorized pwd.                         web页面登录密码,不指定会随机生成一个密码      --show             specifies whether the show the browser in headless mode.                         主动扫描下是否显示浏览器      --user string      Security Copilot web report authorized user, (example: yhy).]                         web页面登录用户名,默认为yhy (default "yhy")      --web string       Security Copilot web report port, (example: 9088)].                         web页面端口,默认9088 (default "9088")
Global Flags:      --debug           debug  -f, --file string     target file                        主动扫描目标列表,每行一个  -o, --out string      output report file(eg:vulnerability_report.html)                        漏洞结果报告保存地址      --proxy string    proxy, (example: --proxy http://127.0.0.1:8080)                        指定 http/https 代理  -t, --target string   target                        主动扫描目标,被动下不需要指定与 Burp 联动
Burp 设置上游代理
.webp)
这里的上游代理 Intruder 和 Repeater 模块的流量也会走扫描器
项目地址
github
https://github.com/yhy0/Jiehttps://lp.lmboke.com/Jie-main.zip 
            
        