PTY अपग्रेड, पोस्ट-एक्सप्लॉइटेशन मॉड्यूल, लेयर 3 टनलिंग, EDR बायपास के लिए पेलोड ऑब्फस्केशन, सेशन लॉगिंग, और LLM-संचालित नियंत्रण के लिए MCP सर्वर के साथ मल्टी-सेशन रिवर्स शेल हैंडलर।
यह प्रोजेक्ट एक तेज़, उपयोग में आसान (फिर भी सुविधाओं से भरपूर) शेल हैंडलर बनाने की मेरी कोशिश है, जिसका इंटरफ़ेस भी सुंदर है।
अस्वीकरण: कृपया ध्यान दें कि यह अभी भी विकास के अधीन है, और मैं अभी भी कुछ प्रमुख सुविधाओं पर काम कर रहा हूँ, जिनके बारे में इस अनुभाग में बात की गई है।
✨ विशेषताएँ | 🚧 WIP | 🚀 इंस्टॉलेशन | 💻 उपयोग | 🔧 PTY अपग्रेड | 🤖 मॉड्यूल | 🧠 MCP
पूरा दस्तावेज़ विकी में उपलब्ध है।
[!TIP] यह डेमो dockerized OS के साथ चलता है। अगर आप खुद आज़माना चाहते हैं, तो आप Ubuntu images या dockur windows का उपयोग कर सकते हैं
script/socat के ज़रिए, Windows में obfuscated ConPtyShell के ज़रिए) ताकि टैब कम्पलीशन, Ctrl+C फ़ॉरवर्डिंग और टर्मिनल रीसाइज़िंग काम करे।connect ssh user@host आपके पास पहले से मौजूद क्रेडेंशियल्स को एक सेशन में बदल देता है। ssh केवल पेलोड डिलीवर करता है, इसलिए ssh बंद होने के बाद भी शेल जीवित रहता है।tunnel start <id> <cidr> एक शेल को Layer 3 पिवट में बदल देता है: टारगेट पर एक userland TCP स्टैक (न root, न कोई ड्रॉप्ड बाइनरी, केवल Python) और आपकी तरफ़ रूट्स। (docs)koireview से किसी भी सेशन को रीप्ले करें। (docs)Ctrl+Z सेशन को बैकग्राउंड में भेजता है, Ctrl+C रिमोट को SIGINT भेजता है, और गलती से आपका लिसनर कभी नहीं मारता।[!NOTE] अब Koi को रिमोटली उपयोग करना संभव है ! और पढ़ें यहाँ
# Recommended: stable release from PyPI
pipx install koi-handler
# From source if you want to dev your own modules
git clone https://github.com/b3rt1ng/koi
cd koi
pipx install --editable .
koifuscator obfuscator मॉड्यूल का सीधा शॉर्टकट है।
koireview आपके सेशन्स के लॉग देखने का तरीका है।
अपग्रेड करने के लिए:
pipx upgrade koi-handler
अधिक जानकारी Getting Started में।
# Default: bind 0.0.0.0:4010
koi
# Custom host/port
koi --host 10.10.14.5 --port 9001
koi -p 9001
अंदर जाने के बाद, help हर कमांड की सूची दिखाता है। पूरा संदर्भ CLI Reference में है, और सेशन हैंडलिंग (टैग्स, बैकग्राउंडिंग, screenable मोड) Session Management में।
खुद एक रिवर्स शेल भेजें या payloads *interface* टाइप करके पहले से जनरेट किए गए पेलोड्स पाएँ। ध्यान रखें कि यह एक टर्मिनल जैसा शेल होना चाहिए, क्योंकि Koi linux shs, powershells और cmd को मैनिपुलेट करता है।
Koi में Windows Defender डिटेक्शन से बचने में मदद के लिए एक बिल्ट-इन पेलोड obfuscator शामिल है। आप कई तकनीकों को एक साथ चेन कर सकते हैं, हालाँकि XOR एन्कोडिंग और format transformations आमतौर पर पर्याप्त होते हैं। ध्यान रखें कि बहुत अधिक लेयर्स जोड़ने से पेलोड खराब हो सकता है और टारगेट के लिए अपठनीय हो सकता है।
Obfuscator Linux पेलोड्स के लिए भी काम करता है। हालाँकि ज़्यादातर Linux वातावरणों में एंटीवायरस सॉफ़्टवेयर नहीं चलता, bash one-liners को अक्सर EDR सॉल्यूशंस, IDS नियमों द्वारा फ़्लैग किया जाता है, या ब्लू टीम्स द्वारा ज्ञात रिवर्स शेल पैटर्न की निगरानी की जाती है। अपने पेलोड को obfuscate करना कुछ हार्डन्ड वातावरणों में रडार के नीचे उड़ने में मदद करता है।
हर तकनीक और हर समर्थित पेलोड प्रकार Payloads & Obfuscation में सूचीबद्ध है।
रॉ शेल्स में उचित टर्मिनल सपोर्ट नहीं होता: न टैब कम्पलीशन, टूटा हुआ Ctrl+C, बिगड़ा हुआ आउटपुट। upgrade कमांड इसे ठीक करता है:
koi> upgrade 1
Shell #1 upgraded successfully.
koi> go 1
# now a full PTY with proper terminal behaviour
एक साधारण python pty स्पॉन किया जाता है
python3 -c 'import pty; pty.spawn("/bin/bash")'
TERM=xterm-256color और कुछ रीसाइज़िंग जानकारी के साथ
मैंने CMD के लिए एक बनाने की जहमत नहीं उठाई, लेकिन powershell के लिए यह तकनीक एक obfuscated conptyshell का उपयोग करती है ताकि पूरी तरह से लागू किया गया शेल प्राप्त हो:
1) ConPtyShell is fetched from GitHub and cached locally for offline reuse
2) All IOC identifiers are renamed to random strings (class names, method names, PS function name)
3) Distinctive C# string literals are replaced with runtime char-array constructions (no literal in compiled MSIL)
4) The obfuscated script is served over a temporary HTTP server
5) The invocation command is base64-encoded (-EncodedCommand) with IEX and IWR obfuscated via random split techniques (concat / format string / char-array), so no plaintext cmdlet names appear on the command line
6) The target connects back with a fully interactive PTY shell, registered as a new session
फ़ॉलबैक चेन और प्रति-OS विवरण Upgrading Sessions में।
Koi अपने सेशन और मॉड्यूल MCP के ज़रिए एक्सपोज़ कर सकता है, ताकि एक LLM क्लाइंट आपकी सेशन टेबल पढ़ सके और मॉड्यूल चला सके, बिना आपके कुछ भी कॉपी-पेस्ट किए।
# read-only: sessions, modules and logs
koi --mcp
# lets the model run commands and modules on targets
koi --mcp --mcp-allow-exec
सर्वर लिसनर प्रोसेस में चलता है और 127.0.0.1:7331 को बाइंड करता है, जो स्टार्टअप पर प्रिंट किए गए bearer token से सुरक्षित है। Read-only जानबूझकर डिफ़ॉल्ट है।