Lo más importante al operar un servidor doméstico era la seguridad.
No importaba cuánto construyera las funciones del sitio web a mi gusto, una vez que sufrí un solo ataque de hacking que venía de todas partes, todo se volvió inútil.
La última vez que estuve siendo hackeado durante 3 días seguidos, realmente fue aterrador.
Así que decidí estudiar sobre hacking.
En YouTube decían que un libro llamado 해킹 맛보기 era como una biblia, así que lo compré...
No me di cuenta de que la fecha de publicación era 2015.

Al final el libro llegó y, al abrirlo, al ver direcciones con Explorer, Chrome antiguo, http, me di cuenta de que algo iba mal.
Según la ley de Moore, como la densidad de integración de los semiconductores aumenta exponencialmente en potencias de 2, hace 10 años equivale a un libro de hace 100~300 años.
Es como leer los Principia de Newton para estudiar gravedad.
Pero ya era tarde.
Al menos parecía que tendría que conformarme con leerlo lo más rápido posible y captar solo el flujo general.

1. Revisión del contenido
Capítulo 1) Toma de contacto
El contenido de toma de contacto del capítulo 1 ahora está tan desfasado que hay muchas cosas que ya no son correctas.
Pero aun así hay cosas que aprender.
El sitio de hacking Wechall que presenta el autor ya es antiguo, y dicen que sitios como TryHackMe o Hack The Box tienen ahora mucha más cuota.
Ítem | WeChall | TryHackMe | Hack The Box |
|---|---|---|---|
Uso principal | Ranking y recopilación de varios wargames | Práctica de seguridad básica-intermedia + aprendizaje | Pruebas de penetración reales + práctica avanzada |
Número de usuarios | (Sin datos oficiales públicos) | ~4,5M usuarios | Muy activo, popular también en la industria |
Estructura de aprendizaje | Principalmente recopilación de enlaces a wargames externos | Cursos de aprendizaje por etapas + CTF | Centrado en práctica de hacking de sistemas reales |
Público principal | Aficionados a wargames, competencia de puntuación | Aprendices de seguridad de nivel inicial a intermedio | Intermedios~expertos y quienes se preparan para entornos reales |
Además, el evento 2drunk2hack también ha desaparecido, y herramientas de hacking como Paros ahora se consideran legadas.
Aun así, leyendo el libro supe que existen herramientas específicas de hacking.
No hace falta dominar funcionalidades legadas, basta con pensar ah, existe algo así y seguir adelante.
Ítem | Paros | Burp | ZAP | mitmproxy |
|---|---|---|---|---|
Mantenimiento | ❌ Interrumpido | ✅ Activo | ✅ Activo | ✅ Activo |
Compatibilidad HTTPS moderna | ❌ | ✅ | ✅ | ✅ |
Uso en entornos reales | ❌ | ✅ Abrumador | △ | △ |
Automatización | ❌ | △ | △ | ✅ |
Gratuito | ✅ | ❌(Pro) | ✅ | ✅ |
En YouTube, la persona del canal Nomaltic Place, al que estoy suscrito actualmente, también presenta sitios de wargames como OverTheWire.
Creo que el contenido de abajo puede ser un poco más útil que el del capítulo 1 de este libro.
Capítulo 2) Hacking web
En el hacking web se trata, desde la instalación de php y mysql, hasta la búsqueda de vulnerabilidades usando buscadores, subida de archivos, cross-site, inyección de consultas, de forma sencilla.
La parte de Google hacking me pareció bastante ingeniosa: se trata de encontrar mediante búsquedas vulnerabilidades expuestas por errores del operador del sitio.
Propósito | Ejemplo de búsqueda |
|---|---|
Archivos de copia de seguridad expuestos |
|
Exposición de variables de entorno |
|
Listado de directorios |
|
Archivos de log |
|
Archivos de configuración |
|
Cámaras |
|
Página de administrador |
|
También había un método de hacking mediante imágenes subidas.
Se trata de inyectar algo como <img src="/board/file/shell.php> en la etiqueta de imagen para ejecutar un shell.
Antes, cuando había dejado abierta una API de proxy de imágenes en mi servidor doméstico, vi a algún tipo que insertó onerror={} dentro de la etiqueta de imagen e intentó descargar y ejecutar archivos usando la función fetch y comandos, pero fracasó al no poder obtener privilegios de administrador.

