| Learning Module | Learning Units | Learning Objectives |
| Report Writing for Penetration Testers | Understanding Note-Taking | - Review the deliverables for penetration testing engagements
- Understand the importance of note portability
- Identify the general structure of pentesting documentation
- Choose the right note-taking tool
- Understand the importance of taking screenshots
- Use tools to take screenshots
|
| | Writing Effective Technical Penetration Testing Reports | - Identify the purpose of a technical report
- Understand how to specifically tailor content
- Construct an Executive Summary
- Account for specific test environment considerations
- Create a technical summary
- Describe technical findings and recommendations
- Recognize when to use appendices, resources, and references
|
| Information Gathering | The Penetration Testing Lifecycle | - Understand the stages of a Penetration Test
- Learn the role of Information Gathering inside each stage
- Understand the differences between Active and Passive Information Gathering
|
| | Passive Information Gathering | - Understand the two different Passive Information Gathering approaches
- Learn about Open Source Intelligence (OSINT)
- Understand Web Server and DNS passive information gathering
|
| | Active Information Gathering | - Learn to perform Netcat and Netmap port scanning
- Conduct DNS, SMB, SMTP, and SNMP Enumeration
- Understand Living off the Land techniques
|
| Vulnerability Scanning | Vulnerability Scanning Theory | - Gain a basic understanding of the Vulnerability Scanning process
- Learn about the different types of Vulnerability Scans
- Understand the considerations of a Vulnerability Scan
|
| | Vulnerability Scanning with Nessus | - Install Nessus
- Understand the different Nessus components
- Configure and perform a vulnerability scan
- Understand and work with the results of a vulnerability scan with Nessus
- Provide credentials to perform an authenticated vulnerability scan
- Gain a basic understanding of Nessus plugins
|
| | Vulnerability Scanning with Nmap | - Understand the basics of the Nmap Scripting Engine (NSE)
- Perform a lightweight Vulnerability Scan with Nmap
- Work with custom NSE scripts
|
| Introduction to Web Applications | Web Application Assessment Methodology | - Understand web application security testing requirements
- Learn different types and methodologies of web application testing
- Learn about the OWASP Top10 and most common web vulnerabilities
|
| Web Application Assessment Tools | - Perform common enumeration techniques on web applications
- Understand Web Proxies theory
- Learn how Burp Suite proxy works for web application testing
|
| | Web Application Enumeration | - Learn how to debug Web Application source code
- Understand how to enumerate and inspect Headers, Cookies, and Source Code
- Learn how to conduct API testing methodologies
|
| | Cross-Site Scripting (XSS) | - Understand Cross-Site Scripting vulnerability types
- Exploit basic Cross-Site Scripting
- Perform Privilege Escalation via Cross-Site Scripting
|
| Common Web Application Attacks | Directory Traversal | - Understand absolute and relative paths
- Learn how to exploit directory traversal vulnerabilities
- Use encoding for special characters
|
| | File Inclusion Vulnerabilities | - Learn the difference between File Inclusion and Directory Traversal
- vulnerabilities
- Gain an understanding of File Inclusion vulnerabilities
- Understand how to leverage Local File Inclusion (LFI) to obtain code
- Execution
- Explore PHP wrapper usage
- Learn how to perform Remote File Inclusion (RFI) attacks
|
| | File Upload Vulnerabilities | - Understand File Upload vulnerabilities
- Learn how to identify File Upload vulnerabilities
- Explore different vectors to exploit File Upload vulnerabilities
|
| | Command Injection | - Learn about command injection in web applications
- Use operating system commands for OS command injection
- Understand how to leverage command injection to gain system access
|
| SQL Injection Attacks | SQL Theory and Database Types | - Refresh SQL theory fundamentals
- Learn different DB types
- Understand different SQL syntax
|
| | Manual SQL Exploitation | - Manually identify SQL injection vulnerabilities
- Understand UNION SQLi payloads
- Learn about Error SQLi payloads
- Understand Blind SQLi payloads
|
| | Manual and Automated Code Execution | - Exploit MSSQL Databases with xp_cmdshell
- Automate SQL Injection with SQLmap
|
| Client-Side Attacks | Target Reconnaissance | - Gather information to prepare client-side attacks
- Leverage client fingerprinting to obtain information
|
| | Exploiting Microsoft Office | - Understand variations of Microsoft Office client-side attacks
- Install Microsoft Office
- Leverage Microsoft Word Macros
|
| | Abusing Windows Library Files | - Prepare an attack with Windows library files
- Leverage Windows shortcuts to obtain code execution
|
| Locating Public Exploits | Getting Started | - Understand the risk of executing untrusted exploits
- Understand the importance of analyzing the exploit code before execution
|
| | Online Exploit Resources | - Access multiple online exploit resources
- Differentiate between various online exploit resources
- Understand the risks between online exploit resources
- Use Google search operators to discover public exploits
|
| | Offline Exploit Resources | - Access Multiple Exploit Frameworks
- Use SearchSploit
- Use Nmap NSE Scripts
|
| | Exploiting a Target | - Follow a basic penetration test workflow to enumerate a target system
- Completely exploit a machine that is vulnerable to public exploits
- Discover appropriate exploits for a target system
- Execute a public exploit to gain a limited shell on a target host
|
| Fixing Exploits | Fixing Memory Corruption Exploits | - Understand high-level buffer overflow theory
- Cross-compile binaries
- Modify and update memory corruption exploits
|
| | Fixing Web Exploits | - Fix web application exploits
- Troubleshoot common web application exploit issues
|
| Antivirus Evasion | Antivirus Evasion Software Key Components and Operations | - Recognize known vs unknown threats
- Understand AV key components
- Understand AV detection engines
|
| | AV Evasion in Practice | - Understand antivirus evasion testing best practices
- Manually evade AV solutions
- Leverage automated tools for AV evasion
|
| Password Attacks | Attacking Network Services Logins | - Attack SSH and RDP logins
- Attack HTTP POST login forms
|
| | Password Cracking Fundamentals | - Understand the fundamentals of password cracking
- Mutate wordlists
- Explain the basic password cracking methodology
- Attack password manager key files
- Attack the passphrase of SSH private keys
|
| | Working with Password Hashes | - Obtain and crack NTLM hashes
- Pass NTLM hashes
- Obtain and crack Net-NTLMv2 hashes
- Relay Net-NTLMv2 hashes
|
| Windows Privilege Escalation | Enumerating Windows | - Understand Windows privileges and access control mechanisms
- Obtain situational awareness
- Search for sensitive information on Windows systems
- Find sensitive information generated by PowerShell
- Become familiar with automated enumeration tools
|
| | Leveraging Windows Services | - Hijack service binaries
- Hijack service DLLs
- Abuse Unquoted service paths
|
| | Abusing Other Windows Components | - Leverage Scheduled Tasks to elevate our privileges
- Understand the different types of exploits leading to privilege
- escalation
- Abuse privileges to execute code as privileged user accounts
|
| Linux Privilege Escalation | Enumerating Linux | - Understand files and users privileges on Linux
- Perform manual enumeration
- Conduct automated enumeration
|
| | Exposed Confidential Information | - Understand user history files
- Inspect user trails for credential harvesting
- Inspect system trails for credential harvesting
|
| | Insecure File Permissions | - Abuse insecure cron jobs to escalate privileges
- Abuse insecure file permissions to escalate privileges
|
| | Insecure System Components | - Abuse SUID programs and capabilities for privilege escalation
- Circumvent special sudo permissions to escalate privileges
- Enumerate the system's kernel for known vulnerabilities, then abuse them for privilege escalation
|
| Port Redirection and SSH Tunneling | Port Forwarding with *NIX Tools | - Learn about port forwarding
- Understand why and when to use port forwarding
- Use Socat for port forwarding
|
| | SSH Tunneling | - Learn about SSH tunneling
- Understand how to perform SSH local port forwarding
- Understand how to perform SSH dynamic port forwarding
- Understand how to perform SSH remote port forwarding
- Understand how to perform SSH remote dynamic port forwarding
|
| | Port Forwarding with Windows Tools | - Understand port forwarding and tunneling with ssh.exe on Windows
- Understand port forwarding and tunneling with Plink
- Understand port forwarding with Netsh
|
| Advanced Tunneling | Tunneling Through Deep Packet Inspection | - Learn about HTTP tunneling
- Understand how to perform HTTP tunneling with Chisel
- Learn about DNS tunneling
- Understand how to perform DNS tunneling with dnscat
|
| The Metasploit Framework | Getting Familiar with Metasploit | - Setup and navigate Metasploit
- Use auxiliary modules
- Leverage exploit modules
|
| | Using Metasploit Payloads | - Understand the differences between staged and non-staged payloads
- Explore the Meterpreter payload
- Create executable payloads
|
| | Performing Post-Exploitation with Metasploit | - Use core Meterpreter post-exploitation features
- Use post-exploitation modules
- Perform pivoting with Metasploit
|
| | Automating Metasploit | - Create resource scripts
- Use resource scripts in Metasploit
|
| Active Directory Introduction and Enumeration | Active Directory Manual Enumeration | - Enumerate Active Directory using legacy Windows applications
- Use PowerShell and .NET to perform additional AD enumeration
|
| | Manual Enumeration Expanding our Repertoire | - Enumerate Operating Systems Permissions and logged on users
- Enumerate Through Service Principal Names
- Enumerate Object Permissions
- Explore Domain Shares
|
| | Active Directory Automated Enumeration | - Collect domain data using SharpHound
- Analyze domain data using BloodHound
|
| Attacking Active Directory Authentication | Understanding Active Directory Authentication | - Understand NTLM Authentication
- Understand Kerberos Authentication
- Become familiar with cached AD Credentials
|
| | Performing Attacks on Active Directory Authentication | - Use password attacks to obtain valid user credentials
- Abuse enabled user account options
- Abuse the Kerberos SPN authentication mechanism
- Forge service tickets
- Impersonate a domain controller to retrieve any domain user credentials
|
| Lateral Movement in Active Directory | Active Directory Lateral Movement Techniques | - Understand WMI, WinRS, and WinRM lateral movement techniques
- Abuse PsExec for lateral movement
- Learn about Pass The Hash and Overpass The Hash as lateral movement techniques
- Misuse DCOM to move laterally
|
| | Active Directory Persistence | - Understand the general purpose of persistence techniques
- Leverage golden tickets as a persistence attack
- Learn about shadow copies and how can they be abused for persistence
|
| Assembling the Pieces | Enumerating the Public Network | - Enumerate machines on a public network
- Obtain useful information to utilize for later attacks
|
| | Attacking WEBSRV1 | - Utilize vulnerabilities in WordPress Plugins
- Crack the passphrase of a SSH private key
- Elevate privileges using sudo commands
- Leverage developer artifacts to obtain sensitive information
|
| | Gaining Access to the Internal Network | - Validate domain credentials from a nondomain-joined machine
- Perform phishing to get access to the internal network
|
| | Enumerating the Internal Network | - Gain situational awareness in a network
- Enumerate hosts, services, and sessions in a target network
- Identify attack vectors in a target network
|
| Attacking the Web Application on INTERNALSRV1 | - Perform Kerberoasting
- Abuse a WordPress Plugin function for a Relay attack
|
| | Gaining Access to the Domain Controller | - Gather information to prepare client-side attacks
- Leverage client fingerprinting to obtain information
|