自动化渗透测试框架

0x01 前言

自动化渗透测试这一块是以前毕设的时候在写,毕设的时候仅仅完成了一个小demo,但也是最初版本的一个构想,后面我会开一个github的开源项目叫YinLiScan,把这整个思路最终落地。

0x02 一些随想

要说创新点,其实也只是因为现成的渗透测试工具是各个步骤隔离的,在现成的渗透测试环境下,大部分工具都是独立的,但是我这更加希望把每一个现成的工具去结合起来将这一整个流程做成一个框架,初心是希望大家一起维护这个插件生态。但是在我的毕设的这个版本里面并没有做到非常的的插件生态的兼容性,这也是我当初想法比较初级导致的,后面在写代码审计框架的时候,也终于想到了这一点。

0x03 架构与功能

初代版本在功能设想上是很简单的,其实最大亮点是我想要打造一个自动化的框架。

0x04 模块介绍

Display Module

Display模块主要是用于显示命令行终端的字符串,并且接受外部输入参数。

TaskControll Module

TaskConTroll 模块是框架的核心任务调度模块,框架设计的时候考虑到了多任务进行的状态,然后调用了多进程多线程的方式去实现这些功能,包括任务调度模块是通过动态调用py代码去实现的。

AutoExploit Module

AutoExploit 分为三大模块,Scan,Exploit,Backdoor

每一个模块在代码逻辑上可能没有完全一样,但是基本思路是一样的。

这里为了让无论是Scan,Exploit或者Backdoor,都成为一个可扩展的模块,每一个模块都去规定一个统一的接口,这里的接口不是为了约束插件的自由性,恰恰相反是为了将更多的第三工具通过插件的方式对接进来。

举个例子,常见的扫描工具有Nmap,御剑(很经典的国产工具),masscan等等,这些工具在调用方式上有所不同,但是并不因此影响我们的调用,只要在封装成规定的插件,便可加入整个框架,丰富其扩展性。在框架与插件沟通的层面上我加入了中间层。

History Module

历史纪录存储模块,这里使用文本如xml/yaml/特定文件的方式去存储,在设计之初也考虑到了开箱即用的原则。所以没有强行使用数据库进行存储。

Other Module

设立一个可自由调用的模块是为了应付某些特殊场景,比如,有些可能只需要扫描功能,有些可能只需要Exploit的功能。

0x05 Demo&截图

https://github.com/MrMeizhi/MeizhiExp

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

9 + 7 =