Privilege escalation is a critical phase in penetration testing where the attacker seeks to gain higher-level permissions on a system or network. This can involve moving from a lower-privileged user account to an administrative or root account, thereby gaining more control over the target environment.
Key Concepts
-
Privilege Levels:
- User-Level Privileges: Basic access rights typically granted to regular users.
- Administrative Privileges: Higher-level permissions that allow for system-wide changes and access to sensitive data.
- Root Privileges: The highest level of access on Unix/Linux systems, equivalent to administrative privileges on Windows.
-
Types of Privilege Escalation:
- Vertical Privilege Escalation: Gaining higher-level privileges than initially granted.
- Horizontal Privilege Escalation: Gaining access to the same level of privileges but for different user accounts.
-
Common Techniques:
- Exploiting Vulnerabilities: Leveraging software bugs or misconfigurations to gain elevated privileges.
- Credential Dumping: Extracting passwords or hashes from memory or storage.
- Social Engineering: Manipulating individuals to gain access to privileged accounts.
- Misconfigured Services: Exploiting services that run with higher privileges than necessary.
Practical Examples
Example 1: Exploiting Sudo Misconfigurations
In Unix/Linux systems, sudo
allows permitted users to execute commands as the superuser or another user. Misconfigurations in the sudoers
file can be exploited for privilege escalation.
Code Snippet
# Check sudo privileges sudo -l # Example output User student may run the following commands on this host: (ALL) NOPASSWD: /usr/bin/vim # Exploit vim to gain root shell sudo vim -c ':!/bin/bash'
Explanation
- Check sudo privileges: The
sudo -l
command lists the allowed commands for the current user. - Identify misconfiguration: The output shows that the user can run
vim
withsudo
without a password. - Exploit: Using
vim
to execute a shell command (:!/bin/bash
) as root.
Example 2: Credential Dumping with Mimikatz
Mimikatz is a tool used to extract plaintext passwords, hashes, PIN codes, and Kerberos tickets from memory in Windows systems.
Code Snippet
# Run Mimikatz to dump credentials mimikatz.exe # Inside Mimikatz shell privilege::debug sekurlsa::logonpasswords
Explanation
- Run Mimikatz: Execute the Mimikatz tool.
- Enable debug privileges:
privilege::debug
grants the necessary permissions to access sensitive information. - Dump credentials:
sekurlsa::logonpasswords
extracts credentials from memory.
Practical Exercises
Exercise 1: Exploiting Sudo Misconfigurations
Objective: Gain root access by exploiting a misconfigured sudoers
file.
Scenario: You have access to a Linux system with a user account student
. The sudoers
file allows student
to run /usr/bin/nano
without a password.
Steps:
- Check the sudo privileges for the
student
user. - Identify the misconfiguration.
- Exploit the misconfiguration to gain a root shell.
Solution:
# Check sudo privileges sudo -l # Example output User student may run the following commands on this host: (ALL) NOPASSWD: /usr/bin/nano # Exploit nano to gain root shell sudo nano /etc/passwd # Add a new root user or modify an existing user to have root privileges
Exercise 2: Using Mimikatz for Credential Dumping
Objective: Extract credentials from a Windows system using Mimikatz.
Scenario: You have access to a Windows system with administrative privileges.
Steps:
- Download and run Mimikatz.
- Enable debug privileges.
- Dump the credentials.
Solution:
# Run Mimikatz to dump credentials mimikatz.exe # Inside Mimikatz shell privilege::debug sekurlsa::logonpasswords
Common Mistakes and Tips
-
Mistake: Ignoring the legality and ethics of using tools like Mimikatz.
- Tip: Always ensure you have explicit permission before performing any penetration testing activities.
-
Mistake: Overlooking system logs that may alert administrators to your activities.
- Tip: Cover your tracks by clearing logs or using stealthier methods.
Conclusion
Privilege escalation is a powerful technique in penetration testing that allows attackers to gain higher-level access within a target system. By understanding and practicing various methods, such as exploiting sudo misconfigurations and using tools like Mimikatz, you can effectively identify and mitigate potential security risks. Always remember to conduct these activities ethically and within the bounds of the law.
Pentesting Course: Penetration Testing Techniques
Module 1: Introduction to Pentesting
Module 2: Reconnaissance and Information Gathering
Module 3: Scanning and Enumeration
Module 4: Exploitation of Vulnerabilities
- Introduction to Exploitation
- Exploitation of Web Vulnerabilities
- Exploitation of Network Vulnerabilities
- Exploitation of System Vulnerabilities