Curso de programación Bash Shell

Fundamentos teóricos y prácticos para el reconocimiento, evaluación y explotación de vulnerabilidades informáticas

El propósito general de este libro es introducir al lector en el reconocimiento y escaneo de vulnerabilidades utilizando lenguaje Bash Shell, 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 describen los 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 lenguaje LUA, por medio de intérpretes de la herramienta NMAP. Por ello, aunque un lector que no esté familiarizado con estos lenguajes, podrá igualmente entender su sintaxis.

El libro contiene material adicional que podrá descargar
accediendo a la ficha del libro en www.ra-ma.es.

Escritor
Colección
Seguridad Informática
Materia
Seguridad informática
Idioma
  • Castellano
EAN
9788418971945
ISBN
978-84-18971-94-5
Depósito legal
M-10997-2022
Páginas
226
Ancho
17 cm
Alto
24 cm
Peso
387 g
Edición
1
Fecha publicación
28-04-2022
Edición en papel
24,90 €
486,34 MX$24,37 US$
También disponible en

Índice de contenido

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