亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mmpi郵件檢測工具怎么在python中使用

發布時間:2021-01-04 14:32:19 來源:億速云 閱讀:167 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關mmpi郵件檢測工具怎么在python中使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

概要介紹

mmpi,是一款使用python實現的開源郵件快速檢測工具庫,基于community框架設計開發。mmpi支持對郵件頭、郵件正文、郵件附件的解析檢測,并輸出json檢測報告。

mmpi,代碼項目地址:https://github.com/a232319779/mmpi,pypi項目地址https://pypi.org/project/mmpi/

mmpi,郵件快速檢測工具庫檢測邏輯:

  • 支持解析提取郵件頭數據,包括收件人、發件人的姓名和郵箱,郵件主題,郵件發送時間,以及郵件原始發送IP。通過檢測發件人郵箱和郵件原始發送IP,實現對郵件頭的檢測。

  • 支持對郵件正文的解析檢測,提取text和html格式的郵件正文,對text郵件正文進行關鍵字匹配,對html郵件正文進行解析分析檢測,實現探針郵件檢測、釣魚郵件檢測、垃圾郵件檢測等其他檢測。

  • 支持對郵件附件等解析檢測

ole文件格式:如doc、xls等,提取其中的vba宏代碼、模板注入鏈接
zip文件格式:提取壓縮文件列表,統計文件名、文件格式等
rtf文件格式:解析內嵌ole對象等
其他文件格式:如PE可執行文件

  • 檢測方式包括

基礎信息規則檢測方式
yara規則檢測方式

適用前提

mmpi的分析判定檢測前提:郵件系統環境。脫離郵件環境上下文,檢測規則的依據就不可靠了。

使用方式

1. 安裝

$ pip install mmpi

備注:windows安裝yara-python,可以從這里下載

2. 命令執行

$ mmpi-run $email_path

3. 快速開始

from mmpi import mmpi


def main():
  emp = mmpi()
  emp.parse('test.eml')
  report = emp.get_report()
  print(report)


if __name__ == "__main__":
  main()

4. 輸出格式

{
	 // 固定字段
  "headers": [],
  "body": [],
  "attachments": [],
  "signatures": []
  // 動態字段
  "vba": [],
  "rtf": [],
}

工具特色

mmpi完全基于python開發,使用python原生email、html、zip庫進行解析,基于oletool做定制化修改,支持對office文檔和rtf文檔的解析,再結合yara實現對其他文件的檢測。

項目代碼結構

.
├── mmpi
│   ├── common
│   ├── core
│   ├── data
│   │   ├── signatures
│   │   │   ├── eml
│   │   │   ├── html
│   │   │   ├── ole
│   │   │   ├── other
│   │   │   ├── rtf
│   │   │   └── zip
│   │   ├── white
│   │   └── yara
│   │     ├── exe
│   │     ├── pdf
│   │     └── vba
│   └── processing
└── tests
  └── samples
  • mmpi/common:基礎模塊,實現基本流程功能

  • mmpi/core:核心調度模塊,實現插件的加載及相關模塊的初始化

  • mmpi/data:核心檢測模塊,實現基本檢測規則及yara檢測規則

  • mmpi/processing:核心解析模塊,實現eml、html、zip等文件格式的解析

  • tests:測試模塊

檢測規則示例說明

1. PE文件偽裝文檔類檢測
檢測規則:壓縮包中文件名以.exe結尾,并且中間插入20個以上空格的

class PEFakeDocument(Signature):
  authors = ["ddvv"]
  sig_type = 'zip'
  name = "pe_fake_document"
  severity = 9
  description = "PE File Fake Document"

  def on_complete(self):
    results = self.get_results()
    for result in results:
      if result.get('type', '') == self.sig_type:
        infos = result.get('value', {}).get('infos', [])
        for info in infos:
          file_type = info.get('type')
          file_name = info.get('name')
          space_count = file_name.count(' ')
          if 'exe' == file_type and space_count > 20:
            self.mark(type="zip", tag=self.name, data=info.get('name'))
            return self.has_marks()
    return None

2. DLL劫持檢測
檢測規則:壓縮包中同時存在exe和dll文件

class DLLHijacking(Signature):
  authors = ["ddvv"]
  sig_type = 'zip'
  name = "dll_hijacking"
  severity = 9
  description = "DLL Hijacking"

  def on_complete(self):
    results = self.get_results()
    for result in results:
      if result.get('type', '') == self.sig_type:
        infos = result.get('value', {}).get('infos', [])
        file_types = [info.get('type') for info in infos]
        if set(['exe', 'dll']).issubset(file_types):
          self.mark(type="zip", tag=self.name)
          return self.has_marks()
    return None

