Итак, продолжим серию статьей о физическом пентесте. В предыдущей статье «Создание флешки для дампа RAM» мы рассмотрели атаку Cold Boot. Сегодня поговорим о физическом перехвате трафика проходящего по витой паре.
Еще по теме: Пример проникновения при физическом пентесте
Перехват трафика в локальной сети физически
При перехвате трафика витой пары подключения RJ45 прослушивается только часть трафика — либо входящий, либо исходящий.
Статья написана в образовательных целях, для обучения этичных хакеров. При демонстрации работы, были использованы собственные устройства автора. Использование подобных техник перехвата трафика, без надлежащего письменного разрешения, является незаконным и будет расцениваться, как уголовное преступление. Сайт и авторы spy-soft.net не несут ответственность за ваши действия.
Прослушивание витой пары — тема старая, но из-за из‑за высокой распространенности она актуальна и сегодня. Несмотря на то, что последнее время сети переходят на «оптику», витая пара все еще встречается почти в каждой квартире и коридоре любого офиса. А иногда это выглядит даже так.
Так что ваш домашний и офисный трафик, как мы убедимся дальше, очень легко перехватить.
Как устроена витая пара
Провод RJ45 состоит из четырех отличающихся цветом пар жил. Каждая пара — это два провода, скрученные между собой.
У каждой пары провода своя роль:
- оранжевая — передача данных;
- зеленая — прием данных;
- синяя — PoE+, данные 1000 Мбит/с.
- коричневая — PoE-, данные 1000 Мбит/с;
Исходящий и входящий трафик идет по определенной паре жил, а вот байты кодируются обычным изменением характеристики электрического сигнала.
Стенд для прослушивания трафика локальной сети
Для перехвата трафика локальной сети нам понадобится простая сетевая карта Ethernet и сама витая пара, состоящая из двух жил. Вы можете сами сделать данный провод или переделать готовый патчкорд.
Нас интересует только RX-пара (первая и вторая жилы), реализованная в форме простого коннектора RJ45.
На другом конце провода первую и вторую жилу соедините простыми крокодилами. В итоге должно получиться так:
В нашем случае белый крокодил — положительный контакт, а черный — отрицательный.
Для перехвата трафика локальной сети, подключаем наш провод прямо к сетевой карте атакующего.
Перехват сетевого трафика по витой паре
Итак, для прослушивания трафика подключаем крокодилов либо к зеленой, либо к оранжевой паре:
Внешний корпус провода, к которому мы подключаемся, слегка разрезаем канцелярским ножом. Мы режем вдоль жил, так что жилы при этом не пострадают. Непосредственно с самих жил изоляцию снимать не нужно, достаточно слегка сжать крокодильчики, и они сами продавят изоляцию в местах контакта.
Давим до тех пор, пока на сниффере сетевой карты, куда мы подключили обратный конец нашего провода, не отобразятся пакеты, как показано на следующем рисунке.
Здесь мы для большей зрелищности атаки проводим ее с телефона под управлением Android. Некоторые внешние сетевые карты могут автоматически опознаваться Android, так что от вас не потребуется никаких действий, кроме разве что наличия прав root. На следующем рисунке показано, как такая атака может выглядеть на стенде.
Телефон успешно снимает трафик, идущий от одного ноутбука к другому (только в одну сторону). При этом факт прослушки никак не выявить, поскольку никаких дополнительных хопов (traceroute) между ноутбуками не появляется.
Воспользуемся утилитами, которые извлекают из трафика учетные записи и загружаемые файлы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
rj45/sniff.sh #!/bin/bash sudo ethtool -s eth0 speed 100 duplex half autoneg off sudo ethtool eth0 | grep Speed sleep 1 dumpfile=out-$(date +'%H:%M:%S_%d.%m.%Y').pcap sudo tcpdump -i eth0 -nn -w $dumpfile & tcpdump=$! tmux new-session -d -s rj45 'sudo tcpdump -i eth0 -nn' tmux split-window -v -t rj45 'sudo /opt/net-creds/net-creds.py -i eth0' tmux split-window -v -t rj45 'sudo tcpxtract -d eth0' tmux a -t rj45 sudo kill $tcpdump ls -lh $dumpfile |
Этот скрипт не только сохранит трафик в файл для последующего анализа, но и удобно поделит экран телефона на три области, в каждой из которых мы увидим соответствующую информацию, как показано на следующем рисунке.
Первая треть экрана показывает прослушиваемую половину трафика с помощью tcpdump. Вторая треть — это утилита net-creds, извлекающая учетные данные из трафика. И, на минуточку, тут мы извлекли NetNTLM-хеш в момент подключения компа к сетевому диску простыми крокодильчиками! Последняя треть экрана — это tcpxtract, просто извлекающий файлы по сигнатурам вне зависимости от протокола передачи данных. И в данном случае при скачивании картинки по FTP наш телефон успешно сохранил ее (см. также Перехват изображений в локальной сети с помощью Driftnet).
В ходе демонстрации ни один домашний или корпоративный интернет не пострадал. Но мы, конечно же, понимаем, с какой легкостью тестовые компоненты нашего стенда могут быть заменены реальными целями.
Стоит отметить, что подобный сниффинг возможен только на подключении со скоростью 10 или 100 Мбит/с, когда задействованы четыре жилы (оранжевые и зеленые пары) — четырехжильный провод. С восьмижильным проводом данные передаются иначе (со скоростью 1000 Мбит/с).
Однако даже если в проводе есть все восемь жил, часто сетевые карты не согласуются в режим 1000 Мбит/с. Например, на рисунке выше, где длина провода составляет всего пару метров и все восемь жил в наличии, сетевые карты продолжают работать в уязвимом для прослушки режиме 100 Мбит/c.
Если же перед нами витая пара с активным подключением 1000 Мбит/с, прослушивать трафик двумя крокодильчиками становится невозможно. Однако опытным путем было установлено, что если перерезать одну из дополнительных пар жил, которые нужны, чтобы обеспечивать скорость в 1000 Мбит/с (синюю или коричневую), то через несколько секунд произойдет автоматический даунгрейд к 100 Мбит/с, и мы вновь сможем подключать крокодильчики и прослушивать трафик.
Некоторые компании в своих сетях часто используют PoE для питания IP-телефонов по витой паре, для этого задействованы те самые дополнительные жилы (синяя и коричневая). Из‑за этого подключение на скорости 1000 Мбит/с в такой сети невозможно.
Продемонстрированная атака — это пассивное прослушивание трафика на лету без его модификации. Попытки же активного вмешательства в передаваемый трафик и, например, атака SSLsplit (подмена сертификата) тоже возможна, но потребует от атакующего достаточной ловкости рук, чтобы очень быстро разрезать провод, обжать его с двух сторон, а потом уже вклиниться посередине. Но такой способ достаточно «грязный» и бесхитростный, так что мы его не рассматриваем.
Описанный же метод с крокодильчиками тоже нельзя назвать идеально «чистым», поскольку мы все же разрезаем, пусть и слегка, внешнюю защиту витой пары. Хотя это никак не сказывается на функционировании провода и никаких обрывов соединения при грамотном исполнении этой манипуляции не случается.
Заключение
Опасность подобного пассивного прослушивания трафика сильно снижается в эпоху повсеместного использования SSL/TLS. Тем не менее ряд протоколов по‑прежнему использует открытую аутентификацию — это и всем известные сетевые диски, и FTP, и HTTP-Basic-аутентификация на прокси, и многое другое. И все это часто встречается в корпоративных сетях.
Поэтому стоит уделять внимание качественной прокладке кабеля. В случае если мы имеем дело с компаниями, недопустимо размещать открытые провода в неконтролируемом месте. Также нелишним было бы использовать короба, кабель‑каналы или скрытую прокладку кабеля.
РЕКОМЕНДУЕМ:
- Способы прописаться в системе при пентесте
- Как перехватить пароли Windows в локальной сети
- Организация GUI в пентесте при постэксплуатации Windows