19,99 €
Si desea iniciarse en el mundo del hacking ético, la ciberseguridad y las pruebas de intrusión, este libro le ofrece una base sólida y práctica. Fundamentos de Linux para Hackers le enseñará a desenvolverse con fluidez en Kali Linux, el sistema operativo de referencia para análisis forense digital y pruebas de intrusión. Aprenderá a instalar Kali en una máquina virtual y dominará los fundamentos del sistema operativo Linux, incluyendo la manipulación de texto, la gestión de permisos y directorios, y el uso de variables de entorno. A lo largo de sus páginas, encontrará explicaciones claras y ejercicios que le guiarán en la adquisición de competencias clave en seguridad informática, anonimato en red y automatización mediante scripting en Bash y Python. Mediante casos prácticos y simulaciones reales, aprenderá a: -Ocultar su rastro modificando configuraciones de red y utilizando herramientas como journalctl -Escribir utilidades propias para escanear conexiones y monitorizar redes inalámbricas -Navegar por Internet de forma anónima mediante Tor, VPNs, servidores proxy y correo electrónico cifrado -Escribir un script de bash para encontrar posibles objetivos de ataque sobre un rango de direcciones IP -Usar y explotar servicios como MySQL, el servidor web Apache y OpenSSH -Desarrollar sus propias herramientas de hacking, como cámaras espía remotas o descifradores de contraseñas Novedades de esta edición: Incluye actualizaciones adaptadas a las nuevas versiones de Kali y Linux, un enfoque más seguro del uso de privilegios de superusuario, mejoras en los sistemas de registro de Bluetooth y un nuevo capítulo sobre el uso de inteligencia artificial en ciberseguridad. Iniciarse en el hacking puede parecer una tarea compleja, con múltiples enfoques y herramientas disponibles. Este libro le ofrece el camino más accesible y eficaz para comenzar con paso firme. ¿Por qué no empezar por aquí? Sobre el autor OccupyTheWeb es consultor en ciberseguridad, formador e investigador forense con más de dos décadas de experiencia. Fundador del sitio Hackers Arise, ha formado a miembros del ejército estadounidense, contratistas del Departamento de Defensa y funcionarios federales en hacking ético y seguridad de la información.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 323
Veröffentlichungsjahr: 2025
«Si acaba de empezar o está en camino de alcanzar un nivel experto, hacerse con un ejemplar de este libro puede ser una de las mejores decisiones para desarrollar sus habilidades en ciberseguridad».
— Sandra Henry-Stocker,Network World
«La información que ofrece puede ayudar incluso a un usuario general a sentirse más cómodo con el sistema operativo Linux sin verse abrumado por temas más complejos relacionados con la seguridad. Aunque todos deberíamos prestar más atención a la seguridad, Fundamentos de Linux para hackers bien podría inspirar a la próxima generación de jóvenes entusiastas tecnológicos a convertirse en las estrellas de la seguridad del mañana».
— Tim Everson,The Ethical Hacker Network
«Fundamentos de Linux para hackers es básicamente práctico. Su enfoque rápido y directo para explorar y utilizar un sistema Linux fue muy bien recibido».
— Jesse Smith,DistroWatch Weekly
«Una introducción clara, bien escrita y sumamente eficaz a Linux para futuros pentesters y analistas de SOC... Un libro ideal para iniciarse en Linux para cualquier aspirante a formar parte de un equipo red o blue, cuya lectura merece mucho la pena».
— Cybrary
«Si está empezando en informática y quiere familiarizarse rápidamente con Linux y otros sistemas operativos tipo Unix, trabajar con este libro le situará muy por delante de sus compañeros de estudio, y en poco tiempo».
— Greg Laden,Greg Laden’s Blog
Copyright © 2025 by OccupyTheWeb. Title of English language original: Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali, 2nd Edition, ISBN 9781718503540, published by No Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The Spanish-language 2nd edition Copyright © 2025 by Marcombo, S.L. under license by No Starch Press Inc. All rights reserved.
Segunda edición original publicada en inglés por No Starch Press Inc. con el título Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali, 2nd Edition, ISBN 9781718503540 © OccupyTheWeb, 2025.
Título de la edición en español:
Fundamentos de Linux para hackers
Segunda edición en español, 2026
© 2026 MARCOMBO, S.L. www.marcombo.com
Gran Via de les Corts Catalanes 594, 08007 Barcelona
Contacto: [email protected]
Ilustración de portada: Josh Ellingson
Diseño del interior: Octopod Studios
Revisor técnico: Artur Zielinski
Traducción: Sonia Llena
Corrección: Anna Alberola
Directora de producción: M.a Rosa Castillo
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. La presente publicación contiene la opinión del autor y tiene el objetivo de informar de forma precisa y concisa. La elaboración del contenido, aunque se ha trabajado de forma escrupulosa, no puede comportar una responsabilidad específica para el autor ni el editor de los posibles errores o imprecisiones que pudiera contener la presente obra.
ISBN del libro en papel: 978-84-267-4061-8
ISBN del libro electrónico: 978-84-267-4153-0
Producción del ePub: booqlab
A mis tres increíbles hijas.
Sois todo mi mundo.
Y a los hombres y mujeres guerreros y ciberguerreros valientes de Ucrania, que han resistido con fuerza ante uno de los ejércitos más grandes del mundo durante más de tres años. Vuestra destreza y vuestro coraje son inspiración para todos nosotros.
OccupyTheWeb (OTW) es el pseudónimo del fundador y escritor principal del sitio web para hackers y formación en pruebas de intrusión https://www.hackers-arise.com. Ha sido profesor universitario y tiene más de 20 años de experiencia en la industria de la tecnología y la información. Ha formado a hackers por todos los Estados Unidos, incluso en diferentes ramas de las fuerzas armadas norteamericanas (Ejército, Fuerzas Aéreas y Armada) y en la comunidad de inteligencia norteamericana (CIA, NSA y DNI), y ha jugado un papel primordial en la resistencia de la comunidad de hackers en la invasión rusa a Ucrania. Además, es un apasionado de la bicicleta de montaña y del snowboard.
Artur Zielinski es un pentester que se dedica principalmente a la seguridad ofensiva (pruebas de intrusión, hacking ético, equipos rojos, OSINT, hacking de ICS/SCADA y biohacking). Zielinski también dirige actividades relacionadas con la ciberseguridad para niños en escuelas (un día en la vida de un hacker ético, torneos de ciberseguridad y escape rooms) y es padre de tres niños fantásticos.
Cubierta
Título
Créditos
RESUMEN DEL CONTENIDO
Contenido Detallado
Prefacio
Reconocimientos
Introducción
Capítulo 1: Empezar con lo básico
Capítulo 2: Manipulación de textos
Capítulo 3: Análisis y gestión de redes
Capítulo 4: Añadir y eliminar
software
Capítulo 5: Control de permisos de archivos y directorios
Capítulo 6: Gestión de procesos
Capítulo 7: Gestión de las variables de entorno de usuario
Capítulo 8: Secuencias de comandos Bash
Capítulo 9: Comprimir y archivar
Capítulo 10: Gestión de sistemas de archivos y dispositivos de almacenamiento
Capítulo 11: El sistema de registro
Capítulo 12: Uso y abuso de servicios
Capítulo 13: Seguridad y anonimato
Capítulo 14: Conocer e inspeccionar redes inalámbricas
Capítulo 15: Gestión del kernel de Linux y módulos cargables del kernel
Capítulo 16: Automatización de tareas con programación
Capítulo 17: Conceptos básicos de
scripting
en Python para
hackers
Capítulo 18: Inteligencia artificial para
hackers
Cubierta
Título
Start
PREFACIO
RECONOCIMIENTOS
INTRODUCCIÓN
Qué encontrará en este libro
Qué es el
hacking
ético
Pruebas de intrusión
Ejército y espionaje
Por qué los
hackers
usan Linux
Linux es de código abierto
Linux es transparente
Linux ofrece control granular
La mayoría de las herramientas de
hacking
están escritas para Linux
El futuro es de Linux/Unix
Descargar Kali Linux
Máquinas virtuales
Instalar VirtualBox
Configurar la máquina virtual
Instalar Kali en la VM
Configurar Kali
Instalar Kali en el subsistema de Windows para Linux
1.
EMPEZAR CON LO BÁSICO
Términos y conceptos introductorios
Un recorrido por Kali
La terminal
El sistema de archivos de Linux
Comandos básicos en Linux
Ubicarse con pwd
Comprobar el inicio de sesión con whoami
Navegar por el sistema de archivos de Linux
Obtener ayuda
Acceder a páginas de manual con man
Encontrar otras cosas
Buscar con locate
Buscar binarios con whereis
Buscar binarios en la variable PATH con which
Realizar búsquedas más potentes con find
Filtrar con grep
Modificar archivos y directorios
Crear archivos
Crear un directorio
Copiar un archivo
Renombrar un archivo
Eliminar un archivo
Eliminar un directorio
¡A jugar!
Ejercicios
2.
MANIPULACIÓN DE TEXTOS
Visualizar archivos
Encontrar el inicio
Encontrar el final
Numerar las líneas
Filtrar texto con grep
Buscar y reemplazar con sed
Visualizar archivos con more y less
Controlar la pantalla con more
Mostrar y filtrar con less
Resumen
Ejercicios
3.
ANÁLISIS Y GESTIÓN DE REDES
Análisis de redes con ifconfig
Estadísticas de red con netstat y ss
Comprobar dispositivos de red inalámbricos con iwconfig
Cambiar la información de red
Asignar una nueva dirección IP
Cambiar la máscara de red y la dirección de difusión
Suplantar la dirección MAC
Asignar nuevas direcciones IP desde el servidor DHCP
Manipular el sistema de nombres de dominio
Examinar el DNS con dig
Cambiar el servidor DNS
Asignación propia de direcciones IP
Resumen
Ejercicios
4.
AÑADIR Y ELIMINAR
SOFTWARE
Uso de apt para gestionar
software
Buscar un paquete
Añadir
software
Eliminar
software
Actualizar paquetes
Mejorar paquetes
Añadir repositorios al archivo sources.list
Utilizar un instalador basado en GUI
Instalar programas con git
Resumen
Ejercicios
5.
CONTROL DE PERMISOS DE ARCHIVOS Y DIRECTORIOS
Diferentes tipos de usuarios
Conceder permisos
Conceder la propiedad a un usuario individual
Conceder la propiedad a un grupo
Comprobar permisos
Cambiar permisos
Cambiar permisos con notación decimal
Cambiar permisos con UGO
Conceder permisos de ejecución de root a una nueva herramienta
Establecer permisos por defecto más seguros con máscaras
Permisos especiales
Conceder permisos de root temporales con SUID
Conceder permisos de grupo al usuario root SGID
El anticuado Sticky Bit
Permisos especiales, escalada de privilegios y
hackers
Resumen
Ejercicios
6.
GESTIÓN DE PROCESOS
Visualizar procesos
Filtrar por nombre de proceso
Buscar los procesos que más consumen con top
Gestionar procesos
Cambiar la prioridad de los procesos con nice
Matar procesos
Ejecutar procesos en segundo plano
Mover un proceso a primer plano
Programar procesos
Resumen
Ejercicios
7.
GESTIÓN DE LAS VARIABLES DE ENTORNO DE USUARIO
Cambiar el shell por defecto a Bash
Ver y modificar variables de entorno
Visualizar todas las variables de entorno
Filtrar por variables concretas
Modificar los valores de las variables de una sesión
Fijar los cambios en los valores de las variables
Modificar el prompt del shell
Cambiar la variable PATH
Añadir a la variable PATH
Cómo no añadir a la variable PATH
Crear una variable definida por el usuario
Resumen
Ejercicios
8.
SECUENCIAS DE COMANDOS BASH
Curso acelerado de Bash
Su primer
script
: “Hello, Hackers-Arise!”
Establecer permisos de ejecución
Ejecutar HelloHackersArise
Añadir funcionalidades con variables y entradas de usuario
Su primer
script
como
hacker
: Buscar puertos abiertos
Nuestro trabajo
Un escaneo sencillo
Cómo mejorar el escaneo MySQL
Comandos Bash comunes integrados
Resumen
Ejercicios
9.
COMPRIMIR Y ARCHIVAR
¿Qué es la compresión?
Combinar archivos con tar
Comprimir archivos
Comprimir con gzip
Comprimir con bzip2
Comprimir con compress
Crear copias físicas o bit a bit de dispositivos de almacenamiento
Resumen
Ejercicios
10.
GESTIÓN DE SISTEMAS DE ARCHIVOS Y DISPOSITIVOS DE ALMACENAMIENTO
El directorio de dispositivos /dev
Cómo representa Linux los dispositivos de almacenamiento
Particiones de unidades
Dispositivos de caracteres y bloques
Listar dispositivos de bloque e información con lsblk y lsusb
Montar y desmontar
Montaje manual de dispositivos de almacenamiento
Desmontar con umount
Supervisar sistemas de archivos
Obtener información sobre los discos montados
Comprobar errores
Resumen
Ejercicios
11.
EL SISTEMA DE REGISTRO
La utilidad journalctl
Prioridades e instalaciones de registro
Consultas journalctl
Cubrir las huellas con journalctl
Desactivar el registro
Resumen
Ejercicios
12.
USO Y ABUSO DE SERVICIOS
Iniciar, detener y reiniciar servicios
Crear un servidor HTTP con el servidor web Apache
Empezar con Apache
Editar el archivo index.html
Añadir algo de HTML
Veamos qué ocurre
OpenSSH y Raspberry Spy Pi
Configurar la Raspberry Pi
Construir la Raspberry Spy Pi
Configurar la cámara
Empezar a espiar
Extraer información de MySQL/MariaDB
Iniciar MySQL o MariaDB
Interactuar con SQL
Configurar una contraseña
Acceder a una base de datos remota
Conectarse a una base de datos
Explorar las tablas de una base de datos
Examinar los datos
Resumen
Ejercicios
13.
SEGURIDAD Y ANONIMATO
Cómo nos delata Internet
El sistema Onion Router
Cómo funciona Tor
Cuestiones de seguridad
Servidores Proxy
Configuración de proxies en el archivo de configuración
Configurar otras opciones interesantes
Acerca de la seguridad
Redes privadas virtuales
Correo electrónico cifrado
Resumen
Ejercicios
14.
CONOCER E INSPECCIONAR REDES INALÁMBRICAS
Redes wifi
Comandos inalámbricos básicos
Reconocimiento de wifi con aircrack-ng
Detección y conexión a Bluetooth
Cómo funciona Bluetooth
Escanear y reconocer Bluetooth
Resumen
Ejercicios
15.
GESTIÓN DEL KERNEL DE LINUX Y MÓDULOS CARGABLES DEL KERNEL
¿Qué es un módulo del kernel?
Comprobar la versión del kernel
Ajustar el kernel con sysctl
Gestión de los módulos del kernel
Más información con modinfo
Añadir y eliminar módulos con modprobe
Insertar y extraer un módulo del kernel
Resumen
Ejercicios
16.
AUTOMATIZACIÓN DE TAREAS CON PROGRAMACIÓN
Programar una tarea para que se ejecute automáticamente
Programar una tarea de copia de seguridad
Programar MySQLscanner con crontab
Atajos crontab
Uso de
scripts
rc para ejecutar trabajos al inicio
Niveles de ejecución de Linux
Añadir servicios a rc.d
Añadir servicios al inicio a través de una GUI
Resumen
Ejercicios
17.
CONCEPTOS BÁSICOS DE
SCRIPTING
EN PYTHON PARA
HACKERS
Añadir módulos de Python
Empezar a programar con Python
Variables
Comentarios
Funciones
Listas
Módulos
Programación orientada a objetos (POO)
Comunicaciones de red en Python
Crear un cliente TCP
Crear un receptor TCP
Diccionarios, sentencias de control y bucles
Diccionarios
Sentencias de control
Bucles
Mejorar nuestros
scripts
de
hacking
Excepciones y descifradores de contraseñas
Resumen
Ejercicios
18.
INTELIGENCIA ARTIFICIAL PARA
HACKERS
La colaboración es clave
Los principales protagonistas de la IA
Uso de la IA en ciberseguridad
Ataques de ingeniería social con IA
Utilizar la IA para escribir un
script
de Bash
Resumen
Ejercicios
¡Bienvenidos a la nueva y actualizada segunda edición de Fundamentos de Linux para hackers!
Quiero empezar dando las gracias a todos mis lectores por haber hecho que la primera edición fuera un éxito clamoroso. Fundamentos de Linux para hackers no solo es el libro sobre Linux más vendido en Amazon, sino también el más vendido en Amazon de los libros sobre sistemas operativos, a mucha distancia de los que tratan sobre Windows 10 y 11. Estoy muy agradecido. Creo que a la gente le ha gustado.
La primera edición de Fundamentos de Linux para hackers la escribí en 2017 y se publicó en 2018. En general, han cambiado muchas cosas en Linux y, en especial, en Kali Linux. Con esta segunda edición, nuestro objetivo es traer este libro hasta el presente (2025) y mostrar nuevas herramientas y técnicas que permitan utilizar Linux con facilidad en un entorno de ciberseguridad.
Uno de los cambios principales que notará es el uso de sudo antes de los comandos que requieren privilegios de superusuario. En la primera edición, iniciábamos sesión en la cuenta de superusuario y operábamos desde allí. Como atacante, como suele ser el caso, pero también como aprendiz, debe evitar iniciar sesión en la cuenta de superusuario si no es estrictamente necesario. En esta edición, esta será una medida de seguridad para aquellos que están aprendiendo Linux con este libro y, por ello, cada comando que requiera privilegios de superusuario va precedido por un sudo.
Cada cierto tiempo, las utilidades de software en Linux cambian. Esto es lo que ha pasado durante estos años, cuando las utilidades systemd han sustituido a las utilidades SysV. Dichas utilidades controlan el sistema y el gestor de servicios en Linux y afectan la manera en que los servicios se inician y se detienen. Va a percibir cambios, por ejemplo, en cómo iniciamos un servicio pasando del comando service (SysV) al comando systemctl (systemd). Ambos funcionan, pero Linux está optando rápidamente por la segunda opción, mientras que la primera probablemente quedará obsoleta (o descatalogada) en un futuro próximo, por lo que lo mejor es adaptarse ahora al nuevo estilo.
Kali Linux ha convertido su shell predeterminado en un shell Z (zsh). Si usted es principiante, creo que debería quedarse con el shell bash (Bourne-again shell), pues casi todos los demás sistemas Linux lo utilizan en lugar del shell Z. Por suerte, los desarrolladores de Kali nos han dado una opción sencilla para cambiar al shell bash en sus aplicaciones GUI: kali-tweaks.
También hemos actualizado las secciones sobre Bluetooth y las funciones de registro de Linux, ya que ambas han cambiado de manera significativa durante este tiempo.
Por último, el Capítulo 18 trata sobre el futuro de la inteligencia artificial en nuestro sector. La inteligencia artificial no le dejará obsoleto, sino que le hará mejor. Acéptela y úsela. Aquellos que rechazan aprender a utilizarla se quedarán muy pronto obsoletos. Aquellos que acepten y utilicen la IA serán los futuros líderes en su campo.
Espero que este libro le guste incluso más que la primera edición.
No podría haber escrito este libro sin la colaboración de personas que han sido clave.
En primer lugar, quiero mencionar a Bill Pollock, editor de No Starch Press, por creer en este libro y apoyarlo.
En segundo lugar, quiero mencionar el esfuerzo diligente de mi revisor técnico, Artur Zielinski, por asegurarse de que el contenido técnico de este libro sea preciso. Cualquier error u omisión es únicamente fallo mío.
Por último, quiero agradecer y mencionar a todos los profesionales de No Starch Press por sus esfuerzos por concluir este libro y comercializarlo. Gracias.
El hacking es la habilidad más importante del siglo XXI. Y no lo digo porque sí. En los últimos años, los titulares de cada mañana lo confirman. Las naciones se espían entre ellas para obtener secretos, los ciberdelincuentes roban miles de millones de dólares, los gusanos digitales exigen rescates a sus víctimas, los adversarios influyen en las elecciones de los demás y los combatientes se desmantelan mutuamente. Tomemos como ejemplo la ciberguerra entre Ucrania y Rusia. Todos estos hechos son obra de hackers, y apenas estamos empezando a entender su poder en un mundo cada vez más digital.
Decidí escribir este libro después de trabajar con decenas de miles de aspirantes a hacker en Null-Byte, Hackers Arise (https://www.hackers-arise.com), y casi todas las ramas de las agencias de inteligencia y militares norteamericanas (entre ellas, NSA, DIA, CIA y FBI). Estas experiencias me enseñaron que muchos aspirantes a hackers tienen poca o ninguna experiencia con Linux, siendo esta la principal barrera que les impide iniciar el camino para convertirse en profesionales. Casi todas las mejores herramientas para hackers están escritas en Linux, por lo que necesitará unos conocimientos básicos como requisito previo para convertirse en un hacker experimentado y profesional. He escrito este libro para ayudarle a superar esta barrera.
El hacking es una profesión de élite dentro del campo de la informática y, como tal, requiere una comprensión amplia y detallada de sus conceptos y tecnologías. En el nivel más básico, Linux es un requisito. Le recomiendo encarecidamente que invierta tiempo y energía en conocerlo si quiere dedicarse profesionalmente al hacking y a la seguridad de la información.
Este libro no es para hackers experimentados o administradores de Linux, sino para aquellos que quieren iniciarse en el apasionante mundo del hacking, la ciberseguridad y las pruebas de intrusión. Tampoco pretende ser un tratado completo sobre Linux o hacking, sino más bien un punto de partida. Empieza con lo esencial de Linux y se extiende a algunos scripts básicos tanto en Bash como en Python. Cuando es necesario, utilizo ejemplos de hacking para enseñar estos principios de Linux.
En esta introducción, veremos el desarrollo del hacking ético en la seguridad de la información, y le llevaré a través del proceso de instalación de una máquina virtual para que pueda instalar Kali Linux en su sistema sin alterar el sistema operativo que ya está ejecutando.
En la primera serie de capítulos, vamos a familiarizarnos con los fundamentos de Linux. El Capítulo 1 le acercará al sistema de ficheros y al terminal, y le dará algunos comandos básicos. El Capítulo 2 le mostrará cómo manipular texto para encontrar, examinar y alterar software y archivos.
En el Capítulo 3, gestionará redes. Buscará redes, encontrará información sobre conexiones y se disfrazará enmascarando su información de red y DNS.
El Capítulo 4 le enseñará a añadir, eliminar y actualizar software, así como a mantener su sistema optimizado. En el Capítulo 5, manipulará permisos de archivos y directorios para controlar quién puede acceder a qué. También aprenderá algunas técnicas de escalada de privilegios.
El Capítulo 6 le enseñará a gestionar servicios, incluyendo el arranque y la parada de procesos y la asignación de recursos para darle un mayor control. En el Capítulo 7, gestionará las variables de entorno para un rendimiento óptimo, comodidad e incluso ocultación. Encontrará y filtrará variables, cambiará la variable PATH y creará nuevas variables de entorno.
El capítulo 8 le introducirá en la secuencia de comandos Bash, un elemento básico para cualquier hacker serio. Aprenderá los fundamentos de Bash y construirá un script para escanear puertos objetivo en los que más tarde podría infiltrarse.
Los capítulos 9 y 10 le proporcionarán algunas habilidades esenciales de gestión del sistema de archivos, mostrándole cómo comprimir y archivar archivos para mantener limpio su sistema, copiar dispositivos de almacenamiento completos y obtener información sobre archivos y discos conectados.
Los últimos capítulos profundizarán en temas de hacking. En el Capítulo 11, utilizará y manipulará el sistema de registro para obtener información sobre la actividad de un objetivo y cubrir su propio rastro. El Capítulo 12 mostrará cómo usar tres servicios centrales de Linux y cómo explotarlos: servidor web Apache, OpenSSH y MySQL. Creará un servidor web, construirá un espía de vídeo remoto y aprenderá sobre bases de datos y sus vulnerabilidades. El Capítulo 13 le mostrará cómo mantenerse seguro y anónimo con servidores proxy, la red Tor, redes privadas virtuales y correo electrónico cifrado.
El Capítulo 14 irá sobre redes inalámbricas. Aprenderá los comandos básicos de red, así como a descifrar puntos de acceso wifi, detectar señales Bluetooth y conectarse a ellas.
El Capítulo 15 profundizará en el propio Linux con una visión de alto nivel de cómo funciona el núcleo y cómo se pueden explotar sus controladores para distribuir software malicioso. En el Capítulo 16, aprenderá habilidades esenciales de programación para automatizar scripts de hacking. El Capítulo 17 le enseñará conceptos básicos de Python, y programará dos herramientas de hacking: un escáner para espiar conexiones TCP/IP y un simple descifrador de contraseñas. El Capítulo 18 explorará la intersección entre el hacking y la inteligencia artificial, introduciendo conceptos básicos y demostrando cómo la IA puede ayudar en la ciberseguridad.
Con el crecimiento del campo de la seguridad de la información en los últimos años, también se ha producido un aumento considerable en el campo del hacking ético, también conocido como hacking de sombrero blanco. El hacking ético es la práctica de intentar infiltrarse y vulnerar un sistema para descubrir sus puntos débiles y protegerlo mejor. Yo divido el campo del hacking ético en dos componentes principales: las pruebas de intrusión para una empresa legítima de seguridad de la información y el trabajo para las agencias militares o de inteligencia de un país. Ambas son áreas en rápido crecimiento y con una fuerte demanda.
A medida que las empresas adquieren una mayor conciencia de la seguridad y el coste de las brechas de seguridad aumenta exponencialmente, muchas grandes organizaciones empiezan a contratar servicios de seguridad. Uno de estos servicios es el de las pruebas de intrusión, que básicamente es un hacking legal por encargo para demostrar la vulnerabilidad de la red y de los sistemas de una empresa.
Generalmente, las empresas realizan primero una evaluación para encontrar posibles vulnerabilidades en sus redes, sistemas operativos y servicios. Hago hincapié en el posibles, ya que esta exploración de vulnerabilidades incluye un número significativo de falsos positivos (cosas identificadas como vulnerabilidades que realmente no lo son). Este es el papel del pentester: intentar hackear o entrar en estas vulnerabilidades. Solo así la empresa puede saber si la vulnerabilidad es real y decidir invertir tiempo y dinero para cerrarla.
Casi todas las naciones de la Tierra practican actualmente el ciberespionaje y la ciberguerra. La ciberguerra en Ucrania ha puesto este tipo de guerra en el primer plano de la conciencia de todos, ya que hackers de todo el mundo han apoyado los esfuerzos de Ucrania por seguir siendo libre. (Los hackers de https://www.hackers-arise.com han desempeñado un papel crucial en esta ciberguerra). En tiempos menos caldeados, basta con echar un vistazo a los titulares para ver que los gobiernos utilizan actividades cibernéticas para espiar, e incluso atacar, sistemas militares e industriales.
Con el tiempo, el impacto del hacking en actividades militares y de recopilación de información será cada vez mayor. Imaginemos una guerra del futuro en la que los hackers puedan acceder a los planes de su adversario y dejar fuera de combate su red eléctrica, sus refinerías de petróleo y sus sistemas de abastecimiento de agua. En un mundo así, el hacker se ha convertido en un componente clave de la defensa de una nación.
¿Y por qué los hackers utilizan Linux y no otros sistemas operativos? Pues sobre todo porque Linux ofrece un nivel de control mucho mayor mediante distintos métodos.
A diferencia de Windows, Linux es de código abierto, lo que significa que el código fuente del sistema operativo está disponible. Como tal, puede cambiarlo y manipularlo a su antojo. Si desea que un sistema funcione de una forma que no estaba prevista, poder manipular el código fuente es esencial.
Para hackear con eficacia, debe conocer y comprender su sistema operativo, así como el que está atacando. Linux es totalmente transparente, lo que significa que podemos ver y manipular todas sus partes operativas.
No ocurre lo mismo con Windows. Microsoft se esfuerza para que sea lo más difícil posible conocer el funcionamiento interno de sus sistemas operativos, por lo que nunca se sabe realmente lo que está pasando «bajo el capó», mientras que en Linux hay un foco que ilumina directamente todos y cada uno de los componentes del sistema operativo. Esto hace que trabajar con Linux sea más eficaz.
Linux es granular. Esto significa que tenemos una cantidad casi infinita de control sobre el sistema. En Windows, solo puede controlar lo que Microsoft le permite controlar. En Linux, todo puede ser controlado por el terminal, al nivel más minúsculo o al nivel más macro. Además, Linux hace que el scripting en cualquiera de los lenguajes para ello sea sencillo y eficaz.
Más del 90 % de las herramientas de hacking están escritas para Linux. Hay excepciones, por supuesto, como Caín y Abel y Wikto, pero esas excepciones confirman la regla. Incluso cuando herramientas de hacking (como Metasploit o nmap) se portan para Windows, no todas las capacidades se transfieren de Linux.
Puede parecer una afirmación radical, pero creo firmemente que el futuro de la informática es de Linux y de los sistemas Unix. Microsoft tuvo su momento en los años 80 y 90, pero su crecimiento se está ralentizando.
Desde los inicios de Internet, Linux/Unix ha sido el sistema operativo elegido para los servidores web por su estabilidad, fiabilidad y robustez. Incluso hoy, se utiliza en dos tercios de los servidores web y domina el mercado. Los sistemas integrados en routers, conmutadores y otros dispositivos utilizan casi siempre un núcleo Linux, y el mundo de la virtualización está dominado por Linux, ya que tanto VMware como Citrix se basan en este núcleo.
Más del 80 % de los dispositivos móviles funcionan con Unix o Linux (iOS es Unix y Android es Linux), así que si cree que el futuro de la informática está en los dispositivos móviles, como tabletas y teléfonos (sería difícil argumentar lo contrario), entonces el futuro es de Linux/Unix. Microsoft Windows solo tiene el 7 % del mercado de dispositivos móviles. ¿Es ese el tren al que se quiere subir?
Antes de empezar, deberá descargar e instalar Kali Linux en su ordenador. Esta es la distribución de Linux con la que trabajaremos en este libro. Linux fue desarrollado por Linus Torvalds en 1991 como una alternativa de código abierto a Unix. Como es de código abierto, desarrolladores voluntarios codifican el núcleo, las utilidades y las aplicaciones. Esto significa que no hay una entidad corporativa que supervise el desarrollo y, por ello, a menudo faltan convenciones y estandarización.
Kali Linux fue desarrollado por Offensive Security como un sistema operativo de hacking basado en una distribución de Linux llamada Debian. Hay muchas distribuciones de Linux, y Debian es una de las mejores. Probablemente conozcas Ubuntu, una popular distribución de Linux para escritorio. Pues Ubuntu también se basa en Debian. Otras distribuciones son Red Hat, CentOS, Mint, Arch y SUSE. Aunque todas comparten el mismo núcleo Linux (el corazón del sistema operativo que controla la CPU, la RAM, etc.), cada una tiene sus propias utilidades, aplicaciones e interfaz gráfica (GNOME, KDE y otras) para diferentes propósitos. Por ello, cada una de estas distribuciones es ligeramente diferente. Kali fue diseñado para pruebas de intrusión y hackers y viene con un complemento significativo de herramientas de hacking.
Le recomiendo encarecidamente que utilice Kali para este libro. Aunque puede usar otra distribución, probablemente tendrá que descargar e instalar manualmente las diversas herramientas que usaremos, lo que podría significar muchas horas de descarga e instalación de software. Además, si esa distribución no está construida sobre Debian, puede ser ligeramente distinta. Puede descargar e instalar Kali desde https://www.kali.org.
NOTA
Si prefiere instalar Kali a través del subsistema de Windows para Linux (WSL) en una máquina con Windows, salte a «Instalar Kali a través del subsistema de Windows para Linux», en la página xxxvii.
En la página de inicio, sitúese sobre el enlace Descargas en la parte superior de la página y haga clic en Descargar Kali Linux. Aparecerán varias opciones de descarga; es importante que elija la correcta. En la parte izquierda de la tabla, verá el nombre de la imagen, que es el nombre de la versión que descarga el enlace. Por ejemplo, puede ver el nombre Kali Linux 64Bit, lo que significa que es el Kali Linux completo y es adecuado para sistemas de 64 bits (la mayoría de los sistemas modernos utilizan una CPU Intel o AMD de 64 bits).
Para determinar qué tipo de CPU tiene su sistema, vaya a Control Panel ▸ System and Security ▸ System, donde podrá consultarlo. Si su sistema es de 64 bits, descargue e instale la versión de Kali completa (full) de 64 bits (no Light, Lxde ni ninguna de las otras alternativas). Si utiliza un ordenador antiguo con una CPU de 32 bits, deberá instalar la versión de 32 bits, que aparece más abajo en la página.
Puede descargar el archivo a través de HTTP o de Torrent. Si elige HTTP, Kali se descargará directamente en su sistema como cualquier descarga y se guardará en la carpeta Descargas. La descarga con Torrent es la descarga peer-to-peer utilizada en muchos sitios de intercambio de archivos. Necesitará una aplicación Torrents como BitTorrent para utilizar esta opción. El archivo Kali se descargará en la carpeta en la que la aplicación de Torrents almacene sus descargas.
Hay otras versiones para otros tipos de CPU, como la arquitectura ARM, que suele utilizarse en tantos dispositivos móviles. Si dispone de una Raspberry Pi, una tableta u otro dispositivo móvil, asegúrese de descargar e instalar la versión de Kali para arquitectura ARM desplazándose hacia abajo hasta Download ARM Images y haciendo clic en Kali ARM Images. Los usuarios de teléfonos probablemente preferirán Kali NetHunter.
Ya ha descargado Kali pero, antes de instalarlo, quiero hablar un poco sobre las máquinas virtuales. Generalmente, para cualquier principiante, instalar una imagen virtual de Kali y luego ejecutarla en una máquina virtual como VirtualBox o VMWare Workstation es la mejor solución para aprender y practicar.
La tecnología de máquina virtual (VM) permite ejecutar múltiples sistemas operativos desde un ordenador portátil o de sobremesa. Esto significa que puede seguir ejecutando el sistema operativo Windows o macOS con el que está familiarizado mientras ejecuta una VM de Kali Linux dentro de ese sistema operativo. No es necesario sobrescribir el sistema operativo existente para aprender Linux.
Existen numerosas aplicaciones de máquinas virtuales de VMware, Oracle, Microsoft y otros proveedores. Todas son excelentes, pero, en este caso, le mostraré cómo descargar e instalar VirtualBox, gratuita, de Oracle.
Puede descargar VirtualBox desde https://www.virtualbox.org. Pulse en el enlace Descargar en la parte superior de la página y seleccione el paquete VirtualBox para el sistema operativo de su ordenador, que alojará VirtualBox VM. Asegúrese de descargar la última versión. Una vez completada la descarga, haga clic en el archivo de instalación y aparecerá el conocido asistente de instalación. Haga clic en Next para pasar a la pantalla de configuración personalizada, como puede ver en la Figura 1.
Figura 1.Cuadro de diálogo Custom Setup
NOTA
Estas instrucciones han sido escritas pensando en Windows. Si utiliza un Mac, el proceso puede ser ligeramente distinto, aunque podrá seguirlo sin problemas.
En esta ventana, simplemente pulse en Next. Siga pulsando en Next hasta llegar a la pantalla de aviso Network Interfaces, en la cual deberá pulsar en Yes.
Pulse en Install para que empiece el proceso. Durante dicho proceso, es probable que se le pregunte varias veces acerca de la instalación de software de dispositivo (device software). Estos son los dispositivos de red virtuales necesarios para que sus máquinas virtuales se comuniquen. Haga clic en Install para cada uno de ellos.
Una vez completada la instalación, haga clic en Finish.
Ahora empecemos con la VM. VirtualBox debería abrirse una vez terminada la instalación (si no, ábralo), y VirtualBox Manager debería darle la bienvenida, como puede ver en la Figura 2.
Figura 2.La pantalla VirtualBox Manager
Como vamos a crear una nueva VM con Kali Linux, haga clic en New, en la parte superior. Se abrirá el cuadro de diálogo Create Virtual Machine.
Asige un nombre a la máquina (puede ser cualquier nombre, aunque yo utilizo simplemente Kali) y seleccione Linux del menú desplegable Type. Por último, seleccione Debian (64-bit) del tercer menú desplegable (a menos que esté utilizando la versión de Debian de 32 bits). Haga clic en Next y verá una pantalla para seleccionar cuánta RAM utilizará para ubicar la nueva VM.
Como norma general, no recomiendo utilizar más del 25 % de la RAM total del sistema. Eso significa que, si ha instalado 4 GB en su sistema físico o host, seleccione solo 1 GB para la VM; y si tiene 16 GB en el sistema físico, seleccione 4 GB (o 4096 MB). Cuanta más RAM le dé a su máquina virtual, mejor y más rápido funcionará, pero también debe dejar suficiente para el sistema operativo host y cualquier otra máquina virtual que desee ejecutar simultáneamente. Las máquinas virtuales no utilizarán RAM cuando estén inactivas, pero sí espacio en el disco duro.
Haga clic en Next para acceder a la pantalla Hard Disk. Seleccione Create Virtual Hard Disk y haga clic en Create. Le preguntará que tipo de archivo de disco duro utilizar. Seleccione la opción predeterminada VDI.
En la siguiente pantalla, puede decidir si quiere que el disco duro que está creando se asigne dinámicamente o a un tamaño fijo. Le sugiero que elija Dynamically Allocated, pues el sistema no ocupará el tamaño máximo que asigne al disco duro virtual hasta que lo necesite, ahorrando más espacio de disco duro no utilizado para el sistema host.
Haga clic en Next y elija la cantidad de espacio de disco duro que desea asignar a la máquina virtual y la asignación de la misma (vea la Figura 3).
Figura 3.Asignación del espacio de disco duro
El valor por defecto es de 8 GB. Normalmente me parece poco, por lo que le recomiendo que asigne entre 20 GB y 25 GB como mínimo. Recuerde: si elige asignar dinámicamente espacio en el disco duro, no utilizará ese espacio hasta que lo necesite, y ampliar el disco duro después de que ya haya sido asignado puede ser complicado, así que mejor pecar por exceso.
Haga clic en Create y ¡ya lo tiene todo listo!
Llegados a este punto, debería ver una pantalla como la de la Figura 4. A continuación, deberá instalar Kali. Observe que, a la izquierda del VirtualBox Manager, aparece un indicador de que Kali VM está apagada. Haga clic en el botón Start (el icono con la flecha verde).
Figura 4.Ventana de bienvenida de VirtualBox
VirtualBox Manager le preguntará dónde encontrar el disco de arranque. Ya ha descargado una imagen de disco con la extensión .iso, que debería estar en la carpeta Descargas (si ha utilizado un torrent para descargar Kali, el archivo .isofile estará en la carpeta de descargas de la aplicación de torrenting). Haga clic en el icono de carpeta de la derecha, navegue hasta la carpeta Descargas y seleccione el archivo de imagen de Kali (vea la Figura 5).
Figura 5.Seleccione el disco de arranque
Haga clic en Start. ¡Enhorabuena! Acaba de instalar Kali en su máquina virtual.
Kali muestra una pantalla como la de la Figura 6, en la cual puede elegir entre varias opciones de arranque. Le sugiero usar la instalación gráfica para principiantes. Utilice las teclas del teclado para navegar por el menú.
Si se produce un error al instalar Kali en VirtualBox, quizás es que no tiene habilitada la virtualización en la BIOS de su sistema. Cada sistema y su BIOS son ligeramente diferentes, así que consulte con el fabricante o busque en Internet soluciones para su caso. Además, en los sistemas Windows, es probable que tenga que desactivar cualquier software de virtualización de la competencia, como Hyper-V. Busque en Internet y siga las instrucciones.
Figura 6.Seleccione el método de instalación
A continuación, deberá seleccionar el idioma. Elija el idioma con el que se sienta más cómodo y haga clic en Continue. Después, seleccione su ubicación, pulse en Continue y elija el diseño del teclado.
Al pulsar en Continue, VirtualBox iniciará un proceso de detección del hardware y de los adaptadores de red. Espere pacientemente mientras lo hace. Cuando termine, aparecerá una pantalla en la cual deberá configurar su red, como puede ver en la Figura 7.
Figura 7.Introduzca un nombre de administrador
Lo primero que le pide es el nombre de host. Puede ponerle el nombre que quiera, pero yo he dejado el predeterminado: kali.
A continuación, se le pedirá el nombre del dominio. Aquí, no es necesario introducir nada. Haga clic en Continue. La siguiente pantalla, que puede ver en la Figura 8, es muy importante. En ella, se le pide la contraseña que desea utilizar para el usuario root. A partir de Kali 2020 y versiones posteriores, Kali le proporciona un nombre de usuario y una contraseña configurados como kali.
Figura 8.Elija una contraseña
El usuario root en Linux es el todopoderoso administrador del sistema. En este caso, usted es un usuario normal: kali. Puede utilizar cualquier contraseña que considere segura. Si se tratara de un sistema físico en Internet, sería mejor que usara una contraseña muy larga y compleja para que no pudiera ser descifrada por un atacante. Pero como se trata de una máquina virtual a la que la gente no puede acceder sin pasar primero por el sistema operativo host, la autenticación de la contraseña es menos importante. Aun así, elija sabiamente.
Haga clic en Continue y configure la zona horaria del sistema. Hágalo y siga adelante.
La siguiente pantalla pregunta por las particiones de disco (una partición es exactamente lo que parece: una porción o segmento del disco duro). Elija Guided – use entire disk y Kali detectará los discos duros y configurará un particionador automáticamente.
