Volvemos de nuevo en Byte Mind, en este caso vamos a dejar una cheatsheet de comandos para enumerar un sistema linux.
La enumeración es un proceso en el cual se obtiene información acerca de un sistema con el fin de conseguir escalar privilegios en el mismo.
A continuación dejo una lista de algunos comandos muy útiles para lograr obtener permisos de root.
Índice
Kernel, Sistema operativo e Información del dispositivo
Comando | Resultado |
uname -a |
Imprime toda la información disponible del sistema |
uname -r |
Release del kernel |
uname -m |
Arquitectura del kernel de linux (32 o 64 bits) |
uname -n |
Hostname del sistema |
hostname |
Hostname del sistema |
cat /proc/version |
Información del kernel |
cat /etc/*-release |
Información de la distribución |
cat /etc/issue |
Información de la distribución |
cat /proc/cpuinfo |
Información de la CPU |
df -a |
Información del sistema de ficheros |
df -h |
Muestra los puntos de montaje del sistema |
cat /etc/fstab |
Muestra información de la configuración de los puntos de montaje |
Información de usuarios, grupos y permisos
Comando | Resultado |
cat /etc/passwd |
Lista todos los usuarios del sistema |
cat /etc/group |
Lista todos los grupos del sistema |
cat /etc/shadow |
Muestra los hashes de los usuarios (se requieres privilegios elevados) |
for i in $(cat /etc/passwd 2>/dev/null);do id $i;done 2>/dev/null |
Enumera todos los uid y sus respectivos grupos |
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' |
Lista todas las cuentas con privilegios elevados |
finger |
Usuarios logueados actualmente |
pinky |
Usuarios logueados actualmente |
users |
Usuarios logueados actualmente |
who -a |
Usuarios logueados actualmente |
w |
Usuarios logueados actualmente y que estan haciendo |
last |
Muestra los ultimos usuarios logueados |
lastlog |
Muestra cuado se logueo un usuario por última vez |
lastlog -u username |
Muestra cuando se logueo por última vez el usuario indicado |
lastlog | grep -vi "never" |
Muestra el último acceso de los usuarios que han accedido alguna vez |
whoami |
Usuario actual |
id |
Información del usuario actual |
cat /etc/sudoers |
Muestra información de los usuarios con permisos de root (requiere privilegios elevados) |
sudo -l |
Muestra si el usuario actual puede realizar alguna acción como root |
sudo -l 2>/dev/null | grep -w 'nmap | perl | 'awk' | 'find' | 'bash' | 'sh' | 'man' | 'more' | 'less' | 'vi' | 'vim' | 'nc' | 'netcat' | python | ruby | lua | irb' | xargs -r ls -la 2>/dev/null |
Se comprueba si el usuario tiene permisos de root para algunas herramientas interesantes |
Información del entorno
Comando | Resultado |
env |
Muestra las variables de entorno |
set |
Muestra las variables de entorno |
echo $PATH |
Información del path |
history |
Muestra el historial de comandos del usuario actual |
pwd |
Muestra el directorio actual |
cat /etc/profile |
Muestra las variables por defecto del sistema |
cat /etc/shells |
Muestra las shells disponibles para el usuario actual |
Jobs/Tasks
Comando | Resultado |
crontab -l |
Muestra los trabajos programados para el usuario actual |
crontab -l -u username |
Muestra los trabajos programados para el uusario indicado |
ls -la /etc/cron* |
Muestra todas las tareas de cron (hourly, daily …) |
top |
Lista las tareas actuales |
jobs |
Muestra los trabajos actuales |
Redes, enrutado y comunicaciones
Comando | Resultado |
/sbin/ifconfig -a |
Lista todas las interfaces de red |
|
Lista todas las interfaces de red |
cat /etc/resolv.conf |
Muestra la configuración de DNS del sistema |
route |
Muestra informaicón de rutas |
arp -a |
Muestra información de arp |
netstat -ant |
Muestra todos los sockets TCP |
netstat -anu |
Muestra todos los sockets UDP |
cat /etc/services |
Muestra todos los mapeos de puertos/servicios |
iptables -L |
Lista las reglas actuales (iptables en detalle pinchando aqui) |
Información de servicios y aplicaciones
Comando | Resultado |
|
Muestra los procesos corriendo actualmente |
|
Muestra los procesos corriendo actualmente como root |
ps aux | awk '{print $11}' | xargs -r ls -la 2>/dev/null | awk '!x[$0]++' |
Muestra rutas y permisos de los procesos corriendo actualmente |
|
Muestra lista de comandos disponibles |
|
Muestra los paquetes instalados en distribuciones basadas en Debian |
|
Muestra los paquetes instlados en distribuciones basadas en RedHat |
|
Búsqueda de malas configuraciones o por defecto de diferentes servicios |
apache2ctl -M apachectl -M nginx -V |
Muestra los módulos instalados de apache/nginx |
Ficheros interesantes
Comando | Resultado |
find / -perm 4000 -type f 2>/dev/null |
Encontrar ficheros SUID |
find / -perm 4000 -uid 0 -type f 2>/dev/null |
Encontrar ficheros SUID con root como propietario |
find / -perm 2000 -type f 2>/dev/null |
Encontrar ficheros GUID |
find / -perm -2 -type d 2>/dev/null |
Encontrar directorios con permisos de escritura |
find / -perm -2 -type f 2>/dev/null |
Encontrar ficheros con permisos de escritura |
find / ! -path " /proc/ " -perm -2 -type d 2>/dev/null |
Encontrar ficheros con permisos de escritura excluyendo la ruta /proc/ |
cat ~/.bash_history |
Muestra el historial del usuario actual |
cat /home/username/.bash_history |
Muestra el historial del usuario indicado |
ls -la /home/username/.*_history |
Muestra todos los ficheros de histórico del usuario indicado |
ls -la /home/username/.ssh |
Muestra el contenido del directorio .ssh del usuario indicado |
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls -la |
Muestra información de claves/hosts ssh |
lsof -i -n |
Muestra los ficheros abiertos actualmente (mostrará dependiendo de los permisos del usuario actual) |
Indicar que este contenido se realiza simplemente con fines educativos, no nos hacemos responsables de cualquier acción ilegal debido a los conocimientos descritos en el mismo.
Es todo por el momento, espero que esta lista les sea de utilidad en sus auditorias, prácticas, etc…En próximos post profundizaremos más en alguno de los temas en concreto.
Gracias por leernos y cualquier duda o aporte al mismo es bienvenido.