Welcome to the v2.1 party!

Welcome to the v2.1 party!

Welcome to the Linux Attack, Detection, and Live Forensics v2.1! After almost 4 years of active development and constant research, I have done for v1.0, I decided to refresh the overall approach a bit. Due to the considerable dynamics of our Linux cybersecurity space and, above all, the active development of the EDRmetry Matrix project, I decided that the new version of the course will be developed in a more modular way, with better navigation and structure. The natural course of action was, of course, to categorize the content into the MITRE ATTACK Framework, exactly what has already been done with the EDRmetry Matrix. Everything came together to the idea of ​​integrating EDRmetry Matrix as a v2.0 core, serving as a central knowledge base for offensive techniques. With this perspective, I began working on individual detection points and forensic artifacts. Thanks to PurpleLabs, I was able to achieve a complete and easily expandable Linux-oriented Purple Teaming Training platform in the playbook format.

Custom Prevention/Response Add-On => v2.1

Detection and Forensics tell you if the attacker is inside. Prevention/Response is what you do ahead of the attack. Mass exploitation is automated and increasingly unpredictable. In principle, assume that right now, at this very moment, across multiple points in your infrastructure, you may already be under a zero-day attack. Malware creation has gotten cheap and disposable, and adversaries create custom offsec tooling and weaponize CVEs within hours of disclosure and scale campaigns easily. Patching windows of critical infrastructures that spanned weeks are now compressed to hours, and often too late. To effectively combat these threats, we must enhance our ability to not only detect malicious activity but also to be informed by the threat-hunting and CTI process to understand the true attacker behavior and, most importantly, develop custom mitigation policies on the fly. The enforcement capabilities that block entire technique classes at the lowest possible level, independent of signatures, hashes, and patch timelines, have never been more important.

The Prevention/Response Add-on for every offensive lab scenario extends the base course with the other side of the kill chain -> stopping/blocking attacks before they complete.

Full scope, not vendor-dependent. Not signature-dependent. Grounded in the same low-level Linux internals that the base course teaches. AI made every attack faster. The Prevention/Response Add-on section makes stopping them practical via custom kernel-level enforcement policies using Tetragon and eBPF LSM C within at least 4 different stages:

  • Baseline Profiling

  • Profile Enforcing

  • Anti-Lateral Movement & Anti-Pivoting

  • Live Patching

Dynamic format

The main style of materials does not change, though. Still, the content takes on an "Attack vs Detection + Forensics + Response" approach in a condensed format. However, I decided to limit the individual instructions to only commands/queries + screenshots in the form of individual generic flows that you can perform alternately. Materials no longer include verbal descriptions such as "log in to TARGET_X" or "execute the command on KALI_X", etc. However, they directly indicate where to perform a given action. This way, I want to encourage you to think even more actively about a given scenario instead of mindlessly copying and pasting commands. I was looking for a way that would allow me, firstly, to easily deliver new content, and secondly, to deliver labs in a dynamic format. What does this mean in practice? It means that everyone can experience these labs from a different perspective.

Hands-on to theory ratio is 90:10

In an era of ubiquitous use of AI engines, I also decided to minimize the theoretical material presented, focusing on practical experience only. This means the course officially triggers the need to consult external sources or query the AI ​​about the details of a given technique. From my perspective, there is no point in rewriting, editing, or creating something that has already been written a long time ago. Therefore, we can safely say that the hands-on to theory ratio is 90:10. That's also why I called this product a Purple Teaming Playbook. It is a treasure trove of offensive and detection/forensics knowledge that shows you many different ways of hands-on actions.

Higher entry level

Of course, nothing comes for free. Personally, I believe that the new approach requires a higher entry threshold in terms of entry skills. I think the new program is dedicated to seasoned professionals who have more than a basic understanding of Linux OS internals. The step-by-step formula significantly eliminates this difficulty, but you really need to know what you are doing. What will you gain? You can really expect a strong injection of fresh knowledge and new hands-on experiences. Saying that, the content is dedicated to experienced Red/Blue/DFIR/SOC/CERT team members who aim to dig deeper into understanding Linux internals and the corresponding threat ecosystem.

