• Stars
    star
    532
  • Rank 83,377 (Top 2 %)
  • Language HCL
  • Created about 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Labs for Practical Malware Analysis & Triage

PMAT-labs 🔬

Welcome to the labs for Practical Malware Analysis & Triage.


Release Version Course Link EULA student-count


🔴 WARNING 🔴

Read this carefully before proceeding.

This repository contains live malware samples for use in the Practical Malware Analysis & Triage course (PMAT). These samples are either written to emulate common malware characteristics or are live, real world, "caught in the wild" samples. Both categories are dangerous. These samples are to be handled with extreme caution at all times.

  • Do not download these samples to a computer you do not own.
  • Do not execute any of these samples on a computer you do not own.
  • Do not download and/or execute these samples in an environment that you cannot revert to a saved state, i.e. a virtual machine.
  • Practice safe malware handling procedures at all times when using these samples.

By downloading the contents of this repository, regardless of if you have purchased the course or not, you are agreeing to the End User License Agreement. Please refer to EULA.md for more information.


About the Course ✏️📕

If you're here after purchasing the course, welcome! Thank you for supporting me as a content creator. Read on to the next section to learn how the lab repo works.

If you're here not having purchased the course, welcome! The labs for the course are free (and always will be) and are hosted here on GitHub for anyone who is interested. But if you're don't quite know where to begin and/or are interested in learning malware analysis from 9+ hours of high-quality video content, consider buying the course! The videos were made with love to build you into a capable, knowledgeable malware analyst.

If you want to purchase the course and support me as a content creator, please also consider using my affiliate link!

Course Link Course Affiliate Link


🧭 Structure 🗺️

The structure of this repository maps to the course videos. The top directory contains the name of the section, and the subdirectories are the samples in use during that part of the course. For example:

📦labs
 ┣ 📂0-1.HandlingAndSafety
 ┃ ┣ 📜Malware.Calc.exe.7z
 ┃ ┣ 📜md5sum.txt
 ┃ ┣ 📜password.txt
 ┃ ┗ 📜sha256sum.txt
 ┣ 📂1-1.BasicStaticAnalysis
 ┃ ┣ 📂Malware.PackedAndNotPacked.exe.malz
 ┃ ┃ ┣ 📜Malware.PackedAndNotPacked.exe.zip
 ┃ ┃ ┣ 📜md5sum.txt
 ┃ ┃ ┣ 📜password.txt
 ┃ ┃ ┗ 📜sha256sum.txt
 ┃ ┣ 📂Malware.Unknown.exe.malz
 ┃ ┃ ┣ 📜Malware.Unknown.exe.7z
 ┃ ┃ ┣ 📜README.txt
 ┃ ┃ ┗ 📜password.txt
...[snip]...

In the example above, the 0-1.HandlingAndSafety directory contains a zipped copy of Malware.Calc.exe.7z and the other files that sample is provided with. It is used in the Handling and Safety section in the course.

Underneath the Handling and Safety sample, the 1-1.BasicStaticAnalysis directory contains two samples that are used in that section. The whole course follows this structure, so check to see which section you're currently in and then the videos will reference the sample to work on.


Topics 📚

Each section is broken down by topic:

0. Malware Handling and Safety

This section covers basic malware handing and safety, including defanging malware and safe practices for transfer and storage.

1. Basic Static | Basic Dynamic

This section covers initial triage, static analysis, initial detonation, and the primary methodology of basic analysis.

2. Advanced Static | Advanced Dynamic

This section covers advanced malware analysis methodology and introduces Assembly, debugging, decompiling, and inspecting the Windows API at the ASM level.

3. Specialty Class Malware

This section covers different specialty classes of malware like maldocs, C# assemblies, and script-based malware. It also includes a section on mobile platform malware analysis.

4. Bossfights!

The Bossfights pit you against infamous real world samples of malware and require you to do a full analysis.

5. Automation | Rule Writing | Report Writing

This section covers effective report writing, Yara rule writing, and automating the initial stages of triage with Blue-Jupyter.

6. Course Conclusion: Course Final | References | Resources | Further Readings

The course final consists of a capstone in which you will combine all relevant skills in this course to write and publish open-source information about a given sample from the course.

The course conclusion includes further readings, references, and helpful resources for further learning.

