开发背景
1、团队协作的优势是什么?如何能最大效率的保证只要有一个人会等于所有人都会?
可能,需要武器化落地
2、市面上的POC框架作品很多,但对于许多0开发基础的人,几十行代码足够有难度了,如何才能有手就行?
可能,需要模块极简化
3、我们使用poc工具的初衷是什么?如何才能懒惰且快速的完成目标框架的漏洞批量检测?唉?为什么会有这种想法?
当然!是想更懒一点,梦想成为一只白嫖怪!
需求总结:懒 + 简 = ?
命名背景
在很久很久以前,有个游戏叫做DOTA,里面有一把四处挖洞的小铲子叫Meppo,后来他发现原来更多的小铲子就可以挖到更多的洞!
Meppo:你礼貌嘛?
框架介绍
POC编写:
废话不多说,先看工作量:
#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
import requests
from Config.config_requests import headers
requests.packages.urllib3.disable_warnings()
########################################################################################################################
# 脚本信息
NAME='Demo'
AUTHOR="RabbitMask"
REMARK='robots.txt敏感信息泄露'
FOFA_RULE='对应漏洞框架的fofa语法'
########################################################################################################################
# 漏洞检测模块
def poc(target):
result={}
try:
req = requests.get(target+'/robots.txt', headers=headers, timeout=3, verify=False)
if "Disallow" in req.text:
result['target'] = target
result['poc'] = NAME
result['xxx'] = '按需求随便写,删了都行'
return result
except:
pass
总结一下,需要一个脚本的介绍,需要一个poc编写,剩下的return给框架就可以了,一切遵循最小工作量原则。
框架使用
帮助python Meppo.py -h
_____
/ \ ____ ______ ______ ____
/ \ / \_/ __ \\____ \\____ \ / _ \
/ Y \ ___/| |_> > |_> > <_> )
\____|__ /\___ > __/| __/ \____/
\/ \/|__| |__|
闭源漏洞检测框架 Meppo | By WingsSec | V 1.0
[ 22 MOUDLES 46 PAYLOADS ]
usage: Meppo.py [-h] [-l] [-ll] [-m MOUDLE] [-u URL] [-f FILE] [-poc POC]
optional arguments:
-h, --help show this help message and exit
-l list
-ll list all
-m MOUDLE moudle
-u URL target url
-f FILE the file of target list
漏洞检测模块:
-poc POC 漏洞检测
步骤 python Meppo.py
模块列表python Meppo.py -l
POC列表python Meppo.py -ll
指定模块POC列表python Meppo.py -m Seeyon -l
漏洞检测
指定POC单目标检测 python Meppo.py -poc CNVD_2019_19299 -u http://127.0.0.1
指定模块单目标检测 python Meppo.py -m Seeyon -u http://127.0.0.1
指定POC批量检测 python Meppo.py -poc CNVD_2019_19299 -f target.txt
指定模块批量检测 python Meppo.py -m Seeyon -f target.txt
框架设计
日志使用logging模块实现自动存储,记录扫描日志
随机UA头模块UserAgent BUG太多,相关代码注释,采用字典库代替,网络好的同学可自行释放方案。
索引自建功能,在脚本运行的时候,会自动遍历moudle目录,并生成Moudle_index索引文件,如脚本无变动,可在Meppo.py
中注释索引重建功能以提高框架性能。
框架批量扫描集成多线程设计,配合动态函数和文件异步回调完成。
细节上框架无论是批量还是单目标都集成了url格式校正功能,懒人福音,手残党专属。
def urlcheck(url):
if 'http' in url:
return url
else:
return ('http://'+str(url))
另外,框架内置工作量统计脚本,Tools.ReBuild.py
默认处于dev格式,可快速统计脚本提交数量!精确分析贡献度!
def get_author(moudle,payload):
return import_module('Moudle.'+moudle+'.'+payload).AUTHOR
JDQ 4
Trans 2
RabbitMask 7
境心 9
Joker 11
Faith 13
彩蛋模块:脚本预留4个字段,FOFA_RULE目前并未由框架调度
稍加修改即可为CNVD贡献自己的光和热,但我就不改 /手动狗头
# 脚本信息
NAME='Demo'
AUTHOR="RabbitMask"
REMARK='robots.txt敏感信息泄露'
FOFA_RULE='对应漏洞框架的fofa语法'
写在后面
虽然本文为演示部分,但因为这个项目设计之初是闭源设计,所以Moudle中0day部分暂未剥离,目前开源的只有框架,Moudle部分后续整理后放出,也欢迎各位小伙伴commit~此项目将转为开源持续维护。
项目地址:https://github.com/rabbitmask/Meppo
这是Wings安全团队成立以来的第一篇文章,在过去的几个月里我们准备了很多,终于在这一天以“新人”的身份和大家重新认识,在接下来的日子请多多指教。