أهلا بالجميع…
منذ مدة كنت قد أخبرت أصدقائي بأني قد أنهيت العمل على جهاز بسيط كتطبيق لما تعلمته في مجال اﻹلكترونيك عموما و أردوينو خصوصا،في الحقيقة المشروع بسيط جدا و ما هو إﻻ تطبيق معدل لما جاء في بعض الكتب(في الشق المتعلق بأردوينو).
الفكرة اﻷساسية للجهاز أو باﻷحرى النظام هي تحذير مدير الشبكة بشكل فيزيائي عن طريق إضاءة مصباح ليد LED بشكل يثير اﻹنتباه و بالتالي فإن هو كان بعيدا عن جهازه الخاص بالمراقبة سيتفطن بأن شبكته تتعرض لهجوم و عليه إتخاذ اﻹجراءات اللازمة للتصدي للمهاجمين…
استخدمت في هذا النظام بوردة أردوينو إينو Arduino Uno و مصباح ليد LED،كان من المفروض إستخدام مقاومة حجمها 1 كيلو أوم و لكني ﻻ أملكها لهذا استخدمت مصباح الليد مباشرة مع أردوينو بالرغم من أن هذا غير عملي بتاتا…لو رآني المختصون في اﻹلكترونيك لطلبوا محاكمتي في محكمة الجنايات…خخخخ ﻻ تخبروهم بهذا…
اليكم الكود الخاص بأردينو:
int outPin = 11;
int val;
int arpPoison = 0;
int red;
 
void setup()
{
  pinMode(outPin, OUTPUT); // sets the digital pin as output
  Serial.begin(9600);
  Serial.flush();
}
 
void loop()
{
  // Read from serial port
  if (Serial.available())
  {
    val = Serial.read();
    Serial.print(val);
    if (val == 'A') 
    {
       arpPoison = 1;
       for(red = 0; red <= 255; red+=5)
       {
         analogWrite(outPin, red);
         delay(30);
       }
       while (arpPoison == 1)
       {
         for(red = 255; red >= 25; red-=5)
         {
           analogWrite(outPin, red);
           delay(30);
         }
         for(red = 25; red <= 255; red+=5)
         {
           analogWrite(outPin, red);
           delay(30);
         }
         val = Serial.read();
         Serial.print(val);
         if (val == 'R')
         {
           arpPoison = 0;
           for(red = 255; red >= 0; red-=5)
           {
             analogWrite(outPin, red);
             delay(30);
           }
         }           
       }
    }
  }
}

دعونا نشرح قليلا هذا الكود:في البداية قمنا بتعريف عدد من المتغيرات أولها البين(المنفذ) المستخدم و هو في هذه الحالة المنفذ 11 في أردوينو،المتغير الثاني val خاص بالتعامل مع منفذ الـ USB الخاص بجهاز الحاسب،المتغير الثالث arpPoison خاص بحالة الهجوم(إن كان هنالك هجوم أو ﻻ) و المتغير اﻷخير خاص بالتأثير الضوئي لمصباح الليد LED.

في الدالة setup قمنا بعملية إقلاع للأردوينو و جعله ينتظر ما يرسله المستخدم(سكريبت البايثون)
في الدالة loop قمنا بإنشاء التأثير الضوئي ثم بعدها قمنا بإنشاء إتصال مع جهاز الكمبيوتر عن طريق منفذ USB و جعله ينتظر مرسلات المستخدم و هي في هذه الحالة مرسلات سكريبت البايثون و ستكون إما A أو R فإن كان المرسل هو حرف A فسيبدأ مصباح الليد في اﻹضاءة و هي الحالة الخاصة بوجود هجوم على الشبكة و عند توقف أو ايقاف الهجوم سيرسل سكريبت بايثون الحرف R عبر منفذ الـ USB إلى أردوينو من أجل إيقاف الوميض…

سكريبت البايثون:

import sys, subprocess,serial
if len(sys.argv) !=3:
 print "Syntax: "+ sys.argv[0] + " <network Interface> <serial Interface>\n"
 exit()
try:
 ser = serial.Serial(sys.argv[2],9600)
except serial.SerialException:
 print "Error: Could not setup Serial Port!"
 sys.exit()
ettercap = subprocess.Popen("ettercap -i "+ sys.argv[1] + " -TQP arp_cop //",shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
try:
 while 1:
  inPut = ettercap.stdout.readline()
  inPut = inPut.split(' ')
  for msg in inPut:
   if msg == "(WARNING)":
    print "Arp Poisoning Detected!"
    ser.write('A')
except:
 ser.write('R')
 print "terminated"

 

الكود بسيط جدا،في البداية قمنا بتضمين المكتبات الخاصة بالتعامل مع نظام التشغيل،البروسيس الجارية في النظام و مكتبة التعامل مع المنافذ،بعدها تأكدنا من أن مدير الشبكة قد قام بتشغيل البرنامج بطريقة صحيحة و هي تضمين واجهة الشبكة و المنفذ المستخدم للإتصال مع أردوينو.بعدها قمنا باستخدام إحدى الخاصيات الموجودة في برنامج ettercap و التي تستخدم في اﻹنذار عند وجود هجوم ما على الشبكة باستخدام المكتبة subprocess الخاصة ببايثون…ﻻ أعتقد أن الكود صعب جدا،بعدها في حالة وجود هجوم سيقوم سكريبت البايثون بارسال الحرف A إلى اﻷردوينو عن طريق منفذ USB و عند توقف الهجوم سيرسل الحرف R…

أطلت الحديث و أعتقد ان البعض منكم قد تاه…أترككم مع شرح الفيديو و الذي أعتقد أنه سيكون أفضل..

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Fill out this field
Fill out this field
الرجاء إدخال عنوان بريد إلكتروني صالح.
You need to agree with the terms to proceed

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.