Skip to content

Información del Sistema

Comandos esenciales para obtener información detallada sobre el hardware, sistema operativo y recursos del sistema.

Muestra información básica del sistema operativo y kernel. Comando fundamental para identificación del sistema.

Terminal window
# Información básica del sistema
uname
# Toda la información disponible
uname -a
# Nombre del kernel
uname -s
# Versión del kernel
uname -r
# Arquitectura del procesador
uname -m
# Nombre del host
uname -n
# Versión del sistema operativo
uname -v

hostnamectl - 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.

Terminal window
# Información completa del host
hostnamectl
# Cambiar hostname
hostnamectl set-hostname new-hostname

lsb_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.

Terminal window
# Información completa de la distribución
lsb_release -a
# Solo la descripción
lsb_release -d
# Solo la versión
lsb_release -r

Muestra uso de memoria RAM y swap del sistema. Fundamental para monitoreo de recursos y diagnóstico de rendimiento.

Terminal window
# Información básica de memoria
free
# Formato legible para humanos
free -h
# Mostrar en MB
free -m
# Mostrar en GB
free -g
# Actualización continua cada 2 segundos
free -h -s 2

Muestra uso de espacio en sistemas de archivos montados. Esencial para monitoreo de almacenamiento.

Terminal window
# Espacio en todos los sistemas de archivos
df
# Formato legible
df -h
# Mostrar tipo de sistema de archivos
df -T
# Mostrar inodos
df -i
# Sistema de archivos específico
df -h /home

Calcula el espacio usado por directorios específicos. Útil para encontrar archivos que consumen mucho espacio.

Terminal window
# Tamaño del directorio actual
du -sh .
# Tamaño de subdirectorios
du -h --max-depth=1
# Ordenar por tamaño
du -sh * | sort -hr
# Buscar archivos grandes
du -ah / | sort -hr | head -20

Uso en pentesting: Identificar directorios con mucho espacio que pueden contener datos sensibles o logs.

Muestra información detallada del procesador. Importante para análisis de capacidades y arquitectura del sistema.

Terminal window
# Información detallada del CPU
lscpu
# Arquitectura específica
lscpu | grep Architecture
# Número de cores
nproc

hwinfo - 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.

Terminal window
# Información completa (requiere root)
hwinfo
# Formato corto
hwinfo --short
# Solo información de red
hwinfo --netcard
# Formato HTML
hwinfo --html > hardware.html

Muestra dispositivos conectados al bus PCI. Esencial para identificación de hardware interno.

Terminal window
# Listar todos los dispositivos PCI
lspci
# Información detallada
lspci -v
# Información muy detallada
lspci -vv
# Dispositivos de red específicamente
lspci | grep -i network

Lista dispositivos USB conectados al sistema. Útil para inventario de hardware y troubleshooting.

Terminal window
# Listar dispositivos USB
lsusb
# Información detallada
lsusb -v
# Dispositivo específico
lsusb -d vendor:product

Muestra dispositivos de almacenamiento en formato de árbol. Excelente para visualizar estructura de discos.

Terminal window
# Listar dispositivos de bloque
lsblk
# Con información del sistema de archivos
lsblk -f
# Formato de árbol
lsblk -T
Terminal window
# Monitor básico
top
# Ordenar por memoria
top -o %MEM
# Mostrar threads
top -H
# Modo batch
top -b -n 1
Terminal window
# Monitor interactivo mejorado
htop
Terminal window
# Estadísticas actuales
vmstat
# Actualización cada 2 segundos, 5 veces
vmstat 2 5
# Estadísticas detalladas
vmstat -s
Terminal window
# Estadísticas de E/S
iostat
# Actualización cada 2 segundos
iostat 2
# Estadísticas extendidas
iostat -x
Terminal window
# Mostrar temperaturas y voltajes
sensors
# Detectar sensores
sensors-detect
Terminal window
# Información de batería
acpi -b
# Información de temperatura
acpi -t
# Toda la información ACPI
acpi -V

Muestra usuarios actualmente conectados al sistema. Importante para auditoría de seguridad.

Terminal window
# Usuarios actualmente conectados
who
# Con información adicional
who -a
# Tiempo de boot del sistema
who -b

Muestra usuarios conectados y su actividad actual. Más detallado que who para monitoreo de sesiones.

Terminal window
# Usuarios y su actividad
w
# Sin header
w -h
# Usuario específico
w username

Muestra UID, GID y grupos del usuario actual. Fundamental para verificación de permisos y contexto de seguridad.

Terminal window
# ID del usuario actual
id
# ID de usuario específico
id username
# Solo UID
id -u
# Solo grupos
id -g

Muestra el nombre del usuario actual. Comando simple para verificación rápida de identidad.

Terminal window
whoami

Muestra historial de logins y logouts del sistema. Crucial para auditoría de accesos y análisis forense.

Terminal window
# Últimos logins
last
# Últimos logins de usuario específico
last username
# Últimos reinicios
last reboot
# Últimos shutdowns
last -x shutdown
Terminal window
# Fecha y hora actual
date
# Formato personalizado
date "+%Y-%m-%d %H:%M:%S"
# Fecha en UTC
date -u
# Timestamp Unix
date +%s

Muestra tiempo de funcionamiento del sistema y carga promedio. Indicador básico de estabilidad del sistema.

Terminal window
# Tiempo que lleva encendido el sistema
uptime
# Solo el tiempo de actividad
uptime -p
# Desde cuándo está encendido
uptime -s

timedatectl - Control de fecha/hora (systemd)

Section titled “timedatectl - Control de fecha/hora (systemd)”
Terminal window
# Estado del tiempo del sistema
timedatectl
# Listar zonas horarias
timedatectl list-timezones
# Cambiar zona horaria
timedatectl set-timezone America/Mexico_City
Terminal window
# Información completa del sistema
uname -a && cat /etc/os-release
# Arquitectura y capacidades
lscpu | grep -E "(Architecture|CPU op-mode)"
# Memoria disponible
free -h | grep Mem
# Espacio en disco
df -h | grep -E "/$|/home|/tmp"
Terminal window
# Procesos que consumen más recursos
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
# Servicios de red activos
ss -tulpn | grep LISTEN
# Dispositivos de almacenamiento
lsblk -f | grep -v loop
Terminal window
# Usuarios conectados y actividad
w && last | head -10
# Tiempo de actividad y carga
uptime && cat /proc/loadavg
# Información de red
ip addr show && ip route show

Recopilación de información para escalada de privilegios

Section titled “Recopilación de información para escalada de privilegios”
Terminal window
# Versión del kernel (buscar exploits)
uname -r
# Distribución y versión
cat /etc/os-release
# Arquitectura del sistema
uname -m
# Información de CPU (vulnerabilidades)
lscpu | grep -E "(Vulnerability|Flags)"
Terminal window
# Monitor continuo de memoria
watch -n 1 'free -h'
# Monitor de procesos
watch -n 2 'ps aux --sort=-%cpu | head -10'
# Monitor de conexiones de red
watch -n 1 'ss -tulpn | grep LISTEN'

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.

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.

Terminal window
# Mostrar directorio home
echo $HOME
# Ir al directorio home
cd $HOME
# o simplemente
cd ~
# Usar en scripts
cp 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.

Terminal window
# Mostrar PATH actual
echo $PATH
# Agregar directorio al PATH
export PATH=$PATH:/nuevo/directorio
# Agregar al inicio del PATH (mayor prioridad)
export PATH=/nuevo/directorio:$PATH
# Ver PATH de forma legible
echo $PATH | tr ':' '\n'

Almacena el nombre del usuario que ha iniciado sesión en el sistema.

Terminal window
# Mostrar usuario actual
echo $USER
# Usar en scripts
echo "Bienvenido $USER"
# Comparar usuario
if [ "$USER" = "root" ]; then
echo "Ejecutándose como root"
fi

Contiene el nombre identificativo de la máquina en la red.

Terminal window
# Mostrar hostname
echo $HOSTNAME
# También se puede usar
hostname
# Usar en logs
echo "[$HOSTNAME] Proceso iniciado" >> /var/log/app.log

TERM - 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.

Terminal window
# Mostrar tipo de terminal
echo $TERM
# Configurar terminal específico
export TERM=xterm-256color
# Verificar capacidades de color
tput colors

Controla la apariencia del prompt del shell. Permite personalización completa de la interfaz de comandos.

Terminal window
# Mostrar PS1 actual
echo $PS1
# Prompt simple
export PS1="$ "
# Prompt con usuario y directorio
export PS1="\u@\h:\w$ "
# Prompt con colores
export 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.

Terminal window
# Mostrar DISPLAY actual
echo $DISPLAY
# Configurar display remoto
export DISPLAY=192.168.1.100:0.0
# Ejecutar aplicación gráfica remotamente
DISPLAY=:0.0 firefox &

Define qué editor usar por defecto para aplicaciones que necesitan editar texto.

Terminal window
# Mostrar editor actual
echo $EDITOR
# Configurar editor
export EDITOR=vim
export EDITOR=nano
# Usar en comandos
crontab -e # Usa $EDITOR
git config --global core.editor $EDITOR

Indica qué intérprete de comandos está siendo utilizado.

Terminal window
# Mostrar shell actual
echo $SHELL
# Ver shells disponibles
cat /etc/shells
# Cambiar shell temporalmente
bash
zsh

Controla la configuración regional, incluyendo idioma, formato de fecha, moneda, etc.

Terminal window
# Mostrar locale actual
echo $LANG
# Configurar español
export LANG=es_ES.UTF-8
# Configurar inglés
export LANG=en_US.UTF-8
# Ver locales disponibles
locale -a

Contiene la ruta completa del directorio de trabajo actual.

Terminal window
# Mostrar directorio actual
echo $PWD
# También se puede usar
pwd
# Usar en scripts
echo "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.

Terminal window
# Mostrar usuario logueado
echo $LOGNAME
# Diferencia con USER (generalmente son iguales)
echo "USER: $USER, LOGNAME: $LOGNAME"

Número único que identifica al usuario en el sistema.

Terminal window
# Mostrar UID
echo $UID
# También se puede obtener con
id -u
# Verificar si es root
if [ "$UID" -eq 0 ]; then
echo "Ejecutándose como root"
fi

TMPDIR - Directorio para almacenar archivos temporales

Section titled “TMPDIR - Directorio para almacenar archivos temporales”

Especifica dónde las aplicaciones deben crear archivos temporales.

Terminal window
# Mostrar directorio temporal
echo $TMPDIR
# Si no está definido, usar /tmp
TMPDIR=${TMPDIR:-/tmp}
# Crear archivo temporal
temp_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.

Terminal window
# Mostrar ubicación del mail
echo $MAIL
# Verificar si hay correo nuevo
if [ -s "$MAIL" ]; then
echo "Tienes correo nuevo"
fi

Define la zona horaria del sistema para el usuario actual.

Terminal window
# Mostrar zona horaria
echo $TZ
# Configurar zona horaria
export TZ=America/Mexico_City
export TZ=UTC
# Ver fecha con zona horaria específica
TZ=America/New_York date

HISTFILE - 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.

Terminal window
# Mostrar ubicación del historial
echo $HISTFILE
# Configurar archivo de historial personalizado
export HISTFILE=~/.mi_historial
# Deshabilitar historial
unset HISTFILE

HISTSIZE - 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.

Terminal window
# Mostrar tamaño del historial
echo $HISTSIZE
# Configurar tamaño del historial
export HISTSIZE=1000
export HISTSIZE=10000
# Historial ilimitado
export HISTSIZE=-1

LS_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.

Terminal window
# Mostrar configuración de colores
echo $LS_COLORS
# Generar colores por defecto
dircolors
# Aplicar colores personalizados
eval $(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.

Terminal window
# Mostrar configuración actual
echo $IGNOREEOF
# Configurar para ignorar 3 EOF
export IGNOREEOF=3
# Deshabilitar (comportamiento por defecto)
unset IGNOREEOF

Comandos 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”
Terminal window
# Mostrar todas las variables
env
# Ejecutar comando con variables específicas
env VAR1=valor1 VAR2=valor2 comando
# Limpiar entorno y ejecutar
env -i comando

export - Crear/modificar variables de entorno

Section titled “export - Crear/modificar variables de entorno”
Terminal window
# Crear variable de entorno
export MI_VARIABLE="mi valor"
# Hacer que una variable local sea de entorno
MI_VAR="valor"
export MI_VAR
# Exportar con valor
export PATH=$PATH:/nuevo/directorio
Terminal window
# Eliminar variable
unset MI_VARIABLE
# Eliminar múltiples variables
unset VAR1 VAR2 VAR3

printenv - Mostrar variables de entorno específicas

Section titled “printenv - Mostrar variables de entorno específicas”
Terminal window
# Mostrar variable específica
printenv HOME
printenv PATH
# Mostrar todas las variables
printenv
Terminal window
# Información del usuario y entorno
echo "Usuario: $USER (UID: $UID)"
echo "Shell: $SHELL"
echo "Home: $HOME"
echo "PATH: $PATH"
# Verificar permisos y configuración
if [ "$UID" -eq 0 ]; then
echo "Ejecutándose como root"
else
echo "Usuario normal: $USER"
fi
Terminal window
# Agregar directorio malicioso al PATH
export PATH=/tmp/malicious:$PATH
# Verificar orden de búsqueda
which ls
type ls
Terminal window
# Variables críticas para análisis
echo "Hostname: $HOSTNAME"
echo "Zona horaria: $TZ"
echo "Locale: $LANG"
echo "Terminal: $TERM"
echo "Editor: $EDITOR"
#!/bin/bash
echo "=== 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.