mirror of https://gitee.com/openkylin/genmai.git
83 lines
3.3 KiB
Markdown
83 lines
3.3 KiB
Markdown
# genmai
|
||
|
||
#### 介绍
|
||
genmai是一款开源**主机漏洞扫描**,**网络漏洞扫描**以及**基线扫描**功能的安全扫描框架。
|
||
genmai框架原理是通过先创建sandbox,将要检测的漏洞POC/EXP在sandbox上通过Yaml解析器以及Json解析器将对应文件解析,接着在存入缓存中,在通过远程评估和本地评估的形式进行检测并生成分析报告。
|
||
大致内如可参考下图:
|
||
![](./image/frameworker.png)
|
||
#### 名字
|
||
genmai这个名字来源于中国医术中的术语——“诊脉”,音标为“[dʒen'maɪ]”。脉诊是以手指按切病人动脉以了解病情的内在变化也称切脉。
|
||
#### 软件架构
|
||
amd64
|
||
|
||
#### 目录说明
|
||
* data : 一些数据文件的目录
|
||
* docs : 文档目录,包括设计文档,说明文档
|
||
* examples : 使用示例目录
|
||
* image : 存放图片
|
||
* misc : 其他
|
||
* utils : 实用程序/脚本目录
|
||
* tools: 辅助工具
|
||
* z-container : 临时存放目录
|
||
* z-testsuit : 存放测试小程序的目录
|
||
* z-trash : 垃圾桶目录
|
||
#### 框架优势
|
||
1. 拥有UI界面,便于操作使用。
|
||
2. 使用sandbox,在sandbox上进行系统/内核漏洞检测,避免了一些具有破坏性的系统或内核的POC/EXP对实体主机进行破坏。
|
||
3. 创建协程池与请求池,通过协程调度,同步进行POC/EXP请求、检测和认证,加快了漏洞认证的效率。
|
||
4. 对与内核与系统模块,使用了PWN模块进行检测,使得检测更加准确。
|
||
5. 拥有远程评估功能,多台主机同时进行检测。
|
||
6. 能够生成方便的安全报告,便于人工进行审核。
|
||
|
||
#### 功能模块
|
||
功能模块主要分为6个大部分:
|
||
1. 漏洞检测:
|
||
漏洞检测主要是通过检测系统以及内核方面的漏洞,大致以一些公开的CVE/CNVD以及公开的内部挖局的KVE作为工具检测poc/exp;web漏洞方面主要是检测无需登录的RCE、弱密码(SSH,MYSQL,FTP等)、未授权等漏洞。
|
||
2. FUZZ测试:
|
||
FUZZ测试主要对内核以及服务接口等进行FUZZ测试。
|
||
3. 安全基线检测:
|
||
基线的安全检测通过检测可疑进程、可疑文件、可疑日志、OS配置、网络配置以及应用配置等。
|
||
4. 评估:
|
||
分为本地检测与远程检测,本地检测主要是通过SSH以及SCP进行对主机的远程检测,
|
||
5. 补丁信息:
|
||
为使用者提供修复建议,以及补丁的信息。
|
||
6. 工具更新
|
||
用户可以直接使用update获取最新版本的工具。
|
||
|
||
![](./image/mod.png)
|
||
|
||
#### 开发规划
|
||
1. 完成主体框架的开发,主要包括sandbox,requestpool,coprogrampool,cache,jsonparser,yamlparser,interpreter,remotecheck
|
||
2. 第一阶段先完成kernel模块的开发,使工具内够检测内核的漏洞。
|
||
3. 第二阶段完成安全基线检测的开发,能够使用基线扫描。
|
||
4. 第三阶段完成system模块开发,能够检测系统漏洞。
|
||
5. 第四阶段完成web漏洞模块开发,能检测web方面漏洞
|
||
6. 第五阶段自动更新功能开发
|
||
7. 第六阶段UI界面开发
|
||
8. 第七阶段补丁信息功能导入
|
||
9. 第八阶段FUZZ功能开发,完成FUZZ检测
|
||
|
||
#### 编译说明
|
||
```bash
|
||
# make
|
||
or
|
||
# make build
|
||
```
|
||
|
||
#### 清理工程
|
||
```bash
|
||
# make clean
|
||
or
|
||
# make realclean
|
||
```
|
||
|
||
#### 参与贡献
|
||
|
||
1. Fork 本仓库
|
||
2. 新建 Feat_xxx 分支
|
||
3. 提交代码
|
||
4. 新建 Pull Request
|
||
|
||
|
||
|