Уязвимость в старом api twitter ставит под угрозу mitm-атак ios-приложения

sessionthief

Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема — сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev 
# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp 
# setcap cap_net_raw,cap_net_admin=eip sessionthief

Sessionthief

Новый способ MITM-атаки на протокол TLS делает злоумышленника незаметным +13

  • 17.09.15 11:42


ptsecurity

#267069

Хабрахабр

10646

Информационная безопасность, Блог компании Positive Technologies

Австрийские исследователи безопасности обнаружили уязвимость протокола TLS (Transport Layer Security), которая позволяет злоумышленникам проводить «атаки посредника» (Man in the middle, MITM).
Новая техника позволяет атакующему получать полный контроль над приложениями в клиентском браузере, прослушивать коммуникации, подменять контент на веб-сайтах и осуществлять на них действия от лица жертвы. При этом не производится подмена серверных сертификатов, что позволяет избежать обнаружения атаки.
Протокол TLS используется для безопасной передачи данных, однако серьезные уязвимости в нем обнаружены не впервые — две предыдущие ошибки безопасности получили название Logjam и Bar Mitzvah.

Подробности атаки

  • rsa_fixed_dh
  • dss_fixed_dh
  • rsa_fixed_ecdh
  • ecdsa_fixed_ecdh
  • TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
  • TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_DH_DSS_WITH_AES_128_CBC_SHA
  • TLS_DH_RSA_WITH_AES_128_CBC_SHA
  • TLS_DH_DSS_WITH_AES_256_CBC_SHA
  • TLS_DH_RSA_WITH_AES_256_CBC_SHA
  • TLS_DH_DSS_WITH_AES_128_CBC_SHA256
  • TLS_DH_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DH_DSS_WITH_AES_256_CBC_SHA256
  • TLS_DH_RSA_WITH_AES_256_CBC_SHA256
  • TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA
  • TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA
  • TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA
  • TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA
  • TLS_DH_DSS_WITH_SEED_CBC_SHA
  • TLS_DH_RSA_WITH_SEED_CBC_SHA
  • TLS_DH_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DH_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DH_DSS_WITH_AES_128_GCM_SHA256
  • TLS_DH_DSS_WITH_AES_256_GCM_SHA384
  • TLS_ECDH_ECDSA_WITH_NULL_SHA
  • TLS_ECDH_ECDSA_WITH_RC4_128_SHA
  • TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_RSA_WITH_NULL_SHA
  • TLS_ECDH_RSA_WITH_RC4_128_SHA
  • TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384

Как защититься прямо сейчас

  1. Отключить поддержку non-ephemeral (EC)DH handshakes;
  2. Установить расширение X509 Key Usage для сертификатов ECDSA и DSS, а также отключить флаг KeyAgreement.
  1. Отключить опции non-ephemeral (EC)DH handshake;
  2. Или, как минимум, отключить поддержку аутентификации с использованием шифрования (EC)DH.

MaxPatrolPT Application Firewall

MITMf

Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонироватьрепозиторийи выполнить пару команд:

# setup.sh 
# pip install -r requirements.txt

Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:

  • Spoof — позволяет перенаправлять трафик при помощи ARP/DHCP-спуфинга, ICMP-редиректов и модифицировать DNS-запросы;
  • Sniffer — этот плагин отслеживает попытки логина для различных протоколов;
  • BeEFAutorun — позволяет автоматически запускать модули BeEF, исходя из типа ОС и браузера клиента;
  • AppCachePoison — осуществляет атаку «отравление кеша»;
  • SessionHijacking — угоняет сессии и сохраняет полученные куки в профиле огнелиса;
  • BrowserProfiler — пытается получить список используемых браузером плагинов;
  • FilePwn — позволяет подменять пересылаемые по HTTP файлы с помощью Backdoor Factory и BDFProxy;
  • Inject — внедряет произвольный контент в HTML-страницу;
  • jskeylogger — внедряет JavaScript-кейлоггер в клиентские страницы.

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

Запуск ARP spoofing атаки в MITMf

ProxyFuzz

Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:

 python proxyfuzz -l  -r  -p  

Список опций включает в себя:

  • w — задает число запросов, отправленных перед началом фаззинга;
  • c — фаззить только клиента (иначе обе стороны);
  • s — фаззить только сервер (иначе обе стороны);
  • u — UDP-протокол (в противном случае используется TCP).

Mitmproxy

Консольная утилита, которая в интерактивном режиме позволяет исследовать и модифицировать HTTP-трафик. Благодаря таким навыкам утилита используется не только пентестерами/хакерами, но и обычными разработчиками, применяющими ее, например, для отладки веб-приложений. С ее помощью можно получать подробную информацию о том, какие запросы делает приложение и какие ответы оно получает. Также mitmproxy может помочь в изучении особенностей функционирования некоторых REST API, в особенности плохо документированных.

Установка предельно проста:

$ sudo aptitude install mitmproxy

или

 $ pip install mitmproxy

или же

 $ easy_install mitmproxy

Стоит отметить, что mitmproxy позволяет также выполнять перехват HTTPS-трафика, выдавая клиенту самоподписанный сертификат. Хороший пример того, как настроить перехват и модификацию трафика, можнопосмотреть по этой ссылке.

Mitmproxy

Ettercap

Ну а эта утилита вообще одно из первых, что должно приходить на ум, как только услышишь
«MITM-атака». Инструмент довольно старый, но продолжает активно обновляться, что не может не радовать. Подробно рассказывать про его возможности смысла нет, за четырнадцать лет существования он не раз освещался в сети. Вот к примеру в руководстве наподобие этого:

На последок..

Как обычно, мы рассмотрели не все утилиты, а лишь наиболее популярные, есть еще немало  малоизвестных проектов, о которых мы, возможно, как-нибудь поговорим. Как видишь, недостатка в инструментах для проведения MITM-атак не наблюдается, причем, что бывает не так уж часто, одна из крутых тулз реализована под винду. Про nix-системы и говорить нечего — целое разнообразие. Так что, думаю, ты всегда сможешь найти подходящий инструмент для угона
чужих credentials. Упс, то есть для проведения тестирований.

PuttyRider

Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.

Принцип работы PuttyRider

Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться спрезентациейавтора.

Архитектура PuttyRider

Перехват данных:

Pirni & Pirni Pro

Теперь, когда доступ к консоли есть, можно попробовать утилиты. Начнем с Pirni, вошедшей в историю как полноценный сниффер для iOS. К сожалению, конструктивно ограниченный модуль Wi-Fi, встроенный в устройство, невозможно перевести в promiscious-режим, необходимый для нормального перехвата данных. Так что для перехвата данных используется классический ARP-спуфинг, с помощью которого весь трафик пропускается через само устройство. Стандартная версия утилиты запускается из консоли, где помимо параметров MITM-атаки указывается имя PCAP-файла, в который логируется весь трафик. У утилиты есть более продвинутая версия — Pirni Pro, которая может похвастаться графическим интерфейсом. Причем она умеет на лету парсить HTTP-трафик и даже автоматически вытаскивать оттуда интересные данные (к примеру, логины-пароли), используя для этого регулярные выражения, которые задаются в настройках.

Ettercap-NG

Трудно поверить, но этот сложнейший инструмент для реализации MITM-атак все-таки портировали под iOS. После колоссальной работы получилось сделать полноценный мобильный порт. Чтобы избавить себя от танцев с бубном вокруг зависимостей во время самостоятельной компиляции, лучше установить уже собранный пакет, используя Cydia, предварительно добавив в качестве источника данных theworm.altervista.org/cydia (репозиторий TWRepo). В комплекте идет и утилита etterlog, которая помогает извлечь из собранного дампа трафика различного рода полезную информацию (к примеру, аккаунты доступа к FTP).

The Middler

