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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
larac2shell — क्रॉस-प्लेटफॉर्म इंटरैक्टिव शैल Microsoft Defender for Endpoint Live Response के लिए | Kitploit
उपकरण/GitHubGitHub/akefallonitis/larac2shell
पार्श्व आंदोलनस्क्रिप्टिंग और स्वचालनपोस्ट-शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलउपयोगिताएँ और फ्रेमवर्कप्रमाणीकरणघटना प्रतिक्रियारिमोट एक्सेस टूल
GitHubakefallonitis/larac2shell

larac2shell

क्रॉस-प्लेटफॉर्म इंटरैक्टिव शैल Microsoft Defender for Endpoint Live Response के लिए

15154 महीने पहलेअभी तक समीक्षित नहीं
रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

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

LaraC2 Shell -- MDE Live Response इंटरैक्टिव शेल

CI License: MIT PowerShell 7+ Platforms

Microsoft Defender for Endpoint Live Response के लिए क्रॉस-प्लेटफ़ॉर्म इंटरैक्टिव शेल.

विशेषताविवरण
प्लेटफ़ॉर्मPowerShell Core 7.0+ (Windows, Linux, macOS)
API मोडआंतरिक (पोर्टल, निकट-रीयलटाइम) और आधिकारिक (सार्वजनिक, स्टेटलेस)
निष्पादनस्वेच्छित कमांड + 25 मूल LR कमांड
प्रमाणीकरण7 प्रमाणीकरण विधियाँ, एकीकृत मेनू, स्वतः-ताज़ा
लाइसेंसMIT

LaraC2 Shell दो स्वतंत्र API पथों के माध्यम से MDE Live Response से जुड़ता है -- आंतरिक पोर्टल API (स्थायी सत्र, ~2-5s विलंब) और आधिकारिक सार्वजनिक API (प्रति-कमांड, ~20-60s विलंब)। यह स्वचालित रूप से एक्ज़ीक्यूटर स्टब्स अपलोड करता है, दर सीमाओं को पारदर्शी रूप से संभालता है, और मशीन प्रबंधन, लाइब्रेरी प्रबंधन और एक अंतर्निहित सहायता प्रणाली के साथ एक पूर्ण REPL प्रदान करता है।

दस्तावेज़ीकरण

दस्तावेज़उद्देश्य
उपयोगकर्ता गाइडचरण-दर-चरण सेटअप, प्रमाणीकरण और संचालन
कमांड संदर्भसभी कमांड, रूटिंग, बैचिंग, टैब पूर्णता
त्रुटि संदर्भHTTP कोड, शेल त्रुटियाँ, प्रमाणीकरण त्रुटियाँ, समाधान
प्रदर्शनआंतरिक बनाम आधिकारिक विलंबता, थ्रूपुट, सीमाएँ
आर्किटेक्चरआंतरिक, प्रमाणीकरण श्रृंखलाएँ, एंडपॉइंट, फ़ाइल लेआउट
योगदानकैसे योगदान करें, परीक्षण करें, PR सबमिट करें
सुरक्षा नीतिनिजी तौर पर कमज़ोरी की रिपोर्ट कैसे करें
संदर्भपूर्व कला, संबंधित अनुसंधान, क्रेडिट
अस्वीकरणप्राधिकरण, क्रेडिट

