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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
OST-C2-Spec — ओपन सोर्स C&C विनिर्देश | Kitploit
उपकरण/GitHubGitHub/rasta-mouse/ost-c2-spec
शोषणपार्श्व आंदोलनपोस्ट-शोषणकमांड एंड कंट्रोलरेड टीमिंग
GitHubrasta-mouse/ost-c2-spec

OST-C2-Spec

ओपन सोर्स C&C विनिर्देश

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

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

सभी देखें →

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

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

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

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

प्रारूप: चर्चा के लिए अनुरोध

सारांश

यह दस्तावेज़ OST C&C Specification के संस्करण 1 का अवलोकन प्रदान करता है। इसका उद्देश्य संदेशों और उन संदेशों के भीतर के फ़ील्ड्स का विस्तृत विवरण प्रदान करना है।

परिचय

इस विनिर्देश के पीछे की प्रेरणा एक C&C messaging protocol (जिसमें कार्यकरण, संरचित आउटपुट, और peer-to-peer रूटिंग शामिल है) प्रदान करना है, जिसे शब्दशः लागू किया जा सकता है, या केवल प्रोजेक्ट डेवलपर्स के लिए प्रेरणा के रूप में काम कर सकता है। इस दस्तावेज़ का उद्देश्य यह बताना नहीं है कि C&C क्या है। यह मान लिया गया है कि पाठक समझता है कि यह क्या है और किस लिए उपयोग किया जाता है।

मुख्य शब्द "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", और "OPTIONAL" की व्याख्या [RFC2119] में वर्णित अनुसार की जानी चाहिए।

पर्यावरणीय मान्यताएँ

यह विनिर्देश निम्नलिखित मान्यताएँ बनाता है:

  • संदेश एक अनएन्क्रिप्टेड नेटवर्क पर भेजे जाते हैं।
  • इम्प्लांट पेलोड में सार्वजनिक RSA कुंजी एम्बेडेड होती है, जिसका उपयोग उस टीम सर्वर द्वारा किया जाता है जिसके साथ इसे संचार करना होता है।

शब्दावली

