Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sopa — Golang में ADWS के लिए एक व्यावहारिक क्लाइंट। | Kitploit
उपकरण/GitHubGitHub/macmod/sopa
टोहीजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्कप्रमाणीकरणरेड टीमिंग
GitHubmacmod/sopa

sopa

Golang में ADWS के लिए एक व्यावहारिक क्लाइंट।

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

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

सभी देखें →

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

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

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

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

sopa

Golang में ADWS के लिए एक व्यावहारिक क्लाइंट।

GitHub Release Go Version Code Size License Build Status Go Report Card GitHub Downloads Twitter Follow

Sopa, ADWS प्रोटोकॉल स्टैक (MS-NNS + MC-NMF + SOAP) को लागू करता है, जो निम्नलिखित कमांड-लाइन सुविधाएँ प्रदान करता है:

  • ऑब्जेक्ट खोज और पुनर्प्राप्ति
    • query: WS-Enumeration Enumerate + Pull लूप के माध्यम से LDAP-फ़िल्टर खोज चलाता है जिसमें एट्रीब्यूट प्रोजेक्शन, स्कोप नियंत्रण (Base/OneLevel/Subtree), और पेजिनेशन होता है
    • get: WS-Transfer Get के माध्यम से DN द्वारा एक एकल ऑब्जेक्ट प्राप्त करता है
  • ऑब्जेक्ट जीवनचक्र
    • create: WS-Transfer ResourceFactory के माध्यम से ऑब्जेक्ट बनाता है (अंतर्निहित प्रकार: user, computer, group, OU, container; या IMDA AddRequest के माध्यम से YAML टेम्पलेट से कस्टम ऑब्जेक्ट)
    • delete: WS-Transfer Delete के माध्यम से DN द्वारा किसी ऑब्जेक्ट को हटाता है
  • एट्रीब्यूट संपादन
    • attr: WS-Transfer Put के माध्यम से किसी मौजूदा ऑब्जेक्ट पर व्यक्तिगत एट्रीब्यूट मान जोड़ता है, बदलता है, या हटाता है
  • खाता प्रबंधन
    • set-password: MS-ADCAP SetPassword के माध्यम से खाता पासवर्ड सेट करता है
    • change-password: MS-ADCAP ChangePassword के माध्यम से खाता पासवर्ड बदलता है (पुराने पासवर्ड की आवश्यकता है)
  • ADCAP कस्टम क्रियाएँ
    • translate-name: TranslateName के माध्यम से DN और कैनोनिकल नाम प्रारूपों के बीच रूपांतरण करता है
    • groups: GetADPrincipalGroupMembership / GetADPrincipalAuthorizationGroup के माध्यम से किसी प्रिंसिपल की समूह सदस्यता या प्राधिकरण समूहों को सूचीबद्ध करता है
    • members: GetADGroupMember के माध्यम से समूह सदस्यों को (वैकल्पिक रूप से पुनरावर्ती) गणना करता है
    • optfeature: ChangeOptionalFeature के माध्यम से वैकल्पिक AD सुविधाओं (जैसे Recycle Bin) को टॉगल करता है
    • info: GetVersion, GetADDomain, GetADForest, GetADDomainControllers के माध्यम से टोपोलॉजी मेटाडेटा (संस्करण, डोमेन, फ़ॉरेस्ट, DC सूची) प्राप्त करता है
  • सेवा मेटाडेटा
    • mex: एक अप्रमाणित WS-MetadataExchange अनुरोध के माध्यम से ADWS सेवा एंडपॉइंट मेटाडेटा प्राप्त करता है

इंस्टॉलेशन

$ go install github.com/Macmod/sopa/cmd/sopa@latest

उपयोग

# Auth flags (-u, -p, -d, -k, -H, -c, ...) are omitted for brevity - see Authentication section.

# Search objects by LDAP filter
$ sopa [auth_flags] query --dc <DC> --filter '(objectClass=*)'

# Fetch a single object by DN
$ sopa [auth_flags] get --dc <DC> --dn '<DN>'

# Delete an object by DN
$ sopa [auth_flags] delete --dc <DC> --dn '<DN>'

# Edit attribute values
$ sopa [auth_flags] attr add     --dc <DC> --dn '<DN>' --attr <ATTR> --value <VALUE>
$ sopa [auth_flags] attr replace --dc <DC> --dn '<DN>' --attr <ATTR> --value <VALUE>
$ sopa [auth_flags] attr delete  --dc <DC> --dn '<DN>' --attr <ATTR>

# Create objects
$ sopa [auth_flags] create user      --dc <DC> --name <CN> --pass <INITIAL_PASS>
$ sopa [auth_flags] create computer  --dc <DC> --name <CN>
$ sopa [auth_flags] create group     --dc <DC> --name <CN> --type GlobalSecurity
$ sopa [auth_flags] create ou        --dc <DC> --name <CN>
$ sopa [auth_flags] create container --dc <DC> --name <CN>
$ sopa [auth_flags] create custom    --dc <DC> --template <TEMPLATE.yaml>

