Go Back   Carder.life > [ru] Forum for Russians > Хакинг. Программирование



 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-19-2025, 10:52 PM

dog1 dog1 is offline
Banned
Join Date: Nov 2022
Posts: 6
Default



Энтузиаст, хакер и просто хороший специалист в области компьютерной безопасности — Сэми Камар поделился новым способом взлома компьютеров под управлением macOS и Windows. Для этого он разработал устройство под названием Poisontap, которое состоит из набирающего все большую популярность миин-ПК – Raspberry Pi. Если подключить гаджет к компьютеру, то он определяется, как Ethernet-устройство, позволяющее перенаправлять на себя весь сетевой трафик.
Сначала Poisontap скачивает с компьютера все cookies, которые, как известно, хранятся в кэше браузера, а затем перехватывает управление Wi-Fi-роутером, что дает возможность посредством интернет отправлять любой код на устройство-жертву. Причем, после отключение хакерского гаджета от компьютера, на нем остается бэкдор. Таким образом, решение позволяет обмануть антивирусы и экраны блокировки.
Если вы хотите узнать о нем больше, Сэми полностью раскрывает его детали на своем сайте: samy.pl/poisontap/
Там же приведен ряд советов, как обеспечить защиту от такого рода атаки – от запечатывания USB-портов компьютера цементным раствором или клеем, до следования не очень обнадеживающим и непрактичным советам от Microsoft «Не оставляйте ваши лэптопы и компьютеры без присмотра».
Прежде чем мы перейдем к функционалу, я расскажу вам как установить Raspbian и Poisontap.
Часть 1. Установка Raspbian
Нам понадобиться sd-карта весом в 16-32 гигабайта, картридер(как вариант можно обойтись переходником) и образ системы.
Скачиваем отсюда https://www.raspberrypi.org/downloads/raspbian/ образ системы который вам больше нравиться (я выбрал фулл версию с предустановленным софтом - Raspbian Full Buster). Далее прожигаем образ на флешку через Win32DiskImager (ссылка: https://sourceforge.net/projects/win...atest/download )
Так выглядит Win32DiskImager:

В Device мы выбираем нашу флешку, а в Image File – образ ОС, после нажимаем Write, когда процесс завершиться можно вставить флешку в нашу малину и запускаться, далее будет простая настройка, где нужно будет выбрать язык системы и тд., не вижу смысла этого показывать.
Часть 2. Настройка служб и Установка Poisontap
Когда система установлена можно настроить базовые службы.
Для начала открываем консоль и пишем sudo raspi-config

Далее в появившемся окне выбираем все то, что показано в гифке:
https://imgflip.com/gif/3s5nyw
Когда мы все сделали перезагружаем малинку и после перезагрузки в консоли пишем sudo apt-get update.
В консоли пишем:
sudo apt-get install git npm
sudo npm install websocket
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install nodejs
git clone https://github.com/samyk/poisontap
cd poisontap
sudo node backend_server.js &
Дальше нам нужно создать bash скрипт – sudo nano install.sh.

Когда нажали Enter у вас откроется текстовый редактор, куда нужно поместить следущее:
# Instructions adjusted from https://gist.github.com/gbaman/50b6cca61dd1c3f88f41
sudo bash
echo -e "\nauto usb0\nallow-hotplug usb0\niface usb0 inet static\n\taddress 1.0.0.1\n\tnetmask 0.0.0.0" >> /etc/network/interfaces
echo "dtoverlay=dwc2" >> /boot/config.txt
echo -e "dwc2\ng_ether" >> /etc/modules
sudo sed --in-place "/exit 0/d" /etc/rc.local
echo "/bin/sh /home/pi/poisontap/pi_startup.sh" >> /etc/rc.local
mkdir /home/pi/poisontap
chown -R pi /home/pi/poisontap
apt-get update
apt-get -y install isc-dhcp-server dsniff screen nodejs
Выйти должно что-то такое:

