| name | performing-privilege-escalation-on-linux |
| description | Linux privilege escalation involves elevating from a low-privilege user account to root access on a compromised system. Red teams exploit misconfigurations, vulnerable services, kernel exploits, and w |
| domain | cybersecurity |
| subdomain | red-teaming |
| tags | ["red-team","adversary-simulation","mitre-attack","exploitation","post-exploitation","privilege-escalation","linux"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
| d3fend_techniques | ["Restore Object","Network Traffic Policy Mapping","Restore Configuration","Access Modeling","Operational Activity Mapping"] |
| nist_csf | ["ID.RA-01","GV.OV-02","DE.AE-07"] |
Performing Privilege Escalation on Linux
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Overview
Linux privilege escalation involves elevating from a low-privilege user account to root access on a compromised system. Red teams exploit misconfigurations, vulnerable services, kernel exploits, and weak permissions to achieve root. This skill covers both manual enumeration techniques and automated tools for identifying and exploiting privilege escalation vectors.
When to Use
- When conducting security assessments that involve performing privilege escalation on linux
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing
Most Often Missed & How to Confirm
- Run the full enumerator, then verify by hand:
linpeas.sh/LinEnum.sh and pspy (for cron/processes) — the high-signal vectors are easy to skip in the noise.
- Check every vector: SUID/SGID (
find / -perm -4000 2>/dev/null), sudo -l + GTFOBins, Linux capabilities (getcap -r / 2>/dev/null), writable cron/systemd units, writable $PATH/service binaries, NFS no_root_squash, and kernel exploits (match uname -r to known CVEs as a last resort).
- Credentials lying around:
.bash_history, config/.env files, SSH keys, world-readable backups, DB creds.
- Confirm a hit:
id returns uid=0(root) (or you can read /etc/shadow). Don't conclude "no privesc" until SUID, sudo, capabilities, cron, services, and writable paths are all checked — and re-run enumeration after every new credential found.
Prerequisites
- Familiarity with red teaming concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
MITRE ATT&CK Mapping
- T1548.001 - Abuse Elevation Control Mechanism: Setuid and Setgid