Sign in to follow this  
DiNo

USBdeath, защищаем usb порты

Recommended Posts

USBdeath, защищаем usb порты

Формирует правила для udev, системного демона, который следит за устройствами в системе. Правила формируются так, что добавление неизвестных ранее usb-устройств или извлечение определенных заранее вызывает некоторые действия, например выключение компьютера, затирание файлов и т.п. Простыми словами, для примера, если кто-то воткнет без вашего ведома флешку, компьютер взрывается на хуй выключается.
Вдохновлялся usbkill https://github.com/hephaest0s/usbkill , у которого есть ряд недостатков. В частности, usbkill постоянно висит в памяти, что избыточно при наличии udev. Также мое решение учитывает больше параметров для устройств, поэтому для атакующего будет недостаточно иметь например флешку той же модели, нужно будет узнать и подделать серийник.

Написано на баше, только для линукса.

Установка:
wget https://raw.githubus...death<br> chmod +x usbdeath
Конфиг
Скрипт
поставляется в безопасном режиме, когда просто пишется лог. Для
отключения нужно закомментировать соответствующую строку (demo='yes') в
самом скрипте, а также по желанию переопределить, что будет запускать
скрипт при срабатывании (по умолчанию это две команды sync и poweroff).
Помимо этого есть еще несколько параметров, которые можно поменять,
смотрите код.
Как пользоваться
usbdeath action
где action:
o, on - активировать usbdeath
x, off - временно деактивировать usbdeath
j, eject - добавить правило на извлечение usb устройства
g, gen - сгенерировать или обновить белый список устройств
d, del - удалить правила udev
e, edit - вручную редактировать файл правил
s, show - показать инфу о подключенных устройствах
Желательно
положить скрипт в PATH и не перемещать/переименовывать его после
активации, т.к. правила пишутся с учетом абсолютного пути до скрипта.
Это поведение можно изменить, см. код.
Примеры
Выясняем, что подключено, на всякий случай
usbdeath show
Первый запуск, генерируем белый список устройств из уже подключенных
usbdeath on
Также добавляем правило на извлечение устройства, выбираем из списка
usbdeath eject
Итак, usbdeath активирован. Но тут нам надо вставить доверенное устройство, так что временно вырубаем usbdeath
usbdeath off
И тут мы понимаем, что неплохо бы подключенное устройство добавить в белый список
usbdeath gen
После чего опять активируем usbdeath
usbdeath on
Мы же мамкины хацкеры, поэтому думаем, что можем редактировать правила udev вручную
usbdeath edit
Но тут пришла младшая сестра и все запорола, нихера не работает и т.д. Удаляем правила совсем и начинаем все с чистого листа
usbdeath del

Зависимости
bash
современный линупс дистр с udev и, вероятно, systemd
Тестировалось в Arch Linux

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this