• Добро пожаловать на сайт - Forumteam.bet !

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

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

CoffeeMiner: взлом Wi-Fi с инъекцией криптовалютного майнера в HTML-запросы

  • Автор темы karakas
  • Дата начала
  • Ответы 0
  • Просмотры 1K

karakas

Проявляет активность
Местный
Регистрация
28.01.19
CoffeeMiner: взлом Wi-Fi с инъекцией криптовалютного майнера в HTML-запросы
https://t.me/blockchainSellBot


Цель этой статьи - объяснить, как можно совершить атаку Man-in-the-middle (MITM) для внедрения javascript в веб-страницы для того, чтобы все девайсы, подключенные к сети Wi-Fi майнили криптовалюту для атакующего.

Задача - написать скрипт, который автоматически проводит атаку на сеть Wi-Fi. Этот скрипт мы назвали CoffeeMiner



1. Сценарий
Несколько устройств подключены к сети Wi-Fi, а CoffeeMiner перехватывает трафик между пользователем и роут
1.1 Настройка сценария
Главная часть - Wi-Fi роутер с подключенными к нему смартфонами и ноутбуками. Мы тестировали это на практике, в реальном мире, и это работает. Но Для демонстрации мы будем использовать VirtualBox (https://www.virtualbox.org/)

В первую очередь нам нужно скачать образ для установки Линукса на виртуальную машину - в частном случае мы будем использовать Kali Linux
(https://www.kali.org/)

Как только мы скачали .ISO, нам нужно подготовить три виртуальные машины с установленным на них образом. Для настройки обычного сценария нам нужно настроить виртуальные машины по ролям, которые они будут исполнять:

  • Жертва - машина, которая подключается к роутеру и сёрфит веб-страницы
  • Атакующий - будет устройством, на которой будет запущен CoffeeMiner. Это та самая машина, совершающая MITM-атаку
  • Роутер - Будет функционировать как обычный роутер
SPi_0IgbxwroqG__emBZS2BnAMXiGdRgYplHN0srfquYkTzuc0DoGjLCBMmQ-ZQRqxRWibOVVGCZ_qPOQLJkIfMQQieeG5SE5PZQ5LFl9R7_dJZNmA-iuNt4GXB1OKGqnjRkFMpI

После удачной атаки подключение будет выглядеть так:

47Er7XAgubWWV58s3WsTX4Vz4CDsLv7t0Vfjtzfqn3PqhQH_mbnTBTrndBIpNOnRQ29ftKcDq0eRVbe4LBDgDnhJDAcGg6ehfEqsAMxqmQ6ecGU96Ggfx2GXbvApBqqTwv_mYwYJ

Для настройки виртуальных машин мы будем использовать следующие конфигурации:

  • Жертва
network adapter:

eth0: Host-only Adapter

/etc/network/interfaces:

432aa9338eaad3e874557.png

  • Атакующий
network adapter:

eth0: Host-only Adapter

/etc/network/interfaces:

4c7faa1bf8a7163483efb.png



  • Роутер
network adapter:

eth0: Bridged Adapter

eth1: Host-only Adapter

/etc/network/interfaces:

b558982e44454ae07bc2c.png



2. CoffeeMiner: разбор кода
2.1 ARPspoofing

В первую очередь, нам нужно понимание того, как совершается MITM-атака. Статья в википедии: https://en.wikipedia.org/wiki/ARP_spoofing (прим.: статья на английском намного подробнее описывает все понятия, чем русскоязычная)

Для осуществления ARPspoofing атаки мы используем библиотеку dsniff.

80ec0659ea9835ea73f96.png

2.2 mitmproxy
mitmproxy позволяет нам анализировать трафик, который проходит через хост и позволяет его редактировать. В нашем случае мы будем использовать его для инъекции скрипта в HTML-страницы. Нам будет достаточно добавить на страницу всего одну строчку кода, которая будет вызывать запуск скрипта криптомайнера.

Строка для инъекции майнера:

cf6db9916232fb3b18a94.png

2.3 Инъектор
Как только мы перехватили трафик жертвы, нам нужно подгрузить наш скрипт. Мы будем использовать mitmproxy API для того, чтобы сделать инъектор:

09b6a57c24aeba6476bf5.png

2.4 HTTP сервер
Как мы видим, инъектор добавляет строку в html-код страницы с вызовом запуска нашего майнера. И там нужно загрузить наш скрипт на HTTP сервер.

Для этого мы поднимем его на машине “атакующего”, и для этого используем библиотеку Python под названием “http.server”:

a82232c64c1ddf773a8b3.png

Код выше - простой HTTP сервер, который по запросу будет подгружать наш майнер на машину жертвы. Скрипт майнера будет помещён в директорию /miner_script. В нашем случае мы будем использовать майнер от CoinHive на javascript.



2.5 Криптомайнер от CoinHive
0enk_xasIbHUN6J1j6sLx1IZcHiHHJesqEUbLl4CN9RMht13f2RlGK-xA60YN1zuo1TZoxH8uKuPz-av8OK7dk8sk7Hduoz4IwFndZurEJysjILqsq8nOMF69SEDZkA1gW5hhVuT

CoinHive - майнер на JavaScript для Monero (XMR). Он может быть добавлен на сайт и будет использовать мощности процессора посетителя (CPU) для вычисления хэшей по алгоритму Cryptonight PoW, и майнинга Monero.

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

Но в нашем случае, так как мы подгружаем майнер на каждой HTML-странице, на которой находится пользователь, мы получим достаточно долгие сессии для майнинга Monero



3. Собираем CoffeeMiner
Главная задача - скомпоновать все предыдущие пункты для быстрого и автономного развёртывания. Алгоритм такой: скрипт CoffeeMiner осуществляет атаку ARPspoofing и настраивает mitmproxy для инъекции скрипта CoinHive в HTML-страницы жертв.

В первую очередь нам нужно настроить ip_forwarding и IPTABLES для того, чтобы машина атакующего выступала в роли связующего звена между роутером и жертвой:

eeca8962e128b260fd54a.png

Для спуфинга всех возможных жертв мы подготовим текстовый файл “victims.txt” со всеми IP-адресами жертв. Для скана всех адресов мы подготовим несколько строк кода на Питоне, с помощью которых получим список IP и запустим ARPspoof на каждой машине из списка.

4440b6f84a524fb41eea6.png

После этого запустим HTTP сервер:

4691bab8c7a2312327437.png

И запустим mitmproxy с injector.py:

586425a1efb7865caf048.png

3.1 Финальная версия CoffeeMiner
Теперь мы объединим всё, что разобрали выше в один скрипт и назовём его “CoffeMiner.py”:

063ff011a06e540d7782d.png

А также не забудем о “injector.py”:

6e939135dd72daa82f4f9.png

А для запуска нам нужно просто отдать команду:

eafc16adbb28ba1b728ec.png

4. Демонстрация работы
Для демонстрации мы настроим виртуальные машины так, как показано выше. Если мы хотим проводить атаку “вручную”, нам нужны следующие окна терминала:

wSffXCdqFnizPRcPOXL6z7JX0kzzP_mvabPheuzu4SyPqI1KW-vqG3Rd3v-LqzieuN8PO1STBNP7UJhTg45DZR7NH9nr_SKhYKX-hub6Hz0cTa8Yrds5G_cgqck4yUBJicYNhO5i

После атаки ARPspoofing, наличии готовых инъектора и HTTP сервера мы можем переключиться на машину жертвы и открыть любую страницу. Трафик жертвы пойдёт через машину атакующего и активирует инъектор:

QRExoffyMXxkRYV0T0sVi1LDi2YKsAb4EKUMhbGVyNbphDWAIntStaUhawB8hc4RofvyEPnOrOGkJyEeBc1S9-KPLgspWk8JlwO4dkrkn_mWrGmcczN-HOoAxVZAqxRYs1Spo0it



В результате в HTML страницах, просматриваемых пользователем появится строка, которую добавил атакующий:

thnY8DQhNd5MHbR4ZxbU-nQfKsN4ZW9b-FgQiB0vNjMNUFG5DobgWRPO0FOiEyNHPzMkU7pv3Sp5wStm0h-WKeu93hdqUj1StSIzmxXxd9WUJdXi4DXRPud8a96iWkuufB6Jlnq5





4.1 Видео с демонстрацией
В видео ниже полностью показаны атаки как в условиях виртуальных машин(1), так и в реальных условиях (2)

Демо на виртуальных машинах






Заключение
Как мы видим, такой тип атак очень прост и может быть доведён до ума для полной автоматизации. С другой стороны нужно помнить, что для атак такого типа в реальном мире неплохо было бы иметь Wi-Fi антенну для лучшего покрытия зоны действия Wi-Fi.

Главной задачей было осуществление самой атаки, но мы всё ещё вынуждены самостоятельно редактировать “victims.txt” и дополнять его IP адресами свежеподключившихся жертв. В последующих версиях возможно будет добавить автоматический скан с Nmap, для автопополнения списков IP-адресов жертв. А ещё позже можно будет добавить sslstrip для уверенности, что инъекция сработает на сайтах с HTTPS.
 
Сверху Снизу