افرادی که در دنیای هک و امنیت فعالیت میکنند دیر یا زود اسم بات نت به گوششون میخوره و کنجکاو میشن که بدونن بات نت چی هست چگونه کار میکند و چطوری میشه یک بات نت بنویسیم. به صورت سریع مختصر و کاربردی میخوام در این مقاله شمارو با این مباحث آشنا کنم و اگر دوست داشتید حتما در ادامه این مقاله با ما همراه باشید.
باتنتها شبکههایی هستند که با در اختیار گرفتن مجموعهای از کامپیوترها که بات(bot) نامیده میشوند، تشکیل میشوند. این شبکهها توسط یک یا چند مهاجم که botmasters نامیده میشوند، با هدف انجام فعالیتهای مخرب کنترل میگردند. به عبارت بهتر، رباتها کدهای مخربی هستند که بر روی کامپیوترهای میزبان اجرا میشوند تا امکان کنترل نمودن آنها از راه دور را برای botmaster ها فراهم نمایند و آنها بتوانند این مجموعه را وادار به انجام فعالیتهای مختلف نمایند.
یکم گنگ هست نه !؟ منظورم اینه که متوجه شدنش برای یک مبتدی تا حدودی سخت هست. تصویر بالا رو در نظر بگیرید که در مرکز یک کنترل کننده قرار داره که بهش میگیم بات مستر و دور و بر اون چندین کامپیوتر قرار داره که میتونه تبلت, گوشی موبایل و …. هم باشه و فقط مختص یک کامپیوتر رومیزی یا لپ تاپ نیست که به اینها ما میگیم بات پس چی شد ؟ ما یدونه بات مستر داریم و چندین یا چنصد یا چند هزار یا خیلی بیشتر بات که به مجموعه این ۲ میگیم بات نت.
خود کلمه بات نت از ۲ کلمه تشکیل شده Robot و NetWork به فارسیش میشه ربات شبکه خیلی جالب در نمیاد اما مفهوم رو میرسونه برنامه نویس میاد و برنامه ای رو مینویسه و به سبک های متفاوتی به دست شما میرسونتش اینجا داستان جالب تر میشه:
فرض کن طرف به شما یک برنامه مخرب پیشنهاد داده باشه و شما برنامه مد نظر رو نصب کرده باشید و برنامه مخرب میتونه مثل لایو چت ایرانی ها به صورت رایگان و ویدیویی باشد و شما با باز کردن برنامه مخرب در پلتفرم خود پشت صحنه برنامه اتفاقاتی خواهد افتاد که ممکنه یک کد مخرب روی سیستم شما اجرا بشه و در نهایت این کد مخرب قرار هست چیکار کنه به خود برنامه نویس بستگی داره بکدور بزاره یا نزاره یا کارای دیگه…..
حالا که برنامه اجرا شده و کد مخرب هم پشت صحنه بدون اینکه مخاطب متوجه بشه اجرا شده از این به بعد سیستم ری استارت بشه یا خاموش بشه و دوباره روشن بشه یک کد مخرب در استارتاپ اجرا میشه و منتظر دستور بات مستر میمونه و الان دیگه این کامپیوتر رو از این به بعد زامبی صدا میزنیم !!!!!!!
شما فرض کن ۱۰۰۰ زامبی داریم که تحت کنترل بات مستر هستند و منتظر دستورند که انجامش بدن و این دستور میتونه ارسال درخواست برای دانلود یک فایل از وبسایت x.com باشه و هزاران هزار درخواست رو بی وقفه با کمک این زامبی ها یا همون بات ها به سمت این وبسایت بات مستر ارسال میکنه و باعث میشه حمله ای مثل DDOS رخ بدهد و کاربرانی که میخواهند این فایل رو دانلود کنند قادر به دریافت فایل نشوند به دلیل شلوغی و زیاد بودن درخواست ها سرور وبسایت قادر به پاسخگویی به تمامی کاربران نخواهد بود.
لازم به ذکر هست که بات نت ها از ابتدا برای حملات دیداس ساخته نشده بودند و یکی از کاربرد های بات نت این هست.
یکی از روش هایی که مهاجم میتونه استفاده کنه که مطمعن بشه که ابزارش درست کار کرده استفاده از وبسایت Check Host هستش. وارد سایت میشوید و با دادن نام دامنه تارگت مورد نظر, منتظر بررسی این سایت بر روی دامنه داده شده میشوید و میتونید ببینید که آیا واقعا هدف داده شده از کار افتاده و بات نتتون کارش رو درست انجام داده یا نه که در ویدیویی که براتون این پایین قرار دادیم میتونید این مراحل رو به صورت عملی ببینید که نام سایت مورد نظر رو به بات نت میدیم و در وبسایت چک هاست اون رو چک میکنیم و اگر با خطای connection error مواجه شدیم متوجه میشیم که کارمون رو درست انجام دادیم.
راه های متفاوتی هست برای کنترل زامبی ها (بات ها) که یکی از راه های محبوبش استفاده از پنل هایی شبیه به تصویر زیر هست شما میتونید این پنل رو کاملا شخصی سازی شده طراحی کنید و قابلیت های متفاوتی نظیر
به پنل خودتون اضافه کنید و میتونید به غیر از استفاده مورد نظرتون از این ابزار کسب درآمد هم کنید با فروش قابلیت انجام دیداس در پنل شما که اینکار رو برخی از شرکت ها دارن انجام میدن با اراعه پنل کاملا حرفه ای و ساده به شما با قابلیت انجام دیداس در لایه های مختلف شبکه با قدرت بالا.
البته برای حفظ امنیت بهتره که مستقیما به بات ها دستور ندیم و یکم حرفه ای تر عمل کنیم و از یک Control server که بهش c&c میگیم که مخفف command-and-control هستش استفاده کنیم که از ما دستور رو میگیره و به زامبی ها ارسال میکند.
این هم تصویربات نت B52 هست که کنترل پنلش به صورت Cli یا command line interface هست که توسط خودم نوشته شده
برای نوشتن یک بات نت حرفه ای نیاز به درک کردن شبکه دارید حالا هرچی بیشتر بهتر این یک مورد و مورد دوم اینه که بتونید کد بزنید یا همون برنامه نویسی خودمون رو بلد باشید. با زبان های مختلفی نظیر پایتون , c,c++ و… میتونید یک بات نت برای خودتون بنویسید و ازش استفاده کنید البته به یک نکته ای این وسط اشاره کنم, استفاده از زبان های سطح پایین قدرت بیشتری رو میتونه برای ابزار شما فراهم کنه.
اگر علاقه مند به نوشتن یک BoTNet هستید بهتون پیشنهاد میکنم با python3 شروع کنید درسته زبان سطح بالایی به حساب میاد اما بسیار قدرتمند هست و کتابخانه های بسیاری رو در اختیار شما قرار میده که از کد نویسی زیاد که باعث از دست رفتن زمانتون میشه جلوگیری میکنه و یک ابزار بسیار قدرتمند رو در اختیارتون قرار میده.
برای نوشتن بات نت نیاز به توضیحات بسیاری هست که باید داده شود تا بتونید درک خوبی رو داشته باشید و قبل از اینکه بتونید بنویسیدش بهتره که به کمی شبکه, برنامه نویسی پایتون در حد خوب و توانایی کار با کتابخانه Socket رو حداقل دارا باشید و شایستگری هارو بدست بیارید و بعدش میتونید شروع به نوشتن یک بات نت کنید.
برای نوشتن بات نت نیاز به توضیحات بسیاری هست که باید داده شود تا بتونید درک خوبی رو داشته باشید و قبل از اینکه بتونید بنویسیدش بهتره که به کمی شبکه, برنامه نویسی پایتون در حد خوب و توانایی کار با کتابخانه Socket رو حداقل دارا باشید و شایستگری هارو بدست بیارید و بعدش میتونید شروع به نوشتن یک بات نت کنید و تجربه های لازم رو در حین کار بدست بیاورید.
برای سریعتر شدن رویه کاریتون میتونید از Github.com کمک بگیرید در این وبسایت بسیاری ابزار نوشته شده OpenSource در اختیار عموم قرار گرفته که میتونید از اونها استفاده کنید و با بلد بودن پایتون میتونید کدهارو تحلیل کنید و ببینید که چطوری یک بات نت رو میسازن و از چه کتابخانه هایی استفاده میکنن.
تنها کاری که باید بکنید اینه که از این ابزار ها کمک بگیرید و با دیدن ویدیو هاای مختلف و سرچ در گوگل یک بات نت برای خودتون بنویسید و متاسفانه ما نمیتونیم در یک مقاله تمامی این موارد رو از ۰ تا ۱۰۰ توضیح بدیم و بجاش برای شما ویدیوی های آموزشی ای تهیه کردیم که بتوانید از اونها برای ساخت یک بات نت حرفه ای از ۰ تا ۱۰۰ و کاملا کاربردی همانند بات نت B52 معروف کمک بگیرید.