También había contenido sobre la creación de Web Shell.
El autor presenta C99, pero eso ya es cosa del pasado.
Dicen que ahora se usan más shells ligeros y cifrados.
Época | Web shells predominantes | Características |
|---|---|---|
2000s–2010s | C99, R57, WSO | Centrados en funcionalidad, basados en PHP, grandes y llamativos |
Mitad de 2020s | Variantes de China Chopper | Ligereza + ocultación + cifrado |
Reciente (2024–2025) | Tipos de Beima PHP Webshell y shells personalizados/cifrados | Interfaz JSON, peticiones cifradas, integración C2 |
Ya conocía el concepto de inyección de consultas desde hace tiempo, pero leyendo el libro pude entenderlo con más detalle.
Lo importante es que no se debe confiar en la entrada del usuario.
Es imprescindible que pase por un proceso de validación antes de entrar en el backend.
Capítulo 3) Ingeniería inversa
La ingeniería inversa significa descomponer de nuevo un programa existente.
En pocas palabras, es como pensar en el proceso de reconstituir en .py un archivo exe compilado con pyinstaller tras desarrollarlo en python.
El autor presenta Visual Studio Express y OllyDbg.
He recopilado las herramientas más recientes de reversing.
Herramienta | Uso principal | Características | Plataforma |
|---|---|---|---|
Ghidra | Análisis estático + descompilación | Potente framework de código abierto, incluye descompilador, desarrollado por la NSA | Windows / Linux / macOS |
Radare2 | Análisis estático (comandos/script) | Totalmente open source y gratuito, centrado en CLI, soporta varios binarios | Windows / Linux / macOS, etc. |
x64dbg | Depuración dinámica | Depurador de 32/64 bits para Windows, con GUI, muy popular | Windows |
Frida | Análisis dinámico en tiempo de ejecución | Permite hookear y trazar apps/binarios en ejecución, fuerte en análisis móvil | Windows / Linux / macOS / móvil |
Dicen que en el proceso de reversing se usa mucho la calculadora, pero ahora basta con subirlo a apps de automatización como Cursor y listo.
Sin embargo, cuando entra en juego algo como la ofuscación, sigue siendo necesaria la interpretación humana.
Dicen que las siguientes áreas no son fáciles de interpretar para la IA.
Área | Motivo |
|---|---|
Errores lógicos | Cuestión de intención |
Condiciones límite | Decisiones de diseño |
Seguridad/reversing | Dependiente del contexto |
Valores anómalos | Requieren intuición |
Y la parte de arquitectura de computadores y lenguaje ensamblador me pareció realmente una locura.
Ya conocía la estructura de la CPU porque la estudié antes, pero fue la primera vez que supe que las partes donde se almacenan las variables, donde se calculan números y donde entran cadenas son todas diferentes.
Ver en ensamblador sumas, condicionales, bucles, etc. convertidos a hexadecimal me hizo dar vueltas los ojos.

Y después de eso venía una sección de práctica de reversing real con OllyDbg.
Como de todos modos no iba a usar esos programas, pasé directamente al capítulo 4.
Capítulo 4) Hacking de sistemas
El hacking de sistemas es lo mismo que el hacking del sistema operativo.
Hay también partes como la instalación de Python, pero me centraré principalmente en las vulnerabilidades.
(1) Vulnerabilidad de inserción de comandos
El método de inserción de comandos puede ocurrir cuando el desarrollador confía en la entrada del usuario.
Por ejemplo, supongamos que tenemos un código como el siguiente.
system("ping " + user_input);En este caso, si el usuario introduce ; rm -rf /, se ejecutará un comando no previsto por el desarrollador.
Al recibir la entrada del usuario, es imprescindible pasar por un proceso de validación.
(2) Ataque de condición de carrera
Un ataque de condición de carrera se aprovecha de la diferencia de tiempo que se produce entre la comprobación del estado de un recurso compartido y su uso en entornos multihilo o de múltiples peticiones.
Se trata de explotar una situación en la que se desajusta el orden entre comprobar un recurso y usarlo.
El problema es cómo capturar ese momento.
Por eso, el atacante realiza peticiones rápidas, simultáneas y numerosas para aprovecharse de los huecos entre las ejecuciones.