# Set / change account passwords (MS-ADCAP)
$ sopa [auth_flags] set-password    --dc <DC> --dn '<DN>' --new <NEW_PASS>
$ sopa [auth_flags] change-password --dc <DC> --dn '<DN>' --old <OLD_PASS> --new <NEW_PASS>

# Translate DN <-> canonical name (MS-ADCAP)
# (this call is mostly useless but kept for completeness 😄)
$ sopa [auth_flags] translate-name --dc <DC> --offered DistinguishedName --desired CanonicalName '<DN>'

# Principal group memberships (MS-ADCAP)
$ sopa [auth_flags] groups --dc <DC> --dn '<DN>' --membership --authz

# Group members (MS-ADCAP)
$ sopa [auth_flags] members --dc <DC> --dn '<GROUP_DN>' --recursive

# Toggle optional AD feature, e.g. Recycle Bin (MS-ADCAP)
$ sopa [auth_flags] optfeature --dc <DC> --feature-id <FEATURE_GUID> --enable

# Topology info (MS-ADCAP)
$ sopa [auth_flags] info version --dc <DC>
$ sopa [auth_flags] info domain  --dc <DC>
$ sopa [auth_flags] info forest  --dc <DC>
$ sopa [auth_flags] info dcs     --dc <DC>

# ADWS service endpoint metadata (unauthenticated - auth flags not needed)
$ sopa mex --dc <DC>

इंटरैक्टिव शेल

बिना किसी उप-कमांड के sopa चलाने पर एक इंटरैक्टिव शेल खुलता है। यह सभी कमांड के लिए एक ही कनेक्शन का पुन: उपयोग करता है और टैब-पूर्णता प्रदान करता है।

$ sopa --dc <DC> -u <USER> -p <PASS> -d <DOMAIN>

sopa v1.1.0
Connected  dc.corp.local  domain=corp.local  user=Administrator
Type 'help' for commands or 'exit' to quit.

[corp.local]> query --filter '(objectClass=user)' --attrs sAMAccountName
[corp.local]> get --dn 'CN=Administrator,CN=Users,DC=corp,DC=local'
[corp.local]> exit

शेल से बाहर निकलने के लिए exit, quit, या Ctrl-D का उपयोग करें।

कस्टम ऑब्जेक्ट निर्माण

उदाहरण टेम्पलेट: examples/custom-create.example.yaml

टेम्पलेट स्कीमा (YAML):

  • parentDN (स्ट्रिंग, आवश्यक): कंटेनर DN
  • rdn (स्ट्रिंग, आवश्यक): नए ऑब्जेक्ट के लिए सापेक्ष DN (जैसे CN=Foo)
  • attributes (सूची, आवश्यक): प्रत्येक आइटम में होता है:
    • name (स्ट्रिंग, आवश्यक): एट्रीब्यूट नाम (cn या addata:cn)
    • type (स्ट्रिंग, वैकल्पिक): string|int|bool|base64|hex (या स्पष्ट xsd:*), डिफ़ॉल्ट string
    • या तो value (स्ट्रिंग) या values (स्ट्रिंग्स की सूची)

नोट:

  • टेम्पलेट में ad:relativeDistinguishedName या ad:container-hierarchy-parent शामिल न करें (वे स्वचालित रूप से इंजेक्ट होते हैं)।
  • hex मान xsd:base64Binary में परिवर्तित होते हैं।
  • एक खाली स्ट्रिंग स्पष्ट रूप से सेट करने के लिए, value: "" का उपयोग करें।

DC डिस्कवरी और DNS

--dc एक FQDN, एक IP पता स्वीकार करता है, या छोड़ा जा सकता है. चूंकि DC का होस्टनाम कभी-कभी नेटवर्क के डिफ़ॉल्ट DNS से उपलब्ध नहीं होता, इसलिए हमेशा --dns <DC-IP> पास करने की दृढ़ता से अनुशंसा की जाती है ताकि sopa सभी लुकअप के लिए DC के अपने DNS सर्वर का उपयोग करे:

# Option 1: let sopa resolve everything through the DC's DNS
$ sopa query --dns 192.168.1.10 -d corp.local -u user -p pass --filter '(objectClass=user)'

जब --dc छोड़ दिया जाता है और --domain प्रदान किया जाता है, sopa SRV रिकॉर्ड क्वेरी करके स्वचालित रूप से एक DC खोजता है:

_ldap._tcp.<domain>        (पहले प्रयास किया गया)
_kerberos._tcp.<domain>    (फ़ॉलबैक)

उच्चतम-प्राथमिकता वाले रिकॉर्ड का लक्ष्य उपयोग किया जाता है। इसके लिए आवश्यक है कि --dns द्वारा इंगित DNS सर्वर उन SRV प्रश्नों का उत्तर दे सके - DC का अपना एकीकृत DNS सर्वर (जब मौजूद हो) ऐसा करने में सक्षम होना चाहिए।

# Option 2: provide DC explicitly without Kerberos
$ sopa info version --dc 192.168.1.10 --domain corp.local -u user -p pass
टूल डाउनलोड करें