Enumeration
This document covers basic system enumeration techniques for Linux systems during penetration testing, focusing on techniques covered in the OSCP curriculum.
Table of Contents
System Information
Basic System Information
# Kernel and distribution information
uname -a
cat /proc/version
cat /etc/issue
cat /etc/*-release
lsb_release -a
# Hardware information
cat /proc/cpuinfo
free -h
df -h
# System uptime
uptimeEnvironment Variables
# View all environment variables
env
set
# View specific variables
echo $PATH
echo $HOME
echo $USERUser Enumeration
User Accounts
# Current user information
whoami
id
groups
# All users on the system
cat /etc/passwd
cut -d: -f1 /etc/passwd
# Users with valid shells
grep -v '/nologin\|/false' /etc/passwdUser Activities
# Login history
last
lastlog
# Command history
history
cat ~/.bash_historySudo Access
# Check sudo privileges
sudo -l
# Check sudoers file (requires root)
cat /etc/sudoersNetwork Enumeration
Network Interfaces
# Interface information
ifconfig -a
ip aRouting Information
# Routing tables
route
ip route
netstat -r
# ARP cache
arp -a
ip neighOpen Ports and Connections
# Listening ports
netstat -tuln
ss -tuln
# Established connections
netstat -tunap
ss -tunapNetwork Services
# DNS settings
cat /etc/resolv.conf
cat /etc/hosts
# Firewall rules (may require root)
iptables -LRunning Services
Service Status
# Running services
service --status-all
ps aux
# Specific service status
service service_name statusStartup Scripts
# SysV init scripts
ls -la /etc/init.d/
# RC scripts
ls -la /etc/rc*.d/File System Enumeration
Sensitive Files
# Configuration files
find / -name "*.conf" -o -name "*.config" 2>/dev/null
# Hidden files and directories
find /home -name ".*" -type f 2>/dev/nullFile Permissions
# World-writable files
find / -type f -perm -o+w -not -path "/proc/*" 2>/dev/null
# World-writable directories
find / -type d -perm -o+w -not -path "/proc/*" 2>/dev/null
# SUID binaries
find / -type f -perm -u=s 2>/dev/null
# SGID binaries
find / -type f -perm -g=s 2>/dev/nullRecently Modified Files
# Files modified in the last day
find / -type f -mtime -1 2>/dev/nullScheduled Tasks
Cron Jobs
# System-wide cron jobs
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
ls -la /etc/cron.monthly/
ls -la /etc/cron.weekly/
# User cron jobs
crontab -lInstalled Software
Package Management
# Debian/Ubuntu
dpkg -l
# Red Hat/CentOS
rpm -qa
# General
which command_nameWeb Servers and Applications
# Apache configuration
cat /etc/apache2/apache2.conf
cat /etc/httpd/conf/httpd.conf
# Web roots
ls -la /var/www/
ls -la /srv/www/Basic Privilege Escalation Checks
SUID Files Check
# Find SUID binaries
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/nullWriteable /etc/passwd Check
# Check if /etc/passwd is writeable
ls -la /etc/passwdSudo Rights Check
# Check what commands can be run with sudo
sudo -lPath Injection Check
# Check for writeable directories in PATH
echo $PATH | tr ':' '\n' | xargs -I {} ls -ld {} 2>/dev/nullCron Jobs with Weak Permissions
# Find world-writeable cron files
find /etc/cron* -type f -perm -o+w 2>/dev/nullAutomated Enumeration Tools
Basic Scripts
# LinPEAS (a script to search for possible paths to escalate privileges on Linux)
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | bash
# LinEnum (a script that performs common Linux privilege escalation checks)
curl -L https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh | bashResources
Last updated