Представленная в рамках конференции DEF CON утилита для проведения MITM-атак на различные протоколы. Альфа-версия поддерживала протокол HTTP и имела в своем арсенале три крутых плагина:

  • plugin-beef.py — внедряет Browser Exploitation Framework (BeEF) в любой HTTP-запрос, приходящий из локальной сети;
  • plugin-metasploit.py — внедряет в незашифрованные (HTTP) запросы IFRAME, который подгружает эксплойты для браузеров из Metasploit;
  • plugin-keylogger.py — встраивает JavaScript обработчик события onKeyPress для всех текстовых полей, которые будут передаваться по HTTPS, заставляя браузер посимвольно отправлять вводимый пользователем пароль на сервер атакующего, до того как произойдет отправка всей формы.

The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.

Сетевые сканеры:

Scany

Какой программой пользуется любой пентестер в любой точке планеты независимо от целей и задач? Сетевым сканером. И в случае с iOS это, скорее всего, будет мощнейший тулкит Scany. Благодаря набору встроенных утилит можно быстро получить подробную картину о сетевых устройствах и, к примеру, открытых портах. Помимо этого пакет включает в себя утилиты тестирования сети, такие как ping, traceroute, nslookup.

Fing

Впрочем, многие отдают предпочтение Fing’у. Сканер имеет достаточно простой и ограниченный функционал, но его вполне хватит для первого знакомства с сетью, скажем, кафетерия

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

Nikto

Казалось бы, про Nikto все забыли, но почему? Ведь этот веб-сканер уязвимостей, написанный на скрипт-языке (а именно на Perl), ты легко сможешь установить через Cydia. А это значит, что ты без особого труда сможешь запустить его на своем джейлбрейкнутом устройстве из терминала. Nikto с радостью предоставит тебе дополнительную информацию по испытуемому веб-ресурсу. К тому же ты своими руками можешь добавить в его базу данных знаний собственные сигнатуры для поиска.

sqlmap

Этот мощный инструмент для автоматической эксплуатации SQL-уязвимостей написан на Python, а значит, установив интерпретатор, им без проблем можно пользоваться прямо с мобильного устройства.

Subterfuge

ссылка на сайт
У пользователей Windows есть такой замечательный инструмент для проведения MITM-атак, как Intercepter-NG: куча различных техник, графический интерфейс.

Правда, из-за различия в механизмах маршрутизации трафика между Windows и Linux некоторые MITM-техники в последнем не работают (SSLStrip, SSL MITM, SMB hijack, LDAP relay, HTTP injection). В связи с этим пользователям nix-систем приходится искать альтернативы. В большинстве случаев проведение сложной MITM выливается в использование сразу нескольких утилит (например, Ettercap, Arpspoof, SSLstrip), что достаточно неудобно. Именно поэтому и появился на свет проект Subterfuge, который, как это часто бывает, был представлен миру на хакерской конференции DEF
CON 20. Установка предельно проста, сначала скачиваем с официального файла последнюю версию: SubterfugePublicBeta5.0.tar.gz. Затем открываем терминал и выполняем:

tar -zxvf /root/Desktop/SubterfugePublicBeta5.0.tar.gz -C/
root/Desktop
cd /root/Desktop/subterfuge
python install.py

После чего запустится гуишный установщик, который сделает процесс инсталляции максимально простым. Кстати, утилита имеет веб-интерфейс, поэтому сначала запускаем тулзу командой subterfuge, а затем открываем браузер и вводим в адресной строке 127.0.0.1. Можно сразу же нажать на Start и ждать, пока Subterfuge будет собирать пароли, которые летают по твоей локалке. Или же можно настроить точечную атаку на конкретный хост, для этого есть кнопка Settings. Еще несколько опций, достойных упоминания:

• Session Hijacking: крадет куки скомпрометированной сессии, для того чтобы атакующий мог аутентифицироваться в веб-сервисе;
• HTTP code injection: позволяет внедрять различные пейлоады в скомпрометированную сессию;
• Evilgrade: позволяет использовать утилиту Evilgrade и подсовывать пользователям вместо файлов обновлений свои бинарники.

Ссылка на основную публикацию