ACERCA DEL AUTOR PREFACIO CAPÍTULO 1. INTRODUCCIÓN AL LENGUAJE BASH 1.1 LENGUAJE BASH 1.1.1 ¿Qué es Bash Shell? 1.1.2 Nombres de archivo y permisos en bash 1.1.3 Modificar los permisos de archivos y directorios 1.1.4 La forma compleja de cambiar los permisos 1.1.5 Parámetros y variables 1.1.6 Parámetros posicionales 1.1.7 Parámetros especiales 1.1.8 Variables 1.1.9 Variables especiales 1.1.10 Expresiones aritméticas 1.1.11 Comandos simples 1.1.12 Sintaxis de bash 1.1.13 Condicionales 1.1.14 Condicionales con variables 1.1.15 Procesos en segundo plano 1.1.16 Redirecciones 1.1.17 Entrada estándar 1.1.18 Salida estándar 1.1.19 Salida de error estándar 1.1.20 Redirección avanzada 1.2 ¿EN QUÉ CONSISTE EL TÉRMINO BASH SCRIPTING? 1.2.1 ¿Cómo trabajan? 1.2.2 Evitar la eliminación accidental de archivos 1.2.3 ¿Qué puedo hacer o lograr usando un script? 1.2.4 ¿Cómo crear mi primer script?. 1.2.5 Prueba de concepto de enumeración. 1.2.6 Script Bash de copia manual de seguridad 1.2.7 Añadir órdenes a nuestro backup.sh 1.2.8 Permisos al script de backup 1.2.9 Comprobar el integridad del backup 1.2.10 Ejecutar el script y crear la copia de seguridad 1.2.11 Restaurar sistema desde un backup creado anteriormente 1.2.12 Limpiar sistema antiguo 1.2.13 Restaurar nuestro Backup 1.2.14 Acciones finales CAPÍTULO 2. TÉCNICAS Y HERRAMIENTAS PARA BASH SCRIPTING 2.1 HERRAMIENTAS Y TÉCNICAS 2.2 ¿QUÉ ES UN PENTEST? 2.3 TIPO DE INFORMACIÓN RECOPILADA 2.4 BASH-IT - BASH FRAMEWORK PARA CONTROLAR SUS SCRIPTS Y ALIAS 2.4.1 Instalar Bash-it en Linux 2.4.2 Personalizar Bash-it en Linux 2.4.3 Administrar el tema Bash-it 2.4.4 Buscar complementos, alias o finalizaciones 2.4.5 Actualización y desinstalación de Bash-It 2.4.6 Crear alias de Bash en Linux 2.4.7 Creación de alias de bash con argumentos (funciones de bash) 2.5 NMAP (NETWORK MAPPER) 2.5.1 Comandos de NMAP 2.6 METASPLOIT (FRAMEWORK) 2.6.1 Instalar Metasploit en Kalilinux 2.6.2 Comandos básicos de msfconsole 2.6.3 Ejemplo de búsqueda con el comando ?search? 2.7 FILTROS: CAT, GREP, TAIL Y AWK 2.7.1 CAT (Concatenate) 2.7.2 Crear un archivo con el comando cat 2.7.3 Ver el contenido de un archivo con el comando cat 2.7.4 Redirigir contenido usando el comando cat 2.7.5 Concatenar archivos con el comando cat de Linux 2.7.6 Marcar el final de las líneas con el comando Cat 2.7.7 Mostrar números de línea con el comando cat 2.7.8 Mostrar caracteres no imprimibles con el comando Cat 2.7.9 Suprimir líneas vacías con el comando Cat de Linux 2.7.10 Numeración de líneas no vacías con el comando Cat 2.7.11 Mostrar un archivo en orden inverso con el comando Cat 2.7.12 GREP (Global Regular Expression Print) 2.7.13 ¿Cómo usar grep? 2.7.14 Opciones más usadas con grep 2.7.15 Ejemplos prácticos con opciones grep 2.7.16 Expresiones regulares para patrones 2.7.17 TAIL 2.7.18 ¿Systemd Kill Tail? 2.7.19 Usando tail con múltiples archivos 2.7.20 Visualización de líneas desde el inicio de un archivo 2.7.21 Usando bytes con tail 2.7.22 Usar una tubería (pipe) en tail 2.7.23 AWK 2.7.24 Tipos de AWK 2.7.25 Usos típicos de AWK 2.7.26 Instalación a través del Administrador de paquetes. 2.7.27 Instalación desde el código fuente. 2.7.28 Expresiones /Acciones 2.7.29 Bloque de cuerpo. 2.7.30 Bloque FIN. 2.7.31 AWK - Sintaxis básica 2.7.32 Línea de comando AWK 2.7.33 Archivo de programa AWK 2.7.34 Opciones básicas de AWK 2.7.35 Imprimir una lista ordenada 2.7.36 Imprimir en pantalla el mensaje de ayuda 2.7.37 Habilitar la verificación de construcciones 2.7.38 Activar la compatibilidad estricta con POSIX 2.7.39 Genera una versión del programa en el archivo 2.7.40 Desactivar todas las extensiones. 2.7.41 Mostrar la información de la versión. 2.7.42 Ejercicio práctico con AWK. 2.8 SHELLCHECK, UNA UTILIDAD PARA COMPROBAR ERRORES DE TUS SCRIPTS . 2.8.1 Cómo instalar y usar ShellCheck en Linux 2.8.2 Cómo usarlo: líneas comunes y lo que significan. 2.8.3 Cómo suprimir las advertencias de ShellCheck 2.8.4 Ignorar errores en una ejecución específica 2.8.5 Ignorar todas las instancias en un archivo CAPÍTULO 3. ENUMERACIÓN Y RECONOCIMIENTO 3.1 ENUMERACIÓN Y RECONOCIMIENTO 3.1.1 Comandos locales de recopilación de datos 3.1.2 Interfaces de red 3.1.3 Comandos de tuberías (pipes) 3.1.4 Listar y detener los procesos que se están ejecutando 3.1.5 Navegación del sistema de archivos 3.1.6 Cancelación de un comando. 3.1.7 Puerta de enlace y rutas predeterminadas 3.2 COMANDO TRACEROUTE 3.2.1 ¿Cómo funciona traceroute? 3.2.2 Cómo utilizar traceroute para comprobar conexión 3.3 UTILIDAD DEL COMANDO PING 3.3.1 Cómo listar redes Wifi por consola en GNU/Linux usando bash Shell 3.4 CONOCER EL FABRICANTE DE LA INTERFAZ DE RED UTILIZANDO LA DIRECCIÓN MAC 3.4.1 ¿De qué me sirve conocer el fabricante o marca del AP? 3.5 UTILIZAR FUENTES PÚBLICAS 3.5.1 Consulta Whois 3.5.2 Interrogando a los servidores DNS con Dig 3.5.3 Lista de tipos de registros DNS. 3.5.4 Encontrar la dirección IP (A) de un nombre de host 3.5.5 Encontrar el nombre de host de una dirección IP 3.5.6 Buscar el MX (intercambios de correo) de un dominio/nombre de host 3.5.7 Exportación de datos usando el comando Curl 3.5.8 Guardar datos de una web en un archivo 3.5.9 Envío de parámetros de solicitud de datos a servidores remoto 3.6 COMPROBAR PUERTOS REMOTOS Y LOCALES EN EQUIPOS UNIX O LINUX 3.7 INTERROGACIÓN SNMP 3.8 VERIFICAR DIRECCIONES IP DISPONIBLES EN UN SEGMENTO DE RED 3.9 DETECTAR PUERTOS TCP/UDP USANDO NMAP 3.9.1 ¿Cómo automatizar la fase de reconocimiento? 3.9.2 Leer el resultado de los puertos con Nmap CAPÍTULO 4. IDENTIFICACIÓN DE VULNERABILIDADES 4.1 BÚSQUEDA DE VULNERABILIDADES EN EL SISTEMA 4.1.1 Criterios básicos de búsquedas 4.2 ESCANEO NMAP (NSE) USANDO BASH SCRIPTING 4.2.1 Escaneo vulnerabilidades en un host 4.2.2 Leer el resultado de las vulnerabilidades detectadas por Nma 4.2.3 Validando el resultado de NMAP usando Metasploit 4.3 DETECTAR VULNERABILIDAD LOG4SHELL EN UN SERVIDOR WEB 4.3.1 Script para detección de log4j 4.4 ANALIZAR LA SEGURIDAD DE SSL/TLS CAPÍTULO 5. EXPLOTACIÓN DE VULNERABILIDADES 5.1 ¿QUÉ ES LA EXPLOTACIÓN DE VULNERABILIDADES? 5.2 USO DE MÓDULOS AUXILIARES Y DE ATAQUES COMBINADOS CON BASH SHELL 5.3 EXPLOTACIÓN DE VULNERABILIDAD DEL SERVICIO SNMP 5.4 ATAQUE A SERVIDOR WEB USANDO SHELLSHOCK 5.5 SCRIPT DE AUDITORÍA DE REDES WIFI USANDO ?LAZYAIRCRACK? CAPÍTULO 6. POST-EXPLOTACIÓN DE SISTEMAS 6.1 ¿EN QUÉ CONSISTE LA FASE DE POST-EXPLOTACIÓN? 6.2 CREAR REVERSE SHELLS CON NETCAT Y WEBSHELLS 6.2.1 ¿Qué es Shell Directa y Shell Inversa? 6.2.2 ¿Para qué Sirven? 6.2.3 Netcat 6.2.4 Bash TCP 6.2.5 Bash UDP 6.2.6 AWK. 6.2.7 Socat 6.2.8 Rlwarp (Shells de Windows) 6.2.9 Webshells 6.3 POC POST-EXPLOTACIÓN DE VULNERABILIDAD ETERNALBLUE (MS12-005) USANDO METASPLOIT 6.3.1 ¿Cómo actúa Meterpreter? 6.4 SCRIPTS DE PERSISTENCIA
El propósito general de este libro es introducir al lector en el reconocimiento y escaneo de vulnerabilidades utilizando lenguaje , as¡ como en el diseño de scripts para evaluar la configuración de seguridad de equipos conectados a una red LAN.Esta obra está dirigida a estudiantes y profesionales de la informática, está redactada con un lenguaje claro y didáctico y en ella se describenlos fundamentos lógicos, desde el punto de vista de un hacker ético, del análisis de la seguridad de redes informáticas. De forma secuencial se gu¡a al lector para que consiga resolver problemas rutinarios y logre diseñar sus propios scripts, independientemente del lenguaje que elija. Los temas aqu¡ tratados son indispensables para comprender el análisis de seguridad de las redes informáticas, mediante el uso de los comandos a través de una terminal, en un entorno GNU/Linux. Otra cualidad de este libro es que se muestran implementaciones en Bash Shell, algunos con base en códigos en lenguajeLUA, por medio de intérpretes de la herramienta NMAP. Por ello, aunque un lector que no esté familiarizado