Let's move on!

Linux Attack, Detection and Forensics v2.1 - Hands-on Purple Teaming Playbook

Buy nowLearn more

Introduction

  • Welcome to the v2.1 party!
  • Goals / What to expect
  • Active Defense, PT, DE & Assume Breach
  • Linux DFIR Introduction
  • PurpleLabs Dashboard
  • General Course Flow Design
  • Private Virtual Machines
  • Shared Virtual Machines
  • PurpleLabs VM Robot Tool
  • PurpleLabs Network Diagram
  • EDRmetry Matrix
  • AI Integration
  • Why Linux as a target?
  • Linux Threat Landscape
  • Open Source Community
  • Recommended books
  • [ Changelog / Updates ]

Golden Rules - Before You Start Hands-on

  • Explore widely, think broadly
  • Enable Runtime Security/DFIR Agents
  • SOCKS Proxy or SSH Tunneling is required
  • KALI_X or C2_X?
  • TARGET_X - Kernel upgrade/downgrade
  • Multi-tab terminal
  • What is O- ?
  • "Don't" Policies
  • Troubleshooting1

Defensive/DFIR Tooling

  • Host/Exploration of CLI tools
  • Host/Exploration of /proc
  • Host/Exploration of /sys
  • Host/Splunk Forwarder
  • Host/Falco Runtime Security
  • Host/Kunai Runtime Security2
  • Host/Tetragon Runtime Security
  • Host/Tetragon Custom Tracing Policies
  • Custom eBPF C
  • Host/Tracee Runtime Security
  • Host/Jibril Runtime Security [RETIRED]
  • Host/Elastic Security Agent
  • Host/Wazuh Agent
  • Host/Velociraptor Agent
  • Host/FleetDM OSquery Agent
  • Host/Sandfly Security
  • Host/Sysmon4Linux
  • Host/Syslog
  • Host/go-journalctl
  • Host/auditd
  • Host/Linux IR Scripts - SecureProbes
  • Host/UAC
  • Host/Ghostscan
  • Host/Decloaker
  • Host/bpftrace
  • Host/LKRG
  • Host/SELinux
  • Host/Capa
  • Host/Yara / Yara-x Scanning
  • Network/Zeek NIDS
  • Network/Suricata NIDS
  • Network/WAF Modsecurity
  • Memory/RAM acquisition
  • Memory/Volatility3 Framework2
  • Memory/Volatility2 Framework
  • Memory/mquire
  • Commercial Linux EDR/Security Products

Linux EDR Architecture

  • Introduction
  • What is Linux EDR engine?
  • How does Linux EDR work?
  • Core functionalities and key features
  • Visibility Events / Indexes / Data sources
  • Syscalls, Kernel Functions and Tracing
  • Detection logic / rulesets
  • Support for Sigma Rules
  • Engine Modes
  • Dashboards, Analytics & Query language
  • Response, Triage and Forensics
  • Deployment and Operations
  • Alerts / Incidents / Detections
  • Query Language
  • Linux EDR Telemetry Project

Linux MITRE ATT&CK Matrix

  • Introduction

Initial Access - TA0001

  • TA0001 - Introduction
  • EDR-T6261 - Remote UAF Exploitation - user
  • EDR-T6119 - Remote UAF Exploitation - root
  • EDR-T6354 - Remote UAF+Heap Overflow
  • EDR-T6062 - Kafka CVE-2023-25194
  • EDR-T6355 - Langflow API CVE-2025-3248
  • EDR-T6114 - ActiveMQ CVE-2023-46604
  • EDR-T6105 - Apache HTTP CVE-2021-41773
  • O-EDR-T6116 - Tomcat Upload Manager
  • EDR-T6110 - Solr Log4J JNDI CVE-2021-44228
  • EDR-T6233 - XZ Backdoor CVE-2024-3094
  • EDR-T6113 - Spring CVE-2022-22963
  • EDR-T6416 - React2shell - CVE-2025-55182
  • EDR-T6450 - K8S Ingress-NGINX CVE-2025-1974

