Home

Awesome

<h1>100 MITRE ATT&CK Programming Projects for RedTeamers</h1> <p align="center"> <img src="https://cdn.infrasos.com/wp-content/uploads/2022/11/What-is-a-Red-team-in-cybersecurity.png"> </p>

This repo organizes a full list of redteam projects to help everyone into this field gain knownledge and skills in programming aimed to offensive security exercices.

I recommend you to do them on the programming language you are most comfortable with. Implementing these projects will definitely help you gain more experience and, consequently, master the language. They are divided in categories, ranging from super basic to advanced projects.

If you enjoy this list please take the time to recommend it to a friend and follow me! I will be happy with that :) 🇦🇴.

And remember: With great power comes... (we already know).

Parent Project: <a href="https://github.com/kurogai/100-redteam-projects">100 RedTeam Projects</a>

<h3>Contributions</h3> You can make a pull request for the "Projects" directory and name the file in compliance with the following convention:
[ID] PROJECT_NAME - <LANGUAGE> | AUTHOR

Example:

[91] Web Exploitation Framework - <C> | EONRaider
<br> Consider to insert your notes during the development of any of those projects, to help others understand what dificultes might appear during the development. After your commit as been approved, share to your social medias and make a reference of your work so others can learn, help and use as reference. <h2>Reconnaissance</h2> <h4>Description</h4> Reconnaissance consists of techniques that involve adversaries actively or passively gathering information that can be used to support targeting. Such information may include details of the victim organization, infrastructure, or staff/personnel. This information can be leveraged by the adversary to aid in other phases of the adversary lifecycle, such as using gathered information to plan and execute Initial Access, to scope and prioritize post-compromise objectives, or to drive and lead further Reconnaissance efforts.
IDTitleReferenceExample
1Active Network and Fingerprint ScannerLink:x:
2Social media profiling and data gathering scriptLink:x:
3Dork based OSINT toolLink:x:
4Website vulnerability scannerLink:x:
5WHOISLink:x:
6DNS subdomain enumerationLink:x:
7Spearphishing ServiceLink:x:
8VictimLink:x:
9DNS enumeration and reconnaissance toolLink:x:
<h5>Notable Projects</h5>
<h2>Resource Development</h2> <h4>Description</h4> Resource Development consists of techniques that involve adversaries creating, purchasing, or compromising/stealing resources that can be used to support targeting. Such resources include infrastructure, accounts, or capabilities. These resources can be leveraged by the adversary to aid in other phases of the adversary lifecycle, such as using purchased domains to support Command and Control, email accounts for phishing as a part of Initial Access, or stealing code signing certificates to help with Defense Evasion.
IDTitleReferenceExample
10Dynamic Website Phishing ToolLink:x:
11Eamil based phishing spreadLink:x:
12Malware sample creation and analysisLink:x:
13Replicate a public exploit and use to create a backdoorLink:x:
14Crafting malicious documents for social engineering attacksLink:x:
15Wordpress C2 InfrastructureLink:x:
<h5>Notable Projects</h5>
<h2>Initial Access</h2> <h3>Description</h3> Initial Access consists of techniques that use various entry vectors to gain their initial foothold within a network. Techniques used to gain a foothold include targeted spearphishing and exploiting weaknesses on public-facing web servers. Footholds gained through initial access may allow for continued access, like valid accounts and use of external remote services, or may be limited-use due to changing passwords.
IDTitleReferenceExample
16Exploiting a vulnerable web applicationLink:x:
17Password spraying attack against Active DirectoryLink:x:
18Email spear-phishing campaignLink:x:
19Exploiting misconfigured network servicesLink:x:
20USB device-based attack vector developmentLink:x:
21Spearphishing LinkLink:x:
<h5>Notable Projects</h5>
<h2>Execution</h2> <h3>Description</h3> Execution consists of techniques that result in adversary-controlled code running on a local or remote system. Techniques that run malicious code are often paired with techniques from all other tactics to achieve broader goals, like exploring a network or stealing data. For example, an adversary might use a remote access tool to run a PowerShell script that does Remote System Discovery.
IDTitleReferenceExample
22Remote code execution exploit developmentLink:x:
23Creating a backdoor using shellcodeLink:x:
24Building a command-line remote administration toolLink:x:
25Malicious macro development for document-based attacksLink:x:
26Remote code execution via memory corruption vulnerabilityLink:x:
27Command Line Interpreter for C2Link:x:
28Cron based executionLink:x:
<h5>Notable Projects</h5>
<h2>Persistence</h2> <h3>Description</h3> Persistence consists of techniques that adversaries use to keep access to systems across restarts, changed credentials, and other interruptions that could cut off their access. Techniques used for persistence include any access, action, or configuration changes that let them maintain their foothold on systems, such as replacing or hijacking legitimate code or adding startup code.
IDTitleReferenceExample
29Developing a rootkit for WindowsLink:x:
30Implementing a hidden service in a web serverLink:x:
31Backdooring a legitimate executableLink:x:
32Creating a scheduled task for persistent accessLink:x:
33Developing a kernel-level rootkit for LinuxLink:x:
34LSASS DriverLink:x:
35Shortcut modificationLink:x:
<h5>Notable Projects</h5>
<h2>Privilege Escalation</h2> <h3>Description</h3> Privilege Escalation consists of techniques that adversaries use to gain higher-level permissions on a system or network. Adversaries can often enter and explore a network with unprivileged access but require elevated permissions to follow through on their objectives. Common approaches are to take advantage of system weaknesses, misconfigurations, and vulnerabilities. Examples of elevated access include:

These techniques often overlap with Persistence techniques, as OS features that let an adversary persist can execute in an elevated context.


IDTitleReferenceExample
36Exploiting a local privilege escalation vulnerabilityLink:x:
37Password cracking using GPU accelerationLink:x:
38Windows token manipulation for privilege escalationLink:x:
39Abusing insecure service configurationsLink:x:
40Exploiting misconfigured sudoers file in LinuxLink:x:
41Bypass UACLink:x:
42Startup ItensLink:x:
<h5>Notable Projects</h5>
<h2>Defense Evasion</h2> <h3>Description</h3> Defense Evasion consists of techniques that adversaries use to avoid detection throughout their compromise. Techniques used for defense evasion include uninstalling/disabling security software or obfuscating/encrypting data and scripts. Adversaries also leverage and abuse trusted processes to hide and masquerade their malware. Other tactics’ techniques are cross-listed here when those techniques include the added benefit of subverting defenses.
IDTitleReferenceExample
43Developing an anti-virus evasion techniqueLink:x:
44Bypassing application whitelisting controlsLink:x:
45Building a fileless malware variantLink:x:
46Detecting and disabling security productsLink:x:
47Evading network-based intrusion detection systemsLink:x:
48Parent PID spoofingLink:x:
49Disable Windows Event LoggingLink:x:
50HTML SmugglingLink:x:
51DLL InjectionLink:x:
52Pass The HashLink:x:
<h5>Notable Projects</h5>
<h2>Credential Access</h2> <h3>Descrition</h3> Credential Access consists of techniques for stealing credentials like account names and passwords. Techniques used to get credentials include keylogging or credential dumping. Using legitimate credentials can give adversaries access to systems, make them harder to detect, and provide the opportunity to create more accounts to help achieve their goals.
IDTitleReferenceExample
53Password brute-forcing toolLink:x:
54Developing a keylogger for capturing credentialsLink:x:
55Creating a phishing page to harvest login credentialsLink:x:
56Exploiting password reuse across different systemsLink:x:
57Implementing a pass-the-hash attack techniqueLink:x:
58OS Credential dumping (/etc/passwd and /etc/shadow)Link:x:
<h5>Notable Projects</h5>
<h2>Discovery</h2> <h3>Description</h3> Discovery consists of techniques an adversary may use to gain knowledge about the system and internal network. These techniques help adversaries observe the environment and orient themselves before deciding how to act. They also allow adversaries to explore what they can control and what’s around their entry point in order to discover how it could benefit their current objective. Native operating system tools are often used toward this post-compromise information-gathering objective.
IDTitleReferenceExample
59Network service enumeration toolLink:x:
60Active Directory enumeration scriptLink:x:
61Automated OS and software version detectionLink:x:
62File and directory enumeration on a target systemLink:x:
63Extracting sensitive information from memory dumpsLink:x:
64Virtualization/Sandbox detectionLink:x:
<h5>Notable Projects</h5>
<h2>Lateral Movement</h2> <h3>Description</h3> Lateral Movement consists of techniques that adversaries use to enter and control remote systems on a network. Following through on their primary objective often requires exploring the network to find their target and subsequently gaining access to it. Reaching their objective often involves pivoting through multiple systems and accounts to gain. Adversaries might install their own remote access tools to accomplish Lateral Movement or use legitimate credentials with native network and operating system tools, which may be stealthier.
IDTitleReferenceExample
65Developing a remote desktop protocol (RDP) brute-forcerLink:x:
66Creating a malicious PowerShell script for lateral movementLink:x:
67Implementing a pass-the-ticket attack techniqueLink:x:
68Exploiting trust relationships between domainsLink:x:
69Developing a tool for lateral movement through SMBLink:x:
<h5>Notable Projects</h5>
<h2>Collection</h2> <h3>Description</h3> Collection consists of techniques adversaries may use to gather information and the sources information is collected from that are relevant to following through on the adversary's objectives. Frequently, the next goal after collecting data is to steal (exfiltrate) the data. Common target sources include various drive types, browsers, audio, video, and email. Common collection methods include capturing screenshots and keyboard input.
IDTitleReferenceExample
70Keylogging and screen capturing toolLink:x:
71Developing a network packet snifferLink:x:
72Implementing a clipboard data stealerLink:x:
73Building a tool for extracting browser historyLink:x:
74Creating a memory scraper for credit card informationLink:x:
<h5>Notable Projects</h5>
<h2>Command and Control</h2> <h3>Description</h3> Command and Control consists of techniques that adversaries may use to communicate with systems under their control within a victim network. Adversaries commonly attempt to mimic normal, expected traffic to avoid detection. There are many ways an adversary can establish command and control with various levels of stealth depending on the victim’s network structure and defenses.
IDTitleReferenceExample
75Building a custom command and control (C2) serverLink:x:
76Developing a DNS-based covert channel for C2 communicationLink:x:
77Implementing a reverse shell payload for C2Link:x:
78Creating a botnet for command and control purposesLink:x:
79Developing a convert communication channel using social media platformsLink:x:
80C2 with multi-stage channelsLink:x:
<h5>Notable Projects</h5>
<h2>Exfiltration</h2> <h3>Description</h3> Exfiltration consists of techniques that adversaries may use to steal data from your network. Once they’ve collected data, adversaries often package it to avoid detection while removing it. This can include compression and encryption. Techniques for getting data out of a target network typically include transferring it over their command and control channel or an alternate channel and may also include putting size limits on the transmission.
IDTitleReferenceExample
82Building a file transfer tool using various protocols (HTTP, FTP, etc.)Link:x:
83Developing a steganography tool for hiding data within imagesLink:x:
84Implementing a DNS tunneling technique for data exfiltrationLink:x:
85Creating a convert channel for exfiltrating data through emailLink:x:
86Building a custom exfiltration tool using ICMP or DNSLink:x:
87Exfiltration Over Symmetric Encrypted Non-C2 ProtocolLink:x:
<h5>Notable Projects</h5>
<h2>Impact</h2> <h3>Description</h3> Impact consists of techniques that adversaries use to disrupt availability or compromise integrity by manipulating business and operational processes. Techniques used for impact can include destroying or tampering with data. In some cases, business processes can look fine, but may have been altered to benefit the adversaries’ goals. These techniques might be used by adversaries to follow through on their end goal or to provide cover for a confidentiality breach.
IDTitleReferenceExample
88Developing a ransomware variantLink:x:
89Building a destructive wiper malwareLink:x:
90Creating a denial-of-service (DoS) attack toolLink:x:
91Implementing a privilege-escalation-based destructive attackLink:x:
92Internal defacementLink:x:
93Account Access Manipulation or RemovalLink:x:
94Data encryptionLink:x:
95Resource HijackLink:x:
96DNS Traffic Analysis for Malicious Activity DetectionLink:x:
97Endpoint Detection and Response (EDR) for RansomwareLink:x:
99Network Segmentation for Critical SystemsLink:x:
99Memory Protection Mechanisms ImplementationLink:x:
100SCADA Security Assessment and ImprovementLink:x:
<h5>Notable Projects</h5>

Guidelines

Disclaimer

All of those projects should be used inside controled enviorements, do not attemp to use any of those projects to hack, steal, destroy, evade, or any other illegal activities.

Want to support my work?

<a href="https://www.buymeacoffee.com/heberjuliok" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>

Find me

<a href="https://www.linkedin.com/in/h%C3%A9ber-j%C3%BAlio-496120190/" target="_blank"><img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" alt="Linkedin" height="41" width="174"></a>