Please note: some samples are used multiple times in different sections. Check to make sure which sample the course videos are referencing and that you have the correct one for a given video.


🏋️‍♀️ Challenges 🏋️

The challenge samples in this course are used as mini-capstones for the different sections. Each sample marked as a Challenge includes a set of questions to answer about the sample as well as an answers/ directory. The README in the answers/ directory contains brief answers to each question in the Challenge. Try to get as far as you can without looking at the answers first!


Password 🔒

Each sample is zipped and password protected. The password for all malware samples is infected.


Report Template

In one of the final sections of the course, I teach how to write a simple Malware Analysis report. The template used in that section is here. Feel free to use this as a template for this course or any other malware reports you want to create.

image

Cosmo? 🐈

You may be wondering, why is there a picture of a handsome cat in the root directory?

cosmo.jpeg

That's Cosmo, my cat. He's not very good at malware analysis, so he's along for the ride to learn things. I don't have high hopes for him (he is just a cat after all).

cosmo.jpeg serves two functions.

A Surrogate Data File

The malware samples in this course are built to perform different functions. Some are designed to destroy data. Some are designed to steal it. Some don't touch your data at all.

cosmo.jpeg is a placeholder for the precious, precious data that an average end user may have on their host. Some malware samples in this course will steal him, encrypt him, encode and exfiltrate him, the whole nine yards. So to accurately represent what data theft or destruction might look like, the custom written malware samples in this course are going to target this file specifically.

It's a bit of a hefty file (about 1.6MB), unlike Cosmo himself who is not a hefty cat at all. So it should serve well as a data file placeholder.

Environmental Keying

I wrote the samples for this course from the ground up to be as safe as possible. I am aware that putting malware samples out into the world, regardless of your intention for doing so, imparts risk. So to help mitigate the possibility that these samples could be used maliciously, I've keyed them to this particular file. This is a red team tactic that ensures a payload will only trigger if there are certain identifiers present in the environment. cosmo.jpeg present on the Desktop of FLARE-VM acts as the key for most of the malware samples in this course.

Instructions

When you are done downloading and extracting this lab repository, take cosmo.jpeg and copy it to the desktop of the main user account on the Windows FLARE-VM host. That's all!

More Repositories

1

ShadowSteal

Pure Nim implementation for exploiting CVE-2021-36934, the SeriousSAM local privilege escalation
Nim
194
star
2

RustyProcessInjectors

Just some Rust process injector POCs, nothing weird.
Rust
81
star
3

cve-2022-33891

Apache Spark Shell Command Injection Vulnerability
Python
77
star
4

CobaltNotion

A spin-off research project. Cobalt Strike x Notion collab 2022
51
star
5

the-crown-defcon615

Repo for The Crown: Exploratory Analysis of Nim Malware DEF CON 615 talk
Jupyter Notebook
44
star
6

RustyTokenManipulation

just manipulatin these here tokens yes sir nothing weird
Rust
19
star
7

O-Course

A simple web application vulnerability lab made for the HackerOne Veterans day event
PHP
16
star
8

HuskyHacks

7
star
9

AgentZero

A client-server tool for remote LLMNR/NBTNS poisoning
Python
5
star
10

binary-exploitation-defenses-tsar

Code for An Oral History of Binary Exploitation Defenses
Jupyter Notebook
4
star
11

CVE-2021-38699-Reflected-XSS

Multiple Reflected XSS in TastyIgniter v3.0.7 Restaurtant CMS
3
star
12

CVE-2021-38817-Remote-OS-Command-Injection

Remote OS Command Injection in TastyIgniter v3.0.7 Sendmail Path field
3
star
13

ptx-labs

Lab scripts/POCs for eLS PTX
PowerShell
3
star
14

HuskyHacks.github.io

HTML
3
star
15

dracula-css-notion-super

The Dracula color theme for Notion/Super.so sites. I spent a while on this so I don't want to lose it.
CSS
2
star
16

RustySCShell

i'm going to figure this out if it destroys me
Rust
2
star
17

heyGideon

Scripts for messing with Gideon during CTF/KOTH
Python
1
star
18

CVE-2021-38699-Stored-XSS

Stored XSS in TastyIgniter v3.0.7 Restaurtant CMS
1
star
19

mttaggFerris

Taggart's Intro to Rust Stream
Rust
1
star