اسکریپت ping sweep

منتشر شده در دسته : بلاگ, دستورهای تست نفوذ

چگونه یک اسکریپت ping sweep در بش ایجاد کنیم؟ یکی از کارهای ضروری در حین تست نفوذ پینگ کردن دیوایس های داخل شبکه می باشد. پینگ کردن لیستی از دیوایس های شبکه با استفاده از یک محدوده از قبل تعیین شده را ping sweep می نامند. به این منظور ابزارهایی وجود دارد ولی شما می توانید این کار را با یک اسکریپت ساده انجام دهید. بعلاوه توانایی نوشتن اسکریپت های بش یک ضرورت برای هر آزمونگر نفوذ می باشد.

اسکریپت ping sweep

در این آموزش نحوه ایجاد یک اسکریپت ping sweep ساده را شرح می دهیم.

اسکریپت ping sweep - اسکریپت پینگ اسویپ - اسکریپت بش ping sweep

#!/bin/bash

for x in {100..254..1};
do
ping -c 1 192.168.1.$x | grep "64 b" | cut -d " " -f4 >> ips.txt;
echo "Pinging 192.168.1.$x !";
done

شرح اسکریپت ping sweep

بخش اول که مثل همیشه یک دستور برای تفسیرگر می باشد. این دستور که با کامنت آغاز می شود توسط مفسر شل تفسیر نمی شود ولی به مفسر مسیر اجرای بش را در سیستم نشان می دهد :

#!/bin/bash

در ادامه یک حلقه for ایجاد می کنیم. در این حلقه متغیر x را ایجاد می کنیم. این متغیر بخش پایانی آدرس های آیپی ما خواهد بود. به این منظور با استفاده از بسط آکولاد {} یک محدوده از اعداد را تعریف می کنیم. بسط {۱..۲۵۴..۱۰۰} که محدوده اعداد بین ۱۰۰ تا ۲۵۴را تعیین می کند چرا که DHCP مودم بنده در این محدوده آیپی دهی می کند. در این حلقه چه کاری انجام می دهیم؟

  • یک پینگ را اجرا می کنیم. گزینه c 1- تعداد دفعات پینگ برای هر میزبان را به یک عدد محدود می کند.
  • بخش پایانی آیپی را با متغیر $x که در بالا تعریف کرده بودیم تعیین کرده. در واقع این حلقه بین این محدوده متغیر x حرکت می کند.
  • یک بار دستور ping را برای یکی از میزبان های خود در سیستم درون شل اجرا کنید تا خروجی را مشاهده نمایید :

اسکریپت ping sweep - اسکریپت پینگ اسویپ - اسکریپت بش ping sweep

ما نمی خواهیم تنها همه نتیجه خروجی در کنسول چاپ شود بلکه قصد داریم تا آدرس های آیپی زنده در شبکه را از بین آیپی های غیرقابل دسترسی جدا کنیم. به این منظور اگر به خروجی پینگ نگاه کنیم می بینیم که زمانیکه بسته دریافت می شود ۶۴byte دریافت می شود. با استفاده از grep 64 b این بخش از نتایج را جدا می کنیم تا این خط فیلتر شود.

64 bytes from 192.168.1.106: icmp_seq=1 ttl=64 time=0.014 ms

اکنون از این خط تنها می خواهیم آدرس آیپی را بیرون بکشیم. با استفاده از دستور cut و جداکننده فاصله ” ” فیلد چهارم از چپ f4- که همان آدرس آیپی هدف می باشد را جدا می کنیم. در نهایت با کاراکتر << خروجی را در فایل متنی ips.txt ذخیره می کنیم.

همچنین به منظور اطلاع از وضعیت پینگ یک دستور echo ساده را چاپ می کنیم

echo "Pinging 192.168.1.$x !";

فایل را به حالت اجرایی درآورده و اجرا می کنیم

اسکریپت ping sweep - اسکریپت پینگ اسویپ - اسکریپت بش ping sweep

نتیجه اینکه آیپی های زنده در شبکه در فایل متنی ips.txt ذخیره می شوند.

صاحب امتیاز نت آموز : نویسنده , مدرس و متخصص در زمینه امنیت شبکه های رایانه ای

یک دیدگاه

نظرات غیرمرتبط با موضوع این مطلب تایید نخواهند شد. این سوالات را می توانید از بخش پشتیبانی آموزشی مطرح کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *