среда, 13 апреля 2016 г.

ARP Spoofing в локальных сетях.

Недавно поставил перед собой интересную задачу - почитать переписку вконтакте того, кто сидит на публичном вайфае (например в торгово-развлекательном центре) рядом со мной.
Весь прикол заключается в том, что любое сетевое оборудование имеет свой аппаратный mac-адрес, и взаимодействие между железками в пределах локальной сети (компьютерами, маршрутизаторами, смартфонами) осуществляется на основе mac-адресов. Для этого у каждого устройства внутри хранится локальная таблица сопоставления IP и MAC. Когда мы пингуем ближнего своего, наш компьютер посылает широковещательный ARP - запрос, например "who has 192.168.0.93" и ему приходит ответ например ‎FC-AA-14-1C-FB-98.
Наша задача послать на устройство жертвы фальшивый ARP ответ (даже не ответ, а просто arp пакет) что IP роутера имеет MAC - адрес сетевого адаптера нашего ноутбука. Android и IOS устройства начинают сразу же гнать интернет через наш ноутбук!
Для этого необходимо воспользоваться утилитой arpspoof из пакета dsniff

Теперь представим ситуацию - мы сидим в ТРЦ с ноутбуком на публичном вайфае. Все клиенты находящеися рядом подключены к роутеру, который раздает всем интернет. Наша задача стать самому роутером и пустить весь чужой трафик через себя. 
Сидят в основном со смартфонов, а мобильное приложение ВК на андроид и ios по умолчанию не использует https (если не включить это в настройках).

... Начинаем
Первое что нужно сделать - изучить сеть в которой мы находимся. Нам нужно подсмотреть IP роутера и прикинуть диапазон IP-адресов которые выдаются клиентам. Это можно сделать исходя из полученых от роутера по DHCP настроек (ip шлюза и маска сети).
Затем при помощи nmap нужно просканировать сеть на наличие доступных хостов. На выходе мы получим список IP - адресов мобильных устройств, которые подключены к сети. Android и IOS устройства отлично пингуются будучи подключеными к сети, поэтому ограничимся ping-сканированием.

nmap -sP 192.168.0.0/24 

(если наша сеть 192.168.0.0 и маска 255.255.255.0)
в выводе nmap после сканирования кроме доступных IP подключеных клиентов будет еще и описание производителя железки с этим адресом. Eсли Samsung - это смартфон самсунг, Lenovo - леново, Apple - айфон \ айпад итд. 
Осмотревшись вокруг и заглянув что за мобильное устройство в руках у тех кто рядом можно догадаться какую жертву мы нашли.

Становимся роутером и нюхаем чужой трафик!
Тут ничего сложного нету.


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
arpspoof -i wlan0 -t 192.168.0.103 192.168.0.1



wlan0 - интерфейс который на нашем ноутбуке подключен к публичному вайфаю (можно посмотреть через ifconfig)
192.168.0.103 - айпи нашей жертвы, которая у нас на крючке
192.168.0.1 - айпи настоящего роутера (которым мы прикинемся)

Все! Трафик жертвы идет через наш ноутбук! 
Дальше необходимо запустить снифер tcpdump или wireshark на интерфейсе wlan0 в режиме декодирования http-трафика. Можно сразу сохранять все в файл или разгребать в реальном времени. Показывает адреса всех запросов клиента и их содержимое.

Самое важное я забыл - подготовка платформы для этого всего.
Нужно скачать последнюю версию Lubuntu например и записать при помощи ultraiso на флешку. Загрузить ноутбук с нее.
Затем нужно подключиться к вайфай сети и установить пакеты dsniff (предоставляет утилиту arpspoof) , nmap, tcpdump и (если хочется GUI) - wireshark, через apt-get.

В следующей статье я расскажу о перехвате и расшифровке зашифрованого https трафика пользователей.


среда, 6 апреля 2016 г.

Ебаный фрегат. Стыдно.
*здесь будут шуточки про PPPoE, MTU и MRU

Часть сайтов не будет работать если в роутере не зафигачить строчку

iptables -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Если нужно на самом роутере держать прокси не забываем что это локальный трафик не транзитный

iptables -A OUTPUT -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu