介绍
Cobra是一款源代码安全审计工具,能够识别多种编程语言源代码中的大部分显著安全漏洞与问题。https://github.com/wufeifei/cobra
Cobra-W作为Cobra 2.0的衍生分支,其发展方向发生了显著变化。将工具重心从尽可能的发现威胁转变为提高发现漏洞的准确率以及精度。https://github.com/LoRexxar/Kunlun-M/tree/cobra-w
Kunlun-Mirror则是在Cobra-W 2.0的基础上进一步演化而来。在经历了长时间的维护与改进后,昆仑镜将工具的发展重心放在安全研究员的使用上,将会围绕工具化使用不断改进使用体验。
该工具已支持对PHP、JavaScript进行语义分析,同时还具备对Chrome扩展、Solidity进行基础扫描的能力。
项目地址
https://github.com/LoRexxar/Kunlun-M.git
特点
与其他代码审计相比:
静态分析:对代码进行静态分析,极大地降低了对环境依赖的需求。
语义分析:通过语义分析技术,对漏洞的有效性进行更为深入的判断。
多种语言支持:支持多种编程语言,满足广泛的审计需求。
开源Python架构:采用开源Python实现,便于用户进行二次开发和定制。
与Cobra相比:
AST深度重写:对抽象语法树(AST)进行了深度重写,显著降低了漏洞的误报率。
跨平台支持:底层API重写后,实现了对Windows、Linux等多平台的全面支持。
增强语义解析:引入多层语义解析、函数回溯以及secret机制等,丰富了语义分析的手段。
JavaScript语义分析:新增对JavaScript的语义分析功能,适用于扫描包含JavaScript代码的项目。
与Cobra-W相比(todo):
AST分析流程优化:计划深度优化AST分析流程,使其更加契合QL(查询语言)的概念,为后续优化奠定基础。
辅助审计流程优化:将深度优化辅助审计流程,以更贴近人类安全研究员的审计习惯和辅助需求。
代码结构重构:致力于深度重构代码结构,确保工具的可拓展性和可优化性的开源理念。
安装方法
普通安装
首先需要安装依赖
pip install -r requirements.txt
进行配置文件迁移
cp Kunlun_M/settings.py.bak Kunlun_M/settings.py
初始化数据库,默认采用sqlite作为数据库
python kunlun.py init initialize
加载规则进数据库(每次修改规则文件都需要加载)
python kunlun.py config load
docker安装
通过docker安装,默认启动web模式
sudo docker build -t kunlun-m -f ./docker/Dockerfile .
配合链接同Mysql可以实现本地扫描,web端查看结果。
用法
CLI 模式
使用scan模式扫描各类源代码
python3 kunlun.py scan -t ./tests/vulnerabilities/
使用config模式加载本地的rule/tamper
加载rule进数据库 python3 kunlun.py config load将数据库中的rule恢复到文件 python3 kunlun.py config recover加载tamper进数据库 python3 kunlun.py config loadtamper将数据库中的tamper恢复到文件 python3 kunlun.py config retamper
使用show模式查看目前的所有rule/tamper
展示所有的rule python3 kunlun.py show rule展示所有php的rule python3 kunlun.py show rule -k php展示所有的tamper python3 kunlun.py show tamper
使用不同子模式的-h可以查看详细的帮助文档。
Web 模式
KunLun-M Dashbroad,并且允许通过apitoken来访问api获取数据
默认9999端口
python3 .kunlun.py web -p 9999
修改中的api-token,通过?token={api_token}访问api获取数据KunLun-M/settings.py
# api profileAPI_TOKEN = "secret_api_token"
API 列表
task/list |
|
task/<int:task_id> |
|
task/<int:task_id>/result |
|
task/<int:task_id>/resultflow |
|
task/<int:task_id>/newevilfunc |
|
rule/list |
|
rule/<int:rule_id> |
|
控制台模式
建议使用console模式
python3 kunlun.py console
_ __ _ ___ ___| | / / | | | / || |/ / _ _ _ __ | | _ _ _ __ | . . || | | | | '_ | | | | | | '_ _____| |/| || | |_| | | | | |___| |_| | | | |_____| | | |_| _/__,_|_| |______/__,_|_| |_| _| |_/ -v2.0GitHub: https://github.com/LoRexxar/Kunlun-MKunLun-M is a static code analysis system that automates the detecting vulnerabilities and security issue.Global commands:help Print this help menuscan Enter the scan modeload <scan_id> Load Scan taskshowt Show all Scan task listshow [rule, tamper] <key> Show rules or tampersconfig [rule, tamper] <rule_id> | <tamper_name> Config mode for rule & tamperexit Exit KunLun-M & save ConfigKunLun-M (root) >
插件模式
phpUnserializeChain
一个自动化寻找php反序列化链的简单模型
如果是旧版本更新并使用该插件扫描同一目标,请使用-r参数renew数据库
python3 .kunlun.py plugin php_unserialize_chain_tools -t {target_path}
入口查找器
一个有趣的小工具,用于解决在审计大量的php代码时,快速发现存在可能的入口页面(或是开发者都遗漏的)。
python3 .kunlun.py plugin entrance_finder -t {target_path} -l 3
原文始发于微信公众号(泷羽Sec-Ceo):Kunlun-Mirror源代码审计工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论