नीचे इस दस्तावेज़ में उपयोग किए गए शब्दों की सूची दी गई है।

  • इम्प्लांट मेटाडेटा: वह जानकारी जो एक इम्प्लांट अपने बारे में टीम सर्वर को रिपोर्ट करता है।

  • कार्य अनुरोध: एक कार्य जो किसी इम्प्लांट को करने के लिए दिया जाता है।

  • कार्य प्रतिक्रिया: किसी दिए गए कार्य की स्थिति और आउटपुट (यदि कोई हो)।

  • सत्र कुंजी: एक अद्वितीय एन्क्रिप्शन कुंजी जिसका उपयोग एक इम्प्लांट अपने संदेशों को एन्क्रिप्ट करने के लिए करता है।

  • कार्य संदेश

    कार्य हैडर

    प्रत्येक कार्य अनुरोध और प्रतिक्रिया संदेश में निम्नलिखित 16-बाइट हैडर होना अनिवार्य है।```text | Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | -------------------------------------------------------------| | 0 | Type | Code | Flags | Label | | -------------------------------------------------------------| | 1 | Identifier | Length | | -------------------------------------------------------------|

    root@kitploit:~
    - **Type**: 1-बाइट पूर्णांक।  यह जिस कार्य का प्रकार है, उसका 'type'।  देखें [[कार्य प्रकार और कोड](https://github.com/rasta-mouse/ost-c2-spec?tab=readme-ov-file#task-types-and-codes)]।
    - **Code**: 1-बाइट पूर्णांक।  दिए गए Type के लिए एक 'sub code'।  देखें [[कार्य प्रकार और कोड](https://github.com/rasta-mouse/ost-c2-spec?tab=readme-ov-file#task-types-and-codes)]।
    - **Flags**: 2-बाइट पूर्णांक।  संदेश की स्थिति दर्शाने के लिए बिटवाइज़ फ़्लैग्स का एक सेट।  देखें [[कार्य फ़्लैग्स](https://github.com/rasta-mouse/ost-c2-spec?tab=readme-ov-file#task-flags)]।
    - **Label**: 4-बाइट पूर्णांक।  एक अद्वितीय लेबल जो एक ही कार्य से संबंधित कई संदेशों को सहसंबंधित करता है।
    - **Identifier**: 4-बाइट पूर्णांक।  एक अनुक्रमिक पहचानकर्ता जिसका उपयोग खंडित संदेशों को सही क्रम में बनाने के लिए किया जाता है।
    - **Length**: 4-बाइट पूर्णांक।  कार्य डेटा की कुल लंबाई।
    
    ## कार्य प्रकार और कोड```text
    |------------------|--------------------------|
    | Type             | Code                     |
    |------------------|--------------------------|
    | 0 - NOP          | 0                        |
    |------------------|--------------------------|
    | 1 - Exit         | 0                        |
    |------------------|--------------------------|
    | 2 - Set          | 0 - Sleep/Jitter         |
    |                  | 1 - SpawnTo              |
    |                  | 2 - BlockDLLs            |
    |                  | 3 - PPID                 |
    |------------------|--------------------------|
    | 3 - File         | 0 - Copy                 |
    |                  | 1 - Move                 |
    |                  | 2 - Delete               |
    |                  | 3 - Upload               |
    |                  | 4 - Download             |
    |------------------|--------------------------|
    | 4 - Directory    | 0 - Print                |
    |                  | 1 - Change               |
    |                  | 2 - Create               |
    |                  | 3 - Copy                 |
    |                  | 4 - Move                 |
    |                  | 5 - List                 |
    |                  | 6 - Delete               |
    |------------------|--------------------------|
    | 5 - WhoAmI       | 0                        |
    |------------------|--------------------------|
    | 6 - Process      | 0 - List                 |
    |                  | 1 - Kill                 |
    |                  | 2 - Inject Spawn         |
    |                  | 3 - Inject Explicit      |
    |------------------|--------------------------|
    | 7 - Registry     | 0 - Query                |
    |                  | 1 - Add                  |
    |                  | 2 - Delete               |
    |------------------|--------------------------|
    | 8 - RPortFwd     | 0 - Start                |
    |                  | 1 - Data                 |
    |------------------|--------------------------|
    | 9 - Environment  | 0 - Get                  |
    |                  | 1 - Set                  |
    |------------------|--------------------------|
    | 10 - SOCKS       | 0 - Connect              |
    |                  | 1 - Data                 |
    |                  | 2 - Close                |
    |------------------|--------------------------|
    | 11 - Tokens      | 0 - List                 |
    |                  | 1 - Make                 |
    |                  | 2 - Steal                |
    |                  | 3 - Use                  |
    |                  | 4 - Revert               |
    |                  | 5 - Delete               |
    |                  | 6 - Purge                |
    |------------------|--------------------------|
    | 12 - Run         | 0                        |
    |------------------|--------------------------|
    | 13 - ItemStore   | 0 - List                 |
    |                  | 1 - Add                  |
    |                  | 2 - Delete               |
    |                  | 3 - Purge                |
    |------------------|--------------------------|
    | 14 - LocalExec   | 0 - .NET                 |
    |                  | 1 - BOF                  |
    |                  | 2 - Managed PowerShell   |
    |                  | 3 - Unmanaged PowerShell |
    |------------------|--------------------------|
    | 15 - PrintScreen | 0                        |
    |------------------|--------------------------|
    | 16 - RemoteExec  | 0 - WinRM                |
    |                  | 1 - WMI                  |
    |                  | 2 - PsExec               |
    |                  | 3 - SSH                  |
    |------------------|--------------------------|
    | 17 - Link        | 1 - Link SMB             |
    |                  | 2 - Link TCP             |
    |------------------|--------------------------|
    | 18 - Unlink      | 0                        |
    |------------------|--------------------------|
    | 19 - P2P         | 0 - Acknowledge          |
    |                  | 1 - PassThru             |
    |------------------|--------------------------|
    | 20 - Jobs        | 0 - List                 |
    |                  | 1 - Kill                 |
    |---------------------------------------------|
    

    कार्य फ़्लैग

    कुछ फ़्लैग परस्पर अनन्य होते हैं और इन्हें एक साथ सेट नहीं किया जाना चाहिए। यदि कोई फ़्लैग सेट नहीं है, तो कार्य को सफलतापूर्वक पूर्ण मान लिया जाना चाहिए और संबंधित आउटपुट (यदि कोई है) खंडित नहीं है।```text

    ValueDescription
    0No flags
    1Task Error
    2Task Running (as job)
    4Message is fragmented, more to follow
    8Message is fragmented, no more to follow
    root@kitploit:~
    ## कार्य डेटा
    
    कार्य डेटा हेडर से जुड़ा होता है और विशिष्ट कार्य प्रकार और कोड के आधार पर, एक बाइनरी संरचना से बना होगा। प्रत्येक कार्य अनुरोध और प्रतिक्रिया संदेश प्रकार को [[Message Definitions](https://github.com/rasta-mouse/ost-c2-spec?tab=readme-ov-file#message-definitions)] में परिभाषित किया गया है।
    
    किसी कार्य अनुरोध या प्रतिक्रिया के लिए कोई डेटा होना अनिवार्य नहीं है यदि उसकी आवश्यकता नहीं है।
    
    ## एन्क्रिप्टेड कार्य संदेश
    
    प्रसारण से पहले, कार्य हेडर और कार्य डेटा को मिलाकर implant के सत्र कुंजी के साथ AES-एन्क्रिप्ट किया जाता है।```text
    | Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    | ------------------------------------ |
    |  0   |            Iv                 |
    |  8   |                               |
    | ------------------------------------ |
    |  16  |          Checksum             |
    |  24  |                               |
    |  32  |                               |
    |  40  |                               |
    | ------------------------------------ |
    |  48  |           Data                |
    |  ..  |                               |
    | ------------------------------------ |
    
    • Iv: एक 16-बाइट इनिशियलाइज़ेशन वेक्टर।
    • Checksum: एक 32-बाइट HMAC256 चेकसम।
    • Data: एन्क्रिप्टेड डेटा।

    संदेश आदान-प्रदान

    इम्प्लांट पंजीकरण

    किसी भी कार्य डेटा को प्राप्त करने या भेजने से पहले एक इम्प्लांट को टीम सर्वर के साथ स्वयं को पंजीकृत करना अनिवार्य है।

    IMPLANT-METADATA का निर्माण

    इम्प्लांट एक [IMPLANT-METADATA] संदेश उत्पन्न करता है, इसे टीम सर्वर की सार्वजनिक RSA कुंजी से एन्क्रिप्ट करता है, और इसे टीम सर्वर को भेजता है।

    IMPLANT-METADATA की प्राप्ति

    टीम सर्वर इम्प्लांट के [IMPLANT-METADATA] को डिक्रिप्ट करने के लिए अपनी निजी RSA कुंजी का उपयोग करता है और उसे एक नए सत्र/कॉलबैक के रूप में पंजीकृत करना अनिवार्य है।

    इम्प्लांट चेक-इन

    किसी भी लंबित कार्य डेटा को स्वयं या चाइल्ड के लिए प्राप्त करने हेतु एक इम्प्लांट को टीम सर्वर के साथ "चेक-इन" करना अनिवार्य है।

    चेक-इन अनुरोध

    चेक-इन की विधि C2 चैनल के लिए विशिष्ट है और इस विनिर्देश के अंतर्गत शामिल नहीं है। एक पंजीकृत इम्प्लांट चेक-इन के लिए केवल अपनी ID भेज सकता है। हालाँकि, यदि इम्प्लांट ने तब से अपनी सेशन कुंजी, स्लीप या जिटर कॉन्फ़िगरेशन बदल दी है, तो उसे अपना मेटाडेटा भी पुनः भेजना अनिवार्य है।

    चेक-इन प्रतिक्रिया

    यदि कोई लंबित कार्य नहीं हैं, तो टीम सर्वर बिना डेटा के, या एक या अधिक [NOP] संदेशों के रूप में नकली डेटा के साथ प्रतिक्रिया दे सकता है। अन्यथा, उसे कार्य अनुरोधों के एक संग्रह के साथ प्रतिक्रिया देनी अनिवार्य है जो इम्प्लांट की सेशन कुंजी के साथ AES-एन्क्रिप्टेड होते हैं।

    पीयर-टू-पीयर

    LINK-X-REQ की प्राप्ति

    नए पेरेंट के साथ कनेक्शन स्थापित होने के बाद एक चाइल्ड इम्प्लांट को अपना मेटाडेटा P2P चैनल (जैसे नेम्ड पाइप या TCP सॉकेट) पर लिखना अनिवार्य है।

    LINK-REP का निर्माण

    पेरेंट को इस मेटाडेटा को पढ़ना और इसे [LINK-REP] संदेश में टीम सर्वर को वापस भेजना अनिवार्य है।

    LINK-REP की प्राप्ति

    टीम सर्वर को चाइल्ड के मेटाडेटा को डिक्रिप्ट करना और उसे एक नए सत्र/कॉलबैक के रूप में पंजीकृत करना या अनलिंक एवं लिंक के मामले में मौजूदा पेरेंट-चाइल्ड संबंधों को अद्यतन करना अनिवार्य है।

    LINK-ACK का निर्माण

    टीम सर्वर को चाइल्ड की ID की पुष्टि करने के लिए नए पेरेंट को [LINK-ACK] संदेश वापस भेजना अनिवार्य है। पेरेंट को इस प्रक्रिया को सहसंबंधित करने के लिए संदेश Label का उपयोग करना चाहिए।

    चाइल्ड टास्क

    चाइल्ड इम्प्लांट के लिए कार्य एक या अधिक [LINK-PASS-THRU] संदेशों में लिपटे होते हैं। ये पेरेंट की सेशन कुंजी के साथ एन्क्रिप्ट किए जाएँगे। प्राप्त होने पर, पेरेंट को संदेश को डिक्रिप्ट करना और लिपटे डेटा को child-id फ़ील्ड द्वारा इंगित चाइल्ड इम्प्लांट को अग्रेषित करना अनिवार्य है।

    लिपटा डेटा स्वयं कार्य हो सकता है या एक और LINK-PASS-THRU हो सकता है यदि चाइल्ड श्रृंखला में एक और स्तर नीचे है।

    संदेश परिभाषाएँ

    टाइमस्टैम्प फ़ील्ड

    सभी Timestamp फ़ील्ड साइन्ड 64-बिट पूर्णांक (Int64) के रूप में प्रेषित होते हैं जो UNIX युग (1 जनवरी 1970 से बीते सेकंडों की संख्या) को दर्शाते हैं।

    वैकल्पिक फ़ील्ड

    कुछ भाषाएँ छोड़े गए मान और शून्य के प्रेषित मान के बीच अंतर नहीं करती हैं। स्थिरता के लिए, कार्यान्वयन को वैकल्पिक फ़ील्ड के साथ 1 या 0 बाइट (अर्थात TRUE या FALSE) उपसर्गित करना अनिवार्य है ताकि यह इंगित किया जा सके कि मान मौजूद है या नहीं।

    लंबाई-उपसर्गित फ़ील्ड

    बाइनरी स्ट्रीम से डेटा पढ़ते समय यह जानना हमेशा संभव नहीं होता कि एक फ़ील्ड कहाँ समाप्त होती है और दूसरी कहाँ शुरू होती है। यह विनिर्देश इन फ़ील्ड में लंबाई मान उपसर्गित करने के उपयोग को अनिवार्य बनाता है, ताकि कार्यान्वयन को पता चले कि उस फ़ील्ड में कितने बाइट्स या कितने तत्व हैं। निम्नलिखित डेटा प्रकारों को लंबाई-उपसर्गित होना अनिवार्य है:

    • String (null-terminated भी हो सकता है, लेकिन आवश्यक नहीं है)।
    • SEQUENCEs जहाँ लंबाई स्थिर रूप से परिभाषित नहीं है।
    • IPV4-ADDRESS.
    • IPV6-ADDRESS.

    विनिर्देश का विस्तार

    कार्यान्वयन अपने अद्वितीय डिज़ाइन और कार्यक्षमता के अनुसार इस विनिर्देश में परिभाषित नहीं किए गए संदेश प्रकार, नियंत्रण कोड और फ़्लैग शामिल कर सकते हैं। हालाँकि, यह अनुशंसित है कि अनारक्षित पूल के उच्च अंत पर मानों का उपयोग किया जाए ताकि भविष्य के संशोधन में उन्हें सौंपे जाने की संभावना कम हो। कार्यान्वयन को ऐसे प्रकार, कोड या फ़्लैग का उपयोग नहीं करना अनिवार्य है जो उसके इच्छित उद्देश्य के अलावा किसी और चीज़ के लिए परिभाषित हो।

    अपरिचित संदेश

    कार्यान्वयनों को ऐसे संदेश को सुचारू रूप से संभालना चाहिए जिसमें ऐसे फ़ील्ड या फ़्लैग हों जिन्हें वह पहचानता नहीं है, और एक उपयुक्त त्रुटि संदेश लौटाना चाहिए।

    IMPLANT-METADATA```text

    IMPLANT-METADATA { id [1] UInt32 session-key [2] SEQUENCE of Byte (32) sleep [3] UInt32 OPTIONAL jitter [4] UInt32 OPTIONAL username [5] String OPTIONAL host-id [6] String OPTIONAL hostname [7] String OPTIONAL domain [8] String OPTIONAL ipv4-ips [9] SEQUENCE of IPV4-ADDRESS OPTIONAL ipv6-ips [10] SEQUENCE of IPV6-ADDRESS OPTIONAL process-name [11] String OPTIONAL process-id [12] UInt32 OPTIONAL architecture [13] [Architecture] OPTIONAL platform [14] [Platform] OPTIONAL os-description [15] String OPTIONAL integrity [16] [Integrity] OPTIONAL }

    root@kitploit:~
    ### IPV4-ADDRESS```text
    IPV4-ADDRESS {
      address  [1]  SEQUENCE of Byte (4)
    }
    

    IPV6-ADDRESS```text

    IPV6-ADDRESS { address [1] SEQUENCE of Byte (16) }

    root@kitploit:~
    IP पते नेटवर्क-बाइट क्रम में अवश्य प्रसारित किए जाने चाहिए।
    
    ### प्लेटफ़ॉर्म```text
    Platform {
      Linux   = 0,
      MacOS   = 1,
      Windows = 2
    }
    

    TASK-ERROR```text

    TASK-ERROR { error-code [1] UInt32 message [2] String OPTIONAL }

    root@kitploit:~
    ## NOP परिभाषाएँ
    
    ### NOP```text
    NOP {
      padding  [1]  SEQUENCE of Byte  OPTIONAL
    }
    

    सेट परिभाषाएँ

    SET-SLEEP-REQ```text

    SET-SLEEP-REQ { interval [1] UInt32 jitter [2] Byte OPTIONAL }

    root@kitploit:~
    ### SET-SPAWNTO-REQ```text
    SET-SPAWNTO-REQ {
      spawnto  [1]  String  OPTIONAL
    }
    

    यदि spawnto फ़ील्ड सेट नहीं है, तो इम्प्लांट को अपने डिफ़ॉल्ट कॉन्फ़िगरेशन पर वापस जाना चाहिए।

    SET-BLOCKDLLS-REQ```text

    SET-BLOCKDLLS-REQ { blockdlls [1] Boolean OPTIONAL }

    root@kitploit:~
    यदि `blockdlls` फ़ील्ड सेट *नहीं* है, तो implant को अपनी डिफ़ॉल्ट कॉन्फ़िगरेशन पर वापस जाना चाहिए।
    
    ### SET-PPID-REQ```text
    SET-PPID-REQ {
      ppid  [1]  UInt32  OPTIONAL
    }
    

    यदि ppid फ़ील्ड सेट नहीं है, तो इम्प्लांट को अपनी डिफ़ॉल्ट कॉन्फ़िगरेशन पर वापस जाना चाहिए।

    फ़ाइलसिस्टम परिभाषाएँ

    FILE-COPY-REQ```text

    FILE-COPY-REQ { source [1] String destination [2] String force [3] Boolean OPTIONAL }

    root@kitploit:~
    ### FILE-MOVE-REQ```text
    FILE-MOVE-REQ {
      source       [1]  String
      destination  [2]  String
    }
    

    FILE-DELETE-REQ```text

    FILE-DELETE-REQ { path [1] String }

    root@kitploit:~
    ### FILE-UPLOAD-REQ```text
    FILE-UPLOAD-REQ {
      destination  [1]  String
      content      [2]  SEQUENCE of Byte
    }
    

    FILE-DOWNLOAD-REQ```text

    FILE-DOWNLOAD-REQ { path [1] String }

    root@kitploit:~
    ### FILE-DOWNLOAD-REP```text
    FILE-DOWNLOAD-REP {
      current-chuck  [1]  UInt16
      total-chunks   [2]  UInt16
      chunk-content  [3]  SEQUENCE of Byte
    }
    

    DIR-PRINT-REP```text

    DIR-PRINT-REP { path [1] String }

    root@kitploit:~
    ### DIR-CHANGE-REQ```text
    DIR-CHANGE-REQ {
      path  [1]  String  OPTIONAL
    }
    

    यदि path फ़ील्ड सेट नहीं है, तो implant को अपनी कार्यशील निर्देशिका को एक 'डिफ़ॉल्ट' स्थान (जैसे उपयोगकर्ता की होम निर्देशिका) में बदल देना चाहिए।

    DIR-CREATE-REQ```text

    DIR-CREATE-REQ { path [1] String }

    root@kitploit:~
    ### DIR-CREATE-REP```text
    DIR-CREATE-REP {
      entry  [1]  [FileSystemEntry]
    }
    

    DIR-COPY-REQ```text

    DIR-COPY-REQ { source [1] String destination [2] String }

    root@kitploit:~
    ### DIR-MOVE-REQ```text
    DIR-MOVE-REQ {
      source       [1]  String
      destination  [2]  String
    }
    

    DIR-LIST-REQ```text

    DIR-LIST-REQ { path [1] String OPTIONAL access-control [2] Boolean OPTIONAL }

    root@kitploit:~
    यदि `path` फ़ील्ड *नहीं* सेट है, तो इम्प्लांट को अपनी वर्तमान कार्यशील निर्देशिका सूचीबद्ध करनी चाहिए।
    
    ### DIR-LIST-REP```text
    DIR-LIST-REP {
      entries  [1]  SEQUENCE of [FileSystemEntry]
    }
    

    DIR-DELETE-REQ```text

    DIR-DELETE-REQ { path [1] String recurse [2] Boolean OPTIONAL }

    root@kitploit:~
    ### FileSystemEntry```text
    FileSystemEntry {
      path            [1]  String
      length          [2]  UInt32                      OPTIONAL
      attributes      [3]  [FileAttributes]            OPTIONAL
      owner           [4]  String                      OPTIONAL
      created         [5]  Timestamp                   OPTIONAL
      last-accessed   [6]  Timestamp                   OPTIONAL
      last-written    [7]  Timestamp                   OPTIONAL
      access-control  [8]  SEQUENCE of [FileSecurity]  OPTIONAL
    }
    

    FileAttributes

    बिटवाइज़ फ़्लैग्स।```text FileAttributes { Normal = 1, Archive = 2, Compressed = 4, ReadOnly = 8, Hidden = 16, Directory = 32, System = 64 }

    root@kitploit:~
    ### FileSecurity```text
    FileSecurity {
      identity     [1]  String
      access-mask  [2]  Int32
      inheritance  [3]  [Inheritance]  OPTIONAL
      propagation  [4]  [Propagation]  OPTIONAL
    }
    

    विरासत

    बिटवाइज़ फ़्लैग्स।```text Inheritance { None = 0, ContainerInherit = 1, ObjectInherit = 2, }

    root@kitploit:~
    ### प्रसार
    
    बिटवाइज़ फ़्लैग्स।```text
    Propagation {
      None               = 0,
      NoPropagateInherit = 1,
      InheritOnly        = 2,
    }
    

    WhoAmI परिभाषाएँ

    WHOAMI-REP```text

    WHOAMI-REP { primary [1] String impersonation [2] String OPTIONAL }

    root@kitploit:~
    ## प्रक्रिया परिभाषाएँ
    
    ### PROC-LIST-REP```text
    PROC-LIST-REP {
      processes  [1]  SEQUENCE of [ProcessEntry]
    }
    

    PROC-KILL-REQ```text

    PROC-KILL-REQ { process-id [1] UInt32 force [2] Boolean OPTIONAL }

    root@kitploit:~
    ### PROC-INJ-REQ```text
    PROC-INJ-REQ {
      shellcode   [1]  SEQUENCE of Byte
      capability  [2]  SEQUENCE of Byte
      process-id  [3]  UInt32            OPTIONAL
    }
    

    ProcessEntry```text

    ProcessEntry { process-name [1] String process-id [2] UInt32 parent-process-id [3] UInt32 OPTIONAL session-id [4] Byte OPTIONAL owner [5] String OPTIONAL architecture [6] [Architecture] OPTIONAL integrity [7] [Integrity] OPTIONAL }

    root@kitploit:~
    ### आर्किटेक्चर```text
    Architecture {
      X86   = 0,  // 32-bit Intel
      X64   = 1,  // 64-bit Intel
      Arm   = 2,  // 32-bit ARM
      Arm64 = 3,  // 64-bit ARM
      Wasm  = 4   // WebAssembly
    }
    

    अखंडता```text

    Integrity { Untrusted = 0, Low = 1, Medium = 2, // user High = 3, // sudoers System = 4 // root }

    root@kitploit:~
    ## रजिस्ट्री परिभाषाएँ
    
    ### REG-QUERY-REQ```text
    REG-QUERY-REQ {
      hive            [1]  [RegistryHive]
      key             [2]  String          OPTIONAL
      value           [3]  String          OPTIONAL
      access-control  [4]  Boolean         OPTIONAL
    }
    

    REG-QUERY-REP```text

    REG-QUERY-REP { values [1] SEQUENCE of [RegistryValue] keys [2] SEQUENCE of [RegistryKey] }

    root@kitploit:~
    ### REG-ADD-REQ```text
    REG-ADD-REQ {
      hive   [1]  [RegistryHive]
      key    [2]  String
      name   [3]  String               OPTIONAL
      kind   [4]  [RegistryValueKind]  OPTIONAL
      value  [5]  SEQUENCE of Byte     OPTIONAL
    }
    

    REG-DELETE-REQ```text

    REG-DELETE-REQ { hive [1] [RegistryHive] key [2] String }

    root@kitploit:~
    ### RegistryHive```text
    RegistryHive {
      ClassesRoot   = 0,
      CurrentUser   = 1,
      LocalMachine  = 2,
      Users         = 3,
      CurrentConfig = 4
    }
    

    RegistryKey```text

    RegistryKey { name [1] String access-control [2] [RegistrySecurity] OPTIONAL }

    root@kitploit:~
    ### RegistryValue```text
    RegistryValue {
      name            [1]  String
      type            [2]  [RegistryValueKind]
      data            [3]  SEQUENCE of Byte
      access-control  [4]  SEQUENCE of [RegistrySecurity]  OPTIONAL
    }
    

    RegistryValueKind```text

    RegistryValueKind { None = 0, // REG_NONE String = 1, // REG_SZ ExpandString = 2, // REG_EXPAND_SZ Binary = 3, // REG_BINARY DWord = 4, // REG_DWORD MultiString = 5, // REG_MULTI_SZ Qword = 6 // REG_QWORD }

    root@kitploit:~
    ### RegistrySecurity```text
    RegistrySecurity {
      identity     [1]  String
      access-mask  [2]  Int32
      inheritance  [3]  [Inheritance]  OPTIONAL
      propagation  [4]  [Propagation]  OPTIONAL
    }
    

    रिवर्स पोर्ट फ़ॉरवर्ड परिभाषाएँ

    RPORTFWD-START```text

    RPORTFWD-START { bind-port [1] UInt16 localhost-only [2] Boolean OPTIONAL forward-host [3] String forward-port [4] UInt16 }

    root@kitploit:~
    ### RPORTFWD-DATA```text
    RPORTFWD-DATA {
      data  [1]  SEQUENCE of Byte
    }
    

    पर्यावरण परिभाषाएँ

    ENV-GET-REQ```text

    ENV-GET-REQ { key [1] String }

    root@kitploit:~
    ### ENV-GET-REP```text
    ENV-GET-REP {
      value  [1]  String
    }
    

    ENV-SET-REQ```text

    ENV-SET-REQ { key [1] String value [2] String }

    root@kitploit:~
    ## SOCKS परिभाषाएँ
    
    ### SOCKS-CONNECT-REQ```text
    SOCKS-CONNECT-REQ {
      id      [1]  UInt32
      target  [2]  SEQUENCE of Byte (4)
      port    [3]  UInt16
    }
    

    SOCKS-DATA```text

    SOCKS-DATA { id [1] UInt32 data [2] SEQUENCE of Byte }

    root@kitploit:~
    ### SOCKS-CLOSE-REQ```text
    SOCKS-CLOSE-REQ {
      id  [1]  UInt32
    }
    
    ## Token Definitions
    
    ### TOKEN-LIST-REP
    
    ```text
    TOKEN-LIST-REP {
      tokens  [1]  SEQUENCE of [TokenEntry]
    }```
    
    ### TOKEN-CREATE-REQ
    
    ```text
    TOKEN-CREATE-REQ {
      username  [1]  String
      domain    [2]  String  OPTIONAL
      password  [3]  String  OPTIONAL
    }```
    
    ### TOKEN-STEAL-REQ
    
    ```text
    TOKEN-STEAL-REQ {
      process-id   [1]  UInt32
      access-mask  [2]  UInt32  OPTIONAL
    }```
    
    ### TOKEN-USE-REQ
    
    ```text
    TOKEN-USE-REQ {
      index  [1]  Byte
    }```
    
    ### TOKEN-DELETE-REQ
    
    ```text
    TOKEN-DELETE-REQ {
      index  [1]  Byte
    }```
    
    ### TokenEntry
    
    ```text
    Token {
      index       [1]  Byte
      username    [2]  String
      handle      [3]  String  OPTIONAL
      process-id  [4]  UInt32  OPTIONAL
    }```
    
    ## Implant Store Definitions
    
    ### STORE-LIST-REP
    
    ```text
    STORE-LIST-REP {
      items  [1]  SEQUENCE of [StoreItem]
    }```
    
    ### STORE-ADD-ITEM Definition
    
    ```text
    STORE-ADD-ITEM-REQ {
      item  [1]  SEQUENCE of Byte
      name  [2]  String
      type  [3]  [StoreItemType]
    }```
    
    ### STORE-DELETE-ITEM Definition
    
    ```text
    STORE-DELETE-ITEM-REQ {
      index  [1]  Byte
    }```
    
    ### StoreItem
    
    ```text
    StoreItem {
      index  [1]  Byte
      name   [2]  String
      type   [3]  [StoreItemType]
    }```
    
    ### StoreItemType
    
    ```text
    StoreItemType {
      Assembly = 0,
      BOF      = 1,
      Script   = 2,
      Generic  = 3
    }```
    
    ## Local Execution Definitions
    
    ### RUN-REQ
    
    ```text
    RUN-REQ {
      program    [1]  String
      arguments  [2]  String  OPTIONAL
      token      [3]  Byte    OPTIONAL
    }```
    
    ### RUN-REP
    
    ```text
    RUN-REP {
      output  [1]  String
    }```
    
    ### EXEC-ASM-REQ
    
    Either store-index or assembly MUST be provided.
    
    ```text
    EXEC-ASM-REQ {
      store-index  [1]  Byte                OPTIONAL
      assembly     [2]  SEQUENCE of Byte    OPTIONAL
      arguments    [3]  SEQUENCE of String  OPTIONAL
      bypass-amsi  [4]  Boolean             OPTIONAL
      bypass-etw   [5]  Boolean             OPTIONAL
    }```
    
    ### EXEC-ASM-REP
    
    ```text
    EXEC-ASM-REP {
      output  [1]  String
    }```
    
    ### EXEC-BOF-REQ
    
    Either store-index or bof MUST be provided.
    
    ```text
    EXEC-BOF-REQ {
      store-index  [1]  Byte              OPTIONAL
      bof          [2]  SEQUENCE of Byte  OPTIONAL
      arguments    [3]  SEQUENCE of Byte  OPTIONAL
      bypass-amsi  [4]  Boolean           OPTIONAL
      bypass-etw   [5]  Boolean           OPTIONAL
    }```
    
    ### EXEC-BOF-REP
    
    ```text
    EXEC-BOF-REP {
      output  [1]  String
    }```
    
    ### EXEC-POSH-REQ
    
    Either store-index or script MUST be provided.
    
    ```text
    EXEC-POSH-REQ {
      cmdlet       [1]  String
      store-index  [2]  Byte              OPTIONAL
      script       [3]  SEQUENCE of Byte  OPTIONAL
      bypass-amsi  [3]  Boolean           OPTIONAL
      bypass-etw   [4]  Boolean           OPTIONAL
    }```
    
    ### EXEC-POSH-REP
    
    ```text
    EXEC-POSH-REP {
      output  [1]  String
    }```
    
    ## Screenshot Definitions
    
    ### SCRNSHOT-REP
    
    ```text
    SCRNSHOT-REP {
      data  [1]  SEQUENCE of Byte
    }```
    
    ## Remote Execution Definitions
    
    ### WINRM-REQ
    
    ```text
    WINRM-REQ {
      target     [1]  String
      program    [2]  String
      arguments  [3]  String  OPTIONAL
    }```
    
    ### WMI-REQ
    
    ```text
    WMI-REQ {
      target     [1]  String
      program    [2]  String
      arguments  [3]  String  OPTIONAL
    }```
    
    ### PSEXEC-REQ
    
    ```text
    PSEXEC-REQ {
      target               [1]  String
      service-name         [2]  String
      service-description  [3]  String  OPTIONAL
      bin-path             [4]  String
    }```
    
    ## Peer-to-Peer Definitions
    
    ### LINK-SMB-REQ
    
    ```text
    LINK-SMB-REQ {
      target    [1]  String
      pipename  [2]  String
    }```
    
    ### LINK-TCP-REQ
    
    ```text
    LINK-TCP-REQ {
      target  [1]  String
      port    [2]  UInt32
    }```
    
    ### LINK-REP
    
    ```text
    LINK-SMB-REP {
      child-metadata  [1]  SEQUENCE of Byte
    }```
    
    ### LINK-ACK
    
    ```text
    

    LINK-ACK { child-id [1] UInt32 }

    root@kitploit:~
    
    ### LINK-PASS-THRU
    
    ```text
    LINK-PASS-THRU {
      child-id  [1]  UInt32
      message   [2]  SEQUENCE of Byte
    }```
    
    ## JOB Definitions
    
    ### JOB-LIST-REP
    
    ```text
    jobs  [1]  [JobEntry] का अनुक्रम```
    
    ### JOB-KILL-REQ
    
    ```text
    index  [1]  UInt32```
    
    ### JobEntry
    ```text
    index  [1]  UInt32
      type   [2]  Byte
      code   [3]  Byte```
    
    टूल डाउनलोड करें