Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RDPCredentialStealer — Windows 임플란트로, API 후킹(Detours) 및 DLL 인젝션을 통해 RDP 자격 증명을 탈취하며, 사용자 이름과 비밀번호를 파일에 캡처하여 레드팀 사후 익스플로잇에 사용합니다. | Kitploit
도구/GitHubGitHub/s12cybersecurity/rdpcredentialstealer
Post-ExploitationRed Teaming
GitHubs12cybersecurity/rdpcredentialstealer

RDPCredentialStealer

Windows 임플란트로, API 후킹(Detours) 및 DLL 인젝션을 통해 RDP 자격 증명을 탈취하며, 사용자 이름과 비밀번호를 파일에 캡처하여 레드팀 사후 익스플로잇에 사용합니다.

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
266385개월 전Kitploit 검토 완료

RDPCredentialStealer

RDPCredentialStealer는 Detours를 사용한 API 후킹을 통해 C++로 사용자가 RDP에서 제공하는 자격 증명을 탈취하는 임플란트입니다.

자격 증명 탈취를 위한 개념 증명 도구

한번 시도해 봅시다:

먼저 GitHub 저장소의 DLL을 C:\Users\Public\Music 경로로 전송합니다:

imagen

이제 RDP 커넥터 Windows 애플리케이션을 엽니다:

imagen

그리고 이제 GitHub 저장소에 있는 EXE를 실행합니다:

imagen

그리고 rdp 서버에 접속을 시도할 때:

imagen

사용자: s12User, 비밀번호: passwdtest를 입력합니다:

그리고 이제 다음 파일을 확인합니다:  C:\Users\Public\Music\RDPCreds.txt

imagen

코드

RDPCredStealerDLL:

이 코드는 Detours 라이브러리를 사용하여 C++로 후킹 기법을 구현한 것입니다. 구체적으로는 credui.dll 라이브러리의 CredUnPackAuthenticationBufferW 함수를 대상으로 합니다. 이 함수는 자격 증명 작업에 사용되는 인증 버퍼를 푸는 역할을 합니다. 코드를 단계별로 분석해 보겠습니다:

필요한 헤더 파일(windows.h, wincred.h, detours.h 등)이 포함됩니다.

함수 포인터 타입 CredUnPackAuthenticationBufferW_t가 정의되며, 이는 원래 CredUnPackAuthenticationBufferW 함수의 시그니처를 나타냅니다. 함수 포인터 pCredUnPackAuthenticationBufferW가 선언되며, 이는 원래 함수의 주소를 저장하는 데 사용됩니다.

MyCredUnPackAuthenticationBufferW 함수가 구현되며, 이는 원래 함수에 대한 후크 역할을 합니다. 이 함수는 후킹된 함수가 호출될 때 실행됩니다. 먼저 저장된 함수 포인터 pCredUnPackAuthenticationBufferW를 사용하여 원래 함수를 호출합니다. 그런 다음 검색된 사용자 이름과 비밀번호를 와이드 문자열(LPWSTR)에서 UTF-8로 인코딩된 문자열(std::string)로 변환합니다.

마지막으로, 추가 모드로 파일을 열고 사용자 이름과 비밀번호를 파일에 씁니다.

DllMain 함수는 후킹 DLL의 진입점 역할을 합니다. 이 함수는 DLL이 로드되거나 언로드될 때 호출됩니다. ul_reason_for_call이 DLL_PROCESS_ATTACH일 때(DLL이 로드되고 있음을 나타냄), LoadLibraryA를 사용하여 credui.dll 라이브러리를 로드합니다.

그런 다음 GetProcAddress를 사용하여 원래 함수 CredUnPackAuthenticationBufferW의 주소를 가져옵니다. 성공하면 DetourTransactionBegin, DetourUpdateThread, DetourAttach를 호출하여 후킹 프로세스를 시작합니다.

ul_reason_for_call이 DLL_PROCESS_DETACH일 때(DLL이 언로드되고 있음을 나타냄), DetourTransactionBegin, DetourUpdateThread, DetourDetach를 호출하여 후킹 프로세스를 되돌립니다.

이 코드의 목적은 CredUnPackAuthenticationBufferW 함수를 후킹하고 전달되는 자격 증명을 가로채어 후킹 코드가 사용자 이름과 비밀번호를 추출하여 파일에 기록할 수 있도록 하는 것입니다. 이 기술은 RDP 자격 증명과 같은 민감한 정보를 캡처하는 데 악의적으로 사용될 수 있으며, 이는 심각한 보안 문제입니다.

Inject.h

이 코드는 Windows 운영 체제에서 대상 프로세스에 DLL(Dynamic Link Library)을 주입하는 함수를 제공합니다. 코드를 분석하여 기능을 이해해 보겠습니다:

필요한 헤더 파일(windows.h, stdio.h, tlhelp32.h)이 포함됩니다. 이 헤더들은 Windows API와 상호 작용하는 데 필요한 함수 및 데이터 타입을 제공합니다.

getPIDbyProcName 함수는 프로세스 이름을 입력으로 받아 해당 프로세스 ID(PID)를 반환합니다. CreateToolhelp32Snapshot 함수를 사용하여 현재 프로세스의 스냅샷을 만든 다음, Process32FirstW 및 Process32NextW 함수를 사용하여 스냅샷을 반복하면서 이름이 일치하는 프로세스를 찾습니다. 찾으면 프로세스 ID를 반환하고, 그렇지 않으면 0을 반환합니다.

DLLinjector 함수는 프로세스 ID(pid)와 DLL 경로를 입력으로 받습니다. 지정된 DLL을 대상 프로세스에 주입합니다. 작동 방식은 다음과 같습니다: a. OpenProcess를 사용하여 PROCESS_ALL_ACCESS 플래그로 대상 프로세스를 엽니다. b. GetModuleHandleW를 사용하여 Kernel32 모듈의 핸들을 검색합니다. c. GetProcAddress를 사용하여 Kernel32 내의 LoadLibraryW 함수 주소를 가져옵니다. d. VirtualAllocEx를 사용하여 대상 프로세스에 메모리를 할당합니다. e. WriteProcessMemory를 사용하여 할당된 메모리에 DLL 경로를 씁니다. f. CreateRemoteThread를 사용하여 대상 프로세스에 원격 스레드를 생성하고 LoadLibraryW의 주소와 할당된 메모리를 매개변수로 전달합니다. g. 스레드 생성이 성공하면 DLL 주입이 성공했음을 나타내는 true를 반환합니다.

main 함수는 이 코드 스니펫에 제공되지 않았습니다. 프로세스 이름과 DLL 경로를 입력으로 제공하여 자신의 애플리케이션 내에서 이러한 함수를 사용하여 대상 프로세스에 DLL을 주입할 수 있습니다.

DLL 주입은 합법적인 사용 사례(예: 디버깅 및 기능 확장)와 악의적인 목적(예: 맬웨어 주입 또는 승인 없이 프로세스 동작 수정)을 포함한 다양한 용도가 있는 기술입니다. 이러한 기술을 사용하기 전에 주의를 기울이고 적절한 권한과 법적 권리가 있는지 확인하십시오.

도구 다운로드