Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEGURIDAD INFORMÁTICA
HACKING . PROGRAMACIÓN . ELECTRÓNICA . GNU/LINUX
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¬a=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.
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¬a=34 2/4
13/12/2020 Se me cayó un exploit (SMC1E)
ANTES:
DESPUÉS:
Podemos utilizar el buscador del editor hexadecimal para posicionarnos en ese offset.
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¬a=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.
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 :)
Fecha: 10/06/2017
https://www.semecayounexploit.com/?sec=ingenieria-inversa¬a=34 4/4