
Rosemary: QUIC पर क्रॉस-प्लेटफ़ॉर्म कर्नेल-स्तरीय पिवोटिंग। कोई TUN/TAP नहीं। कोई proxychains नहीं। कोई प्रॉक्सी सेटिंग्स नहीं।
क्विक (QUIC) पर क्रॉस-प्लेटफ़ॉर्म कर्नेल-स्तरीय पिवटिंग प्लेटफ़ॉर्म। कोई TUN/TAP नहीं। कोई proxychains नहीं। कोई प्रॉक्सी सेटिंग्स नहीं।
Rosemary दूरस्थ होस्टों पर ट्रैफ़िक को कर्नेल स्तर पर पारदर्शी रूप से इंटरसेप्ट करता है: कोई प्रॉक्सी सेटिंग्स नहीं, कोई TUN/TAP डिवाइस नहीं, कोई proxychains नहीं। एजेंट QUIC के ऊपर सर्वर से वापस कनेक्ट होते हैं। आप पूरे दूरस्थ नेटवर्क तक ऐसे पहुँचते हैं जैसे आप सीधे उस पर हों।
अपनी मशीन पर सर्वर चलाएँ और किसी भी दूरस्थ होस्ट पर एक एजेंट तैनात करें। एजेंट QUIC के ऊपर वापस कनेक्ट होता है, सर्वर एजेंट के सबनेट के लिए कर्नेल-स्तरीय इंटरसेप्शन नियम स्थापित करता है, और उस बिंदु से उन सबनेट के सभी ट्रैफ़िक, जिसमें DNS भी शामिल है, एजेंट के माध्यम से पारदर्शी रूप से अग्रेषित होता है — कोई प्रॉक्सी कॉन्फ़िग नहीं, कोई TUN डिवाइस नहीं, बदलने के लिए कोई DNS सेटिंग्स नहीं, आपके अनुप्रयोगों में कोई बदलाव नहीं।
curl http://192.168.1.50 ───► agent dials 192.168.1.50 and bridges it back
ssh [email protected]
ping 192.168.1.1
एक साथ कई एजेंट कनेक्ट करें और ट्रैफ़िक स्वचालित रूप से उस एजेंट की ओर रूट हो जाता है जो गंतव्य का मालिक है।
एजेंट उपरोक्त सभी प्लेटफ़ॉर्म पर चलता है। एजेंट की ओर से रूट की आवश्यकता नहीं है।
कनेक्टेड एजेंटों और उनके संबंधों को दिखाने वाला इंटरैक्टिव नेटवर्क ग्राफ़
OS, होस्टनाम, सबनेट और कनेक्शन स्थिति सहित विस्तृत एजेंट जानकारी
आसान पहुँच और टनल के माध्यम से ट्रैफ़िक रूटिंग के लिए ब्राउज़र एक्सटेंशन
स्थापना:
chrome://extensions/ पर जाएँextension/ फ़ोल्डर चुनेंएक्सटेंशन आइकन आपके ब्राउज़र टूलबार में दिखाई देगा।
किसी भी एजेंट के माध्यम से TCP/UDP पोर्ट फ़ॉरवर्ड बनाएँ और प्रबंधित करें
नोट: ग्राफ़ दृश्य स्वचालित रूप से एजेंटों का लेआउट तैयार करता है और सबनेट संबंधों को विज़ुअलाइज़ करता है। एजेंटों के बीच किनारे साझा सबनेट को इंगित करते हैं, जिससे मल्टी-हॉप पिवटिंग विज़ुअलाइज़ेशन संभव होता है।
# Install via go install
go install github.com/blue0x1/rosemary/rosemary@latest
go install github.com/blue0x1/rosemary/agent@latest # For install agent
# Copy to system path for sudo use
sudo cp ~/go/bin/rosemary /usr/local/bin/
या Releases से प्री-बिल्ट बाइनरी डाउनलोड करें।
# Auto-generate a key
sudo rosemary
# Or provide your own
sudo rosemary -key YOUR_BASE64_KEY
डैशबोर्ड http://server-ip:1024 पर उपलब्ध है: अपनी कुंजी से लॉग इन करें।
# Standard QUIC/UDP mode (agent connects to server)
./agent-linux-amd64 -s server-ip:2048 -k YOUR_KEY
# Background mode
./agent-linux-amd64 -b -s server-ip:2048 -k YOUR_KEY
# Windows
agent-windows-amd64.exe -s server-ip:2048 -k YOUR_KEY
कनेक्ट होने के बाद, एजेंट के सबनेट स्वचालित रूप से उसके माध्यम से रूट हो जाते हैं।
# On the agent host: agent listens for the server to connect
./agent-linux-amd64 -m agent-bind -l 0.0.0.0:9001 -k YOUR_KEY
# On the server CLI
rosemary> connect agent-ip:9001
Invoke-Rosemary.ps1 आउटबाउंड एजेंट मोड और बाइंड मोड दोनों का समर्थन करता है। बाइंड मोड लीगेसी Windows PowerShell होस्टों पर काम करता है। आउटबाउंड एजेंट मोड QUIC का उपयोग करता है और उसे PowerShell 7 की आवश्यकता होती है, ऐसे .NET रनटाइम पर जहाँ System.Net.Quic और libmsquic उपलब्ध हों।
# Import
. .\Invoke-Rosemary.ps1
# Help
Invoke-Rosemary -Help
Invoke-Rosemary -Mode agent -Server 192.168.1.10:2048 -Key YOUR_KEY
Invoke-Rosemary -Mode agent-bind -Listen 0.0.0.0:9001 -Key YOUR_KEY
Invoke-Rosemary -Mode agent -Server 192.168.1.10:2048 -Key YOUR_KEY -Background
Invoke-Rosemary -Mode agent -Server 192.168.1.10:2048 -Key YOUR_KEY -Verbose
PowerShell आउटबाउंड मोड का उपयोग करने से पहले QUIC समर्थन जाँचें:
[type]::GetType('System.Net.Quic.QuicConnection, System.Net.Quic') -ne $null
[System.Net.Quic.QuicConnection]:https://raw.githubusercontent.com/blue0x1/rosemary/HEAD/:IsSupported
यदि दोनों में से कोई भी जाँच विफल होती है, तो आउटबाउंड मोड के लिए Go Windows एजेंट का उपयोग करें या PowerShell एजेंट को agent-bind मोड में चलाएँ।
rosemary> egress agent-1
[+] Default egress set to agent-1
ज्ञात एजेंट सबनेट के बाहर के IPs का सारा ट्रैफ़िक अब agent-1 के माध्यम से प्रवाहित होता है। DNS निजी और सार्वजनिक दोनों डोमेन के लिए काम करता रहता है।
यह संस्करण आउटबाउंड एजेंटों को QUIC/UDP ट्रांसपोर्ट पर स्थानांतरित करता है, बाइंड एजेंटों को एन्क्रिप्टेड TCP फ्रेमिंग पर रखता है, PowerShell एजेंट को दोनों मोड के लिए अपडेट करता है, और एजेंटों, रूट्स, फ़ॉरवर्ड्स, रिवर्स फ़ॉरवर्ड्स, SOCKS5 प्रॉक्सी और API टोकन के लिए लगातार संरेखित तालिकाओं के साथ CLI सूची आउटपुट को ताज़ा करता है।
संगतता नोट्स:
पूर्ण विवरण के लिए REPL के अंदर help या help <command> टाइप करें।
agents List all connected agents
disconnect <agent-id|all> Disconnect agent(s)
reconnect <agent-id> Force agent to reconnect
connect <ip:port> Connect to a bind-mode agent
routes Show routing table
routes enable <subnet> Re-enable a disabled route
routes disable <subnet> Disable a route without disconnecting
routes default <agent-id> Set default egress agent
routes default off Clear default egress
egress <agent-id> Alias: set default egress agent
egress none Alias: clear default egress
forward add <local-port> <agent-id> <host> <port> [tcp|udp]
forward del <id>
forwards List active forwards
rforward add <listen-port> <agent-id> <host> <port>
rforward del <id>
rforward list
socks <agent-id> <port> [username] [password]
socks list
socks stop <id>
ping <agent-id> <target> [count]
discover <agent-id> <subnet> [timeout_ms] [workers]
portscan <agent-id> tcp|udp <target> [ports]
settings Show current config
verbose Toggle debug logging
rotate-key Regenerate encryption key
save-config <path> Export config to JSON
load-config <path> Import config from JSON
token list|create|view|revoke Manage API tokens
exit Shutdown
पूर्ण API संदर्भ
उदाहरणों के साथ पूर्ण एंडपॉइंट दस्तावेज़ यहाँ उपलब्ध है:
http://<server>:1024/docs
एक बार प्रमाणित होकर टोकन प्राप्त करें, फिर इसे सभी अनुरोधों के लिए उपयोग करें।
# Authenticate
curl -X POST http://server:1024/api/v1/auth \
-H "Content-Type: application/json" \
-d '{"key":"YOUR_KEY"}'
# List agents
curl -H "Authorization: Bearer tun_xxx" \
http://server:1024/api/v1/agents
# Port forward
curl -X POST http://server:1024/api/v1/forwards \
-H "Authorization: Bearer tun_xxx" \
-H "Content-Type: application/json" \
-d '{"action":"add","agent_id":"agent-1","local_port":8080,"target_host":"192.168.1.10","target_port":80}'
# SOCKS5 proxy
curl -X POST http://server:1024/api/v1/socks \
-H "Authorization: Bearer tun_xxx" \
-H "Content-Type: application/json" \
-d '{"agent_id":"agent-1","port":1080}'
# Run any CLI command
curl -X POST http://server:1024/api/v1/cli \
-H "Authorization: Bearer tun_xxx" \
-H "Content-Type: application/json" \
-d '{"command":"discover agent-1 10.10.10.0/24"}'
एंडपॉइंट: /api/v1/auth · /api/v1/agents · /api/v1/routes · /api/v1/forwards · /api/v1/rforwards · /api/v1/socks · /api/v1/cli · /api/v1/settings · /api/v1/tokens · /api/v1/shutdown
टोकन अनुमति स्तर: read · write · admin
git clone https://github.com/blue0x1/rosemary.git
cd rosemary
# Build all platforms and architectures
bash build.sh
# Build specific target
bash build.sh rosemary linux amd64
bash build.sh agent windows arm64
# Output goes to dist/
समर्थित आर्किटेक्चर:
amd64 arm64 arm 386amd64 arm64 386amd64 arm64Windows सर्वर कर्नेल-स्तरीय पैकेट इंटरसेप्शन के लिए WinDivert का उपयोग करता है। बिल्ड करने से पहले:
rosemary/ निर्देशिका में रखेंवे बिल्ड समय पर बाइनरी में एम्बेड हो जाती हैं।
read / write / adminGNU जनरल पब्लिक लाइसेंस v3.0: देखें LICENSE
blue0x1 (Chokri Hammedi)
केवल उन सिस्टमों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। अनधिकृत उपयोग निषिद्ध है।
| श्रेणी | क्षमता |
|---|
| इंटरसेप्शन | पारदर्शी TCP · UDP · ICMP · DNS, किसी क्लाइंट कॉन्फ़िग की आवश्यकता नहीं |
| Egress | डिफ़ॉल्ट egress एजेंट चुने हुए एजेंट के माध्यम से सभी इंटरनेट ट्रैफ़िक को रूट करता है |
| SOCKS5 | वैकल्पिक उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण के साथ प्रति-एजेंट SOCKS5 प्रॉक्सी |
| फ़ॉरवर्ड | TCP/UDP पोर्ट फ़ॉरवर्ड · रिवर्स पोर्ट फ़ॉरवर्ड (सर्वर सुनता है, एजेंट डायल करता है) |
| डिस्कवरी | पिंग · पिंग स्वीप · एजेंट के माध्यम से TCP/UDP पोर्ट स्कैन |
| DNS | DNS को इंटरसेप्ट करता है, एजेंटों के माध्यम से हल करता है, निजी और सार्वजनिक डोमेन |
| पिवटिंग | कई एजेंटों के माध्यम से मल्टी-हॉप (5+ हॉप परीक्षण किए गए) |
| ट्रांसपोर्ट | QUIC/UDP आउटबाउंड एजेंट · एन्क्रिप्टेड TCP बाइंड एजेंट |
| डैशबोर्ड | रीयल-टाइम एजेंट ग्राफ़, रूटिंग टेबल, लॉग व्यूअर के साथ वेब UI |
| API | टोकन-आधारित प्रमाणीकरण (read/write/admin) के साथ पूर्ण REST API |
| CLI | इंटरैक्टिव REPL + वेब-आधारित CLI पैनल |
| एक्सटेंशन | त्वरित पहुँच के लिए Chrome एक्सटेंशन |
| एजेंट | बैकग्राउंड मोड · बाइंड मोड · स्वचालित सबनेट डिस्कवरी · इंटरनेट डिटेक्शन |
| कॉन्फ़िग | JSON आयात/निर्यात · लाइव कुंजी रोटेशन · प्रति-पोर्ट कॉन्फ़िगरेशन |
| प्लेटफ़ॉर्म | TCP | UDP | DNS | ICMP | SOCKS5 | Egress |
|---|
| Linux | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Windows | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| macOS | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| FreeBSD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenBSD | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