Por ejemplo, supongamos que se entra en un parque de atracciones en el siguiente orden.
El empleado comprueba el ticket del visitante -> abre la puerta > la persona cuyo ticket ha sido comprobado entra -> cierra la puertaSi en ese momento A, que llegó primero, ha tenido el ticket comprobado, pero B, que llegó tarde, entra por la puerta abierta, eso sería un ataque de condición de carrera.
Para evitarlo, se necesita un diseño como el siguiente.
1. Reducir el estado compartido
2. Garantizar atomicidad -> procesar comprobación + entrada al mismo tiempo
3. Encapsular con un Lock la parte que toca el recurso compartido para procesar una solicitud a la vez
4. Delegar en la BD/almacenamiento
5. Tratar con seguridad los archivos temporales/compartidos
6. Diseñar reintentos/idempotencia -> procesar cada solicitud idéntica solo una vez(3) Ataques de corrupción de memoria
Pude comprender con un poco más de detalle los ataques de desbordamiento de búfer.
Hace tiempo, cuando aprendí arrays en C, estudié el desbordamiento, así que esta parte fue algo más fácil.
En una situación como la de abajo, si la entrada del usuario se alarga, invade la memoria adyacente.
char arr[3];
scanf("%s", arr);Capítulo 5) Bug hunting
Entre los bugs, aquellos que pueden causar problemas se llaman vulnerabilidades de seguridad.
Los atacantes pueden usar estas vulnerabilidades para obtener privilegios o atacar a los usuarios.
(1) Encontrar vulnerabilidades
Hay varios métodos para encontrar vulnerabilidades.
Auditoría de código fuente: analizar el código en sí, uno por uno, para encontrar vulnerabilidades
Auditoría de binarios: analizar el binario compilado cuando no se dispone del código fuente del software
Fuzzing: generar automáticamente valores de entrada para el software, introducirlos y buscar vulnerabilidades a través de los resultados
(2) Tipos de vulnerabilidades
Corrupción de memoria: desbordamiento de pila, desbordamiento de heap, desreferenciación de puntero nulo, uso después de liberar
Diseño: lógica que no ha tenido en cuenta perfectamente el aspecto de seguridad
(3) Bug hunting en la web
El libro describe la ejecución remota de código de Zeroboard XE, pero como el contenido es demasiado antiguo, decidí investigar en su lugar sobre React2Shell, que ocurrió recientemente.
Es una de las mayores vulnerabilidades recientes, que permite la ejecución remota de shell y comandos.
El problema es que el ataque es posible incluso en apps generadas con npx create-next-app sin ninguna API.
El método de ataque fue implementado por el usuario de Github zr0n.
Y si entras en AhnLab, han analizado en detalle la causa de la vulnerabilidad y el método de ataque.
Resumiendo solo lo esencial, sería lo siguiente.
En el stream Flight, parte de la interpretación de referencias/registros pasa por la resolución de Promesas (asimilación thenable). El atacante aprovecha la debilidad en la validación de __proto__ en la asignación de ruta : para contaminar el prototipo. Como resultado, si métodos como _response._formData.get se convierten en Function, la posterior ruta de código normal en la que se llama a get(...) se deforma en ejecución de cadenas. El thenable actúa como el disparador para que esta ruta deformada se ejecute automáticamente.
El paso más importante es contaminar el prototipo usando la propiedad mágica __proto__.
A este método de ataque se le llama contaminación de prototipo (Prototype Pollution).
(4) Bug hunting en diversos entornos
En el contenido posterior se tratan temas como bugs de escalada de privilegios en Android, ejecución remota de código en GOM Player y Hangul en Windows, etc.
Capítulo 6) Forense digital
Se tratan características de los datos digitales, las propiedades para garantizar la validez como prueba, tipos de pruebas, etc.
Como el libro es antiguo y aún no tengo gran interés en forense digital, lo hojeé por encima.
Capítulo 7) Mercado de vulnerabilidades
Presenta el mercado negro como mercado de vulnerabilidades, pero dicen que ahora prácticamente no se puede buscar.
Como no necesito saber cómo usar el mercado negro, lo sustituyo con la tabla siguiente.
Categoría | Estado |
|---|---|
Mercado negro público | ❌ Casi desaparecido |
Foros en la dark web | ⚠️ Reducidos/camuflados |
Transacciones privadas basadas en mensajería | ✅ Activas |
Ecosistema de ransomware | ✅ Muy activo |
Bug bounty | ✅ Ruta legal |
Mercado gris de estados/agencias de inteligencia | ✅ Transacciones de alto valor |
2. Reseña de lectura
Al leer el libro pude asentar los conceptos básicos del hacking.
El hacking es el proceso de encontrar vulnerabilidades de seguridad, y este proceso es similar a pensar en la seguridad de una casa.
Se trata de ver por dónde podría entrar alguien, cómo entra y cómo obtiene privilegios.
Me pareció bastante interesante, y pensé que me gustaría seguir estudiando hacking de forma constante.
Antes era difícil obtener información sobre programación, pero ahora se ha convertido en un contenido al que cualquiera puede acceder fácilmente a través de la IA o la web.
Y parece que 10 años es un periodo increíblemente largo en el ámbito del desarrollo.
Entre los contenidos tratados en el libro, hay demasiadas cosas que ya han desaparecido.
Si quieres conocer los detalles sobre hacking, parece que ahora hay que comprar otro libro o utilizar la web.

댓글을 불러오는 중...