明尼苏达邮件检测工具怎么在python中使用

  介绍

本篇文章给大家分享的是有关明尼苏达邮件检测工具怎么在python中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

概要介绍

明尼苏达,是一款使用python实现的开源邮件快速检测工具库,基于社区框架设计开发.mmpi支持对邮件头,邮件正文,邮件附件的解析检测,并输出json检测报告。

明尼苏达,代码项目地址:https://github.com/a232319779/mmpi pypi项目地址https://pypi.org/project/mmpi/

明尼苏达,邮件快速检测工具库检测逻辑:

<李>

支持解析提取邮件头数据,包括收件的人,发件人的姓名和邮箱,邮件主题,邮件发送时间,以及邮件原始发送IP。通过检测发件人邮箱和邮件原始发送IP,实现对邮件头的检测。

<李>

支持对邮件正文的解析检测,提取文本和html格式的邮件正文,对文本邮件正文进行关键字匹配,对html邮件正文进行解析分析检测,实现探针邮件检测,钓鱼邮件检测,垃圾邮件检测等其他检测。

<李>

支持对邮件附件等解析检测

奥立文件格式:如医生,xls等,提取其中的vba宏代码,模板注入链接
zip文件格式:提取压缩文件列表,统计文件名,文件格式等
rtf文件格式:解析内嵌ole对象等
其他文件格式:如PE可执行文件

<李>

检测方式包括

基础信息规则检测方式
雅苒规则检测方式

适用前提

明尼苏达的分析判定检测前提:邮件系统环境。脱离邮件环境上下文,检测规则的依据就不可靠了。

使用方式

1。安装

,美元pip  install 明尼苏达

备注:windows安装yara-python,可以从这里下载

2。命令执行

,美元mmpi-run  $ email_path

3。快速开始

得到mmpi  import 明尼苏达         def  main ():   emp 才能=,明尼苏达()   emp.parse才能(& # 39;test.eml& # 39;)   时间=report 才能;emp.get_report ()   打印才能(报告)         if  __name__ ==,“__main__":   以前,,main ()

4。输出格式

{   ,//固定字段   “headers"才能:,[],   “body"才能:,[],   “attachments"才能:,[],   “signatures"才能:,[]//,才能动态字段   “vba"才能:,[],   “rtf"才能:,[],   }

工具特色

明尼苏达完全基于python开发,使用python原生电子邮件、html、压缩库进行解析,基于oletool做定制化修改,支持对办公室文档和rtf文档的解析,再结合雅苒实现对其他文件的检测。

项目代码结构

。   ├──明尼苏达   │,,,├──,常见   │,,,├──,核心   │,,,├──,数据   ││,,还以为,,,├──,签名   ││,,还以为,,,│,,,├──,eml   ││,,还以为,,,│,,,├──,html   ││,,还以为,,,│,,,├──,奥立   ││,,还以为,,,│,,,├──,   ││,,还以为,,,│,,,├──,rtf   ││,,还以为,,,│,,,└──,邮政编码   ││,,还以为,,,├──,白色   ││,,还以为,,,└──,亚拉   ││,,还以为,,,,,├──,exe   ││,,还以为,,,,,├──,pdf   ││,,还以为,,,,,└──,vba   │,,,└──,处理   └──,测试   └才能──,样本 <李>

明尼苏达/常见:基础模块,实现基本流程功能

<李>

明尼苏达/核心:核心调度模块,实现插件的加载及相关模块的初始化

<李>

明尼苏达/数据:核心检测模块,实现基本检测规则及雅苒检测规则

<李>

明尼苏达/处理:核心解析模块,实现eml、html、邮政等文件格式的解析

<李>

测试:测试模块

检测规则示例说明

1。PE文件伪装文档类检测
检测规则:压缩包中文件名以。exe结尾,并且中间插入20个以上空格的

class  PEFakeDocument(签名):   authors 才能=,(“ddvv")   时间=sig_type 才能;& # 39;邮政# 39;   name =,才能“pe_fake_document"   severity 才能=9   description =,才能“PE  File  Fake  Document"      def 才能on_complete(自我):   ,,,results =, self.get_results ()   ,,,for  result 结果:拷贝   ,,,,,if  result.get(& # 39;类型# 39;,,& # 39;& # 39;),==,self.sig_type:   ,,,,,,,infos =, result.get(& # 39;价值# 39;,,{}). get(& # 39;信息# 39;,,[])   ,,,,,,,for  info 拷贝信息:   ,,,,,,,,,file_type =, info.get(& # 39;类型# 39;)   ,,,,,,,,,file_name =, info.get(& # 39;名字# 39;)   ,,,,,,,,,space_count =, file_name.count (& # 39;, & # 39;)   ,,,,,,,,,if  & # 39; exe # 39;,==, file_type 以及space_count 祝辞,20:   ,,,,,,,,,,,self.mark (type=皕ip",,标签=self.name, data=https://www.yisu.com/zixun/info.get('名称'))   返回self.has_marks ()   返回所有

明尼苏达邮件检测工具怎么在python中使用