برچسب Archives: scapy

بدست آوردن Gateway در Python با scapy

شاید هنگام ‍‍‍‍پیاده سازی یک حمله نیاز داشته باشید که default gateway رو بدست بیارید وجهت اتوماتیک سازی کارها نیاز به ورودی کاربر پیدا نکنید. مثلا برای حمله ARP بطور خودکار gateway آی پی خود را در شبکه بدست بیاورید و حمله را علیه آن انجام دهید و یا حالت های دیگر.

 

در فایل config.py کلاسی به نام conf وجود دارد.این کلاس شامل تنظیمات scapy است. براحتی میتونیم با دستور زیر این تنظیمات رو مشاهده کنیم:

خوب در این کلاس شی به نام route موجود است که این شی با استفاده از فایل route.py که متخص کار با جدول مسیریابی در سیستم نوشته شده است مقداردهی خواهد شد. حال با پایتون سعی میکنیم تا این شی از کلاس را پرینت کنیم و محتوا را مشاهده کنیم. پس مانند زیر دستور ها را می نویسیم :

خوب میبینیم که  routing table درون سیستممان را بطور کامل برایمان نشان داد که default gateway نیز شامل آنهاست و چیزی که میخواهیم بدست آوریم. parse نمودن بدین صورت زیاد جالب نخواهد بود بنابراین بازهم از conf.route به فیلد دیگری مراجع میکنیم تا اطلاعات را بصورت بهتری متناسب با کاری که میخواهیم انجام دهیم به نمایش درآید.بدین صورت:

براحتی میتوان اطلاعات شبکه هایمان را داشته باشیم و براساس هرفیلدی که لازم است داده ها را فیلتر نماییم. خوب جهت راحتی کار  ما تابعی مینویسیم که پارامتر ورودی IP موردنظرمان و خروجی نیز gateway همان IP ورودی خواهد بود:

 

 

حمله برروی LSDB ها در پروتکل مسیریابی OSPF همراه سناریو عملی

سلام دوستان.

دلیل اصلی نوشتن این مطلب برمیگرده به پستی که در یکی از سایت های ایرانی خوندم، سایت وتیمی که خود را جزو بهترین و برترین شرکت های امنیت شبکه و رایانه ای کشور می داند. درواقع مطلبی که خوندم  دوست عزیز امنیتی مون اسم تاپیک رو ”  آسیب پذیری موجود بر روی پروتکل OSPF ”  گذاشته بود و اگر بطور صریح حرف بزنیم ترجمه و شرح CVE-2012-0249 بودش!

این باگ مربوط به برنامه Quagga که بیس آن Zebra است. باگ در Daemon OSPF که وظیفه اجرای پروتکل OSPF را برعهده دارد رخ می دهد. در بسته های دریافتی LS Update طول چک نمی شود. طول در LSA Hader قرار میگیرد (فیلد length)  و این باگ باعث ایجاد حملات DOS می شود. حال نمیدونم وظیفه پروتکل آیا واقعا چک کردن طول داده هاست؟ یا این یک خطای برنامه نویسی است؟ که این بشر نوشته کشف آسیب پذیری در پروتکل OSPF ونکته ظریف اینجاست که اگر باگ مرتبط با پروتکل باشد بدون شک بایستی در تمامی دیوایس هایی که این پروتکل را پیاده سازی نموده اند وجود داشته باشد. پروتکل های که نوشته می شوند براساس تفکر و منطق هستند پس باگ هم بایستی logical باشد نه مرتبط با Secure Coding.

امیدوارم که شاهد اینگونه توهمات نباشیم و ازروی هیجان حرف زدن و عمل نمودن را کنار بگذاریم. حیله و حقه بازی واقعا کارزشت و ناپسندی هستش مخصوصا عوام فریبی، کسانی که در این فیلد کاری نیستند.

 

ابتدا مروری بر قواعد OSPF خواهیم داشت تا حمله بهتر درک شود:

  • قواعد براساس وضعیت پیوندهایا همان Link-State است، بنابراین همه روترهایی که در یک ناحیه OSPF قر ار دارند بایستی توپولوژی آن Area رو یادبگیرند.
  • بطورکلی OSPF سه مرحله دارد:
  1. اطلاعات روترهای مجاور، neighbor ها که شرایط برقراری ارتباط و تبادل داده ها را دارد، در جدولی به نام neighbor table ذخیره می شود.
  2. نگهداری و تبادل اطلاعات توپولوزیکی شبکه، بین روترهای همسایه است. این اطلاعات در جدولی به نام LSDB ذخیره می گردد.
  3. انتخاب بهترین مسیر ازروی جدول LSDB که این کارتوسط الگوریتم Dijkstra انجام می شود.

برای ساخت Topology Database از ارسال و دریافت بسته هایی به نام LSA استفاده می شود لذا بنابرموقعیت توپولوژیکی 11نوع LSA داریم که Header تمامی آنها یکسان است. ساختار این هدر را در پایین می توانید مشاهده کنید :

 

اطلاعات بیشتر