Utilidades del Sistema
Herramientas y utilidades adicionales para administración del sistema y tareas especializadas en Linux.
Fecha y Tiempo
Section titled “Fecha y Tiempo”date - Gestión de fecha y hora
Section titled “date - Gestión de fecha y hora”Muestra, formatea y establece la fecha y hora del sistema. Útil para timestamps en logs y sincronización.
# Mostrar fecha actualdate
# Formato personalizadodate "+%Y-%m-%d %H:%M:%S"date "+%d/%m/%Y"
# Fecha en UTCdate -u
# Timestamp Unixdate +%s
# Convertir timestamp a fechadate -d @1640995200
# Fecha específicadate -d "2024-01-01"date -d "next monday"date -d "2 days ago"
# Establecer fecha (root)date -s "2024-01-01 12:00:00"cal - Calendario
Section titled “cal - Calendario”Muestra calendarios en formato texto. Útil para planificación y referencia rápida de fechas.
# Calendario del mes actualcal
# Calendario de año específicocal 2024
# Calendario de mes específicocal 12 2024
# Calendario de 3 mesescal -3
# Calendario julianocal -jsleep - Pausar ejecución
Section titled “sleep - Pausar ejecución”Pausa la ejecución de scripts por un tiempo determinado. Esencial para timing en pentesting y automatización.
# Pausar por segundossleep 5
# Pausar por minutossleep 2m
# Pausar por horassleep 1h
# Pausar por díassleep 1d
# Usar en scriptssleep 0.5 # medio segundoInformación y Diagnóstico
Section titled “Información y Diagnóstico”echo - Mostrar texto
Section titled “echo - Mostrar texto”Imprime texto en la salida estándar. Fundamental para scripts, debugging y creación de archivos simples.
# Mostrar texto simpleecho "Hello World"
# Sin nueva líneaecho -n "Text without newline"
# Interpretar secuencias de escapeecho -e "Line 1\nLine 2\tTabbed"
# Mostrar variablesecho $HOMEecho "User: $USER"
# Redireccionar a archivoecho "Content" > file.txtecho "More content" >> file.txtprintenv - Variables de entorno
Section titled “printenv - Variables de entorno”Muestra las variables de entorno del sistema. Útil para análisis de configuración y debugging.
# Mostrar todas las variablesprintenv
# Variable específicaprintenv HOMEprintenv PATH
# Múltiples variablesprintenv USER HOME SHELLenv - Gestión de entorno
Section titled “env - Gestión de entorno”Manipula el entorno de ejecución de comandos. Permite ejecutar programas con variables específicas.
# Mostrar variables de entornoenv
# Ejecutar comando con entorno limpioenv -i command
# Ejecutar con variable específicaenv VAR=value command
# Eliminar variable del entornoenv -u VAR commandwhich - Localizar comandos
Section titled “which - Localizar comandos”Localiza la ruta completa de comandos ejecutables en el PATH. Útil para verificar instalaciones.
# Encontrar ubicación de comandowhich pythonwhich gcc
# Mostrar todas las ubicacioneswhich -a python
# Verificar si comando existewhich nonexistent || echo "Command not found"whereis - Localizar archivos de comando
Section titled “whereis - Localizar archivos de comando”Busca binarios, código fuente y manuales de comandos. Más completo que which para análisis forense.
# Encontrar binario, fuente y manualwhereis ls
# Solo binariowhereis -b ls
# Solo manualwhereis -m ls
# Solo fuentewhereis -s gccAlias y Atajos
Section titled “Alias y Atajos”alias - Crear alias de comandos
Section titled “alias - Crear alias de comandos”Crea atajos personalizados para comandos largos o frecuentes. Mejora la eficiencia en pentesting.
# Mostrar todos los aliasalias
# Crear aliasalias ll='ls -la'alias grep='grep --color=auto'alias ..='cd ..'
# Alias temporal (solo sesión actual)alias mycommand='long command with parameters'
# Ver definición de aliasalias ll
# Eliminar aliasunalias llhistory - Historial de comandos
Section titled “history - Historial de comandos”Muestra y gestiona el historial de comandos ejecutados. Crucial para análisis forense y auditoría.
# Mostrar historial completohistory
# Mostrar últimos N comandoshistory 10
# Buscar en historialhistory | grep "pattern"
# Ejecutar comando del historial!123 # Ejecutar comando número 123!! # Ejecutar último comando!string # Ejecutar último comando que empiece con "string"
# Limpiar historialhistory -c
# Eliminar entrada específicahistory -d 123Limpieza y Mantenimiento
Section titled “Limpieza y Mantenimiento”clear - Limpiar terminal
Section titled “clear - Limpiar terminal”Limpia la pantalla del terminal. Útil para mantener sesiones organizadas durante pentesting.
# Limpiar pantallaclear
# Atajo de teclado: Ctrl+Lreset - Reiniciar terminal
Section titled “reset - Reiniciar terminal”Reinicia completamente el terminal a su estado inicial. Útil cuando el terminal se corrompe.
# Reiniciar terminal completamenteresettty - Mostrar terminal actual
Section titled “tty - Mostrar terminal actual”Muestra el nombre del dispositivo de terminal actual. Útil para identificar sesiones en análisis forense.
# Mostrar dispositivo de terminalttyscript - Grabar sesión de terminal
Section titled “script - Grabar sesión de terminal”Graba toda la actividad de una sesión de terminal. Esencial para documentar actividades de pentesting.
# Iniciar grabaciónscript session.log
# Finalizar grabaciónexit
# Reproducir sesión grabadascriptreplay session.logMedición de Tiempo
Section titled “Medición de Tiempo”time - Medir tiempo de ejecución
Section titled “time - Medir tiempo de ejecución”Mide el tiempo de ejecución de comandos y uso de recursos. Útil para optimización y análisis de rendimiento.
# Medir tiempo de comandotime ls -la
# Formato detallado/usr/bin/time -v command
# Guardar estadísticas en archivo/usr/bin/time -o stats.txt command
# Formato personalizado/usr/bin/time -f "Real: %e, User: %U, System: %S" commandtimeout - Limitar tiempo de ejecución
Section titled “timeout - Limitar tiempo de ejecución”Ejecuta comandos con límite de tiempo. Previene que procesos se cuelguen durante escaneos automatizados.
# Ejecutar comando con timeouttimeout 30s long_running_command
# Timeout con señal específicatimeout -s KILL 60s command
# Preservar estado de salidatimeout --preserve-status 30s commandBúsqueda y Filtrado
Section titled “Búsqueda y Filtrado”xargs - Construir comandos desde entrada
Section titled “xargs - Construir comandos desde entrada”Construye y ejecuta comandos desde entrada estándar. Potente para procesamiento en lote y pipelines.
# Uso básicoecho "file1 file2 file3" | xargs rm
# Con findfind . -name "*.tmp" | xargs rm
# Ejecutar comando por cada líneacat files.txt | xargs -I {} cp {} /backup/
# Limitar número de argumentosfind . -name "*.log" | xargs -n 1 gzip
# Manejar espacios en nombresfind . -name "*.txt" -print0 | xargs -0 rm
# Confirmar antes de ejecutarecho "file1 file2" | xargs -p rmtee - Duplicar salida
Section titled “tee - Duplicar salida”Duplica la salida hacia archivos y pantalla simultáneamente. Esencial para logging durante pentesting.
# Escribir a archivo y mostrar en pantallacommand | tee output.txt
# Agregar a archivo existentecommand | tee -a output.txt
# Escribir a múltiples archivoscommand | tee file1.txt file2.txt
# Usar con sudo para archivos protegidosecho "content" | sudo tee /etc/file.txtComunicación entre Procesos
Section titled “Comunicación entre Procesos”mkfifo - Crear pipes nombrados
Section titled “mkfifo - Crear pipes nombrados”Crea pipes nombrados (FIFO) para comunicación entre procesos. Útil para técnicas avanzadas de scripting.
# Crear pipe nombradomkfifo mypipe
# Escribir al pipe (en una terminal)echo "data" > mypipe
# Leer del pipe (en otra terminal)cat < mypipenohup - Ejecutar sin hangup
Section titled “nohup - Ejecutar sin hangup”Ejecuta comandos que persisten al cerrar la terminal. Esencial para mantener procesos de larga duración.
# Ejecutar comando que persiste al cerrar terminalnohup long_running_command &
# Redirigir salidanohup command > output.log 2>&1 &
# Verificar procesos nohupps aux | grep -v grep | grep nohupEjemplos para Pentesting
Section titled “Ejemplos para Pentesting”Automatización de tareas
Section titled “Automatización de tareas”# Script de reconocimiento automatizado#!/bin/bashTARGET=$1echo "Starting reconnaissance on $TARGET" | tee recon.log
# Ping testtimeout 5s ping -c 1 $TARGET && echo "Host is up" | tee -a recon.log
# Port scannmap -sS $TARGET | tee -a recon.log
# DNS lookupnslookup $TARGET | tee -a recon.logMonitoreo continuo
Section titled “Monitoreo continuo”# Monitorear conexiones cada 5 segundoswhile true; do date netstat -tulpn | grep LISTEN sleep 5done | tee network_monitor.logAnálisis de logs
Section titled “Análisis de logs”# Buscar patrones sospechosos en logstail -f /var/log/auth.log | grep --line-buffered "Failed password" | \while read line; do echo "$(date): $line" | tee -a failed_logins.logdoneHerramientas de timing para evasión
Section titled “Herramientas de timing para evasión”# Escaneo lento para evasiónfor port in {1..1000}; do timeout 1s nc -z target $port 2>/dev/null && echo "Port $port open" sleep 0.1 # Delay para evasióndoneScripts de Utilidad
Section titled “Scripts de Utilidad”Script de información del sistema
Section titled “Script de información del sistema”#!/bin/bashecho "=== INFORMACIÓN DEL SISTEMA ===" | tee system_info.txtecho "Fecha: $(date)" | tee -a system_info.txtecho "Uptime: $(uptime)" | tee -a system_info.txtecho "Usuario: $(whoami)" | tee -a system_info.txtecho "Directorio: $(pwd)" | tee -a system_info.txtecho "Espacio en disco:" | tee -a system_info.txtdf -h | tee -a system_info.txtScript de limpieza
Section titled “Script de limpieza”#!/bin/bashecho "Iniciando limpieza del sistema..."
# Limpiar archivos temporalesfind /tmp -type f -atime +7 -delete 2>/dev/nullecho "Archivos temporales limpiados"
# Limpiar logs antiguosfind /var/log -name "*.log" -size +100M -exec gzip {} \;echo "Logs comprimidos"
# Limpiar historialhistory -cecho "Historial limpiado"Herramienta de backup rápido
Section titled “Herramienta de backup rápido”#!/bin/bashBACKUP_DIR="/backup/$(date +%Y%m%d_%H%M%S)"mkdir -p $BACKUP_DIR
echo "Creando backup en $BACKUP_DIR" | tee backup.log
# Backup de configuraciones importantestar -czf $BACKUP_DIR/etc_backup.tar.gz /etc/ 2>/dev/nulltar -czf $BACKUP_DIR/home_backup.tar.gz /home/ 2>/dev/null
echo "Backup completado: $(date)" | tee -a backup.logTip: Combina estas utilidades en scripts para automatizar tareas repetitivas durante evaluaciones de seguridad. El comando
teees especialmente útil para mantener logs de actividades mientras ves el progreso en tiempo real.