GithubHelp home page GithubHelp logo

classicvalues / mop Goto Github PK

View Code? Open in Web Editor NEW

This project forked from intezer/mop

1.0 0.0 0.0 7.04 MB

MoP - "Master of Puppets" - Advanced malware tracking framework

License: Apache License 2.0

Python 100.00%

mop's Introduction

MoP

Overview

MoP ("Master of Puppets") is an open source framework for reverse engineers who wish to create and operate trackers for new malware found in the wild for research purpose. To make it simple - MoP framework takes care of all the generic malware tracker stuff so the reverse engineer is left with pure reverse engineering work, You only need to implement a simple plugin on top of MoP which describes the malware's network protocol. MoP ships with a variety of workstation simulation capabilities, such as: fake filesystem manager, fake process manager, multi-worker orchestration, TOR integration and more. All aiming to deceive adversaries into interacting with our simulated environment and possibly drop new unique samples. Since everything is done in pure python, no virtual machines or Docker containers are needed and no actual malicious code is executed. All of which enables us to scale up in a click of a button, connecting to potentially thousands of different malicious servers at once from a single instance running on a single laptop. MoP framework comes with a number of pre-built plugins for known RATs, such as NjRAT and Gh0stRAT, Which have been showcased live at BlackHat Arsenal 2019!

Use Cases

  1. Collecting new variant of known malware (old school tracker approach):

Track few specific known malware for long time, fetch updates / new configuration.

  1. Collect new malware samples (honypot-tracker hybrid approach):

Connect to many RAT clients(operators) simultaneously and start collecting unique dropped samples.

  1. War Games

Troll your red-team: serve funny "stolen" files, keylogging, etc...

Setup

git checkout https://github.com/intezer/mop && cd mop
pip3 install -r requirements.txt
orchestrator.py --target-ip X.X.X.X --target-port 5552 --plugin-name plugins.njrat.NjRAT 

Targets Configuration

To add or remove targets you can simply create a new yaml file, follow the format:

targets:
  <unique name 0>:
    ip: <ip>
    port: <port>
    plugin: <plugin>
  <unique name 1>:
    ip: <ip>
    port: <port>
    plugin: <plugin>

After you are done run the orchestrator in the following manner to make sure everything works:

orchestrator.py --targets-config <filename>

PuppetRAT

The framework could be easily extended to support new RATs. If you wish to do so please create new Python file named after the RAT under the 'plugins' directory. This file should contain at least one class which implements a new PuppetRAT, make sure to override both 'register' and 'loop' methods, example:

class MyRAT(PuppetRAT):
    def register(self):
        self._register(winapi.gethostname(),
                       winapi.get_volume_serial_number(),
                       self.vfs.user_home_path)
        
    def loop(self):
        while True:
            self._check_for_new_command()
            time.sleep(30)

Documentation

Dependencies

  • Python 3

Supported Platforms

MoP has been tested on Ubuntu 18.04 and Windows 10

Supported RATs

  • NjRAT(0.7d)
  • Gh0stRAT(3.6)

mop's People

Contributors

davidt99 avatar dependabot[bot] avatar oswalpalash avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.