Descubre el secreto detrás del Desafío Shellcode Nivel 4
El mundo de la ciberseguridad es un campo en constante evolución, que requiere habilidades técnicas y conocimientos profundos para combatir las amenazas digitales. Una de las formas más desafiantes y emocionantes de poner a prueba estas habilidades es a través de los Capture The Flag (CTF), donde los participantes deben resolver una serie de desafíos cibernéticos para obtener la bandera y demostrar su expertise en seguridad.
Uno de los desafíos ciberseguridad más intrigantes es el "Shellcode Nivel 4: Snake Keylogger", que plantea un escenario en el que se revela un código malicioso llamado Snake Keylogger. El objetivo de este desafío es analizar y comprender el funcionamiento de la shellcode y descubrir cómo agrega un usuario administrador en un sistema.
Análisis de la Shellcode
¿Qué es una Shellcode?
Antes de adentrarnos en el análisis de la Shellcode utilizada en el desafío "Snake Keylogger", es importante comprender qué es una Shellcode. En el ámbito de la ciberseguridad, una Shellcode es un fragmento de código malicioso que se inyecta en un sistema para ejecutar ciertas acciones o permitir el acceso remoto al sistema.
La Shellcode suele aprovechar vulnerabilidades o brechas en el sistema para obtener privilegios y cumplir sus objetivos. Puede ser muy pequeña en tamaño y altamente ofuscada para evitar ser detectada por los sistemas de seguridad.
En el caso del desafío Shellcode Nivel 4, la Shellcode se utiliza para agregar un usuario administrador en el sistema. Este tipo de acción podría permitir a un atacante obtener acceso completo y controlar el sistema comprometido.
Otro articulo de ayuda:Cómo hackear WhatsApp mediante un fallo de seguridadAnálisis de la Shellcode "Snake Keylogger"
Una vez comprendido qué es una Shellcode, podemos adentrarnos en el análisis de la Shellcode utilizada en el desafío "Snake Keylogger". Para realizar este análisis, utilizaremos la poderosa herramienta de ingeniería inversa, radare2.
El primer paso en el análisis de la Shellcode es cargar el archivo en radare2 y examinar su estructura. Podemos utilizar el comando "r2 snake_keylogger" para abrir el archivo y luego usar el comando "i" para obtener información sobre el archivo.
$ r2 snake_keylogger
[0x080482e0]> i
cpu: x86
arch: x86
os: linux
endian: little
lang: cs
format: elf
relocs: 0
bins: 9
…
Una vez obtenida la información básica del archivo, podemos utilizar el comando "aa" para analizar automáticamente el archivo y desbloquear su estructura. Esto nos permitirá ver las funciones y los flujos de control en la Shellcode.
[0x08048350]> aa
[0x08048350]> afl
0x08048350 6 1 main
0x080483a0 21 1 sub.positive
0x080484d0 14 1 sub.fopen
0x080484e0 6 1 sub.write
0x08048500 6 1 sub.close
0x08048520 21 1 sub.decrypt
0x08048520 21 1 fcn.08048520
0x08048540 75 1 sub.success
0x08048590 10 1 sub.fail
0x080482c0 95 4 entry0
0x080482a4 4 19 section..shstrtab
0x08048478 4 24 section..interp
0x08048490 4 28 section..note.ABI-tag
0x080484b4 4 8 section..strtab
…
En el análisis de la Shellcode, identificamos varias funciones clave, como "sub.positive", "sub.fopen", "sub.write", "sub.close", "sub.decrypt", "sub.success" y "sub.fail". Estas funciones están relacionadas con la creación y escritura del usuario administrador en el sistema.
Para comprender más a fondo el funcionamiento de la Shellcode, podemos utilizar el comando "pdf" seguido de la dirección de una función específica. Por ejemplo, "pdf @sub.positive" nos mostrará el desensamblado de la función "sub.positive".
[0x08048350]> pdf @sub.positive
; DATA XREF from 0x08048364 (entry0)
...
0x0804846f 6a00 push 0
0x08048471 6a00 push 0
0x08048473 68a0880408 push str.BroK3n ; "BroK3n"
0x08048478 e8f3130000 call sym.imp.pw_enc
0x0804847d 50 push eax
0x0804847e 68a0880408 push str.BroK3n ; "BroK3n"
0x08048483 e873140000 call sym.imp.hash_password
0x08048488 a34cfb0408 mov eax, dword [aCreate_user] ; 0x804fb4c
0x0804848d 890424 mov dword [esp], eax
0x08048490 e856feffff call sym.imp.setgid
0x08048495 e851feffff call sym.imp.getpwnam
...
En este ejemplo, podemos observar que la función "sub.positive" realiza llamadas a otras funciones y realiza operaciones con las contraseñas y nombres de usuario. Estas operaciones son clave para la creación del nuevo usuario administrador "BroK3n".
Herramientas utilizadas en el Desafío Shellcode Nivel 4
Radare2
Radare2 es una potente herramienta de ingeniería inversa de código abierto que se utiliza ampliamente en el análisis de malware y en la resolución de desafíos cibernéticos como el Shellcode Nivel 4. Esta herramienta proporciona una amplia gama de funciones y comandos para analizar y comprender la estructura y el funcionamiento de un archivo binario.
En el contexto del desafío Shellcode Nivel 4, radare2 nos permite cargar y analizar la Shellcode, desensamblar el código, examinar las funciones y flujos de control, y comprender cómo se realiza la creación del usuario administrador.
pw_enc y hash_password
En el análisis de la Shellcode "Snake Keylogger", se identificaron las funciones "pw_enc" y "hash_password". Estas funciones son fundamentales para el proceso de creación del usuario administrador.
La función "pw_enc" se utiliza para encriptar la contraseña "BroK3n", mientras que la función "hash_password" se utiliza para realizar un hash de la contraseña encriptada. Ambas funciones son parte del proceso de creación del usuario administrador y están diseñadas para eludir los mecanismos de seguridad y autenticación del sistema.
setgid y getpwnam
Otras dos funciones identificadas en la Shellcode son "setgid" y "getpwnam". Estas funciones son llamadas en el proceso de creación del usuario administrador y desempeñan un papel importante en la manipulación de los permisos y la obtención de la información del usuario.
La función "setgid" se utiliza para establecer el ID de grupo efectivo del proceso, mientras que la función "getpwnam" se utiliza para obtener la información del usuario a partir del nombre de usuario proporcionado. Estas funciones permiten la manipulación de los privilegios y la creación del usuario administrador.
Conclusión
El desafío Shellcode Nivel 4: Snake Keylogger ofrece una emocionante oportunidad para poner a prueba nuestras habilidades en el campo de la ciberseguridad. Mediante el análisis de la shellcode utilizada en este desafío y el uso de herramientas como radare2, podemos comprender cómo funciona la shellcode y cómo cumple su objetivo de agregar un usuario administrador en el sistema.
A lo largo del análisis, hemos visto cómo la shellcode utiliza funciones clave como "pw_enc", "hash_password", "setgid" y "getpwnam" para encriptar una contraseña, realizar un hash de la misma, establecer los permisos adecuados y obtener la información del usuario. Estos pasos demuestran cómo se realiza la creación del usuario administrador de forma sigilosa y elusiva.
Este desafío no solo nos permite poner en práctica nuestras habilidades en ingeniería inversa y análisis de malware, sino que también nos ayuda a comprender las tácticas y técnicas utilizadas por los atacantes para explotar las vulnerabilidades en los sistemas.
El desafío Shellcode Nivel 4: Snake Keylogger ofrece una valiosa oportunidad para ampliar nuestro conocimiento en ciberseguridad y profundizar en el mundo de la ingeniería inversa y el análisis de malware. Al resolver este desafío, podemos mejorar nuestras habilidades técnicas y estar mejor preparados para enfrentar las amenazas digitales en el futuro.
Este vídeo te puede ayudar
Deja una respuesta

Contenido relacionado