跳转到主要内容

Malduck是您的恶意软件分析之旅中的鸭伴

项目描述

:duck: Malduck

安装 ⚙️ | 文档 📚


Malduck是您的恶意软件分析之旅中的鸭伴。它主要基于Roach项目,该项目从mlib库中汲取了许多概念,该库由Maciej Kotowicz创建。分支的目的是使Roach独立于Cuckoo Sandbox项目,但仍支持其内部的procmem格式。

Malduck提供了许多由CERT.pl代码库带来的改进,使得针对恶意软件分析编写的脚本变得更短、更强大。

功能

  • 密码学 (AES, Blowfish, Camelie, ChaCha20, Serpent等)
  • 压缩算法 (aPLib, gzip, LZNT1 (RtlDecompressBuffer))
  • 内存模型对象 (在内存转储、PE/ELF、原始文件和IDA转储上使用相同代码工作)
  • 提取引擎 (用于从文件/转储中提取配置的模块化提取框架)
  • 固定整数类型(如Uint64)和位运算工具
  • 字符串操作(块、填充、打包/解包等)
  • 哈希算法(CRC32、MD5、SHA1、SHA256)

使用示例

AES

from malduck import aes

key = b'A'*16
iv = b'B'*16
plaintext = b'data'*16
ciphertext = aes.cbc.encrypt(key, iv, plaintext)

Serpent

from malduck import serpent

key = b'a'*16
iv = b'b'*16
plaintext = b'data'*16
ciphertext = serpent.cbc.encrypt(key, plaintext, iv)

APLib解压缩

from malduck import aplib

# Headerless compressed buffer
aplib(b'T\x00he quick\xecb\x0erown\xcef\xaex\x80jumps\xed\xe4veur`t?lazy\xead\xfeg\xc0\x00')

固定整数类型

from malduck import DWORD

def sdbm_hash(name: bytes) -> int:
    hh = 0
    for c in name:
        # operations on the DWORD type produce a dword, so a result
        # is also a DWORD.
        hh = DWORD(c) + (hh << 6) + (hh << 16) - hh
    return int(hh)

提取引擎 - 模块示例

from malduck import Extractor

class Citadel(Extractor):
    family = "citadel"
    yara_rules = ("citadel",)
    overrides = ("zeus",)

    @Extractor.string("briankerbs")
    def citadel_found(self, p, addr, match):
        log.info('[+] `Coded by Brian Krebs` str @ %X' % addr)
        return True

    @Extractor.string
    def cit_login(self, p, addr, match):
        log.info('[+] Found login_key xor @ %X' % addr)
        hit = p.uint32v(addr + 4)
        print(hex(hit))
        if p.is_addr(hit):
            return {'login_key': p.asciiz(hit)}

        hit = p.uint32v(addr + 5)
        print(hex(hit))
        if p.is_addr(hit):
            return {'login_key': p.asciiz(hit)}

内存模型对象

from malduck import procmempe

with procmempe.from_file("notepad.exe", image=True) as p:
    resource_data = p.pe.resource("NPENCODINGDIALOG")

如何开始

通过运行以下命令进行安装

pip install malduck

更多文档可以在readthedocs上找到。

Co-financed by the Connecting Europe Facility by of the European Union

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程。

构建分布

malduck-4.4.1-py3-none-any.whl (94.1 kB 查看哈希值)

上传时间: Python 3

由以下组织支持