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
RDPCredentialStealer — Implante de Windows que roba credenciales RDP mediante enganche de API (Detours) e inyección de DLL, capturando nombres de usuario y contraseñas a un archivo para post-explotación de equipos rojos. | Kitploit
Herramientas/GitHubGitHub/s12cybersecurity/rdpcredentialstealer
Post-ExplotaciónRed Teaming
GitHubs12cybersecurity/rdpcredentialstealer

RDPCredentialStealer

Implante de Windows que roba credenciales RDP mediante enganche de API (Detours) e inyección de DLL, capturando nombres de usuario y contraseñas a un archivo para post-explotación de equipos rojos.

Ver Repositorio

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
26638hace 5 mesesRevisado por Kitploit

RDPCredentialStealer

RDPCredentialStealer es un implante que roba credenciales proporcionadas por los usuarios en RDP mediante API Hooking con Detours en C++

Herramienta de Prueba de Concepto para el Robo de Credenciales

Probemos esto:

Primero, transfiero la DLL del repositorio de GitHub a la ruta C:\Users\Public\Music:

imagen

Ahora abro una Aplicación de Conexión RDP de Windows:

imagen

Y ahora ejecuto el EXE del repositorio de GitHub:

imagen

Y cuando intento acceder a un servidor RDP:

imagen

Pongo el usuario: s12User y contraseña: passwdtest

Y ahora reviso el archivo:  C:\Users\Public\Music\RDPCreds.txt

imagen

Código

RDPCredStealerDLL:

Este código es una implementación de una técnica de hooking en C++ utilizando la librería Detours. Se dirige específicamente a la función CredUnPackAuthenticationBufferW de la biblioteca credui.dll, que es responsable de desempaquetar búferes de autenticación utilizados en operaciones de credenciales. Desglosemos el código paso a paso: Se incluyen los archivos de cabecera necesarios, como windows.h, wincred.h, detours.h y otros. Se define un tipo de puntero a función CredUnPackAuthenticationBufferW_t que representa la firma de la función original CredUnPackAuthenticationBufferW. Se declara el puntero a función pCredUnPackAuthenticationBufferW, que se utilizará para almacenar la dirección de la función original.

La función MyCredUnPackAuthenticationBufferW se implementa, que sirve como hook para la función original. Se llama cuando se invoca la función enganchada. Esta función primero llama a la función original usando el puntero de función almacenado pCredUnPackAuthenticationBufferW. Luego, convierte el nombre de usuario y la contraseña recuperados de cadenas anchas (LPWSTR) a cadenas codificadas en UTF-8 (std::string).

Finalmente, abre un archivo en modo de añadido y escribe el nombre de usuario y la contraseña en él. La función DllMain sirve como punto de entrada para la DLL de hooking. Se llama cuando la DLL se carga o descarga. Cuando ul_reason_for_call es DLL_PROCESS_ATTACH, indicando que la DLL se está cargando, carga la biblioteca credui.dll usando LoadLibraryA.

Luego, obtiene la dirección de la función original CredUnPackAuthenticationBufferW usando GetProcAddress. Si tiene éxito, inicia el proceso de hooking llamando a DetourTransactionBegin, DetourUpdateThread y DetourAttach. Cuando ul_reason_for_call es DLL_PROCESS_DETACH, indicando que la DLL se está descargando, invierte el proceso de hooking llamando a DetourTransactionBegin, DetourUpdateThread y DetourDetach.

El propósito de este código es enganchar la función CredUnPackAuthenticationBufferW e interceptar las credenciales que se le pasan, permitiendo al código de hooking extraer y registrar el nombre de usuario y la contraseña en un archivo. Esta técnica puede ser utilizada maliciosamente para capturar información sensible como credenciales RDP, lo que supone una preocupación de seguridad significativa.

Inject.h

Este código proporciona funciones para inyectar una DLL (Dynamic Link Library) en un proceso objetivo en el sistema operativo Windows. Analicemos el código y comprendamos su funcionalidad:

Se incluyen los archivos de cabecera necesarios, como windows.h, stdio.h y tlhelp32.h. Estos encabezados proporcionan las funciones y tipos de datos necesarios para interactuar con la API de Windows.

La función getPIDbyProcName toma un nombre de proceso como entrada y devuelve el ID de proceso (PID) correspondiente. Utiliza la función CreateToolhelp32Snapshot para crear una instantánea de los procesos actuales, y luego itera a través de la instantánea usando las funciones Process32FirstW y Process32NextW para encontrar el proceso con un nombre coincidente. Si lo encuentra, devuelve el ID del proceso; de lo contrario, devuelve 0.

La función DLLinjector toma un ID de proceso (pid) y una ruta de DLL como entrada. Inyecta la DLL especificada en el proceso objetivo. Aquí está cómo funciona: a. Abre el proceso objetivo usando OpenProcess con el flag PROCESS_ALL_ACCESS. b. Obtiene el manejador del módulo Kernel32 usando GetModuleHandleW. c. Obtiene la dirección de la función LoadLibraryW dentro de Kernel32 usando GetProcAddress. d. Asigna memoria en el proceso objetivo usando VirtualAllocEx. e. Escribe la ruta de la DLL en la memoria asignada en el proceso objetivo usando WriteProcessMemory. f. Crea un hilo remoto en el proceso objetivo usando CreateRemoteThread y pasa la dirección de LoadLibraryW y la memoria asignada como parámetros. g. Si la creación del hilo es exitosa, devuelve true indicando que la inyección de DLL fue exitosa. La función main no se proporciona en este fragmento de código. Puedes usar estas funciones dentro de tu propia aplicación para inyectar una DLL en un proceso objetivo proporcionando el nombre del proceso y la ruta de la DLL como entrada.

Ten en cuenta que la inyección de DLL es una técnica con diversas aplicaciones, incluyendo tanto casos de uso legítimos (como depuración y extensión de funcionalidad) como propósitos maliciosos (como inyectar malware o modificar el comportamiento de un proceso sin autorización). Ten precaución y asegúrate de tener los permisos y derechos legales apropiados antes de usar dichas técnicas.

Descargar herramienta