Está en la página 1de 4

13/12/2020 Se me cayó un exploit (SMC1E)

SEGURIDAD INFORMÁTICA
HACKING . PROGRAMACIÓN . ELECTRÓNICA . GNU/LINUX

Se me cayó un exploit en tu server.... por @Un

INICIO Sheila A. Be
Acerca de mi shei@unapibageek:~$ ./Ingeniería-Inversa
Advisories Ingeniería inversa de TODO! Necesito saber cómo están hechas las cosas :)
Charlas de infosec
Hobbies Reversing III: Expandir secciones del ejecutable
Rincón personal
En la segunda entrada de esta serie de notas de reversing
Mis notas sobre... estuvimos viendo las cabeceras PE, una de ellas es "Image
Análisis de Malware Section Header" que contiene información sobre las secciones
Android Hacking del ejecutable. Nuestro objetivo esta vez será alterar cierta
información de esa cabecera para que podamos expandir una shei@unapibageek:~
Bugs && Exploits sección ya existente dentro del ejecutable ¿Para qué? Para
Car Hacking tener el espacio suficiente para inyectar código propio dentro ¡Suscribite
Criptografía de cualquier .exe.
Criptomonedas Tu correo...
Cabe mencionar que hacer esto no es necesario si el código que planeamos inyectar
Hack RF cabe sin problemas en algún espacio que pudo haber quedado sin utilizar en una
InSeguridad en Redes sección. Por ejemplo, podríamos encontrarnos con que al final de una sección hay una
InSeguridad Web gran cantidad de bytes con el opcode 90 o 00, lo cual implica que es un espacio que no Aprendé más
Ingeniería Inversa contiene instrucciones necesarias para el programa y entonces podríamos aprovecharlo
para inyectar el código que deseemos en ese lugar.
Ingeniería social y PNL
Password Cracking Mayormente esto no ocurrirá, por lo tanto, tendremos que hacernos el espacio
PenTest manualmente expandiendo o creando una nueva sección.
Privacidad y Anonimato
EXPANDIR UNA SECCIÓN
Mis códigos en... La primera pregunta que surge al momento de expandir una sección es: ¿Cuál de todas?
ASM La mejor respuesta es: la última. Si expandimos cualquier sección que no sea la última,
nos encontraremos con varios pasos más que tendremos que hacer, tal como actualizar
AutoIT todas las RVA que apuntan al comienzo de cada una de las secciones, etc. Por lo tanto,
C/C++ lo mejor es que alarguemos la última sección.
PHP
Python Para ello abrimos el LordPE, presionamos en "PE Editor" y elegimos el ejecutable que
vamos a modificar.
Mis pasiones por...
Drones & Robots
Electrónica
GNU/Linux
Mis proyectos...
OpenCANdb
Mis tools...
CTFR
The Bicho
Car Backdoor Maker
Contacto
Gmail/Hangout
Linkedin
Twitter
Instagram
GPG-ID: 0x3593BDE4

Allí, hacemos click en "Sections" para ver la información de todas las secciones dentro
del ejecutable.

https://www.semecayounexploit.com/?sec=ingenieria-inversa&nota=34 1/4
13/12/2020 Se me cayó un exploit (SMC1E)

En la ventana que allí vemos, hacemos click secundario en la última sección y elegimos
la opción "Edit section header..." del menú desplegable.

Al hacerlo, se nos abrirá la siguiente ventana:

Desde allí podremos modificar todo lo que necesitamos para alargar la sección. El
primer paso es hacer que la misma sea "writeable" y "readable" (escritura y lectura) y
además su contenido se ejecute como código.

Para ello editaremos los Flags: hacemos click en el botón "..." y marcamos los casilleros
indicados en la siguiente imagen:

https://www.semecayounexploit.com/?sec=ingenieria-inversa&nota=34 2/4
13/12/2020 Se me cayó un exploit (SMC1E)

Presionamos OK para guardar y nos quedamos en la ventana de "Edit Section Header".


Allí alargaremos esa sección, sumando tanto a RawSize como a VirtualSize los bytes que
necesitemos. En mi caso, sumaré 100h a ambos campos, quedando de la siguiente
manera:

ANTES:

DESPUÉS:

Guardamos presionando OK y Save en la ventana principal de PE Editor.

Ahora abriremos el ejecutable modificado con un editor hexadecimal, y nos dirigiremos


a la última parte de la sección que modificamos. Para ello debemos sumarle al
RawOffset, la longitud (RawSize) original de la sección. Si nos fijamos, esa información
se encuentra dentro de la que estuvimos editando previamente.

En mi caso, ROffset es A4E00h y el RSize original era de 6000h. Entonces, el final de la


sección se encuentra en el offset A4E00h + 6000h, o sea en el AAE00h.

Podemos utilizar el buscador del editor hexadecimal para posicionarnos en ese offset.

Como podemos observar en la imagen, al final de la sección se encontraba un espacio


con algunos bytes en 00h, esto finaliza precisamente en el offset AAE00h.

Nuestro último paso será añadir antes de ese offset, los 100h que hemos sumado a
esta sección.
https://www.semecayounexploit.com/?sec=ingenieria-inversa&nota=34 3/4
13/12/2020 Se me cayó un exploit (SMC1E)

Los bytes en rojo son los que hemos añadido, ahora podemos notar que la sección
finaliza en el offset AAF00h en lugar de AAE00h y esto es correcto, ya que ahora
tenemos 100h más.

Guardamos y ejecutamos el .exe para asegurarnos que no rompimos nada :)

Perfect! El binario que elegí editar fue el cliente de Putty de 32bits.

En la próxima entrega añadiremos código útil en este hueco que nos hemos hecho
manualmente y modificaremos el Entry Point del .exe para que sea lo primero que se
ejecute al iniciar el programa :)

Allí nos leemos! Saludos!

¿Te cansaste de leer? Tomate un café (share):

Fecha: 10/06/2017

Copyright SMC1E ©. All Rights Reserved.


Sheila Ayelen Berta

https://www.semecayounexploit.com/?sec=ingenieria-inversa&nota=34 4/4

También podría gustarte