Información del Sistema
Comandos esenciales para obtener información detallada sobre el hardware, sistema operativo y recursos del sistema.
Información General del Sistema
Section titled “Información General del Sistema”uname - Información del kernel y sistema
Section titled “uname - Información del kernel y sistema”Muestra información básica del sistema operativo y kernel. Comando fundamental para identificación del sistema.
# Información básica del sistemauname
# Toda la información disponibleuname -a
# Nombre del kerneluname -s
# Versión del kerneluname -r
# Arquitectura del procesadoruname -m
# Nombre del hostuname -n
# Versión del sistema operativouname -vhostnamectl - Información del host (systemd)
Section titled “hostnamectl - Información del host (systemd)”Gestiona información del hostname en sistemas systemd. Útil para configuración y auditoría de identidad del sistema.
# Información completa del hosthostnamectl
# Cambiar hostnamehostnamectl set-hostname new-hostnamelsb_release - Información de la distribución
Section titled “lsb_release - Información de la distribución”Muestra información detallada sobre la distribución Linux. Esencial para identificar versión y características del sistema.
# Información completa de la distribuciónlsb_release -a
# Solo la descripciónlsb_release -d
# Solo la versiónlsb_release -rMemoria y Almacenamiento
Section titled “Memoria y Almacenamiento”free - Información de memoria
Section titled “free - Información de memoria”Muestra uso de memoria RAM y swap del sistema. Fundamental para monitoreo de recursos y diagnóstico de rendimiento.
# Información básica de memoriafree
# Formato legible para humanosfree -h
# Mostrar en MBfree -m
# Mostrar en GBfree -g
# Actualización continua cada 2 segundosfree -h -s 2df - Espacio en disco
Section titled “df - Espacio en disco”Muestra uso de espacio en sistemas de archivos montados. Esencial para monitoreo de almacenamiento.
# Espacio en todos los sistemas de archivosdf
# Formato legibledf -h
# Mostrar tipo de sistema de archivosdf -T
# Mostrar inodosdf -i
# Sistema de archivos específicodf -h /homedu - Uso de directorio
Section titled “du - Uso de directorio”Calcula el espacio usado por directorios específicos. Útil para encontrar archivos que consumen mucho espacio.
# Tamaño del directorio actualdu -sh .
# Tamaño de subdirectoriosdu -h --max-depth=1
# Ordenar por tamañodu -sh * | sort -hr
# Buscar archivos grandesdu -ah / | sort -hr | head -20Uso en pentesting: Identificar directorios con mucho espacio que pueden contener datos sensibles o logs.
Hardware y Dispositivos
Section titled “Hardware y Dispositivos”lscpu - Información del CPU
Section titled “lscpu - Información del CPU”Muestra información detallada del procesador. Importante para análisis de capacidades y arquitectura del sistema.
# Información detallada del CPUlscpu
# Arquitectura específicalscpu | grep Architecture
# Número de coresnprochwinfo - Información completa de hardware
Section titled “hwinfo - Información completa de hardware”Herramienta comprehensiva para detección de hardware. Proporciona información muy detallada de todos los componentes.
# Información completa (requiere root)hwinfo
# Formato cortohwinfo --short
# Solo información de redhwinfo --netcard
# Formato HTMLhwinfo --html > hardware.htmllspci - Dispositivos PCI
Section titled “lspci - Dispositivos PCI”Muestra dispositivos conectados al bus PCI. Esencial para identificación de hardware interno.
# Listar todos los dispositivos PCIlspci
# Información detalladalspci -v
# Información muy detalladalspci -vv
# Dispositivos de red específicamentelspci | grep -i networklsusb - Dispositivos USB
Section titled “lsusb - Dispositivos USB”Lista dispositivos USB conectados al sistema. Útil para inventario de hardware y troubleshooting.
# Listar dispositivos USBlsusb
# Información detalladalsusb -v
# Dispositivo específicolsusb -d vendor:productlsblk - Dispositivos de bloque
Section titled “lsblk - Dispositivos de bloque”Muestra dispositivos de almacenamiento en formato de árbol. Excelente para visualizar estructura de discos.
# Listar dispositivos de bloquelsblk
# Con información del sistema de archivoslsblk -f
# Formato de árbollsblk -TMonitoreo de Recursos
Section titled “Monitoreo de Recursos”top - Monitor de procesos en tiempo real
Section titled “top - Monitor de procesos en tiempo real”# Monitor básicotop
# Ordenar por memoriatop -o %MEM
# Mostrar threadstop -H
# Modo batchtop -b -n 1htop - Monitor mejorado
Section titled “htop - Monitor mejorado”# Monitor interactivo mejoradohtopvmstat - Estadísticas de memoria virtual
Section titled “vmstat - Estadísticas de memoria virtual”# Estadísticas actualesvmstat
# Actualización cada 2 segundos, 5 vecesvmstat 2 5
# Estadísticas detalladasvmstat -siostat - Estadísticas de E/S
Section titled “iostat - Estadísticas de E/S”# Estadísticas de E/Siostat
# Actualización cada 2 segundosiostat 2
# Estadísticas extendidasiostat -xTemperatura y Sensores
Section titled “Temperatura y Sensores”sensors - Información de sensores
Section titled “sensors - Información de sensores”# Mostrar temperaturas y voltajessensors
# Detectar sensoressensors-detectacpi - Información ACPI
Section titled “acpi - Información ACPI”# Información de bateríaacpi -b
# Información de temperaturaacpi -t
# Toda la información ACPIacpi -VUsuarios y Sesiones
Section titled “Usuarios y Sesiones”who - Usuarios conectados
Section titled “who - Usuarios conectados”Muestra usuarios actualmente conectados al sistema. Importante para auditoría de seguridad.
# Usuarios actualmente conectadoswho
# Con información adicionalwho -a
# Tiempo de boot del sistemawho -bw - Actividad de usuarios
Section titled “w - Actividad de usuarios”Muestra usuarios conectados y su actividad actual. Más detallado que who para monitoreo de sesiones.
# Usuarios y su actividadw
# Sin headerw -h
# Usuario específicow usernameid - Información del usuario actual
Section titled “id - Información del usuario actual”Muestra UID, GID y grupos del usuario actual. Fundamental para verificación de permisos y contexto de seguridad.
# ID del usuario actualid
# ID de usuario específicoid username
# Solo UIDid -u
# Solo gruposid -gwhoami - Usuario actual
Section titled “whoami - Usuario actual”Muestra el nombre del usuario actual. Comando simple para verificación rápida de identidad.
whoamilast - Historial de conexiones
Section titled “last - Historial de conexiones”Muestra historial de logins y logouts del sistema. Crucial para auditoría de accesos y análisis forense.
# Últimos loginslast
# Últimos logins de usuario específicolast username
# Últimos reinicioslast reboot
# Últimos shutdownslast -x shutdownTiempo y Fecha
Section titled “Tiempo y Fecha”date - Fecha y hora actual
Section titled “date - Fecha y hora actual”# Fecha y hora actualdate
# Formato personalizadodate "+%Y-%m-%d %H:%M:%S"
# Fecha en UTCdate -u
# Timestamp Unixdate +%suptime - Tiempo de actividad
Section titled “uptime - Tiempo de actividad”Muestra tiempo de funcionamiento del sistema y carga promedio. Indicador básico de estabilidad del sistema.
# Tiempo que lleva encendido el sistemauptime
# Solo el tiempo de actividaduptime -p
# Desde cuándo está encendidouptime -stimedatectl - Control de fecha/hora (systemd)
Section titled “timedatectl - Control de fecha/hora (systemd)”# Estado del tiempo del sistematimedatectl
# Listar zonas horariastimedatectl list-timezones
# Cambiar zona horariatimedatectl set-timezone America/Mexico_CityEjemplos para Pentesting
Section titled “Ejemplos para Pentesting”Reconocimiento del sistema objetivo
Section titled “Reconocimiento del sistema objetivo”# Información completa del sistemauname -a && cat /etc/os-release
# Arquitectura y capacidadeslscpu | grep -E "(Architecture|CPU op-mode)"
# Memoria disponiblefree -h | grep Mem
# Espacio en discodf -h | grep -E "/$|/home|/tmp"Identificación de recursos del sistema
Section titled “Identificación de recursos del sistema”# Procesos que consumen más recursosps aux --sort=-%cpu | head -10ps aux --sort=-%mem | head -10
# Servicios de red activosss -tulpn | grep LISTEN
# Dispositivos de almacenamientolsblk -f | grep -v loopAnálisis de actividad del sistema
Section titled “Análisis de actividad del sistema”# Usuarios conectados y actividadw && last | head -10
# Tiempo de actividad y cargauptime && cat /proc/loadavg
# Información de redip addr show && ip route showRecopilación de información para escalada de privilegios
Section titled “Recopilación de información para escalada de privilegios”# Versión del kernel (buscar exploits)uname -r
# Distribución y versióncat /etc/os-release
# Arquitectura del sistemauname -m
# Información de CPU (vulnerabilidades)lscpu | grep -E "(Vulnerability|Flags)"Monitoreo de recursos durante ataques
Section titled “Monitoreo de recursos durante ataques”# Monitor continuo de memoriawatch -n 1 'free -h'
# Monitor de procesoswatch -n 2 'ps aux --sort=-%cpu | head -10'
# Monitor de conexiones de redwatch -n 1 'ss -tulpn | grep LISTEN'Variables de Entorno
Section titled “Variables de Entorno”Las variables de entorno son valores dinámicos que afectan el comportamiento de los procesos en el sistema. Son fundamentales para la configuración del sistema y el comportamiento de las aplicaciones.
Variables de Entorno Principales
Section titled “Variables de Entorno Principales”HOME - Directorio de inicio del usuario actual
Section titled “HOME - Directorio de inicio del usuario actual”Contiene la ruta al directorio personal del usuario actualmente logueado.
# Mostrar directorio homeecho $HOME
# Ir al directorio homecd $HOME# o simplementecd ~
# Usar en scriptscp archivo.txt $HOME/backup/PATH - Rutas a directorios que contienen comandos del sistema
Section titled “PATH - Rutas a directorios que contienen comandos del sistema”Define las rutas donde el shell busca comandos ejecutables. Crítico para la ejecución de programas.
# Mostrar PATH actualecho $PATH
# Agregar directorio al PATHexport PATH=$PATH:/nuevo/directorio
# Agregar al inicio del PATH (mayor prioridad)export PATH=/nuevo/directorio:$PATH
# Ver PATH de forma legibleecho $PATH | tr ':' '\n'USER - El usuario actualmente logueado
Section titled “USER - El usuario actualmente logueado”Almacena el nombre del usuario que ha iniciado sesión en el sistema.
# Mostrar usuario actualecho $USER
# Usar en scriptsecho "Bienvenido $USER"
# Comparar usuarioif [ "$USER" = "root" ]; then echo "Ejecutándose como root"fiHOSTNAME - Nombre de host de la máquina
Section titled “HOSTNAME - Nombre de host de la máquina”Contiene el nombre identificativo de la máquina en la red.
# Mostrar hostnameecho $HOSTNAME
# También se puede usarhostname
# Usar en logsecho "[$HOSTNAME] Proceso iniciado" >> /var/log/app.logTERM - Tipo de terminal que se está utilizando
Section titled “TERM - Tipo de terminal que se está utilizando”Define las capacidades del terminal actual para aplicaciones que necesitan formateo específico.
# Mostrar tipo de terminalecho $TERM
# Configurar terminal específicoexport TERM=xterm-256color
# Verificar capacidades de colortput colorsPS1 - Prompt de la línea de comando
Section titled “PS1 - Prompt de la línea de comando”Controla la apariencia del prompt del shell. Permite personalización completa de la interfaz de comandos.
# Mostrar PS1 actualecho $PS1
# Prompt simpleexport PS1="$ "
# Prompt con usuario y directorioexport PS1="\u@\h:\w$ "
# Prompt con coloresexport PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$ "DISPLAY - Dirección del servidor de pantalla X Window
Section titled “DISPLAY - Dirección del servidor de pantalla X Window”Especifica dónde deben mostrarse las aplicaciones gráficas en sistemas X11.
# Mostrar DISPLAY actualecho $DISPLAY
# Configurar display remotoexport DISPLAY=192.168.1.100:0.0
# Ejecutar aplicación gráfica remotamenteDISPLAY=:0.0 firefox &EDITOR - Editor de texto predeterminado
Section titled “EDITOR - Editor de texto predeterminado”Define qué editor usar por defecto para aplicaciones que necesitan editar texto.
# Mostrar editor actualecho $EDITOR
# Configurar editorexport EDITOR=vimexport EDITOR=nano
# Usar en comandoscrontab -e # Usa $EDITORgit config --global core.editor $EDITORSHELL - Shell actualmente en uso
Section titled “SHELL - Shell actualmente en uso”Indica qué intérprete de comandos está siendo utilizado.
# Mostrar shell actualecho $SHELL
# Ver shells disponiblescat /etc/shells
# Cambiar shell temporalmentebashzshLANG - Define el locale del idioma
Section titled “LANG - Define el locale del idioma”Controla la configuración regional, incluyendo idioma, formato de fecha, moneda, etc.
# Mostrar locale actualecho $LANG
# Configurar españolexport LANG=es_ES.UTF-8
# Configurar inglésexport LANG=en_US.UTF-8
# Ver locales disponibleslocale -aPWD - Ruta al directorio actual
Section titled “PWD - Ruta al directorio actual”Contiene la ruta completa del directorio de trabajo actual.
# Mostrar directorio actualecho $PWD
# También se puede usarpwd
# Usar en scriptsecho "Trabajando en: $PWD"LOGNAME - Nombre del usuario actualmente logueado
Section titled “LOGNAME - Nombre del usuario actualmente logueado”Similar a USER, pero más estándar según POSIX.
# Mostrar usuario logueadoecho $LOGNAME
# Diferencia con USER (generalmente son iguales)echo "USER: $USER, LOGNAME: $LOGNAME"UID - Identificador del usuario
Section titled “UID - Identificador del usuario”Número único que identifica al usuario en el sistema.
# Mostrar UIDecho $UID
# También se puede obtener conid -u
# Verificar si es rootif [ "$UID" -eq 0 ]; then echo "Ejecutándose como root"fiTMPDIR - Directorio para almacenar archivos temporales
Section titled “TMPDIR - Directorio para almacenar archivos temporales”Especifica dónde las aplicaciones deben crear archivos temporales.
# Mostrar directorio temporalecho $TMPDIR
# Si no está definido, usar /tmpTMPDIR=${TMPDIR:-/tmp}
# Crear archivo temporaltemp_file="$TMPDIR/mi_archivo_$$"MAIL - Localización del buzón de correo del usuario
Section titled “MAIL - Localización del buzón de correo del usuario”Indica dónde se almacenan los correos del usuario.
# Mostrar ubicación del mailecho $MAIL
# Verificar si hay correo nuevoif [ -s "$MAIL" ]; then echo "Tienes correo nuevo"fiTZ - La zona horaria
Section titled “TZ - La zona horaria”Define la zona horaria del sistema para el usuario actual.
# Mostrar zona horariaecho $TZ
# Configurar zona horariaexport TZ=America/Mexico_Cityexport TZ=UTC
# Ver fecha con zona horaria específicaTZ=America/New_York dateHISTFILE - Ubicación del archivo de historial del shell
Section titled “HISTFILE - Ubicación del archivo de historial del shell”Especifica dónde se guarda el historial de comandos.
# Mostrar ubicación del historialecho $HISTFILE
# Configurar archivo de historial personalizadoexport HISTFILE=~/.mi_historial
# Deshabilitar historialunset HISTFILEHISTSIZE - Número de líneas que se guardan en el historial
Section titled “HISTSIZE - Número de líneas que se guardan en el historial”Controla cuántos comandos se mantienen en memoria.
# Mostrar tamaño del historialecho $HISTSIZE
# Configurar tamaño del historialexport HISTSIZE=1000export HISTSIZE=10000
# Historial ilimitadoexport HISTSIZE=-1LS_COLORS - Define los colores para la salida del comando ls
Section titled “LS_COLORS - Define los colores para la salida del comando ls”Controla los colores utilizados por ls para diferentes tipos de archivos.
# Mostrar configuración de coloresecho $LS_COLORS
# Generar colores por defectodircolors
# Aplicar colores personalizadoseval $(dircolors ~/.dircolors)IGNOREEOF - Controla el comportamiento del shell ante un EOF
Section titled “IGNOREEOF - Controla el comportamiento del shell ante un EOF”Determina cuántas veces se puede presionar Ctrl+D antes de cerrar el shell.
# Mostrar configuración actualecho $IGNOREEOF
# Configurar para ignorar 3 EOFexport IGNOREEOF=3
# Deshabilitar (comportamiento por defecto)unset IGNOREEOFComandos para Gestión de Variables de Entorno
Section titled “Comandos para Gestión de Variables de Entorno”env - Mostrar todas las variables de entorno
Section titled “env - Mostrar todas las variables de entorno”# Mostrar todas las variablesenv
# Ejecutar comando con variables específicasenv VAR1=valor1 VAR2=valor2 comando
# Limpiar entorno y ejecutarenv -i comandoexport - Crear/modificar variables de entorno
Section titled “export - Crear/modificar variables de entorno”# Crear variable de entornoexport MI_VARIABLE="mi valor"
# Hacer que una variable local sea de entornoMI_VAR="valor"export MI_VAR
# Exportar con valorexport PATH=$PATH:/nuevo/directoriounset - Eliminar variables de entorno
Section titled “unset - Eliminar variables de entorno”# Eliminar variableunset MI_VARIABLE
# Eliminar múltiples variablesunset VAR1 VAR2 VAR3printenv - Mostrar variables de entorno específicas
Section titled “printenv - Mostrar variables de entorno específicas”# Mostrar variable específicaprintenv HOMEprintenv PATH
# Mostrar todas las variablesprintenvEjemplos para Pentesting
Section titled “Ejemplos para Pentesting”Reconocimiento del entorno
Section titled “Reconocimiento del entorno”# Información del usuario y entornoecho "Usuario: $USER (UID: $UID)"echo "Shell: $SHELL"echo "Home: $HOME"echo "PATH: $PATH"
# Verificar permisos y configuraciónif [ "$UID" -eq 0 ]; then echo "Ejecutándose como root"else echo "Usuario normal: $USER"fiManipulación del PATH para persistencia
Section titled “Manipulación del PATH para persistencia”# Agregar directorio malicioso al PATHexport PATH=/tmp/malicious:$PATH
# Verificar orden de búsquedawhich lstype lsAnálisis de configuración del sistema
Section titled “Análisis de configuración del sistema”# Variables críticas para análisisecho "Hostname: $HOSTNAME"echo "Zona horaria: $TZ"echo "Locale: $LANG"echo "Terminal: $TERM"echo "Editor: $EDITOR"Scripts de Información Rápida
Section titled “Scripts de Información Rápida”Script de reconocimiento básico
Section titled “Script de reconocimiento básico”#!/bin/bashecho "=== INFORMACIÓN DEL SISTEMA ==="echo "Hostname: $(hostname)"echo "OS: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"echo "Kernel: $(uname -r)"echo "Arquitectura: $(uname -m)"echo "Uptime: $(uptime -p)"echo "Memoria: $(free -h | grep Mem | awk '{print $3"/"$2}')"echo "Disco: $(df -h / | tail -1 | awk '{print $3"/"$2" ("$5" usado)"}')"echo "CPU: $(lscpu | grep 'Model name' | cut -d':' -f2 | xargs)"echo "Usuarios conectados: $(who | wc -l)"Tip: Combina estos comandos en scripts para automatizar la recopilación de información del sistema durante evaluaciones de seguridad. Guarda la salida en archivos para análisis posterior.