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);
}
}
}
}
}
}
في الدالة 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…
أطلت الحديث و أعتقد ان البعض منكم قد تاه…أترككم مع شرح الفيديو و الذي أعتقد أنه سيكون أفضل..