Нажимаем CTRL + X, Y и Enter
Пишем в консоли sudo chmod +x install.sh и теперь можно запустить наш скрипт.

Как вы видите пришлось написать exit что бы скрипт пошел дальше, так что держите это в уме.

Если скрипт остановиться, используем exit снова.
Теперь нам нужно редактировать файл rc.local, по перед этим мы его забекапим на рабочий стол:
sudo cp /etc/rc.local /home/pi/Desktop/
sudo nano /etc/rc.local

Убираем все строки из файла, что бы он выглядел вот так:

Проделываем почти тоже самое с dhcpd.conf:
sudo cp /etc/dhcp/dhcpd.conf /home/pi/Desktop/
sudo cp dhcpd.conf /etc/dhcp/dhcpd.conf

На этом установка завершена, можно подключать наш rpi0 к компьютеру, но перед этим проверьте файл /etc/network/interfaces, в нем должны быть примерно такие строчки:
auto usb0
allow-hotplug usb0
iface usb0 inet static
address 1.0.0.1
netmask 0.0.0.0
Так же стоит добавить в файл /etc/default/isc-dhcp-server строчку:
INTERFACES="usb0"
Часть 3. Функционал Poisontap
Когда PoisonTap подключен к компьютеру, он:
Эмулирует Ethernet устройство через USB (или Thunderbolt);
Захватывает весь интернет-трафик с компьютера (несмотря на то, что он является низкоприоритетным / неизвестным сетевым интерфейсом);
Перекачивает и хранит HTTP cookies и sessions из браузера для top 1,000,000 сайтов Alexa;
Предоставляет внутренний маршрутизатор атакующему, делая его доступным удаленно через исходящие соединения WebSocket и DNS;
Устанавливает постоянный бэкдор основанный на веб-браузере в кеш HTTP для сотен тысяч доменов и обычных Javascript CDN URL, каждый из которых имеет доступ к cookie через отравление кеша;
Позволяет атакующей стороне удаленно заставлять пользователя создавать HTTP-запросы и ответы прокси-сервера (GET & POST) с помощью куки-файлов пользователя в любом домене, который имеет бэкдор;
Бэкдоры и удаленный доступ сохраняются даже после извлечения устройства и окончания атаки.
Что еще умеет Poisontap?
PoisonTap эмулирует Ethernet устройство (например, Ethernet через USB/Thunderbolt) — по умолчанию, Windows, OS X и Linux распознают ethernet устройство, автоматически загружают его как низкоприоритетное устройство сети и подают запрос через него, даже если машина заблокирована или защищена паролем.
PoisonTap отвечает на DHCP запрос и предоставляет машине IP адрес, однако, DHCP ответ создан для того, чтобы сообщить машине, что внешнее IPv4 пространство (0.0.0.0 – 255.255.255.255) является частью локальной сети PoisonTap, а не маленькой подсети (например, 192.168.0.0 – 192.168.0.255)
Обычно не имеет значения, подключено ли вторичное сетевое устройство к машине, поскольку ему будет предоставлен более низкий приоритет, чем существующему (доверенному) сетевому устройству, и он не заменит шлюз для интернет трафика, но …
Любая таблица маршрутизации / приоритетность шлюза / порядок безопасности службы сетевого интерфейса легко обходится ввиду приоритетности “LAN traffic” над “Internet traffic”.
PoisonTap использует этот сетевой доступ даже в качестве низкоприоритетного сетевого устройства, поскольку подсеть
низкоприоритетного сетевого устройства имеет более высокий приоритет, чем шлюз (маршрут по умолчанию) устройства с наивысшим приоритетом.
Это означает, то, что если трафик предназначен для 1.2.3.4, тогда как обычно данный трафик попадает в маршрут/шлюз по умолчанию для первичного (не PoisonTap) сетевого устройства, PoisonTap на самом деле получает трафик, потому что локальная сеть / подсеть PoisonTap, как предполагается, содержит 1.2.3.4, и каждый другой существующий IP-адрес.
Ввиду перечисленных выше причин, весь интернет трафик проходит через PoisonTap, даже если машина подключена к другому устройству сети с более высоким приоритетом и надлежащим шлюзом (подлинный wifi, ethernet,и т. д.)
Как работает перекачивание cookie?
До тех пор, пока в веб-браузере работает фон, одна из открытых страниц, вероятно, будет выполнять HTTP-запрос в фоновом режиме (например, загружать новую рекламу, отправлять данные на аналитическую платформу или просто продолжать отслеживать вашу веб-активность) через AJAX или динамические теги script/iframe
Вы можете увидеть это самостоятельно, просто зайдите в свой devtools / inspector (обычно Cmd + Shift + I или Ctrl + Shift + I), перейдите на самый посещаемый веб-сайт, перейдите на вкладку Network («Сеть») и наблюдайте, как удаленные ресурсы продолжают быть доступными, даже если вы не предпринимаете никаких действий на странице.
По этому HTTP запросу, так как весь трафик выходит на PoisonTap устройство, PoisonTap DNS быстро возвращает свой адрес, заставляя, таким образом, HTTP запрос попадать на PoisonTap сервер (Node.js).
Если DNS сервер указывает на внутренний IP (LAN), к которому PoisonTap не может получить права доступа, атака продолжает функционировать, поскольку внутренний DNS-сервер будет генерировать публичные IP-адреса для различных атакуемых доменов, и это те общедоступные IP-адреса, которые PoisonTap уже перехватил.
Как только внутренний DNS сервер отвечает, браузер попадает на общедоступный IP адрес, в итоге, попадая на веб-сервер PoisonTap (Node.js) в любом из сценариев.
Когда Node веб-сервер получает запрос, PoisonTap отвечает откликом, который может быть интерпретирован как HTML или Javascript, оба из которых выполняются правильно (многие веб-сайты загружают HTML или JS в фоновых запросах)
Затем страница HTML/JS-agnostic производит множество скрытых iframes, один iframe для каждого домена Alexa-top-1-million
Любая “X-Frame-Options” безопасность на домене теперь с легкостью обходится, т.к. PoisonTap сейчас является HTTP сервером и сам выбирает, какие заголовки отправлять клиенту.
Так как каждый iframe HTTP запрос на сайт выполняется (например, ), HTTP cookies отправляются из браузера на «общедоступный IP » уже украденный PoisonTap, который быстро протоколирует информацию о cookies и аутентификации, записывая десятки тысяч пользовательских cookies на PoisonTap
Любая “HttpOnly” cookie безопасность легко обходится и эти cookies захватываются, ввиду того, что Javascript не выполняется на самом домене, а используется в первую очередь только для загрузки iframe.
Любая безопасность Cross-Origin Resource Sharing или Same-Origin Policy также обходится без проблем, потому что способ, с помощью которого был получен доступ к домену, браузеру кажется вполне законным/легитимным
Все это происходит потому, что мы перехватываем cookies, а не учетные данные, и поэтому любые 2FA/MFA, реализованные на сайте, очень просто обходятся, когда атакующий использует cookie для входа. Так происходит ввиду того, что мы, на самом деле, не выполняем функцию входа, а продолжаем уже существующую сессию, которая не запускает двухфакторную проверку подлинности.
Если сервер использует HTTPS, но в файлах cookie явно не выставлена отметка Secure cookie, защита HTTPS без проблем обходится и cookie отправляются в PoisonTap.
Удаленно доступные веб-бэкдоры
В то время как PoisonTap создавал тысячи iframes, заставляя браузер загружать каждый из них, эти iframes являются не просто пустыми страницами, а скорее HTML + Javascript бэкдорами.
Поскольку PoisonTap force-кэширует эти бэкдоры в каждом домене, бэкдор привязан к этому домену, позволяя атакующему использовать cookie домена и запускать запросы того же источника в будущем, даже если пользователь в настоящий момент не вошел в систему.
Например, когда http://nfl.com/PoisonTap iframe загружен, PoisonTap принимает отклоненный интернет трафик и отвечает на HTTP запросы через Node веб-сервер.
Добавлены дополнительные заголовки HTTP для кэширования страницы как неопределенной.
Фактический ответ страницы представляет собой комбинацию HTML и Javascript, которая создает постоянный WebSocket на веб-сервере атакующего (через Интернет, а не на PoisonTap устройстве)
WebSocket остаётся открытой, позволяя атакующему, в любой момент времени в будущем, подключиться к машине с бэкдором и выполнить запрос к любому источнику, где реализован данный бэкдор (Alexa top 1,000,000 sites — смотри ниже)
Если бэкдор открыт на сайте (например, nfl.com), но пользователь хочет провести атаку против другого домена (например, pinterest.com), атакующий может загрузить iframe с nfl.com в бэкдор pinterest.com (http://pinterest.com/PoisonTap)
И снова обращаю ваше внимание, что любая безопасность “X-Frame-Options”, Cross-Origin Resource Sharing, и Same-Origin Policy на домене полностью обходится, т.к. запрос попадет в кэш, из которого вышел PoisonTap, а не в подлинный домен.
Бэкдор для роутера и удаленный доступ
Есть одна сеть, которую PoisonTap не может взломать, и этой сетью является реальная LAN подсеть подлинного сетевого интерфейса (например, если пользовательской wifi подсетью является 192.168.0.x, то эта сеть останется незатронутой), но…
PoisonTap force – кэширует бэкдор на специальном хосте, в частности IP-адрес целевого маршрутизатора, добавленный к «.ip.samy.pl», например. 192.168.0.1.ip.samy.pl, по существу осуществляя постоянную атаку перезапуска DNS.
При использовании PoisonTap в качестве DNS сервера (жертва использует общедоступный DNS сервер), PoisonTap временно отвечает специальными PoisonTap IP (1.0.0.1), подразумевая то, что любой запрос в данный момент попадет на PoisonTap веб-сервер.
Если вместо этого DNS-сервер установлен во внутреннюю сеть (например, 192.168.0.x), дополнительный специально созданный запрос поступает на 1.0.0.1.pin.ip.samy.pl, который сообщает моему DNS серверу (в общедоступном интернете), что необходимо временно отвечать на любой [ip.address].ip.samy.pl адрес с «прикрепленным» адресом (1.0.0.1) на протяжении нескольких секунд
Затем PoisonTap быстро устанавливает бэкдор на http://192.168.0.1.ip.samy.pl/PoisonTap, который на данный момент указывает на устройство PoisonTap в 1.0.0.1, что позволяет обращаться к бэкдору и кэшировать с устройства PoisonTap
Защита DNS пиннинга и DNS перепривязки легко обходится ввиду истощения таблицы DNS пиннинга
из-за сотен тысяч ранее запрошенных запросов, и повторное связывание не должно произойти в будущем, что делает эту атаку устойчивой в течение длительных периодов времени (спасибо Мэтту Остину за то, что он поделился этой атакой со мной!)
Теперь, когда бэкдор принудительно кэшируется по адресу http://192.168.0.1.ip.samy.pl/PoisonTap, любые будущие запросы к 192.168.0.1.ip.samy.pl будут обращаться к незакрепленному IP-адресу, запуская 192.168. 0,1 и указывая непосредственно на маршрутизатор.
Это означает, что если вы загружаете хост 192.168.0.1.ip.samy.pl/PoisonTap в iframe удаленно через бэкдор, вы теперь можете выполнить AJAX GET/POSTs на любой другой странице на внутреннем роутере, полностью удаленно, таким образом открывая удаленный доступ к внутреннему роутеру.
Это может привести к другим атакам на роутер, к которым у атакующего могло бы и вообще не быть доступа, к таким как использование учетных данных администратора по умолчанию для перезаписи DNS серверов, или раскрытие уязвимостей аутентификации.
 

Tags
NULL

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump




All times are GMT. The time now is 11:03 PM.