Execution - TA0002

  • TA0002 - Introduction
  • EDR-T6277 - Built-in System Tools Execution

Persistence - TA0003

  • TA0003 - Introduction
  • EDR-T6395 - LKM LibZeroEvil r00tme
  • EDR-T6394 - LKM Singularity Rootkit
  • EDR-T6100 - LKM Char Device + LPE
  • EDR-T6163 - LKM Reveng Rootkit
  • EDR-T6023 - LKM Diamorphine Rootkit
  • EDR-T6289 - LKM Ftrace Rootkit - Rebellion
  • EDR-T6161 - LKM BDS Ftrace Hooking Rootkit
  • EDR-T6154 - LKM Suterusu Rootkit
  • EDR-T6155 - LKM KoviD Rootkit
  • EDR-T6152 - eBPF Boopkit Rootkit
  • EDR-T6325 - BPFDoor Backdoor
  • EDR-T6454 - eBPF XDP UDP Backdoor
  • EDR-T6151 - eBPF TripleCross Rootkit
  • EDR-T6104 - SSHD Dummy Cipher Suite BYOT
  • EDR-T6235 - LD_PRELOAD Re-adding SSH key
  • O-EDR-T6327 - LD_PRELOAD Father Rootkit1
  • EDR-T6422 - bdvl - Patch Dynamic Linker3
  • EDR-T6423 - SSHD id_ed25519 Key Backdoor
  • EDR-T6170 - Cap_setuid over LD linker
  • EDR-T6139 - Python .pth Extensions
  • O-EDR-T6407 - Shadow SUID binfmt_misc
  • EDR-T6093 - Crontab root Backdoor
  • EDR-T6431 - Supervisor persistence
  • EDR-T6015 - Systemd Backdoor service
  • EDR-T6179 - Udev+atd C2 persistence2
  • O-EDR-T6213 - Malicious RPM package
  • EDR-T6164 - PAM Sneaky Backdoor
  • EDR-T6144 - DNF Package Manager1
  • EDR-T6051 - Modify core_pattern
  • EDR-T6347 - Nginx Shell Module1
  • O-EDR-T6017 - HTTPD mod_backdoor
  • EDR-T6011 - PHP Webshells
  • EDR-T6250 - Backdooring Initramfs [RETIRED]

Privilege Escalation - TA0004

  • TA0004 - Introduction
  • EDR-T6109 - LPE Socket Command Injection
  • EDR-T6360 - UAF Dirty Page Table LPE
  • EDR-T6359 - UAF Cross-cache Dirty Pipe LPE
  • EDR-T6184 - PATH Hijacking
  • O-EDR-T6315 - Add SSH key via iptables-save
  • EDR-T6335 - sudo chroot CVE-2025-32463
  • EDR-T6147 - Docker Escape with socket+Chisel
  • EDR-T6417 - Docker Escape with core_pattern
  • EDR-T6187 - NFS SUID Escalation
  • EDR-T6230 - pkexec CVE-2021-4034
  • EDR-T6231 - DirtyPipe CVE-2022-0847 LPE
  • O-EDR-T6177 - MySQL UDF Command Exec
  • EDR-T6459 - Copy Fail - CVE-2026-31431 LPE
  • EDR-T6462 - Fragnesia LPE
  • EDR-T6463 - pidfd_getfd + ptrace - Read root files
  • O-EDR-T6468 - DirtyClone CVE-2026-43503

Defense Evasion - TA0005

  • TA0005 - Introduction
  • EDR-T6041 - Execute binary listening from a hidden directory
  • EDR-T6039 - File Transfer to a hidden directory
  • EDR-T6138 - Bash HTTP GET data with /dev/tcp
  • EDR-T6173 - Hackshell + OpenSSL download
  • EDR-T6340 - Python HTTP POST and Exec
  • O-EDR-T6363 - Base64 Payload inside ZIP
  • EDR-T6370 - Sneaky_remap + Ptrace() Process Injection in Rust + SSL/TLS callback
  • EDR-T6439 - Malasada .so to Shellcode Loader
  • EDR-T6127 - dd+/proc/PID/mem Injection
  • EDR-T6256 - STOP/CONT Process Injection
  • EDR-T6108 - ASM Injection over /proc/PID/mem
  • EDR-T6037 - Python3 Fileless memfd_create
  • EDR-T6188 - Fileless Execution with memexec
  • EDR-T6171 - Easy Proc Name Masquerading
  • EDR-T6038 - Proc Name Masq with exec
  • EDR-T6140 - Proc Name Masq with prctl()
  • EDR-T6345 - Proc Masq with mount NS
  • EDR-T6046 - LD_PRELOAD Proc Hiding
  • EDR-T6053 - mount --bind process hiding
  • EDR-T6253 - eBPF Process Hider
  • EDR-T6107 - LKM Fileless Remote Loading
  • EDR-T6396 - LKM Hooking init_module
  • EDR-T6293 - LKM Disabling SELinux
  • EDR-T6282 - LKM Reset Yama ptrace_scope
  • EDR-T6167 - BOF Loading with BOF-Stager
  • EDR-T6067 - SSH notty session
  • EDR-T6133 - File immutable with chattr
  • EDR-T6089 - Bashrc File Hiding with ls Alias
  • O-EDR-T6078 - Execute tools via PRoot BYOF
  • EDR-T6455 - Fake TLS ClientHello DPI bypass
  • EDR-T6485 - Falco BPF Map Poisoning

Command and Control - TA0011

  • TA0011 - Introduction
  • EDR-T6123.023 - curlrevshell
  • EDR-T6123.008 - Revshell openssl+/dev/fd/3
  • EDR-T6123.004 - Revshell mkfifo+nc
  • EDR-T6123.022 - Oneshell - echo and chmod
  • EDR-T6123.015 - Revshell Python TLS
  • O-EDR-T6126.002 - Sliver C2 MTLS
  • EDR-T6126.013 - Sliver C2 HTTPS
  • O-EDR-T6126.007 - Sliver C2 DNS
  • O-EDR-T6126.011 - Sliver C2 TCP Pivots
  • EDR-T6212 - Emp3r0r HTTP2 AES Stager C2
  • EDR-T6317 - SOA/ECS DNS C2 Channel
  • EDR-T6448 - ICMP Assembly C2
  • EDR-T6115 - DNS Tunneling with dnscat2
  • O-EDR-T6409 - Venom C2
  • O-EDR-T6126.006 - Platypus C2
  • EDR-T6126.004 - Merlin HTTP2 C2
  • EDR-T6126.010 - Mythic C2 Deployment
  • O-EDR-T6126.003 - Mythic C2 Thanatos ELF
  • O-EDR-T6126.009 - Mythic C2 Medusa Python
  • O-EDR-T6126.005 - Mythic C2 Poseidon ELF
  • O-EDR-T6148 - XOR shell_reverse_tcp Loader
  • EDR-T6117 - UPX Reverse SSH server
  • EDR-T6123.017 - Shell over HTTP streams
  • EDR-T6328 - io_uring Agent

Credential Access - TA0006

  • TA0006 - Introduction
  • EDR-T6242 - eBPF Spy on PAM with python3
  • EDR-T6199 - eBPF pamspy
  • EDR-T6012 - Sniff sshd with strace
  • EDR-T6415 - ptrace() ssh-inject
  • EDR-T6319 - Dump heap memory from Java

Discovery - TA0007

  • TA0007 - Introduction
  • EDR-T6225 - Execute "What Server"
  • EDR-T6040 - Execute LinPEAS from /dev/tcp
  • EDR-T6065 - /proc/PID/ Enumeration
  • EDR-T6251 - Process Snooping with pspy
  • EDR-T6280 - Find loaded eBPF programs/maps
  • EDR-T6218 - Linux VM Check via Hardware
  • EDR-T6204 - Read local file using curl
  • EDR-T6010 - Check my public IP
  • EDR-T6412 - DNS Reconnaissance