रीयल-टाइम स्थिति के साथ सबनेट रूट देखें और टॉगल करें

पूर्ण सर्वर नियंत्रण के लिए अंतर्निहित REPL


फ़िल्टरिंग और निर्यात विकल्पों के साथ रीयल-टाइम इवेंट स्ट्रीमिंग

वैकल्पिक प्रमाणीकरण के साथ किसी भी एजेंट के माध्यम से SOCKS5 प्रॉक्सी प्रारंभ/रोकें

सर्वर पोर्ट, एन्क्रिप्शन कुंजियाँ और API टोकन कॉन्फ़िगर करें

विस्तृत अनुमतियों के साथ REST API टोकन बनाएँ और प्रबंधित करें

त्वरित क्रियाएँ: टैग, फ़ॉरवर्ड, पिंग, पोर्ट स्कैन, पुनः कनेक्ट, डिस्कनेक्ट

| पैरामीटर | विवरण |
|---|
-Key | Base64 एन्क्रिप्शन कुंजी - सर्वर से मेल खानी चाहिए |
-Mode | agent (आउटबाउंड) या agent-bind (इनबाउंड) |
-Server | सर्वर पता host:port - agent मोड में आवश्यक |
-Listen | agent-bind मोड के लिए बाइंड पता (डिफ़ॉल्ट 0.0.0.0:9001) |
-Background | छिपे हुए बैकग्राउंड प्रोसेस के रूप में पुनः लॉन्च करें और तुरंत लौटें |
-Verbose | कनेक्शन और सत्र डायग्नोस्टिक आउटपुट दिखाएँ |