Помните 2016 год? Когда половина интернета легла, потому что какие-то пацаны решили заатаковать Dyn DNS? Это был Mirai. Простой, тупой, но эффективный до ужаса.
И самое смешное — код слили в открытый доступ. Любой школьник мог скачать и запустить свою версию.
Сегодня разберём, как он работает и как сделать похожее (в образовательных целях, конечно).
Осторожно: если ты запустишь это в своей сети — тебя найдут. Я серьёзно. Не будь идиотом.
---
Что такое Mirai и почему он работает до сих пор
Mirai — это червь, который ищет IoT-устройства (камеры, роутеры, холодильники с интернетом) и заражает их. Почему это работает? Потому что производители до сих пор оставляют дефолтные пароли.
Самые популярные логины/пароли, которые использовал Mirai:
- root / root
- admin / admin
- root / 123456
- admin / password
И да, это работает. До сих пор. В 2024 году 500 тысяч устройств с паролем 123456 висят в интернете.
Смешной факт: Я как-то нашёл камеру в Киеве с паролем 1234. Через неё можно было смотреть на офис какой-то компании. В офисе сидели люди и пили чай. Они не подозревали, что я смотрю на них. Я написал им письмо с предложением сменить пароль. Они не ответили. Их проблема.
---
Как работает Mirai: пошагово
Шаг 1. Сканирование
Mirai сканирует интернет в поисках устройств с открытыми портами (обычно 23 — Telnet, 22 — SSH, 2323 и другие). Он генерирует случайные IP-адреса и проверяет, есть ли там что-то живое.
Шаг 2. Брутфорс
Когда устройство найдено, Mirai пытается залогиниться, используя свой словарь из 60+ паролей. Если логин успешен — он заходит.
Шаг 3. Зараза
Mirai отправляет на устройство исполняемый файл, подходящий под архитектуру процессора (ARM, MIPS, x86 и т.д.). Он определяет архитектуру автоматически и загружает нужную версию.
Шаг 4. Прописка
Вирус прописывает себя в автозагрузку, блокирует порты, чтобы другие ботнеты не могли заразить это устройство, и начинает сканировать дальше.
Шаг 5. Ожидание команд
Устройство подключается к C&C (Command & Control) серверу и ждёт команд. Когда приходит команда — оно начинает атаку.
---
Типы атак, которые поддерживал Mirai
[list]
[*] UDP Flood — забивает канал мусорными пакетами
[*] SYN Flood — создаёт кучу полуоткрытых соединений
[*] HTTP Flood — ддосит веб-серверы запросами
[*] GRE Flood — атака на протоколы туннелирования
[*] DNS Amplification — использует DNS-серверы для усиления[/list]
Обычная DDoS-атака с Mirai могла генерировать до 1 Тбит/с трафика. Это дохуя.
Шутка: Представь, что твой роутер участвует в атаке на банк, а ты даже не знаешь об этом. Ты просто сидишь, смотришь порно, а твой роутер в это время ложит сайт Пентагона.
---
Как сделать свой Mirai (учебный пример)
ВНИМАНИЕ: Это для понимания. Если ты запустишь это против реальных устройств — тебя посадят. Я серьёзно. Не надо.
Структура ботнета:
[list]
[*] C&C сервер — принимает команды и раздаёт их ботам
[*] Loader — сервер, который отдаёт исполняемые файлы
[*] Боты — заражённые устройства
[*] Сканер — модуль, который ищет новые цели[/list]
Пример простого сканера на Python:
import socket
import random
def scan(ip):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3)
sock.connect((ip, 23))
sock.send(b"root\n")
sock.send(b"admin\n")
response = sock.recv(1024)
if b"#" in response:
print(f"Уязвимое устройство: {ip}")
# здесь можно отправить файл с вирусом
sock.close()
except:
pass
# Генерируем случайные IP и сканируем
for _ in range(100):
ip = f"{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}"
scan(ip)Этот код просто проверяет, открыт ли порт 23 и есть ли там доступ. В реальном Mirai используется C для скорости.
Команды C&C:
# Простой сервер для управления
# Принимает команды от оператора и отправляет ботам
# Команды: UDP 1.2.3.4 80 - атаковать IP на порт 80
# Команды: STOP - остановить атаку---
Что делают реальные ботнеты сейчас
Mirai был в 2016, но его потомки живут до сих пор. Современные версии:
[*] Используют больше архитектур процессоров
[*] Обходят антивирусы
[*] Умеют самообновляться
[*] Способны атаковать не только DDoS, но и воровать данные[/list]
Как защититься от такого:
[*] Меняй пароль на роутере
[*] Закрывай ненужные порты
[*] Обновляй прошивку
[*] Используй VLAN для IoT-устройств[/list]
Но если ты админ — ты это и так знаешь.
---
Где взять оригинальный код Mirai
Исходники лежат на GitHub (в разных репозиториях). Но если ты скачаешь и скомпилируешь — будь готов, что твой комп тоже станет частью ботнета. Там могут быть закладки.