مقال : كيفيه برمجه سكربت بلغه البايثون لعمل HTTP Flood

1 تعليق حماية 10- أغسطس -2016 كاتب المجتمع

مقال : كيفيه برمجه سكربت بلغه البايثون لعمل HTTP Flood

الـHttp Flood هو نوع من أنواع هجمات الـDenial-Of-Service أو الـDOS Attack ولكن قبل أن أوضح ماهو سأوضح ماهو الفرق بين هجمات الـDOS وهجمات الـDDOS

الـDOS Attacks أو هجمات الحرمان من الخدمه هي نوع من الخدمات الغرض منه هو جعل خدمه ما غير متاحه للمستخدمين عن طريق أغراق السيرفر بأعداد هائله من الطلبات مما يجعل السيرفر غير قادر علي أستيعاب علي هذه الطلبات والرد عليها مما يتسبب بعطل دائم به أو مؤقت وأنواعه كثيره مثل الـICMP flood او الـUdp flood .

اما الـDDOS Attacks فهي نفس الـDOS ولكن هذا النوع يكون موزع أي يقوم به عدد من المستخدمين بغرض أرسال أكبر عدد من طلبات في وقت أقل ، فتخيل أن موقع عباره عن مكان وجاء مجموعه كبيره تحاول أن تدخل في نفس الوقت فتمنع الزوار الأصليين من الدخول للمكان وهذا هو مفهوم مبسط للـDDOS Attacks وهذا النوع في الغالب يتم عن طريق الـBotnets للزياده من قوه الهجوم.

والأن ماهو الـHttp Flood ؟

أكتشف هذا النوع من الهجمات لأول مره في سنه 2009 وهو ينقسم الي نوعين :

Http Post Dos Attack

ddos_diagram_http-post

هو نوع يقوم فيه المهاجم بأرسال عدد كبير من الطلبات من نوع post والتي يكون بها Content-Length ليحدد حجم الرساله التي سترسل ، ثم يستمر المهاجم بأرسال الطلبات بهذا الشكل بمعدل بطيئ (مثل بايت كل 110 ثانيه ) ، وبما أن الطلبات المرسله تكون صحيحه فيجبر السيرفر علي أطاعه الـContent-Length الموجود في الطلبات وبالتالي سينتظر حتي يستقبل كامل الرساله والذي سيأخذ وقتاَ طويلا جدا في العاده ومن هنا يستمر المهاجم بأرسال نفس الطلبات بالألاف حتي تستنفذ كامل موارد السيرفر ويتعطل وكما تري هذا النوع من الهجمات قد يكون قوي للغايه فهذا يعتمد علي جهاز المهاجم وكما أن هذا النوع يستطيع أن يتخطي بعض الحمايات فقامت OWASP  بعمل أداه لأختبار حمايات السيرفرات ضد هذا النوع من الهجمات تستطيع أن تنزل الأداه من هنا : https://goo.gl/fZdm9y وهناك طريقه أخري لهذا الهجوم ولكنها أصعب وهي عن طريق أرسال بيانات كثيره للموقع عن طريق المدخلات ولذلك هي أصعب .

 

Http Get Dos Attack

ddos_diagram_http-get

فهو نوع من الهجمات يقوم علي أرسال عدد كبير من الطلبات أيضا من نوع get نطلب فيها من السيرفر أن يجلب ملف معين علي السيرفر لنقوم بتنزيله (ليس بالضروره أن يكون موجود فعلا ) ومع زياده الطلبات نبدأ بأستهلاك موارد السيرفر ويبدأ بالتعطل ويصبح الموقع غير متاح وهذا النوع من الهجمات أسهل فكل ماتحتاجه هو رابط الموقع لا أكثر 🙂 .

 

واليوم سنقوم بشرح برمجه سكربت بسيط ليقوم بعمل Http Get Dos Attack علي المواقع

في البدايه نقوم بأخذ مدخل من المستخدم لنعرف الموقع المراد الهجوم عليه ونزيل منه “http” “https” “www” لنجعل الموقع صالح للأستخدام في مكتبه sockets فهي تحتاج فقط الي الهوست نيم ومدخل للبورت الذي سيتم الأتصال به ومدخل لعدد مرات الهجوم الذي يريدها

الأن نقوم بعمل Function للأتصال بالموقع وأرسال طلب Get لملف وهمي غير موجود بأسم عشوائي يولد عن طريق مكتبه random ومكتبه string ثم تقفل الأتصال

كما تري قمت بجلب الأيبي الخاص بالموقع للأتصال به ثم الحروف الأبجديه وكل الأرقام وكل الرموز عن طريق مكتبه string في المتغير msg ثم قمت بجعل مكتبه random تختار خمسه رموز أو حروف أو أرقام منها والتي ستكون علي شكل ليست ولذلك أستخدمت الأمر join لضمها كلها في نص ثم قمت بعدها بعمل سوكيت للأتصال وبعدها try تحاول أن تتصل بالموقع وترسل له طلب بسيط يقوم ليقوم السيرفر بمحاوله جلب ملف لتنزيله أسمه تولد عشوائيا من قبل مع أستثناء بسيط أذا فشل الأتصال يقوم بطباعه الجمله في السطر العاشر وفي النهايه يقطع الأتصال فكلا الحالتين .

والأن حتي يكون هناك نتيجه يجب أن يكون هناك الكثير من الطلبات في وقت واحد مما يعني اننا نحتاج للسرعه ولذلك سنستخدم مكتبه threading ولكن لا تنسي فيجب أن نقوم بجعل الطلبات المرسله يساوي عدد الطلبات التي اختارها المستخدم من قبل في المتغير ran

السطر الثاني نجهز فيه الثريد والثالث نتأكد فيه أنها أذا كانت تعمل فنوقفها وبعدها نشغل الثريد وهكذا

أنا قمت بأستخدام عدد 2 ثريد وأنا أري انها كافيه فالأن عند أستخدام السكربت علي جهازي فهو تقريبا يرسل 100 ألف طلب في الدقيقه 😀

والي هنا تنتهي مقالتنا اليوم وأرجوا أن تكون اعجبتكم وشكراَ

الكود : https://goo.gl/623gkd

squnity

مجتمع عربي للحماية و امن المعلومات

إضافة تعليق

  • علي ابراهيم

    شكرا لك
    اهتمامك بالبايثون كلش رائع اني كذالك احب البايثون لكن لازلت مبتدئ
    تحياتي لك