WannaCry
Вирус WannaCry
Август 9, 2019
AZORult Stealer
Сливаем стиллер за 6к AZORult Stealer
Август 10, 2019

Сегодня напишем стиллер с отправкой данных на сервер, расположенного в сети Tor. Эта статья является логическим продолжением выложенной мной прошлой статьи, в которой был создан и поднят .onion сайт: Создаем сайт в Tor сети

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

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

Вторая программа должна работать на стороне клиента. Её уже необходимо будет написать с нуля. И на этом этапе у нас будут возникать две проблемы:

1. Размер исполняемого файла под Windows следующий:
— x386 = 4.9мб.
— AMD64 = 5.7мб.

2. Программе необходим будет пакет tor, размер которого ещё более существенный = 23мб.

Для частичного решения первой проблемы может подойти исключение некоторых пакетов из программы Go и переписание их составляющей на язык Си.
(Благо язык программирования Go может легко контактировать с программным кодом языка Си)
В итоге, если вы напишите всё правильно, то сбросите пару мегабайт. Этого конечно будет недостаточно, чтобы незаметно скрыть наш файл в каком-либо другом файле, но подойдёт в качестве склейки с какой-нибудь игрой.

Для решения второй проблемы подойдёт лучше всего скачивание пакета tor непосредственно уже на стороне клиента. Размер заархивированного пакета tor = 5.1мб.

Данный архив можно легко скачать с оффициального сайта torproject:

Для просмотра содержимого вам необходимо авторизоваться. вам нужен файл: tor-win32-0.3.4.8.zip

Запуск сервисов tor’a на Windows выглядит следующим образом:

tor.exe --service install

Способы того, как вы будете уменьшать объём исполняемого файла, как вы будете загружать пакет tor и как вы его будете подключать я оставляю на ваш выбор.

Начинаем.

Первым делом, что я сделаю, это просто покажу содержимое директории onion, в которой находятся html/css файлы:

Файлы html/css в данном случае необязательны, если наша цель — это создание стиллера. Если же, помимо стиллера, требуется создать ещё и сайт, то вполне реально совместить приятное с полезным.

Далее идёт код серверной части. Его я разделил на 4 составных файла следующим образом, где addition является пакетом:

Файл checkError.go
Задачи:
— Выявлять ошибки на стороне сервера. Как только произойдёт ошибка, серверная программа сразу же остановит своё выполнение. Ошибки, в данном случае, могут возникнуть только из-за отсутствия необходимых прав при создании файлов или директории.

 

Файл newBlock.go
Задачи:
— Чтение директории DATA и выявление последнего блока данных
— Создание нового блока данных

Файл writeFile.go
Задачи:
— Создание файла и внесение в него данных.

Файл main.go
Задачи:
— Создание директории DATA
— Использование функций пакета addition
— Поднятие сервера

Все наши файлы готовы к компиляции. Компилируем:

$ go build main.go

На выходе получаем исполняемый файл main, размер которого равен 6.5мб для OS=linux, ARCH=amd64. Много конечно, но не критично как с программой на стороне клиента.

Теперь всё что нам осталось сделать — это запустить сервисы тора и скомпилированную нами программу:

$ sudo systemctl start tor.service
$ sudo ./main

Заметьте, что программу необходимо запускать из под root пользователя, так как она находится в директории /www и поднимает сервер на 80 порту.

Server is listening ...

Как итог, серверная программа запущена и ожидает непосредственно клиентской части, которую мы сейчас и разберём.

1. Перед тем как я покажу код, стоит заметить, что нам следует указать явно URL нашего сайта в сети tor и обязательно чтобы эта ссылка вела на поле запроса. В моём примере — stbtrd7cmrsahu7y.onion/zxons.

2. Также, в качестве хранения данных я выбрал JSON формат (application/json).

3. Чтобы иметь возможность подключаться к прокси tor’a следует установить подходящий пакет с оффициального сайта языка Go:

go get golang.org/x/net/proxy

Файл request.go
Задачи:
— Сбор информации с клиента
— Подключение к сети tor
— Отправка данных на сервер через сеть tor

Всё что нам осталось — это скомпилировать файл request.go. И здесь появляются интересные свойства Go, а именно то, что он является кроссплатформенным и кросскомпилируемым языком.

Соответственно, не составит проблем скомпилировать файл request.go и под Windows, и под Linux.

Пример компиляций следующий:

$ GOOS=windows GOARCH=386 go build request.go
$ GOOS=linux GOARCH=amd64 go build request.go

И как итог, у нас появится два исполняемых файла: request.exe (для Windows) и request (для Linux).

Полный перечень GOOS следующий:

Полный перечень GOARCH следующий:

И финал проделанной работы следующий:

— Сервер запущен и ожидает запросов;
— У клиента подключены сервисы tor’a;
— Клиент запускает программу request.exe;

Теперь проверяем директорию DATA на сервере.
При первом запросе на сервер через клиентскую программу должен будет появиться файл ‘1’ со следующим содержанием:

В данном случае, запуск происходил из под wine в ОС Linux. В окружении wine я установил сети tor’a при помощи команды, которую я упоминал в самом начале статьи. Далее также из под wine производил запуск exe-файла.

Совершенно таким же образом, я могу запустить программу из под ОС Linux непосредственно, но для работоспособности также необходимы будут запущенные сервисы tor’a.

Логи сервера:

В моих примерах клиент отсылает лишь незначительную информацию подобия той, на какой ОС была запущена программа, какой hostname, какое количество ядер и в какой текущей директории была запущена данная программа. Но никто не мешает вам усовершенствовать request.go таким образом, чтобы данная программа могла собирать cookie файлы, искать e-mail адреса и всё, что только вы захотите.

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

Клиентская же программа, которая работает на стороне жертвы, будет генерировать и отправлять ключ на ваш сервер, который поможет получить доступ к backdoor серверу жертвы. А чтобы воспользоваться backdoor’ом, необходимо будет создать программу-клиент, работающую на вашей стороне.

0

Автор публикации

не в сети 9 часов

Александр Никитюк

13
Комментарии: 10Публикации: 128Регистрация: 17-05-2019
ПОДЕЛИСЬ С ДРУЗЬЯМИ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

8 + 3 =

Авторизация
*
*

1 × 2 =

Регистрация
*
*
*
Пароль не введен
*

20 + двенадцать =

Генерация пароля

шесть + 19 =