- Как в Linux посмотреть подключенные USB устройства
- Просмотр списка имен USB устройств с помощью команды df
- Список имен подключенных USB — устройств с помощью команды lsblk
- Список USB — устройств с помощью команды fdisk
- Список сведений о подключенных USB-устройствах с помощью команды lsusb
- Список USB контроллеров и устройств, использующих USB устройства
- Заключение
- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- usbrip
- Описание usbrip
- Справка по usbrip
- Справка по команде events
- Мониторинг подключения USB накопителей и логирование операций с файлами
- Linux-форензика в лице трекинга истории подключений USB-устройств
- Скриншоты
- Описание
- Справка
- Синтаксис
- Опции
- Примеры использования
- Ссылки и постскриптум
Как в Linux посмотреть подключенные USB устройства
В настоящее время многие компьютерные периферийные устройства, такие как веб-камеры, мыши, сканеры, принтеры, жесткие диски, USB (Pendrive) подключаются по USB. После того, как эти устройства подключены к рабочему столу или серверу, важно знать имя устройства или путь к нему. Это помогает идентифицировать USB устройства для таких задач, как форматирование или отключение.
В Linux все файлы устройств хранятся в каталоге /dev и должны быть доступны во время загрузки системы.
В этой статье я покажу вам различные способы как в ubuntu посмотреть usb устройства. Большинство команд, упомянутых здесь, должны работать практически на всех дистрибутивах Linux. Например Ubuntu, Debian, Mint.
Просмотр списка имен USB устройств с помощью команды df
Команда df — это полезная команда, которая может помочь составить список всех подключенных томов, включая USB-накопители.
Как только USB-устройство подключается в систему Linux, это устройство автоматически монтируется в раздел /media и становится готовым к использованию.
Из приведенного выше вывода следует, что у меня есть 1 USB-накопитель /dev/sdb с 2 разделами /dev/sdb1 и /dev/sdb2
Список имен подключенных USB — устройств с помощью команды lsblk
Команда Lsblk используется для перечисления всех блочных устройств в системе Linux. Из списка можно фильтровать USB-устройства с помощью команды grep.
Чтобы получить дополнительную информацию, такую как UUID, производитель и тип файловой системы, используйте команду blkid, как показано на рисунке ниже.
Список USB — устройств с помощью команды fdisk
Вы можете использовать старую добрую команду fdisk, которая используется для разбиения томов на разделы, чтобы перечислить все разделы в системе Linux, включая USB-накопители.
Запятая будет отображать подробную информацию о вашем USB-томе, включая разделы , размер тома, секторы и тип файловой системы.
Список сведений о подключенных USB-устройствах с помощью команды lsusb
Команда lsusb, также известная как команда “List USB”, используется в Linux для перечисления всех USB-устройств, подключенных к системе.
На выводе выше отображается идентификатор шины, идентификатор устройства, идентификатор USB, а также поставщик или производитель USB-устройств
Команда lsusb перечисляет подключенные устройства и не предоставляет дополнительной информации о USB-устройствах.
Для получения дополнительной информации о подключенных USB устройствах используйте команду dmesg. Команда dmesg, также известная как “сообщение драйвера” или “показать сообщение”, используется для проверки загрузочных сообщений. Кроме того, эта команда используется для отладки проблем, связанных с оборудованием и печати сообщений, генерируемых драйверами устройств.
Вы можете использовать команду dmesg и grep, чтобы сузиться до USB-устройств.
Кроме того, вы можете передать вывод команды dmesg в less для облегчения прокрутки.
На выходе вы можете найти определенную строку, нажав клавишу прямой косой черты ( / ) на клавиатуре, а затем имя или идентификатор устройства USB-устройства.
В моем случае я ищу дополнительную информацию о USB устройстве под названием SanDisk.
Поиск USB-накопителя
Список USB контроллеров и устройств, использующих USB устройства
Команда usb-devices-это сценарий оболочки, который позволяет вам перечислить все USB-контроллеры и USB-устройства, подключенные к вашему компьютеру. Он печатает детали USB-устройства, такие как производитель, название продукта, серийный номер и многое другое. Вот вывод команды:
Заключение
В этой статье мы продемонстрировали различные способы просмотра USB-устройств, подключенных к системе Linux.
Источник
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
usbrip
Описание usbrip
Простой криминалистический инструмент с интерфейсом командной строки для отслеживания артефактов USB-устройств (истории USB-событий) в GNU/Linux (например, историю событий USB, события «Подключён» и «Отключён») на Linux машинах.
Программа для получения информация анализирует журналы /var/log/syslog* или /var/log/messages* (в зависимости от дистрибутива). Извлечённые данные она оформляет в удобные для восприятия таблицы с историей событий USB. Такие таблицы могут содержать следующие столбцы: «Подключено» (дата и время), «Пользователь», «VID» (идентификатор поставщика), «PID» (идентификатор продукта), «Продукт», «Производитель», «Серийный номер», «Порт» и «Отключён» (дата и время).
Кроме того, он также может:
- экспортировать собранную информацию как дамп JSON (и открывать такие дампы);
- генерировать список авторизованных (доверенных) USB-устройств в виде JSON (назовите его auth.json);
- искать «событий нарушения» на основе auth.json: показать (или сгенерировать другой JSON) с USB-устройствами, которые появляются в истории и НЕ содержатся в auth.json;
- если установка выполнена с флагом -s, создавать зашифрованные хранилища (7zip-архивы) для автоматического резервного копирования и накопления событий USB с помощью планировщика crontab;
- поиск дополнительных сведений о конкретном USB-устройстве по его VID и/или PID.
Автор: Sam Freeside
Справка по usbrip
Имеется три значимых команды:
- events — вывод списка событий
- storage — экспорт списка событий и работа с этими списками
- ids — поиск производителя и типа устройств по их идентификаторам
Справка по команде events
Данная команда позволяет работать с событиями, у неё четыре подкоманды:
Источник
Мониторинг подключения USB накопителей и логирование операций с файлами
Дано:
- Пользовательские ПК, под управлением linux (suse 11, mint 16);
- Пользователи работают удаленно с терминалами, куда пробрасываются USB накопители;
- Пользователи не имеют на персональных компьютерах никаких прав, кроме запуска rdesktop/freerdp.
Задачи:
- отслеживать факты подключения USB накопителей;
- отслеживать факты записи и изменения файлов на USB накопителях.
Необходимое отступление. Я не буду обсуждать моральные аспекты подобной слежки за сотрудниками. Есть корпоративные стандарты и требования корпоративной службы безопасности с которыми ознакомлены сотрудники.
1. Отслеживаем факт подключения USB устройства
Для выполнения данной задачи я использовал свойство udev, которое позволяет выполнять скрипт при наступлении какого-либо события. Создадим правило, которое будет отвечать за подключение и отключение usb устройств:
Содержимое файла usb.rules:
Где:
- ACTION – отслеживаемое действие, add – подключение устройств, remove – отключение;
- ENV – перечень отслеживаемых устройств по типу;
- RUN – исполняемое действие. В данном случае, в зависимости от события, запускаются скрипты usb_on.sh и usb_off.sh.
Скриптам usb_on.sh и usb_off.sh udev передает следующие данные:
- %E
– серийный номер USB устройства; - %E
– модель USB устройства; - %E
– производитель USB устройства.
Данные скрипты выполняют единственное действие – посылают http POST запрос по адресу 10.0.40.16/usb/input.php (директива noproxy 10.0.40.16 нужна для того, что бы запрос отсылался минуя прокси-сервер). В данном POST запросе передаются следующие переменные:
- host – имя компьютера результат выполнения команды hostname;
- serial — серийный номер USB устройства (%E
) - name — модель USB устройства (%E
) - vendor — производитель USB устройства (%E
) - file – действие. on – подключение, off — отключение (file — название поля выбрано по той причине, что сюда же будет вноситься и информация о файлах, над которыми производились какие-либо действия)
- sub=true – имитация нажатия кнопки на веб-форме.
2.Сервер сбора информации
Как видно из запускаемых скриптов usb_on.sh и usb_off.sh – вся информация передается на php скрипт, который состоит из простой веб-формы и обработчика запроса.
Обработчик делает одно – складывает принятые данные в таблицу usb БД MySQL
3. Мониторинг операций с файлами
Для выполнения функции отслеживания операций, которые выполнялись на файлами на подключенном носителе был написан следующий скрипт:
Данный скрипт добавляется в автозапуск и работает в фоновом режиме.
Для получения выборки сохраненной информации написан php скрипт, выбирающий из БД записи за указанный период и по выбранным ПК. Пример вывод информации:
4. Распростренение по ПК
Т.к. ПК с сети расположено достаточно много, было решено сделать это в полу-автоматическом режиме. А именно: написан скрипт, который считывает из файла список ПК для распространения и передает на них необходимые файлы. Выполняется это с помощью утилит sshpass (для автоматического ввода пароля) и scp (копирование).
Для начала в /etc/ssh/ssh_config меняем директиву StrictHostKeyChecking:
Делается это для того, что бы ssh ключи автоматически добавлялись в список доверенных.
Непосредственно сам скрипт распространения:
Т.к. некоторые ПК могут быть выключенными, запуск скрипта выполняется с выводом всей информации в лог и последующим анализом:
Источник
Linux-форензика в лице трекинга истории подключений USB-устройств
В рамках погружения в одну из дисциплин (в процессе обучения по специальности компбеза) я работал над одним занимательным проектом, который бы мне не хотелось просто похоронить в недрах папки «Универ» на внешнем винчестере.
Сей проект носит название usbrip и представляет собой небольшую консольную опенсорс утилиту для Linux-форензики, а именно для работы с историей подключений USB-устройств. Программа написана на чистом Python 3 (с использованием некоторых сторонних модулей) и не требует зависимостей помимо Python 3.x интерпретатора и пары строк из requirements.txt, разрешающихся одной строкой с помощью pip.
В этом посте я опишу некоторые возможности данного софта и оставлю краткий мануал со ссылкой на источник загрузки.
Снято! (… в смысле Cut!)
Примечание. Описываемый в статье функционал актуален для первой версии утилиты. За последней версией с множеством новых плюшек предлагаю перейти в репозиторий.
Скриншоты
Получение истории подключений съёмных USB-устройств:
Поиск дополнительной информации о USB-устройстве по идентификатору модели (PID’у):
Описание
Как известно, операционные системы на базе GNU/Linux очень трепетно относятся к логированию разного рода событий, и подключение/отключение USB-устройств не является исключением. В совокупности с одним из пунктов UNIX-философии о «текстовых потоках, как универсальных интерфейсах» информацию об артефактах таких событий (с разной степенью подробности) в зависимости от дистрибутива можно обнаружить в одном или нескольких из следующих текстовых файлов:
- /var/log/kern.log* ;
- /var/log/syslog* ;
- /var/log/messages* ;
- /var/log/dmesg* ;
- /var/log/daemon.log* .
FORENSIC-PROOF даже показывает нам такую картинку на этот счет (немного неполную, но неважно):
Для своей работы usbrip находит универсальные для всех сборок Linux, основанных на Debian (Ubuntu, Linux Mint и др.) и RPM (CentOS, Fedora, openSUSE и др.), лог-файлы, а именно: /var/log/syslog* или /var/log/messages* , парсит их в поисках нужной информации и обликает найденные следы подключений USB-устройств в красивые таблички (или списки — как угодно).
Также usbrip умеет:
- создавать списки авторизированных (доверенных) устройств в виде JSON-файлов;
- искать «события-нарушителей» на основе списка доверенных устройств: такие события (подключение/отключение USB), в которых участвовали USB-устройства, не отмеченные как доверенные;
- искать дополнительную информацию о USB-устройстве по его VID (Vendor ID) и/или PID (Product ID).
Справка
Получить список доступных модулей:
Получить список доступных подмодулей для конкретного модуля:
Получить список доступных опций для конкретного подмодуля:
Синтаксис
Опции
Примеры использования
Показать историю подключений всех USB-устройств, опуская баннер, информационные (зелёные) сообщения, а также не задавая вопросы по ходу выполнения ( -q, —quite ), сформировав вывод в виде списка ( -l, —list ), включив в него 100 последних найденных событий ( -n КОЛИЧЕСТВО_СОБЫТИЙ, —number КОЛИЧЕСТВО_СОБЫТИЙ ):
Показать историю подключений съёмных USB-устройств ( -e, —external ), сформировав вывод в форме таблицы с полями (столбцами) «Connected», «VID», «PID», «Disconnected» и «Serial Number» ( -c СТОЛБЕЦ [СТОЛБЕЦ . ], —column СТОЛБЕЦ [СТОЛБЕЦ . ] ), отфильтровав поиск по датам ( -d ДАТА [ДАТА . ], —date ДАТА [ДАТА . ] ), взяв при этом информацию из внешних лог-файлов ( -f ЛОГ_ФАЙЛ [ЛОГ_ФАЙЛ . ], —file ЛОГ_ФАЙЛ [ЛОГ_ФАЙЛ . ] ):
Построить таблицу истории подключений всех USB-устройств и перенаправить вывод в файл для дальнейшего анализа. В том случае, если поток вывода не стандартный stdout ( «|» либо «>» к примеру) в выходных данных не будут присутствовать спец. символы, отвечающие за цвет шрифта в терминале, поэтому текстовый файл не будет замусорен нечитаемыми символами. Также нужно отметить, что usbrip использует некоторые UNICODE-константы, поэтому было бы неплохо сразу конвертировать кодировку создаваемого файла в UTF-8 для их корректного отображения (например с помощью encov ), а также использовать символы новой строки в Windows-стиле для лучшей переносимости (например с помощью awk ):
Примечание: избавиться от спец. символов, отвечающих за цвет можно и в том случае, если вывод уже был направлен в stdout. Для этого необходимо скопировать полученные данные в новый файл usbrip.txt и добавить еще одну awk -инструкцию:
Создать список доверенных устройств в виде JSON-файла ( trusted/auth.json ), содержащего поля «VID» и «PID» первых трех устройств, подключенных 26-го сентября:
Найти среди истории подключений съёмных USB-устройств «события-нарушители» на основе списка доверенных устройств ( trusted/auth.json ) по полю «PID» и сформировать вывод в виде таблицы с полями «Connected», «VID» и «PID»:
Найти дополнительную информацию о USB-устройстве на основе его VID’а и PID’а:
Загрузить/обновить базу данных идентификаторов USB-устройств (источник здесь):
Ссылки и постскриптум
Забрать утилиту можно с Гитхаба, все зависимости для запуска и корректной работы указаны в requirements.txt.
Благодарю за внимание!
P. S. да, стиль баннера и информационных сообщений вдохновлен проектом sqlmap (*^.^*)
UPD 13.06.2018. Появилось расследование реального (?) кейса с участием моей утилиты от человека с Codeby (сам в шоке, если честно).
Источник