Lateral Movement - TA0008

  • TA0008 - Introduction
  • EDR-T6189 - Reverse SOCKS5 proxy
  • EDR-T6357 - Chisel Reverse Socks Proxy
  • EDR-T6255 - KCP - FRP Fast Reverse Proxy
  • EDR-T6033 - SSH Linux Tunneling
  • EDR-T6404 - mTLS Reverse SOCKS5
  • O-EDR-T6387 - SOCKS5 over Tailscale
  • EDR-T6392 - Cloudflared Tunneling
  • EDR-T6131 - Hijacking SSH Client Session
  • O-EDR-T6364 - Hijacking ssh-agent session
  • EDR-T6057 - Execute Port Scanning

Exfiltration - TA0010

  • TA0010 - Introduction
  • EDR-T6120 - Python FTP Upload
  • EDR-T6180 - SMB Data Exfiltration
  • EDR-T6112 - NTP Data Exfiltration
  • EDR-T6137 - HTTP PUT method + transfer.sh
  • EDR-T6181 - Upload/download data over SSHFS
  • O-EDR-T6135 - Upload data over WebDAV
  • EDR-T6234 - pam_exec SSHD Exfiltration
  • EDR-T6445 - PAM XOR VeilCreds
  • O-EDR-T6103 - PAM creds over HTTP Post
  • O-EDR-T6168 - ICMP_exfil + nping
  • EDR-T6418 - LDAP Data Hiding - FreeIPA

Impact - TA0040

  • TA0040 - Introduction
  • O-EDR-T6063 - Ransomware C - lokpack
  • O-EDR-T6252 - Crypto Mining CPU stress
  • O-EDR-T6018 - Ransomware bash+openssl

Automated Attack Emulation Projects

  • PANIX
  • Echos - Network Beacon Emulator
  • MITRE Caldera
  • TTP-Bench
  • Atomic Red Team
  • TTPForge

Attack Flows & Combos

  • Introduction
  • Combo Flows
  • Attack Flow #1
  • Attack Flow #2
  • Attack Flow #3

Linux Hardening

  • Linux Hardening Guide
  • Container Security Hardening

Kubernetes

  • K8S Components
  • K8S Deployment
  • K8S gVisor Deployment
  • Falco Deployment in K8S
  • Tracee Deployment in K8S
  • Kubernetes Threat Matrix
  • Kubectl Fu
  • K8S Simple Pod Deployment
  • K8S Unauthenticated API Access
  • K8S Static Hidden Pod
  • K8S Pod Breakout
  • K8S Mounted secrets
  • K8S Etcd Dump
  • K8S CronJob SSH Persistence
  • K8S Pod Name Similarity
  • K8S Grafana + PostgreSQL RCE
  • K8S Vuln Web App
  • K8S Security Scanners
  • K8S - EDR-T6105 - Apache HTTPD CVE-2021-41773
  • K8S - EDR-T6464 - Tomcat Tribes CVE-2026-34486
  • K8S - EDR-T6062 - Kafka CVE-2023-25194
  • K8S - EDR-T6114 - ActiveMQ CVE-2023-46604
  • K8S - EDR-T6467 - Flask SSTI
  • K8S - EDR-T6355 - Langflow API CVE-2025-3248
  • K8S - EDR-T6416 - React2shell - CVE-2025-55182
  • K8S - EDR-T6113 - Spring CVE-2022-22963
  • K8S - EDR-T6354 - Remote UAF+Heap Overflow

Active Security Research

  • Extra Research
  • Linux Internals
  • LSM Sandboxes / Isolations
  • eBPF
  • eBPF Prevention/Detection
  • Exploitation
  • Kubernetes/Containers
  • Evasion / Bypassing techniques
  • Rootkits
  • Malware
  • OS Security Stacks
  • Memory Forensics
  • Fun
  • Hardening