विशेषताएँ

  • दो API मोड: आंतरिक (पोर्टल, ~2-5s/cmd, निकट-रीयल-टाइम) + आधिकारिक (सार्वजनिक, ~20-60s/cmd, CI/CD के लिए तैयार)
  • एकीकृत मेनू में 7 प्रमाणीकरण विधियाँ: क्लाइंट क्रेडेंशियल, डिवाइस कोड, क्रेडेंशियल+TOTP, पासकी/HSM, ESTS कुकी, TAP, डायरेक्ट sccauth -- मोड प्रमाणीकरण विकल्प से प्राप्त होता है
  • 25 मूल LR कमांड + स्वतः-अपलोड किए गए B64 एक्ज़ीक्यूटर स्टब्स के माध्यम से स्वेच्छित कमांड निष्पादन
  • क्रॉस-OS लक्ष्यीकरण: Windows, Linux, macOS एंडपॉइंट (स्वतः एक्ज़ीक्यूटर + एन्कोडिंग का चयन)
  • पारदर्शी दर सीमाकरण: 429 बैकऑफ़, ActiveRequest स्मार्ट संघर्ष समाधान (12 पुनर्प्रयास, बाहरी को रद्द करें / अपने को प्रतीक्षा करें)
  • सत्र जीवनचक्र: स्वतः-कनेक्ट, 30 मिनट की निष्क्रियता पर स्वतः-पुनर्कनेक्ट, पुराने सत्रों की छँटाई, क्रॉस-मशीन स्विचिंग
  • प्रमाणीकरण जीवनचक्र: OAuth2 स्वतः-ताज़ा, XSRF स्वतः-ताज़ा (4 मिनट TTL), TOTP/पासकी के लिए मौन पुनः-प्रमाणीकरण; सत्र समाप्त होने पर connect कमांड पुनः-प्रमाणीकरण करता है
  • सत्र पुन: उपयोग: बिना किसी उपयोगकर्ता हस्तक्षेप के पारदर्शी स्वतः-कनेक्ट, स्वतः-पुनर्कनेक्ट और क्रॉस-मशीन स्विचिंग
  • बहु-मशीन निष्पादन: नाम पैटर्न फ़िल्टरिंग और शीर्ष-N सीमा के साथ multi कमांड
  • बहु-कमांड बैचिंग: प्रति आधिकारिक API कॉल में अधिकतम 5 कमांड, बड़े सेटों के लिए स्वतः-विभाजन
  • लाइब्रेरी प्रबंधन: सूची, अपलोड, हटाएँ, डाउनलोड, एक्ज़ीक्यूटर स्टब्स स्वतः-अपलोड, 409 संघर्ष ओवरराइड
  • क्रिया प्रबंधन: सूची, रद्द करें (आंशिक ID मिलान), स्थिति विवरण
  • इंटरैक्टिव UX: टैब पूर्णता, कमांड उपनाम (ls/ps/netstat), कार्यशील निर्देशिका ट्रैकिंग, सहायता प्रणाली
  • त्रुटि मार्गदर्शन: संदर्भ-जागरूक संदेश (400->सिंटैक्स, 401->पुनःप्रमाणीकरण, 403->स्कोप, 429->दर सीमा)
  • CLI पर कोई गुप्त जानकारी नहीं: कॉन्फ़िग फ़ाइल या इंटरैक्टिव प्रॉम्प्ट से क्रेडेंशियल, कभी भी कमांड इतिहास में नहीं

त्वरित आरंभ

पूर्वापेक्षाएँ

  • PowerShell Core 7.0+ (Windows, Linux, या macOS)
  • या तो Live Response एक्सेस वाला एक पोर्टल खाता (आंतरिक मोड) या Machine.LiveResponse + Library.Manage अनुमतियों वाला एक MDE ऐप पंजीकरण (आधिकारिक मोड)

लॉन्च```powershell

git clone https://github.com/akefallonitis/larac2shell.git cd larac2shell pwsh -File shell/Invoke-MDEShell.ps1

root@kitploit:~
बस इतना ही। पहली बार लॉन्च करने पर शेल एक एकीकृत 7-विधि प्रमाणीकरण मेनू प्रस्तुत करता है — एक चुनें, प्रमाणित करें, एक मशीन चुनें, और आप REPL में हैं। कोई कॉन्फ़िग फ़ाइल नहीं, कोई फ़्लैग नहीं, सेटअप करने के लिए कुछ नहीं।```
  Select API mode:

    Internal API  (security.microsoft.com — near real-time, ~2-5s/cmd)
    1  Credentials + MFA        username + password, TOTP/push/SMS [auto-refresh]
    2  Software passkey          FIDO2/WebAuthn JSON key file [auto-refresh]
    3  ESTS cookie               ESTSAUTHPERSISTENT from browser (~24hr)
    4  Temporary Access Pass     one-time admin-issued code
    5  Direct sccauth + XSRF     cookies from browser DevTools (~1hr)

    Official API  (api.securitycenter.microsoft.com — CI/CD ready, ~20-60s/cmd)
    6  Device code               browser login (interactive)
    7  Client credentials        app registration with client secret

  Auth method (1-7):

विकल्प 1-5 आंतरिक मोड सेट करते हैं, 6-7 आधिकारिक सेट करते हैं। आप बाद में पुनः प्रारंभ किए बिना मोड बदल सकते हैं — इनलाइन मोड स्विच करना नीचे देखें।

इनलाइन मोड स्विच करना```

[INT myhost C:]> mode Current mode: Internal API Switch with: 'mode internal' or 'mode official'.

[INT myhost C:]> mode official [Mode] Switching from Internal API to official... (auth menu for official mode opens) [Mode] Now in official mode. Run 'machines' to list targets or 'connect <name|id>' to select one.

root@kitploit:~
`mode <target>` किसी भी मौजूदा LR सत्र को डिस्कनेक्ट करता है, पुरानी प्रमाणीकरण स्थिति को साफ़ करता है, और लक्ष्य मोड के लिए प्रमाणीकरण प्रवाह को फिर से चलाता है। जब यह वापस आता है तो आप बिना किसी मशीन चुने नए मोड में प्रमाणित हो जाते हैं — सूचीबद्ध करने के लिए `machines` चलाएँ, या सीधे लक्ष्य पर जाने के लिए `connect <name|id>` चलाएँ। पुनरारंभ की आवश्यकता नहीं है।

### CLI शॉर्टकट (वैकल्पिक)```powershell
# Pre-select the mode (narrows the auth menu to 1-5 or 6-7)
pwsh -File shell/Invoke-MDEShell.ps1 -Mode internal
pwsh -File shell/Invoke-MDEShell.ps1 -Mode official

