Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
IconJector — Inyecta DLLs en el proceso del explorador usando iconos | Kitploit
Herramientas/GitHubGitHub/d419h/iconjector
ExplotaciónPost-ExplotaciónIngeniería SocialRed TeamingDesarrollo de PayloadsAtaque Adversario
GitHubd419h/iconjector

IconJector

Inyecta DLLs en el proceso del explorador usando iconos

Ver Repositorio
41549hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

IconJector

Se trata de una técnica de inyección de DLL en el Explorador de Windows que utiliza el diálogo de cambio de icono.

Puede engañar a los usuarios para que carguen una DLL maliciosa en el proceso del explorador:

https://github.com/0xda568/IconJector/assets/61665703/06428402-764c-4279-b762-1d01082552c8

Además, puede utilizarse para inyectar una DLL desde otro proceso en el explorador:

https://github.com/0xda568/IconJector/assets/61665703/bbf53775-ad8d-422b-b186-663ff5074976

¿Cómo funciona?

Además de contener código, las DLL también se utilizan para almacenar recursos como iconos. En la demostración puedes ver que los iconos predeterminados se almacenan en shell32.dll:

imagen

En realidad, en las versiones modernas de Windows, se almacenan en shell32.dll.mui, pero todavía se muestra como shell32.dll

Para que el proceso del explorador pueda mostrar en el diálogo todos los iconos almacenados en la DLL, necesita cargar la DLL en memoria para poder analizarla.

Además, las DLL en Windows tienen la capacidad de definir una función opcional DllMain, que se llama cuando la DLL se carga o se descarga mediante las funciones LoadLibrary y FreeLibrary.

root@kitploit:~
BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpvReserved )  // reserved
{
    // Perform actions based on the reason for calling.
    switch( fdwReason ) 
    { 
        case DLL_PROCESS_ATTACH:
         // Initialize once for each new process.
         // Return FALSE to fail DLL load.
            break;

        case DLL_THREAD_ATTACH:
         // Do thread-specific initialization.
            break;

        case DLL_THREAD_DETACH:
         // Do thread-specific cleanup.
            break;

        case DLL_PROCESS_DETACH:
        
            if (lpvReserved != nullptr)
            {
                break; // do not do cleanup if process termination scenario
            }
            
         // Perform any necessary cleanup.
            break;
    }
    return TRUE;  // Successful DLL_PROCESS_ATTACH.
}

Esto significa que si el explorador carga una DLL con una función DllMain, el código definido en la función DllMain se ejecutará en la memoria del explorador.

Y esto es exactamente lo que se hace aquí. Además, la DLL se disfraza como un icono:

El icono

El "icono" es en realidad un simple archivo DLL con extensión .ico que abre la aplicación de calculadora con un recurso de icono que se agregó utilizando Resource Hacker. (El icono también se puede agregar en Visual Studio)

Hay algunas anomalías en cuanto a la apariencia del icono en la vista de carpeta. He probado esto en dos versiones diferentes de Windows 10 (la más reciente y una más antigua) y en Windows 11.

Windows 10

En ambas versiones de Windows 10, el icono almacenado dentro de la DLL no se mostró cuando se cambió la extensión a .ico

win10 dll

En la versión más reciente de Windows 10, sin embargo, funcionó hasta que intenté abrir el "icono" dentro de la aplicación de fotos. Desde entonces, no he podido reproducirlo.

nuevo icono win10

Windows 11

En Windows 11, la DLL disfrazada se mostró como un icono normal en la vista del Explorador. Sin embargo, cuando se abre en la aplicación de fotos, se muestra un error.

https://github.com/0xda568/IconJector/assets/61665703/748c1012-1d2c-47dd-915f-860ffc6d1b05

Inyectar una DLL programáticamente

Además de engañar a un usuario para que cargue la DLL manualmente, un atacante también tiene la opción de utilizar esta técnica para inyectar un archivo DLL en el proceso del explorador programáticamente:

Primero, se crea una carpeta en el directorio temporal y se abren las propiedades de la carpeta utilizando SHObjectProperties. Para obtener el identificador de la ventana independientemente del idioma del sistema, se utiliza EnumWindows con una función de devolución de llamada que busca el nombre distintivo de la carpeta en cada ventana abierta.

función callback

A través de la página de propiedades, se invoca el diálogo de cambio de icono, cuyo identificador también se obtiene con EnumWindows. Por último, la ruta del icono se cambia a una DLL (que en este caso tiene extensión .ico), lo que hace que el explorador cargue la DLL después de presionar el botón Aceptar.

¿Por qué?

Esta es una forma muy sigilosa de inyectar una DLL en el proceso del explorador porque no utiliza la API de inyección de DLL habitual. Eso sí, produce dos ventanas emergentes breves que no son demasiado molestas. Por lo tanto, puede utilizarse como una técnica de evasión de AV por parte de un actor de amenazas para ejecutar código a través del proceso legítimo del explorador o para cargar un rootkit UMD.

Además, distribuir DLL disfrazadas como archivos .ico puede ser un vector de ataque interesante.

Herramientas utilizadas

Para obtener los identificadores de ventana correctos, utilicé Spy++, una herramienta que se instala con Visual Studio.

spy++

Créditos

¡Muchas gracias a Bill G. de Microsoft por el hermoso icono de carpeta!

¡Gracias, tipo random de internet, por el hermoso icono de inyección!

Descargar herramienta