Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
RDPCredentialStealer — Windows implant that steals RDP credentials via API hooking (Detours) and DLL injection, capturing usernames and passwords to a file for red-team post-exploitation. | Kitploit
Ferramentas/GitHubGitHub/s12cybersecurity/rdpcredentialstealer
Pós-ExploraçãoRed Teaming
GitHubs12cybersecurity/rdpcredentialstealer

RDPCredentialStealer

Windows implant that steals RDP credentials via API hooking (Detours) and DLL injection, capturing usernames and passwords to a file for red-team post-exploitation.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
26638há 5 mesesRevisado pelo Kitploit

RDPCredentialStealer

RDPCredentialStealer é um implante que rouba credenciais fornecidas por usuários em RDP usando API Hooking com Detours em C++

Ferramenta de Prova de Conceito para Roubo de Credenciais

Vamos tentar:

Primeiramente, transfiro a DLL do repositório GitHub para o caminho C:\Users\Public\Music:

imagem

Agora abro um Aplicativo Windows Conector RDP:

imagem

E agora executo o EXE no repositório GitHub:

imagem

E quando tento acessar um servidor rdp:

imagem

Eu insiro o usuário: s12User e a senha: passwdtest

E agora verifico o arquivo:  C:\Users\Public\Music\RDPCreds.txt

imagem

Código

RDPCredStealerDLL:

Este código é uma implementação de uma técnica de hooking em C++ usando a biblioteca Detours. Ele tem como alvo específico a função CredUnPackAuthenticationBufferW da biblioteca credui.dll, que é responsável por desempacotar buffers de autenticação usados em operações de credenciais. Vamos detalhar o código passo a passo: Os arquivos de cabeçalho necessários são incluídos, como windows.h, wincred.h, detours.h e outros. Um tipo de ponteiro de função CredUnPackAuthenticationBufferW_t é definido, representando a assinatura da função CredUnPackAuthenticationBufferW original. O ponteiro de função pCredUnPackAuthenticationBufferW é declarado, que será usado para armazenar o endereço da função original.

A função MyCredUnPackAuthenticationBufferW é implementada, que serve como o hook para a função original. Ela é chamada quando a função hookeada é invocada. Esta função primeiro chama a função original usando o ponteiro de função armazenado pCredUnPackAuthenticationBufferW. Em seguida, converte o nome de usuário e senha recuperados de wide strings (LPWSTR) para strings codificadas em UTF-8 (std::string).

Finalmente, abre um arquivo no modo de anexação e escreve o nome de usuário e senha nele. A função DllMain serve como ponto de entrada para a DLL de hooking. Ela é chamada quando a DLL é carregada ou descarregada. Quando ul_reason_for_call é DLL_PROCESS_ATTACH, indicando que a DLL está sendo carregada, ela carrega a biblioteca credui.dll usando LoadLibraryA.

Em seguida, obtém o endereço da função original CredUnPackAuthenticationBufferW usando GetProcAddress. Se bem-sucedido, inicia o processo de hooking chamando DetourTransactionBegin, DetourUpdateThread e DetourAttach. Quando ul_reason_for_call é DLL_PROCESS_DETACH, indicando que a DLL está sendo descarregada, reverte o processo de hooking chamando DetourTransactionBegin, DetourUpdateThread e DetourDetach.

O objetivo deste código é hookear a função CredUnPackAuthenticationBufferW e interceptar as credenciais passadas a ela, permitindo que o código de hooking extraia e registre o nome de usuário e senha em um arquivo. Esta técnica pode ser usada maliciosamente para capturar informações sensíveis, como credenciais RDP, o que é uma preocupação significativa de segurança.

Inject.h

Este código fornece funções para injetar uma DLL (Dynamic Link Library) em um processo alvo no sistema operacional Windows. Vamos detalhar o código e entender sua funcionalidade:

Os arquivos de cabeçalho necessários são incluídos, como windows.h, stdio.h e tlhelp32.h. Esses cabeçalhos fornecem as funções e tipos de dados necessários para interagir com a API do Windows.

A função getPIDbyProcName recebe um nome de processo como entrada e retorna o ID do processo (PID) correspondente. Ela usa a função CreateToolhelp32Snapshot para criar um snapshot dos processos atuais e, em seguida, itera pelo snapshot usando as funções Process32FirstW e Process32NextW para encontrar o processo com um nome correspondente. Se encontrado, retorna o ID do processo; caso contrário, retorna 0.

A função DLLinjector recebe um ID de processo (pid) e um caminho de DLL como entrada. Ela injeta a DLL especificada no processo alvo. Aqui está como funciona: a. Abre o processo alvo usando OpenProcess com a flag PROCESS_ALL_ACCESS. b. Recupera o handle do módulo Kernel32 usando GetModuleHandleW. c. Obtém o endereço da função LoadLibraryW dentro do Kernel32 usando GetProcAddress. d. Aloca memória no processo alvo usando VirtualAllocEx. e. Escreve o caminho da DLL na memória alocada no processo alvo usando WriteProcessMemory. f. Cria uma thread remota no processo alvo usando CreateRemoteThread e passa o endereço de LoadLibraryW e a memória alocada como parâmetros. g. Se a criação da thread for bem-sucedida, retorna true indicando que a injeção da DLL foi bem-sucedida. A função main não é fornecida neste trecho de código. Você pode usar essas funções em seu próprio aplicativo para injetar uma DLL em um processo alvo, fornecendo o nome do processo e o caminho da DLL como entrada.

Observe que a injeção de DLL é uma técnica com várias aplicações, incluindo casos de uso legítimos (como depuração e extensão de funcionalidades) e propósitos maliciosos (como injetar malware ou modificar o comportamento de um processo sem autorização). Tenha cautela e certifique-se de ter as permissões e direitos legais apropriados antes de usar tais técnicas.

Baixar ferramenta