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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/mwr-cybersec/pxethief
Privilege EscalationReconnaissancePassword AttacksExploitationInformation GatheringPost-ExploitationPenetration TestingRed Teaming
GitHubmwr-cybersec/pxethief

PXEThief

PXEThief는 Microsoft Endpoint Configuration Manager의 운영 체제 배포 기능에서 비밀번호를 추출할 수 있는 도구 모음입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PXEThief

PXEThief는 DEF CON 30 발표 Pulling Passwords out of Configuration Manager (https://forum.defcon.org/node/241925)에서 논의된 공격 경로를 Microsoft Endpoint Configuration Manager(ConfigMgr, 여전히 SCCM으로 널리 알려짐)의 운영 체제 배포 기능에 대해 구현하는 도구 모음입니다. 이를 통해 구성된 Network Access Accounts(https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/hierarchy/accounts#network-access-account) 및 "모든 알 수 없는 컴퓨터" 컬렉션에 대해 구성된 ConfigMgr 컬렉션 변수 내에 저장된 모든 작업 순서 계정 또는 자격 증명에서 자격 증명을 수집할 수 있습니다. 이러한 Active Directory 계정은 일반적으로 과도한 권한을 가지며, 개인적인 경험에 따르면 도메인 어딘가에서 관리자 액세스로의 권한 상승을 허용합니다.

아마도 이 도구를 사용하여 실행할 수 있는 가장 심각한 공격은 PXE 기반 배포가 암호 없이 또는 약한 암호로 배포 지점의 "모든 알 수 없는 컴퓨터"에 대해 지원되는 경우일 것입니다. 앞서 언급한 OSD에 노출된 ConfigMgr 계정의 과도한 권한 부여는 대상 환경에 대한 네트워크 액세스만으로 전체 Active Directory 공격 체인을 실행할 수 있게 해줍니다.

사용 지침

root@kitploit:~
python pxethief.py -h 
pxethief.py 1 - DHCP PXE 부트 요청을 사용하여 암호화된 미디어 파일을 자동으로 식별하고 다운로드합니다. 또한 'settings.ini'에서 auto_exploit_blank_password가 1로 설정된 경우 빈 미디어 암호 악용을 시도합니다.
pxethief.py 2 <DP 서버 IP 주소> - IP 주소로 지정된 특정 MECM 배포 지점 서버에 대해 PXE 부트를 강제 실행합니다.
pxethief.py 3 <변수-파일-이름> <암호-추측> - 저장된 미디어 변수 파일(PXE, 부팅 가능 또는 사전 준비 미디어에서 획득)을 복호화하고 MECM DP에서 민감한 데이터를 검색합니다.
pxethief.py 4 <변수-파일-이름> <정책-파일-경로> <암호> - 저장된 미디어 변수 파일과 독립 실행형 TS 미디어에서 검색된 정책 XML 파일을 복호화합니다.
pxethief.py 5 <변수-파일-이름> - Hashcat에서 크래킹을 위해 지정된 미디어 변수 파일에 해당하는 해시를 출력합니다.
pxethief.py 6 <identityguid> <identitycert-파일-이름> - DP의 레지스트리 키에서 얻은 값을 사용하여 작업 순서를 검색합니다.
pxethief.py 7 <Reserved1-값> - SCCM DP 레지스트리 키(reg query HKLM\software\microsoft\sms\dp /v Reserved1)에서 저장된 PXE 암호를 복호화합니다.
pxethief.py 8 - PXEThief 디렉토리에 새로운 기본 'settings.ini' 파일을 씁니다.
pxethief.py 10 - 'settings.ini'에서 사용할 인터페이스 인덱스를 식별하기 위해 Scapy 인터페이스 테이블을 출력합니다.
pxethief.py -h - PXEThief 도움말 텍스트를 출력합니다.

pxethief.py 5 <변수-파일-이름>를 사용하여 미디어 변수 파일의 '해시'를 생성해야 하며, 이는 https://github.com/MWR-CyberSec/configmgr-cryptderivekey-hashcat-module 에 게시된 Hashcat 모듈과 함께 암호 추측 공격에 사용할 수 있습니다.

구성 옵션

기본 PXEThief 폴더에 포함된 파일은 보다 정적인 구성 옵션을 설정하는 데 사용됩니다. 다음과 같습니다:

root@kitploit:~
[SCAPY 설정]
automatic_interface_selection_mode = 1
manual_interface_selection_by_id = 

[HTTP 연결 설정]
use_proxy = 0
use_tls = 0

[일반 설정]
sccm_base_url = 
auto_exploit_blank_password = 1

Scapy 설정

  • automatic_interface_selection_mode는 편의를 위해 Scapy가 사용할 최상의 인터페이스를 자동으로 결정하려고 시도합니다. 두 가지 주요 기술을 사용하여 이를 수행합니다. 1로 설정하면 기본 게이트웨이에 도달할 수 있는 인터페이스를 출력 인터페이스로 사용하려고 시도합니다. 2로 설정하면 자동 구성 또는 localhost IP 주소가 아닌 IP 주소를 가진 첫 번째 인터페이스를 찾습니다. 일부 시나리오에서는 적절한 인터페이스를 선택하지 못할 수 있으므로 'manual_interface_selection_by_id'를 사용하여 특정 인터페이스를 강제로 지정할 수 있습니다.
  • manual_interface_selection_by_id를 사용하면 Scapy가 사용할 인터페이스의 정수 인덱스를 지정할 수 있습니다. 이 파일에서 사용할 ID는 pxethief.py 10을 실행하여 얻어야 합니다.

일반 설정

  • sccm_base_url은 도구가 통신할 관리 지점을 재정의하는 데 유용합니다. DNS가 확인되지 않거나(미디어 변수 파일에서 읽은 값을 사용할 수 없음) 여러 관리 지점을 식별하여 특정 지점으로 트래픽을 보내려는 경우 유용합니다. 기본 URL 형식(예: http://mp.configmgr.com, mp.configmgr.com 또는 http://mp.configmgr.com/stuff가 아님)으로 제공해야 합니다.
  • auto_exploit_blank_password는 pxethief 1의 동작을 변경하여 암호로 보호되지 않은 PXE 배포 지점을 자동으로 악용하려고 시도합니다. 1로 설정하면 자동 악용이 활성화되고, 0으로 설정하면 미디어 변수 파일을 다운로드하는 데 사용해야 하는 tftp 클라이언트 문자열이 출력됩니다. 암호로 보호되지 않은 PXE는 배포 지점에 PXE 부트를 요청할 때 수신하는 DHCP 응답으로 전송되는 바이너리 키를 사용하므로 거의 항상 이 값을 1로 설정하는 것이 좋습니다.

HTTP 연결 설정

이 릴리스에서는 구현되지 않음

설정 지침

  1. 새 Windows VM을 생성합니다.
  2. Python을 설치합니다(https://www.python.org/ 또는 스토어를 통해, 둘 다 잘 작동해야 함).
  3. pip를 통해 모든 요구 사항을 설치합니다(pip install -r requirements.txt).
  4. Scapy용 Npcap(https://npcap.com/#download)을 설치합니다(또는 함께 제공되는 Wireshark).
  5. VM을 PXE/OSD용으로 설정된 ConfigMgr 배포 지점이 실행 중인 네트워크에 브리지합니다.
  6. pxethief.py 1 또는 pxethief.py 2를 사용하여 미디어 변수 파일을 식별하고 생성하는 경우 도구에서 사용하는 인터페이스가 올바른지 확인합니다. 올바르지 않으면 pxethief.py 10에서 올바른 인덱스 ID를 식별하여 'settings.ini'에서 수동으로 설정합니다.

제한 사항

  • HTTP 요청에 대한 프록시 지원 - 현재 코드에서만 구성 가능합니다. 프록시 지원은 pxethief.py의 35행에서 활성화할 수 있으며 프록시 주소는 693행에서 설정할 수 있습니다. 다음 코드 업데이트에서 이 기능을 'settings.ini'에서 구성할 수 있도록 계획하고 있습니다.
  • HTTPS 및 상호 TLS 지원 - 현재 구현되지 않았습니다. 그러나 가로채기 프록시를 사용하여 처리할 수 있으며, 제 경험상 잘 작동합니다. 이를 위해서는 위에서 언급한 대로 프록시를 구성해야 합니다.
  • Linux 지원 - PXEThief는 현재 일부 내장 Windows 암호화 함수를 사용하기 위해 pywin32를 사용합니다. Linux에서는 Windows 암호화 API를 사용할 수 없으므로 이는 Linux에서 사용할 수 없습니다. 그러나 pxethief.py의 Scapy 코드는 Linux에서 완전히 작동하지만, Linux에서 실행하려면 (최소한) win32crypt 포함을 패치 아웃해야 합니다.

개념 증명 참고 사항

이 도구의 오류 처리에서 문제가 발생할 수 있습니다. ConfigMgr의 모든 것에는 미묘한 차이가 있으며, 도구 릴리스를 준비하면서 오류 처리를 상당히 개선했지만 이는 완전하지 않습니다. 실패하는 에지 케이스가 있으면 자세한 이슈를 작성하거나 수정하여 풀 리퀘스트를 보내 주십시오 :) 합리적인 개선이 가능한지 검토하겠습니다. 프로덕션 환경에서 실행하려면 코드를 읽고/발표를 시청하고 무슨 일이 일어나고 있는지 이해하십시오. 라이선스 조건(도구 사용은 본인의 책임)을 명심하십시오.

관련 작업

SCCM/MECM 작업 순서에서 자격 증명 식별 및 검색 - 이 글에서 유효한 OSD 인증서를 얻은 후 ConfigMgr 정책을 찾고, 다운로드하고, 복호화하는 전체 흐름을 설명합니다. 또한 이 게시물의 처음 두 참조를 강조하고 싶습니다. 이들은 현재 진행 중인 매우 흥미로운 공격적 SCCM 연구를 보여줍니다.

DEF CON 30 슬라이드 - 발표 슬라이드 링크

작성자 크레딧

저작권 (C) 2022 Christopher Panayi, MWR CyberSec

도구 다운로드