
이것은 DLL 하이재킹과 "신뢰할 수 있는 디렉터리" 확인을 악용하여 UAC를 우회하기 위한 PoC입니다.
이것은 DLL 하이재킹을 이용하고 "신뢰할 수 있는 디렉터리" 확인을 악용하여 UAC를 우회하기 위한 PoC입니다.
Python 스크립트 CsvToHeader.py는 헤더 파일을 생성하는 데 사용할 수 있습니다. 기본적으로 dll_hijacking_candidates.csv에서 찾을 수 있는 CSV 파일 dll_hijacking_candidates.csv를 사용합니다.
스크립트는 각 PE(이식 가능한 실행 파일)에 대해 다음 조건을 확인합니다:
requestedExecutionLevel이 다음 값 중 하나로 설정되어 있는지 여부:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c 인수를 지정한 경우, 스크립트는 하이재킹할 DLL이 PE 테이블에서 가져온 DLL 목록에 있는지 확인합니다.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader를 사용하여 CSV에서 헤더 파일을 생성할 수 있습니다.
선택적 인수:
-h, --help 이 도움말 메시지를 표시하고 종료합니다.
-f [DLL_PATH] 변환할 CSV의 경로 (기본값="dll_hijacking_candidates.csv")
-c PE에서 DLL 가져오기를 활성화합니다 (기본값=False)
-v, --version 프로그램 버전 번호를 표시하고 종료합니다.
헤더 파일을 생성하려면 다음 명령을 사용할 수 있습니다:
python CsvToHeader.py > dll_hijacking_candidates.h
사용될 파일은 DLLHijacking.exe와 test.dll입니다.
DLLHijacking.exe는 취약한 PE 목록을 생성하는 데 사용될 파일입니다. 다음 단계를 수행합니다:
CreateFakeDirectory
C:\windows \system32에 디렉터리를 생성하는 함수입니다.
새 디렉터리에 파일 복사
C:\windows\system32\[TARGET.EXE]에서 C:\windows \system32\[TARGET.EXE]로 복사[CUSTOM_DLL_PATH]에서 C:\windows \system32\[TARGET.DLL]로 복사트리거
C:\windows \system32\[TARGET.EXE]에서 실행 파일을 실행합니다.
CleanUpFakeDirectory
1단계에서 생성한 디렉터리와 2단계의 파일을 삭제하는 함수입니다.
CheckExploit
C:\ProgramData\exploit.txt 파일의 내용을 확인하여 익스플로잇이 성공했는지 확인합니다.
DLLHijacking.exe는 항상 다음 내용을 포함하는 로그 파일 exploitable.log를 생성합니다:
예:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
실행 명령:
DLLHijacking.exe [DLL_PATH]
인수가 전달되지 않으면 스크립트는 DLLHijacking.exe의 리소스에 저장된 DLL test.dll을 사용합니다.
Windows 10 Pro (10.0.19043 N/A 빌드 19043)에서 테스트되었습니다.

test.dll은 익스플로잇이 성공했는지 확인하기 위해 사용되는 간단한 동적 라이브러리입니다.
DLL은 다음 내용을 포함하는 C:\ProgramData\exploit.txt 파일을 생성합니다:
이 파일은 익스플로잇이 완료되면 삭제됩니다.
이 프로젝트는 교육 및 윤리적 테스트 목적으로만 제작되었습니다. 사전 상호 동의 없이 대상을 공격하기 위해 이 소프트웨어를 사용하는 것은 불법입니다.
최종 사용자는 모든 관련 지역, 주 및 연방 법률을 준수할 책임이 있습니다.
개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인한 오용이나 손해에 대해 책임을 지지 않습니다.