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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/knight0x07/impulsivedllhijack
Privilege EscalationPersistence MechanismsExploitationRed TeamingBinary Exploitation
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

C# 기반 도구로, 대상 바이너리에서 DLL 하이잭을 발견하고 악용하는 과정을 자동화합니다. 발견된 하이재킹 경로는 추후 레드 팀 작전 중 EDR을 우회하기 위해 무기화될 수 있습니다.

저장소 보기
5541014년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ImpulsiveDLLHijack

C# 기반 도구로, 대상 바이너리에서 DLL 하이재킹을 발견하고 악용하는 과정을 자동화합니다. 발견된 하이재킹 경로는 이후 RedTeam 작전에서 EDR을 우회하기 위해 무기화될 수 있습니다.

1. 방법론적 접근 :

이 도구는 기본적으로 DLL 하이재킹을 위해 수행되는 다음 단계를 자동화합니다:

  • 발견(Discovery) - 잠재적으로 취약한 DLL 하이재킹 경로 찾기
  • 악용(Exploitation) - 확인 DLL이 하이재킹된 경로에서 로드되었는지 확인하여 100% 악용 가능한 DLL 하이재킹을 확인

발견 방법론:

  • ImpulsiveDLLHijack.exe에 대상 바이너리 경로 제공
  • 대상 바이너리 실행과 함께 ProcMon 자동화를 통해 잠재적으로 취약한 DLL 하이재킹 가능 경로 찾기

악용 방법론:

  • ProcMon을 통해 자동 생성된 CSV에서 잠재적으로 취약한 DLL 하이재킹 경로를 파싱합니다.
  • 확인 DLL을 (PE 아키텍처에 따라) 하이재킹 경로에 하나씩 복사하고 동시에 미리 정의된 시간 동안 대상 바이너리를 실행합니다.
  • DLL 하이재킹 과정이 진행되는 동안 하이재킹 시나리오에서 수집할 수 있는 출력은 다음과 같습니다:
    • 잠재적으로 취약한 하이재킹 가능 경로에 있는 확인 DLL이 대상 바이너리에 의해 로드되면 콘솔에 DLL 하이재킹 성공을 알리는 다음 출력이 표시됩니다 - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • 잠재적으로 취약한 하이재킹 가능 경로에 있는 확인 DLL이 대상 바이너리에 의해 로드되지 않으면 콘솔에 DLL 하이재킹 실패를 알리는 다음 출력이 표시됩니다 - DLL Hijack Unsuccessful -> <DLL_Path>

진입점을 찾을 수 없는 시나리오:

  • 잠재적으로 취약한 하이재킹 가능 경로에 있는 확인 DLL이 대상 바이너리에 의해 로드되지 않는 경우, DLL의 진입점이 기본 진입점 "DllMain"과 달라 "Entry Point Not Found" 오류가 발생하면, 콘솔에 진입점이 올바르다면 하이재킹 가능했을 것임을 알리는 다음 출력이 표시됩니다 -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
  • 잠재적으로 취약한 하이재킹 가능 경로에 있는 확인 DLL이 대상 바이너리에 의해 실행되는 경우, DLL의 진입점이 기본 진입점 "DllMain"과 달라 "Entry Point Not Found" 오류가 발생하더라도, 콘솔에 진입점이 올바르지 않았음에도 하이재킹 성공을 알리는 다음 출력이 표시됩니다 -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

참고: "Entry Point not found" 오류는 코드에서 프로그래밍 방식으로 처리되므로 MsgBox를 수동으로 닫을 필요가 없습니다 :) # 오히려 그렇게 하면 코드가 더 충돌할 것입니다****

  • 모든 잠재적으로 취약한 DLL 하이재킹 경로에 대해 DLL 하이재킹 프로세스가 완료되면 콘솔과 텍스트 파일(C:\DLLLogs\output_logs.txt)에 다음과 같은 형식으로 최종 출력이 표시됩니다:

    • <DLLHijack_path> --> DLL Hijack Successful (하이재킹이 성공한 경우)
    • <DLLHijack_path> --> DLL Hijack Unsuccessful (하이재킹이 실패한 경우)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (진입점을 찾을 수 없지만 수동 분석 후 성공 가능한 경우)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (진입점을 찾을 수 없었음에도 하이재킹이 성공한 경우)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (액세스 거부)

이렇게 확인된 DLL 하이재킹 가능 경로는 이후 Red Team 작전에서 정상 실행 파일(예: OneDrive, Firefox, MSEdge, "Bring your own LOLBINs" 등)을 통해 악성 DLL 임플란트를 로드하고 최첨단 EDR을 우회하는 데 무기화될 수 있습니다. George Karantzas와 Constantinos Patsakis의 연구 논문(https://arxiv.org/abs/2108.10422)에서 평가된 바와 같이 대부분의 EDR은 DLL 하이재킹 탐지에 실패합니다.

2. 사전 요구사항:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • 사용자 지정 확인 DLL(Custom Confirmatory DLL's) :
    • 이 DLL 파일은 도구가 식별된 하이재킹 경로에서 DLL이 성공적으로 로드되었는지 확인하는 데 도움을 줍니다.
    • 위에 제공된 MalDLL 프로젝트에서 컴파일됩니다 (또는 저를 신뢰한다면 미리 컴파일된 바이너리를 사용하세요!)
    • 32비트 DLL 이름은 maldll32.dll이어야 합니다.
    • 64비트 DLL 이름은 maldll64.dll이어야 합니다.
    • NuGet 패키지 설치: PeNet -> https://www.nuget.org/packages/PeNet/ (ImpulsiveDLLHijack 프로젝트 컴파일 시 사전 요구사항)

참고: i 및 ii 사전 요구사항은 ImpulsiveDLLHijacks.exe 자체 디렉터리에 있어야 합니다.

  • 빌드 및 설정 정보:

    • ImpulsiveDLLHijack

      • Visual Studio에서 리포지토리를 클론합니다.
      • Visual Studio에서 프로젝트가 로드되면 "Project" --> "Manage NuGet packages" --> Browse for packages로 이동하여 "PeNet"을 설치합니다 -> https://www.nuget.org/packages/PeNet/
      • 프로젝트를 빌드합니다!
      • ImpulsiveDLLHijack.exe는 bin 디렉터리 안에 있습니다.
    • 확인 DLL의 경우:

      • Visual Studio에서 리포지토리를 클론합니다.
      • x86 및 x64로 프로젝트를 빌드합니다.
      • x86 릴리즈의 이름을 maldll32.dll로, x64 릴리즈의 이름을 maldll64.dll로 변경합니다.
    • 설정: 확인 DLL(maldll32 및 maldll64)을 ImpulsiveDLLHijack.exe 디렉터리에 복사한 후 ImpulsiveDLLHijack.exe를 실행합니다 :))

3. 사용법:

usage

4. 예시:

  • 대상 실행 파일: OneDrive.exe

  • 단계: 발견

first

  • 단계: 악용

    • 성공적인 DLL 하이재킹:

    success_one

    • 실패한 DLL 하이재킹:

    unsuccessful

    • 진입점을 찾을 수 없습니다! 수동 분석을 통해 성공적인 DLL 하이재킹이 될 수 있습니다 :)

    entrypoint_not_found

    • 진입점이 일치하지 않아도 DLL 하이재킹 성공!

    entry_pointnot found - but dll is executed

  • 단계: 최종 결과 및 로그

    • C:\DLLLogs\output_logs.txt:

    output_logs

감사합니다. 피드백은 크게 감사하겠습니다! - knight!

도구 다운로드