# Pre-select a machine (skips the picker)
pwsh -File shell/Invoke-MDEShell.ps1 -Machine myhost

# Software passkey path (internal mode)
pwsh -File shell/Invoke-MDEShell.ps1 -PasskeyPath ./keys/passkey.json

# Non-interactive single command (exits with remote command's exit code)
pwsh -File shell/Invoke-MDEShell.ps1 -Machine myhost -Command 'whoami'

कॉन्फ़िग फ़ाइल (वैकल्पिक)

केवल एक परिदृश्य के लिए उपयोग किया जाता है: क्लाइंट सीक्रेट के साथ आधिकारिक मोड, गैर-संवादात्मक रूप से। अन्य सभी प्रमाणीकरण विधियाँ आपको संवादात्मक रूप से संकेत देती हैं और डिस्क पर कुछ भी संग्रहीत नहीं करती हैं। यदि आपको अनअटेंडेड क्लाइंट-क्रेडेंशियल्स प्रमाणीकरण की आवश्यकता नहीं है, तो आप इस अनुभाग को पूरी तरह से छोड़ सकते हैं।```powershell Copy-Item shell/config/shell-config.example.json shell/config/shell-config.json

Edit the file: set official.tenantId, official.clientId, official.clientSecret

pwsh -File shell/Invoke-MDEShell.ps1 -Config shell/config/shell-config.json

root@kitploit:~
कॉन्फ़िग स्कीमा (सभी फ़ील्ड वैकल्पिक हैं सिवाय `official.tenantId` + `official.clientId` जब क्लाइंट क्रेडेंशियल का उपयोग कर रहे हों):

| अनुभाग | फ़ील्ड | विवरण |
|---------|-------|-------------|
| `official` | `tenantId` | Azure AD किरायेदार ID |
| `official` | `clientId` | एप पंजीकरण क्लाइंट ID |
| `official` | `clientSecret` | क्लाइंट सीक्रेट (डिवाइस कोड के लिए `useDeviceCode: true` सेट करें और इसे छोड़ दें) |
| `official` | `useDeviceCode` | क्लाइंट क्रेडेंशियल के बजाय डिवाइस कोड फ़्लो का उपयोग करने के लिए `true` |
| `defaults` | `defaultMachine` | स्टार्टअप पर मशीन का पूर्व-चयन करें (नाम सबस्ट्रिंग या ID उपसर्ग) |
| `defaults` | `commandTimeoutSeconds` | क्लाइंट-साइड टाइमआउट सीलिंग। `0` = सर्वर तय करता है (1800s तक)। |
| `defaults` | `pollIntervalOfficial` | आधिकारिक API पोल अंतराल सेकंड में (डिफ़ॉल्ट 2) |
| `defaults` | `pollIntervalInternal` | आंतरिक API पोल अंतराल सेकंड में (डिफ़ॉल्ट 1) |

**सुरक्षा**: `clientSecret` वाले किसी भी कॉन्फ़िग फ़ाइल पर फ़ाइलसिस्टम अनुमतियों को प्रतिबंधित करें। `clientSecret` कभी भी कमांड लाइन पर स्वीकार नहीं किया जाता — केवल कॉन्फ़िग फ़ाइल। सभी आंतरिक-मोड क्रेडेंशियल (उपयोगकर्ता नाम, पासवर्ड, TOTP सीक्रेट, कुकीज़) इंटरैक्टिव रूप से संकेत दिए जाते हैं और कभी डिस्क पर संग्रहीत नहीं होते।

---

## प्रमाणीकरण विधियाँ

शेल स्टार्टअप पर एक एकीकृत 7-विधि प्रमाणीकरण मेनू प्रस्तुत करता है। मोड (आंतरिक/आधिकारिक) चुनाव से प्राप्त होता है।

| # | मोड | विधि | कैसे | स्वचालित-रिफ़्रेश |
|---|------|--------|-----|--------------|
| 1 | आंतरिक | क्रेडेंशियल + TOTP | इंटरएक्टिव प्रॉम्प्ट | हाँ (मौन) -- केवल जब TOTP सीक्रेट प्रदान किया गया हो। पुश/SMS MFA के साथ सत्र स्वचालित-रिफ़्रेश नहीं हो सकता। |
| 2 | आंतरिक | सॉफ़्टवेयर पासकी | `-PasskeyPath` पैराम या प्रॉम्प्ट | हाँ (मौन) |
| 3 | आंतरिक | ESTS कुकी | इंटरएक्टिव प्रॉम्प्ट | नहीं (~24घंटे) |
| 4 | आंतरिक | अस्थायी एक्सेस पास | इंटरएक्टिव प्रॉम्प्ट | नहीं (एक-बार) |
| 5 | आंतरिक | प्रत्यक्ष sccauth + XSRF | इंटरएक्टिव प्रॉम्प्ट | नहीं (~1घंटा) -- XSRF स्वचालित-रिफ़्रेश लागू नहीं होता; शेल सीधे प्रदान की गई कुकीज़ को स्वचालित-रिफ़्रेश नहीं करता। |
| 6 | आधिकारिक | डिवाइस कोड | ब्राउज़र लॉगिन | नहीं (~1घंटा) |
| 7 | आधिकारिक | क्लाइंट क्रेडेंशियल | कॉन्फ़िग फ़ाइल | हाँ (मौन) |

`connect` कमांड सत्र समाप्त होने पर पुनः प्रमाणित करता है, मूल रूप से चयनित उसी विधि का उपयोग करके। बिना स्वचालित-रिफ़्रेश वाली विधियाँ फिर से इंटरैक्टिव रूप से प्रॉम्प्ट करती हैं।

**इन-मेमोरी क्रेडेंशियल हैंडलिंग**: विधि 1 के लिए, प्रदान किया गया पासवर्ड और TOTP सीक्रेट शेल प्रक्रिया के जीवनकाल के लिए मेमोरी (सादे स्ट्रिंग के रूप में, `$script:Int_ReauthParams` के अंदर) में बनाए रखा जाता है ताकि मौन पुनः-प्रमाणीकरण बिना देखरेख के चल सके। स्ट्रिंग ऑब्जेक्ट PowerShell रनस्पेस में रहते हैं; वे डिस्क पर क्रमबद्ध नहीं होते या कमांड लाइन पर पारित नहीं होते। यदि वह जोखिम आपके खतरे के मॉडल के लिए स्वीकार्य नहीं है, तो इसके बजाय विधि 2 (पासकी/HSM) या विधि 7 (क्लाइंट क्रेडेंशियल) का उपयोग करें।

---

## शेल कमांड्स

### शेल नियंत्रण

| कमांड | विवरण |
|---------|-------------|
| `help [command]` | मदद दिखाएं (वैकल्पिक रूप से किसी विशिष्ट कमांड के लिए) |
| `help commands` | सभी मूल LR कमांड को विवरण के साथ सूचीबद्ध करें |
| `status` | कनेक्शन स्थिति, प्रमाणीकरण स्थिति, मशीन जानकारी दिखाएं |
| `config` | लाइव रिस्पांस कॉन्फ़िगरेशन दिखाएं |
| `connect [name\|id]` | पुनः प्रमाणित करें (यदि समाप्त हो गया है) और एक मशीन चुनें |
| `disconnect` | वर्तमान LR सत्र डिस्कनेक्ट करें और मशीन साफ़ करें |
| `multi [options] <cmd>` | एकाधिक मशीनों पर कमांड चलाएं (`-top N`, `-filter pattern`) |
| `session [list]` | वर्तमान सत्र जानकारी या सभी कैश्ड सत्र दिखाएं |
| `mode` | वर्तमान API मोड दिखाएं |
| `mode internal\|official` | API मोड इनलाइन स्विच करें — वर्तमान सत्र डिस्कनेक्ट करता है, पुरानी प्रमाणीकरण स्थिति को हटाता है, और लक्ष्य मोड के लिए प्रमाणीकरण मेनू फिर से चलाता है। बाद में `machines` या `connect` के साथ उठाएं |
| `exit` / `quit` / `q` | शेल से बाहर निकलें |

### मशीन प्रबंधन

| कमांड | विवरण |
|---------|-------------|
| `machines [refresh]` | मशीनों को सूचीबद्ध करें और एक चुनें (रिफ़्रेश = फोर्स रीलोड) |
| `connect [name\|id]` | नाम सबस्ट्रिंग या ID उपसर्ग द्वारा मशीन से कनेक्ट करें |

### मूल लाइव रिस्पांस कमांड्स (कुल 25)

| कमांड | विवरण |
|---------|-------------|
| `run <script> [args]` | MDE लाइब्रेरी से एक स्क्रिप्ट चलाएं |
| `getfile <path>` | रिमोट मशीन से एक फ़ाइल डाउनलोड करें |
| `putfile <name>` | रिमोट वर्किंग डायरेक्टरी में एक लाइब्रेरी फ़ाइल अपलोड करें |
| `processes` | चल रही प्रक्रियाओं की सूची बनाएं |
| `connections` | सक्रिय नेटवर्क कनेक्शन की सूची बनाएं |
| `cd <path>` | वर्किंग डायरेक्टरी बदलें (आंतरिक मोड) |
| `dir [path]` | डायरेक्टरी सामग्री सूचीबद्ध करें |
| `findfile <name>` | सभी ड्राइव पर नाम से फ़ाइल खोजें |
| `trace` | डायग्नोस्टिक ट्रेस जानकारी दिखाएं |
| `analyze <path>` | गहन विश्लेषण के लिए एक फ़ाइल सबमिट करें |
| `remediate <path>` | एक फ़ाइल को क्वारंटाइन/सुधारें |
| `undo <actionId>` | पिछली सुधार कार्रवाई को पूर्ववत करें |
| `registry <key>` | रजिस्ट्री कुंजियाँ/मान क्वेरी करें (केवल Windows) |
| `scheduledtasks` | अनुसूचित कार्यों की सूची बनाएं |
| `persistence` | सामान्य स्थायित्व स्थानों की जाँच करें |
| `drivers` | लोडेड ड्राइवरों की सूची बनाएं (केवल Windows) |
| `services` | सेवाओं की सूची बनाएं |
| `startupfolders` | स्टार्टअप फ़ोल्डर सामग्री सूचीबद्ध करें (केवल Windows) |
| `fileinfo <path>` | विस्तृत फ़ाइल जानकारी प्राप्त करें |
| `prefetch` | प्रीफ़ेच डेटा सूचीबद्ध करें (केवल Windows) |
| `log` | डायग्नोस्टिक लॉग देखें |
| `jobs` | पृष्ठभूमि कार्यों की सूची बनाएं (आंतरिक मोड) |
| `fg <jobId>` | एक पृष्ठभूमि कार्य को अग्रभूमि में लाएं (आंतरिक मोड) |
| `library` | लाइब्रेरी फ़ाइलों का प्रबंधन करें (सूची, अपलोड, डाउनलोड, हटाएं) |
| `status` | सत्र स्थिति और डायग्नोस्टिक्स दिखाएं |

### कमांड उपनाम

| उपनाम | हल करता है |
|-------|-------------|
| `ls` | `dir` |
| `ps` | `processes` |
| `download` | `getfile` |
| `process` | `processes` |
| `netstat` | `connections` |

### मनमाना कमांड्स

कोई भी इनपुट जो बिल्ट-इन कमांड से मेल नहीं खाता, उसे मनमाना कमांड माना जाता है और B64 एक्ज़ीक्यूटर स्टब के माध्यम से रिमोट मशीन पर निष्पादित किया जाता है। उदाहरण: `whoami`, `ipconfig`, `cat /etc/hostname`।

- Windows लक्ष्य: कमांड UTF-16-LE Base64-एन्कोडेड होता है और `executor_b64.ps1` (PowerShell ScriptBlock) के माध्यम से निष्पादित होता है
- Linux/macOS लक्ष्य: कमांड UTF-8 Base64-एन्कोडेड होता है और `executor_b64.sh` (bash) के माध्यम से निष्पादित होता है

**पाइपलाइन डिटेक्शन**: पाइप (`|`), सेमीकोलन (`;`), रीडायरेक्ट (`>>`), या सबएक्सप्रेशन (`$(`) वाले कमांड हमेशा B64-रैप किए जाते हैं, भले ही पहला शब्द एक मूल LR क्रिया हो। उदाहरण के लिए, `dir C:\ | Select-Object` मूल `dir` के बजाय B64 के माध्यम से जाता है।

### लाइब्रेरी प्रबंधन

| कमांड | विवरण |
|---------|-------------|
| `library` | MDE लाइब्रेरी में सभी फ़ाइलों की सूची बनाएं |
| `library refresh` | API से लाइब्रेरी सूची को फोर्स-रिफ़्रेश करें |
| `library upload <path>` | लाइब्रेरी में एक स्थानीय फ़ाइल अपलोड करें |
| `library delete <name>` | नाम से लाइब्रेरी से एक फ़ाइल हटाएं |
| `library download <name>` | लाइब्रेरी से एक फ़ाइल की सामग्री डाउनलोड करें (आंतरिक API: सीधा; आधिकारिक API: एक मशीन चुने जाने के बाद एंडपॉइंट के लाइब्रेरी कैश से `getfile` के माध्यम से -- सिंक में 10 मिनट तक लग सकता है) |

### कार्रवाई प्रबंधन

| कमांड | विवरण |
|---------|-------------|
| `actions` | वर्तमान मशीन के लिए लंबित/प्रगति पर कार्रवाइयों की सूची बनाएं |
| `actions all` | सभी मशीनों पर सभी हालिया कार्रवाइयों की सूची बनाएं |
| `actions cancel <id>` | ID द्वारा कार्रवाई रद्द करें (आंशिक मिलान समर्थित) |

---

## आर्किटेक्चर

### आंतरिक बनाम आधिकारिक API

LaraC2 Shell उसी MDE लाइव रिस्पांस बैकएंड के लिए दो स्वतंत्र API पथ प्रदर्शित करता है। आंतरिक API पोर्टल के समान वेबसॉकेट-जैसे सत्र मॉडल को दर्पण करता है और लगभग-वास्तविक-समय प्रतिक्रिया देता है। आधिकारिक API Microsoft के दस्तावेज़ित REST एंडपॉइंट का उपयोग करता है और ऑटोमेशन के लिए उपयुक्त है।

| | आंतरिक API | आधिकारिक API |
|---|---|---|
| आधार URL | `security.microsoft.com/apiproxy/mtp/liveResponseApi/` | `api.securitycenter.microsoft.com/api/` |
| सत्र | स्थायी (30-मिनट कीपअलाइव, स्वचालित-पुनःकनेक्ट) | प्रति-कमांड (स्टेटलेस) |
| पोल अंतराल | ~1s (लगभग-वास्तविक-समय) | 2s |
| एकाधिक-कमांड | साझा सत्र के भीतर अनुक्रमिक | बैचेड (प्रति API कॉल 5 तक) |
| प्रमाणीकरण | स्व-निहित (ESTS/पासकी/TOTP -> sccauth) | OAuth2 क्लाइंट क्रेडेंशियल या डिवाइस कोड |
| डिफ़ॉल्ट टाइमआउट | 1800s (सर्वर तय करता है, क्लाइंट नहीं) | 1800s (सर्वर तय करता है, क्लाइंट नहीं) |

#### LaraC2 कच्चे API से परे क्या जोड़ता है

| चरण | कच्चा आधिकारिक API | LaraC2 शेल |
|------|-----------------|-------------|
| स्टब अपलोड | मैनुअल: मल्टीपार्ट बनाएं, POST करें, विरोध संभालें | कनेक्ट पर स्वचालित, 409 ओवरराइड |
| B64 एन्कोड | मैनुअल: प्रति OS UTF-16LE/UTF-8 चुनें | OS का स्वचालित पता लगाएं, स्वचालित-एन्कोड |
| RunScript बनाएं | मैनुअल: ScriptName + Args पैराम के साथ JSON | सीधे कमांड टाइप करें |
| पोल + लाएं | मैनुअल: लूप + डाउनलोड लिंक + JSON पार्स | पारदर्शी: साफ आउटपुट लौटाता है |
| त्रुटि हैंडलिंग | मैनुअल: 400/401/403/409/429/503 की जाँच करें | स्वचालित: पुनः प्रयास, बैकऑफ़, मार्गदर्शन |
| एकाधिक-कमांड | मैनुअल: Commands[] ऐरे बनाएं | 5 तक स्वचालित बैचिंग |

### मुख्य बाधा

आधिकारिक API और आंतरिक API प्रति-मशीन कार्रवाई कतार साझा करते हैं। वे एक ही मशीन पर एक साथ नहीं चल सकते।

### दर सीमा (पारदर्शी)

| सीमा | मान | हैंडलिंग |
|-------|-------|----------|
| LR कमांड प्रति मिनट | 10 | Retry-After हेडर के साथ 429 प्रतिक्रिया |
| लाइब्रेरी अपलोड प्रति मिनट | 100 | स्लाइडिंग विंडो कतार |
| लाइब्रेरी अपलोड प्रति घंटा | 1500 | प्रति घंटा काउंटर |
| HTTP 429 बहुत अधिक अनुरोध | -- | Retry-After हेडर के लिए सोएं (डिफ़ॉल्ट 35s) |
| ActiveRequestAlreadyExists | -- | विरोधी कार्रवाई रद्द करें + निश्चित बैकऑफ़ (10s, फिर 15s 12 रीट्राइज़ तक) |
| बियरर टोकन समाप्ति (आधिकारिक) | ~1 घंटा | समाप्ति से पहले स्वचालित-रिफ़्रेश |
| sccauth समाप्ति (आंतरिक) | ~1 घंटा | यदि क्रेडेंशियल संग्रहीत हैं तो मौन पुनः-प्रमाणीकरण |
| LR सत्र निष्क्रियता | 30 मिनट | स्वचालित-पुनःकनेक्ट |
| XSRF रोटेशन | 4 मिनट | पारदर्शी रिफ़्रेश |

---

## लगभग-वास्तविक-समय शेल व्यवहार्यता

एक उत्पादन MDE किरायेदार पर मापी गई विलंबता, Windows, Linux, और macOS लक्ष्यों पर:

| संचालन | आंतरिक API | आधिकारिक API |
|-----------|-------------|-------------|
| `whoami` (B64) | 4-9s | 20-46s |
| `dir` (मूल) | 2-4s | 14-25s |
| `processes` (मूल) | 3-15s | 20-175s |
| `connections` (मूल) | 2-4s | ~15s |
| `services` (मूल) | 2-5s | ~15s |
| `hostname` (B64) | 4-7s | 11-16s |
| सत्र कनेक्ट (पहला cmd) | 9-15s | N/A (स्टेटलेस) |
| क्रॉस-मशीन स्विच | 7-10s | 15-30s |

**आंतरिक API: लगभग-वास्तविक-समय में सक्षम।** सत्र पुन: उपयोग के साथ, मूल कमांड 2-5s में प्रतिक्रिया देते हैं। यह MDE द्वारा अनुमत वास्तविक-समय के जितना करीब है। बाध्यता लक्ष्य पर SenseIR एजेंट है, फ्रेमवर्क नहीं।

**आधिकारिक API: ऑटोमेशन-ग्रेड।** स्टेटलेस आर्किटेक्चर के कारण प्रति कमांड न्यूनतम ~15s (सबमिट करें, पोल करें, लाएँ)। स्क्रिप्टेड ऑटोमेशन और CI/CD के लिए उपयुक्त, इंटरैक्टिव उपयोग के लिए नहीं।

---

## क्रॉस-OS समर्थन

Linux और macOS एंडपॉइंट दोनों API मोड के माध्यम से पूरी तरह समर्थित हैं।

| लक्ष्य OS | आंतरिक API औसत | आधिकारिक API औसत |
|-----------|-----------------|-----------------|
| Windows | ~7s | ~30s |
| Linux | ~6s | ~26-33s |
| macOS | ~6s | ~26-33s |

**क्या ध्यान दें**:

1. `.sh` स्टब्स में **जरूर** यूनिक्स लाइन एंडिंग (LF, CRLF नहीं) होनी चाहिए अन्यथा bash 'ambiguous redirect' के साथ विफल होता है।
2. आधिकारिक API लाइब्रेरी अपलोड Linux/macOS एंडपॉइंट पर `.sh` फ़ाइलों को **सिंक नहीं** करता है। पहले आंतरिक API (पोर्टल) या Defender पोर्टल UI के माध्यम से अपलोड करें। एक बार अपलोड होने के बाद, आधिकारिक API RunScript ठीक काम करता है।
3. `executor_b64.sh` एक बार ठीक से अपलोड होने पर Linux और macOS पर काम करता है।

---

## परीक्षण

परीक्षण सूट में 712 ऑफ़लाइन यूनिट टेस्ट, 301 आधिकारिक-API एकीकरण परीक्षण, 251 आंतरिक-API एकीकरण परीक्षण, साथ ही एक कॉन्फ़िगरेबल स्ट्रेस-टेस्ट ड्राइवर शामिल है।

### पूर्वापेक्षाएँ```powershell
Install-Module -Name Pester -MinimumVersion 5.0.0 -Force -Scope CurrentUser

ऑफ़लाइन परीक्षण (no tenant required)

यूनिट परीक्षण जो module loading, B64 encoding, command building, alias resolution, tokenizer, rate limiter, auth crypto, session management, error paths, और सभी auth flows को Pester Mock के माध्यम से कवर करते हैं।```powershell Invoke-Pester ./tests/shell/LaraC2Shell.Offline.Tests.ps1 -Output Detailed

root@kitploit:~
### आंतरिक API परीक्षण (पोर्टल कुकीज़ आवश्यक)

एकीकरण परीक्षण जो sccauth auth, सत्र जीवनचक्र, सभी मूल आदेश, B64 निष्पादन, क्रॉस-ओएस लक्ष्यीकरण को कवर करते हैं।```powershell
$env:LARAC2_SCCAUTH = 'your-sccauth-cookie'
$env:LARAC2_XSRF = 'your-xsrf-token'
Invoke-Pester ./tests/shell/LaraC2Shell.Internal.Tests.ps1 -Output Detailed

तनाव परीक्षण (थ्रूपुट और विश्वसनीयता)```powershell

Single-mode stress

pwsh -File tests/shell/LaraC2Shell.Stress.Tests.ps1 -Config config.json -Mode official -Rounds 5

Cross-OS stress (Windows + Linux + macOS)

pwsh -File tests/shell/LaraC2Shell.Stress.Tests.ps1 -Config config.json -Mode both -Scenario crossos

root@kitploit:~
### CI/CD (GitHub Actions)

| कार्य | ट्रिगर | प्लेटफ़ॉर्म | आवश्यकताएँ |
|-----|---------|-----------|--------------|
| PSScriptAnalyzer Lint | प्रत्येक push/PR | Ubuntu | कोई नहीं |
| ऑफ़लाइन परीक्षण | प्रत्येक push/PR | Ubuntu + Windows + macOS | कोई नहीं |
| ऑनलाइन परीक्षण (आधिकारिक) | सशर्त | Ubuntu | `LARAC2_ONLINE_TESTS` चर + `LARAC2_CONFIG` गुप्त |
| तनाव परीक्षण | मैन्युअल प्रेषण | Ubuntu | `LARAC2_CONFIG` गुप्त |

---

## समस्या निवारण

| त्रुटि | कारण | समाधान |
|-------|-------|------------|
| `ActiveRequestAlreadyExists` | लक्ष्य पर कोई अन्य LR कमांड चल रहा है | स्वचालित रूप से नियंत्रित (आधिकारिक मोड): विरोधाभासी कार्रवाई रद्द करें + निश्चित 10s/15s बैकऑफ़ 12 पुनर्प्रयास तक। आंतरिक मोड: केवल प्रतीक्षा करें। उपयोगकर्ता कार्रवाई की आवश्यकता नहीं है। |
| HTTP 429 | दर सीमा पार हो गई (10 कमांड/मिनट) | स्वचालित रूप से नियंत्रित: Retry-After अवधि के लिए सोता है और पुनर्प्रयास करता है। |
| Linux/macOS पर "script not found" | .sh स्टब एंडपॉइंट से सिंक नहीं हुआ | आंतरिक API या Defender पोर्टल UI के माध्यम से अपलोड करें। आधिकारिक API अपलोड .sh फ़ाइलों को सिंक नहीं करते। |
| Linux/macOS पर "ambiguous redirect" | .sh स्टब में CRLF लाइन एंडिंग हैं | LF लाइन एंडिंग के साथ पुनः सहेजें और पुनः अपलोड करें। |
| बड़े कमांड पर HTTP 400 | B64 पेलोड ~30 KB से अधिक है | इसके बजाय `library upload` + `run <script>` का उपयोग करें। |
| HTTP 401 | टोकन/सत्र समाप्त हो गया | शेल क्लाइंट क्रेडेंशियल, TOTP और पासकी के लिए स्वचालित रूप से रिफ्रेश करता है। अन्य विधियों के लिए, `connect` टाइप करें। |
| HTTP 403 | अपर्याप्त अनुमतियाँ | आधिकारिक: `Machine.LiveResponse` + `Library.Manage` स्कोप जांचें। आंतरिक: सुरक्षा ऑपरेटर भूमिका जांचें। |
| HTTP 404 | मशीन नहीं मिली | पुनः लोड करने के लिए `machines refresh` चलाएँ। |

---

## आवश्यकताएँ

| आवश्यकता | विवरण |
|-------------|--------|
| PowerShell Core | 7.0 या बाद का (`pwsh`) |
| MDE App Registration | आधिकारिक मोड के लिए आवश्यक (`Machine.LiveResponse` + `Library.Manage` अनुमतियाँ) |
| ऑपरेटिंग सिस्टम | Windows, Linux, या macOS (शेल किसी पर भी चलता है; लक्ष्य कोई भी MDE-पंजीकृत OS हो सकता है) |

सभी प्रमाणीकरण स्व-निहित है — कोई बाहरी मॉड्यूल आवश्यक नहीं। आंतरिक मोड प्रमाणीकरण प्रवाह [XDRInternals](https://github.com/MSCloudInternals/XDRInternals) पर आधारित हैं, जो Fabian Bader और Nathan McNulty द्वारा बनाया गया है।

---

## फ़ाइल लेआउट```
shell/
  Invoke-MDEShell.ps1           Main shell entry point (REPL, dispatch, help)
  modules/
    Auth-Official.ps1           OAuth2 client credentials + device code
    Auth-Internal.ps1           Self-contained ESTS/passkey/TOTP/TAP authentication
    Auth-Crypto.ps1             Crypto helpers: TOTP, WebAuthn, passkey signing, Key Vault
    Rate-Limiter.ps1            429/backoff/ActiveRequest handling
    Invoke-LRCommand.ps1        Command execution (both modes, B64 stubs, multi-machine)
    Get-Machines.ps1            Machine list + picker
    Manage-Library.ps1          Library file management + auto-init stubs
    Manage-Actions.ps1          Action list/cancel
  config/
    shell-config.example.json   Config template (copy and fill in)

stubs/
  executor_b64.ps1              Windows PS B64 executor (auto-uploaded)
  executor_b64.sh               Linux/macOS bash B64 executor (auto-uploaded)

tests/
  shell/
    LaraC2Shell.Offline.Tests.ps1    Unit tests (no tenant needed)
    LaraC2Shell.Online.Tests.ps1     Integration tests (Official API)
    LaraC2Shell.Internal.Tests.ps1   Integration tests (Internal API)
    LaraC2Shell.Stress.Tests.ps1     Stress/throughput driver (configurable scenarios)

docs/
  USER_GUIDE.md                 Step-by-step usage guide
  COMMAND_REFERENCE.md          All commands, routing, batching
  ERROR_REFERENCE.md            Error messages and fixes
  PERFORMANCE_COMPARISON.md     Stress test data and API comparison

प्राधिकरण

LICENSE में निहित शर्तें देखें।


संदर्भ और श्रेय

संसाधनलेखकविवरण
XDRInternalsFabian Bader, Nathan McNultyआंतरिक पोर्टल प्रमाणीकरण प्रवाह (ESTS, passkey, TOTP, TAP)
Running Arbitrary CommandsJon Glassलाइव रिस्पॉन्स कमांड निष्पादन तकनीक
Troubleshoot Live ResponseJeffrey AppelLR आर्किटेक्चर, WpnService, सत्र निदान
MDE Internals 0x05Olaf Hartong (FalconForce)संवेदनशील कार्रवाइयों के लिए MDE टेलीमेट्री, डिटेक्शन इंजीनियरिंग
DefenderHarvesterOlaf HartongMDE टेलीमेट्री निर्यात अवधारणाएँ
Run Live Response APIMicrosoftआधिकारिक API दस्तावेज़ीकरण
Library Methods APIMicrosoftलाइब्रेरी प्रबंधन API दस्तावेज़ीकरण
टूल डाउनलोड करें