
Universal Plug and Fuzz
UFuzz، أو "Universal Plug and Fuzz"، هي أداة تفحيم آلية لبروتوكول UPnP. تقوم بتعداد جميع نقاط نهاية UPnP على الشبكة، وتحديد الخدمات المتاحة ثم تفحيمها. كما أنها قادرة على تفحيم HTTP باستخدام سجلات وكيل Burp.
صُممت لتفحيم الأنظمة المدمجة، ولهذا تعمل بخيط واحد فقط. كما أنها تمتلك مجموعة حمولات محدودة للغاية لأن تفحيم هذه الأنظمة قد يكون بطيئًا. تعتمد بعض الحمولات مثل SQLi الأعمى وحقن الأوامر على التأخيرات للكشف عما إذا كان الحقن ناجحًا، وقد تُنتج نتائج إيجابية خاطئة. في المقابل، صُممت حمولات أخرى مثل سلاسل التنسيق وتجاوز سعة المخزن المؤقت لاستخدام مراقب مخصص لاكتشاف الانهيارات.
تشتمل الحزمة على وحدات إعداد ووحدات مراقبة نموذجية. وتسمح المراقبات المخصصة باستخدام بيانات القياس عن بُعد الخاصة بالنظام المستهدف لاكتشاف الانهيارات. كما تم توفير وحدات نموذجية للكشف عن الانهيارات المعتمدة على telnet وعلى الطرفية التسلسلية.
لاحظ أن الكود غير مصقول بعد. "Hacky" هو أفضل وصف له. للأسف، كُتب هذا المشروع بسرعة ولم تُهندس بنيته بشكل صحيح أبدًا. سأعمل على معالجة هذا في الأشهر المقبلة.
أخيرًا، تم اقتباس بعض الكود من مشاريع أخرى:
يعتمد كود UPnP بشكل كبير على كود miranda الخاص بـ Craig Heffner. كان Craig مصدر إلهام لي، وأنصحك بشدة بقراءة مدونته /dev/ttys0.
يعتمد جزء من كود توليد مجموعة الاختبار على مشروع Metafuzz الخاص بـ Ben Nagy.
يستند كود تحليل المقابس وHTTP إلى Excon.
تم اختبار UFuzz باستخدام Ruby 1.9.3 و Ruby 2.1.1. يمكنك تثبيت جميع الـ gems المطلوبة عن طريق تشغيل bundle install في دليل UFuzz.
شغّل ufuzz مع الخيار -h لرؤية جميع خيارات سطر الأوامر. عند تشغيل الأداة، تُكتب السجلات في دليل السجلات.
للتفحيم الأساسي لجميع أجهزة UPnP على الشبكة، ما عليك سوى تشغيل ufuzz --upnp. من المحتمل أيضًا أن ترغب في استخدام الخيار -v 4 لرؤية ملخصات الطلبات والاستجابات.