Inyectopi es un conjunto de tutoriales que he decidido escribir para aprender sobre varias técnicas de inyección en el entorno de Windows. La idea me vino a la mente cuando noté estas increíbles fuentes de Hasherezade.
Esto es lo que pensé:
"¿Hay algo mejor que un animal poderoso con múltiples brazos balanceando armas puntiagudas venenosas?"
Este tutorial muestra cómo puede crear un programa que, cuando se ejecute, inyecte el código en un proceso existente. Mostraremos múltiples técnicas de creciente complejidad descubierta por investigadores de seguridad y codificadores de malware. ¡Cabe señalar que esta lista no está completa, ya que solo muestra las técnicas principales!
| Nombre | Descripción | Winapi principal |
|---|---|---|
| Creado | Genera un proceso benigno con su punto de entrada parcheado con un código de shell | CreateProcess , VirtualProtectEx , ReadProcessMemory |
| Creación | Crea una nueva sección ejecutable, que contiene un código de shell, en un proceso existente | CreateProcess , ZwCreateSection , NtMapViewOfSection , ZwCreateThreadEx |
| CreateSectionApc | Igual que CreaTesection: esta vez se utilizarán llamadas de procedimiento asíncrono. | CreateProcess , ZwCreateSection , NtMapViewOfSection , NtQueueApcThread |
| FullCopy | Asigna una región de memoria ejecutable en un proceso existente y se copia en esa región | ZwCreateSection , NtMapViewOfSection |
Si desea compilar cada binario, se sugiere usar:
¡Solo abra Injectopi.sln con Visual Studio!
¡Asegúrese de tener los componentes Desktop C++ x86 and x64 habilitados con su instalación de Visual Studio!
¡Deberías estar listo para ir!
He comentado lo que hace ShellCode en el archivo SHELLCODE.md .
¡Aquí a continuación puede encontrar una lista de artículos / sitios web / documentos interesantes que me pareció útil mientras escribí inyectopi!
Desde su sitio web:
Imagine ejecutar sus aplicaciones y controladores de Windows favoritos en un entorno de código abierto en el que pueda confiar. Eso es reactos. No solo un sistema operativo abierto sino también un sistema operativo gratuito.
Reactos es un proyecto increíble cuyo objetivo es obtener el sistema operativo Windows al inicio de la ingeniería inversa. La documentación que encuentra en su sitio web es de oro puro.
El papel "Comprender Windows Shellcode" de Skape es un gran recurso que seguramente lo ayudará a comprender cómo funcionan las partes internas de Windows y cómo usarlos para escribir ShellCode.
¡El shellcode que uso en estos ejemplos usa algunas técnicas que se muestran en el documento!
¡Cualquier contribución es muy bienvenida! ¡No dude en abrir problemas y extraer solicitudes!
Esta idea del proyecto nació gracias al repositorio de demostración de Hasherezade y al apoyo constante de mi instructor Federico Maggi.
¡Un agradecimiento especial a mis amigos Francesco y Giancarlo que me ayudaron a revisar todo!
Copyright 2017 Giulio De Pasquale
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.