3. RTF漏洞利用檢測
檢測規則:RTF文檔中存在OLE對象,并且class_name是OLE2Link或者以equation開頭

class RTFExploitDetected(Signature):
  authors = ["ddvv"]
  sig_type = 'rtf'
  name = "rtf_exploit_detected"
  severity = 9
  description = "RTF Exploit Detected"

  def on_complete(self):
    results = self.get_results()
    for result in results:
      if result.get('type', '') == self.sig_type:
        infos = result.get('value', {}).get('infos', [])
        for info in infos:
          if info.get('is_ole', False):
            class_name = info.get('class_name', '')
            if class_name == 'OLE2Link' or class_name.lower().startswith('equation'):
              self.mark(type="rtf", tag=self.name)
              return self.has_marks()
    return None

結果示例

結果說明:郵件包含漏洞利用的RTF文檔,屬于惡意郵件。

  • 包括收發件人信息、主題信息、發送時間,郵件正文,以及附件信息。

  • vba和rtf字段為附件檢測基本信息。

  • signatures字段說明命中規則。

{
  "headers": [
    {
      "From": [
        {
          "name": "Mohd Mukhriz Ramli (MLNG/GNE)",
          "addr": "info@vm1599159.3ssd.had.wf"
        }
      ],
      "To": [
        {
          "name": "",
          "addr": ""
        }
      ],
      "Subject": "Re: Proforma Invoice",
      "Date": "2020-11-24 12:37:38 UTC+01:00",
      "X-Originating-IP": []
    }
  ],
  "body": [
    {
      "type": "text",
      "content": " \nDEAR SIR, \n\nPLEASE SIGN THE PROFORMA INVOICE SO THAT I CAN PAY AS SOON AS POSSIBLE.\n\nATTACHED IS THE PROFORMA INVOICE,\n\nPLEASE REPLY QUICKLY, \n\nTHANKS & REGARDS' \n\nRAJASHEKAR \n\n Dubai I Kuwait I Saudi Arabia I India I Egypt \nKuwait: +965 22261501 \nSaudi Arabia: +966 920033029 \nUAE: +971 42431343 \nEmail ID: help@rehlat.co [1]m\n \n\nLinks:\n------\n[1]\nhttps://deref-mail.com/mail/client/OV1N7sILlK8/dereferrer/?redirectUrl=https%3A%2F%2Fe.mail.ru%2Fcompose%2F%3Fmailto%3Dmailto%253ahelp%40rehlat.com"
    }
  ],
  "attachments": [
    {
      "type": "doc",
      "filename": "Proforma Invoice.doc",
      "filesize": 1826535,
      "md5": "558c4aa596b0c4259182253a86b35e8c",
      "sha1": "63982d410879c09ca090a64873bc582fcc7d802b"
    }
  ],
  "vba": [],
  "rtf": [
    {
      "is_ole": true,
      "format_id": 2,
      "format_type": "Embedded",
      "class_name": "EQUATion.3",
      "data_size": 912305,
      "md5": "a5cee525de80eb537cfea247271ad714"
    }
  ],
  "signatures": [
    {
      "name": "rtf_suspicious_detected",
      "description": "RTF Suspicious Detected",
      "severity": 3,
      "marks": [
        {
          "type": "rtf",
          "tag": "rtf_suspicious_detected"
        }
      ],
      "markcount": 1
    },
    {
      "name": "rtf_exploit_detected",
      "description": "RTF Exploit Detected",
      "severity": 9,
      "marks": [
        {
          "type": "rtf",
          "tag": "rtf_exploit_detected"
        }
      ],
      "markcount": 1
    }
  ]
}

以上就是mmpi郵件檢測工具怎么在python中使用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新兴县| 石家庄市| 常宁市| 德格县| 乳源| 元阳县| 云阳县| 焦作市| 江西省| 融水| 马鞍山市| 昌黎县| 丹巴县| 海门市| 彭山县| 滁州市| 丰顺县| 东山县| 双牌县| 洪洞县| 双江| 竹溪县| 阳高县| 潼南县| 门源| 尚义县| 聂拉木县| 浦东新区| 宣汉县| 冕宁县| 抚宁县| 中牟县| 兴文县| 蒙城县| 嫩江县| 枣强县| 蓝田县| 商河县| 铁岭县| 格尔木市| 四会市|