Как узнать vid и pid устройства в linux

Обновлено: 03.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как узнать о том, что посторонние копировали файлы с компьютера

Устройства с USB разъёмом являются самыми распространёнными — ими могут быть накопители информации (флэшки, внешние диски), клавиатуры, мыши, телефоны, принтеры, звуковые платы и наушники и даже специальным образом запрограммированные устройства для, например, обхода ввода пароля для разблокировки экрана и так далее.

В любом случае несанкционированное подключение любого устройства означает, что у вашего компьютера есть ещё и «другая жизнь», о которой вы не знаете. Вполне возможно, что это означает несанкционированный доступ для копирования ваших личных файлов.

Эта статья посвящена программе usbrip. Она помогает разобраться в истории подключения USB устройств к компьютеру на Linux за последние месяцы. Возможно вы уже знаете об этой программе и об её ограничениях — но не спешите «переключаться» - в этой статье я покажу, как можно обрабатывать журнал syslog даже на тех компьютерах, где syslog не настроен на работу с форматом даты, который требует usbrip (по умолчанию на большинстве дистрибутивов), а также как использовать usbrip на компьютерах где вообще нет syslog (например в Arch Linux и производных дистрибутивах, где syslog по умолчанию отсутствует, а все его функции выполняет journal от systemd).

Ошибка «Wrong timestamp format found in "/var/log/syslog"»


Ситуация следующая: usbrip в своей работе использует файлы /var/log/syslog* или /var/log/messages*. После недавних обновлений usbrip, эта программа может работать только с подробным форматом времени, который нужно специально настроить для syslog.

Получается что нужно удалить старые журналы и анализировать можно только данные с момента настройки syslog, а информация за последние пару месяцев пропадёт.

Ещё один минус такого подхода — невозможно проанализировать файлы с других компьютеров, где предварительно не сделана эта настройка.

Но это не решает проблему анализа журнала syslog на дистрибутивах, где syslog не установлен. Конечно, вариант со старой версией мне не очень нравится. Поэтому я написал команды, которые конвертируют дату из старого формата в новый. То есть можно не менять формат файлов syslog, можно использовать журналы syslog с других компьютеров и самая последняя версия usbrip будет успешно с ними работать!

Но начнём, всё-таки, с установки usbrip.

Как установить usbrip

Обратите внимание, что usbrip можно установить несколькими способами и вам НЕ нужно устанавливать программу каждым из них — выберите какой-то один.

Установка в Kali Linux

Самый простой вариант установки:

Но при таком варианте некоторые возможности программы будут недоступны. Чтобы получить usbrip со всеми функциями установку нужно выполнить следующим образом:

Если хотите, вы можете настроить формат даты в syslog специально для usbrip. Дата станет более детальной (например, там появится год). В случае выполнения этой настройки, вы сможете напрямую работать с файлами журналов /var/log/syslog* или /var/log/messages* в usbrip без необходимости их конвертации. Как это сделать рассказано в разделе «Структура системных логов».

Установка в BlackArch

В BlackArch и ArchLinux syslog вообще отсутствует по умолчанию, поэтому менять формат даты негде. Но это не будет проблемой — мы также сможем узнать, когда и какие USB подключались к нашей системе.

Как посмотреть историю подключения USB в Linux

Итак, если вы изменили формат даты для syslog, то достаточно запустить программу следующим образом:

Программа сама найдёт файлы журналов и, если всё в порядке (файлы журналов найдены, в них верный формат даты и имеются события с USB устройствами), то выведет:

Она спрашивает, хотим ли мы вывести данные в стандартный вывод (на экран) или же сохранить их в файл JSON. Если вы хотите вывести данные на экран, то достаточно нажать ENTER, поскольку первый вариант выбран по умолчанию.

Будет выведена примерно следующая таблица:


Поля в ней означают следующее:

  • Connected (дата и время подключения устройства)
  • User (видимо, подразумевается пользователь системы, но у меня здесь имя хоста)
  • VID (vendor ID — идентификатор производителя)
  • PID (product ID — идентификатор продукта)
  • Product (продукт)
  • Manufacturer (производитель устройства)
  • Serial Number (серийный номер устройства)
  • Port (USB порт к которому выполнено подключение)
  • Disconnected (дата и время отключения устройства)

Как конвертировать дату в файле syslog для usbrip

Более подробный формат даты отличается от используемого по умолчанию тем, что в нём указан год и миллисекунды. Думаю, год вы и так примерно знаете (тем более, что, например, в моей системе данные журнала хранятся только за последние 2-3 месяца, хотя я их не удалял). Что касается миллисекунд, то это вообще вряд ли кому-то нужно.

По этой причине можно без проблем конвертировать файл в формат, который будет поддерживать usbrip.

В следующей команде я конвертирую файл /var/log/syslog и сохраняю новый результат в usb2.0.txt — при желании, измените эти данные в команде:

Будет создан файл usb2.0.txt, который сможет открыть usbrip.

Как использовать usbrip в Arch Linux, BlackArch и их производных

Как уже было сказано, в этих системах отсутствует syslog, её функции поглощены программой journalctl. Именно по этой причине нет смысла устанавливать и запускать syslog (хотя, естественно, это возможно). Достаточно конвертировать вывод программы journalctl.

Новый вариант конвертации:

Сохраняем вывод программы journalctl в файл usb.txt:

А далее мы конвертируем файл в понятный для usbrip формат (то есть в syslog):

Это новый вариант конвертации, подсказанный пользователем. Он очень быстрый и даже для больших файлов занимает считанные секунды.

Обратите внимание, что данные считываются из файла usb.txt и сохраняются в файл usb2.0.txt — при желании, отредактируйте эти значения под свои.

Старый вариант конвертации (не используйте его)

Есть ещё один вариант с использованием утилиты date. Этот вариант довольно медленный:

Программа journalctl выводит названия месяцев на русском (если у вас установлена русская локаль). Такой формат (на русском) не понимает ни usbrip, ни утилита date. Поэтому начать нужно с установки английской локали следующей командой:

Не надо беспокоиться, что у вас всё станет на английском — изменения действуют только для того окна терминала, в котором вы выполнили команду. И после перезагрузки ОС переключение локали не сохранится.

Теперь мы сохраняем вывод программы journalctl в файл usb.txt:

А далее мы конвертируем файл в понятный для usbrip формат (то есть в syslog):

Файл размером 147 мегабайт (1.233.656 строк) на моей системе обрабатывался очень долго — 1-2 часа, правда центральный процессор практически не был загружен. То есть если у вас большой файл, то запаситесь терпением.

Как в usbrip проверить файл с другой системы

В usbrip можно указать файл из которого нужно брать данные для анализа, для этого используется опция -f, например, я хочу найти события подключения и отключения к USB интерфейсу в файле usb2.0.txt:

Если вы взяли файл для анализа с другой системы, где не настроен поддерживаемый формат даты, то вам нужно предварительно конвертировать этот файл как показано чуть выше.

Ниже самый конец данных из journalctl на моей домашней системе:


Как узнать тип USB устройства и его производителя

Предположим, меня заинтересовала следующее устройство:

С помощью usbrip я могу выполнить поиск по базе данных по VID и PID.

Начнём с загрузки базы данных:

С помощью опции --vid выполняется поиск по идентификатору вендора, с помощью опции --pid выполняется поиск по идентификатору продукта. При этом при каждом запуске поиска, usbrip будет обновлять/загружать базу данных которая и так уже имеется в системе — это занимает лишнее время, поэтому укажем флаг --offline, чтобы при поиске использовалась локальная база данных:


Опции --vid и --pid необязательно использовать одновременно — можно выполнять поиск по любой из них.

Настройка выводимых данных


Вывод информации только по съёмным устройствам, по определённому USB устройству или за конкретные дни

Программа usbrip поддерживает следующие виды фильтров:

1. Показ только сменных устройств. На самом деле, со 100% уверенностью трудно сказать, какие устройства являются отключаемыми. Но можно поступить хитро — если это устройство уже БЫЛО отключено, значит, оно легко отключаемое! Это очевидно. Легко отключаемые устройства, например, сменные дисковые накопители и флэшки представляют наибольший интерес в случае несанкционированного доступа.

Для применения этого фильтра используется опция -e:

2. Фильтрация по полям таблицы, опции: --user, --vid, --pid, --product, --manufact, --serial, --port

3. Сортировка по дате. Для этого используется опция -d:

Обратите внимание, что при указании двух дней не создаются диапазоны! То есть если вы указали два дня, то будут взяты данные только для этих двух дней!

Показ только определённой информации

В предыдущем примере использовалась опция -c, после которой перечислены столбцы conn vid pid disconn serial — это приводит к тому, что будет выведена только информация по этим столбцам.


Название всех столбцов (нужно указывать их без кавычек через пробел): "conn", "user", "vid", "pid", "prod", "manufact", "serial", "port", "disconn".

Создание списка доверенных устройств

Если вы (как и я) анализируете реальный журнал домашнего компьютера, то вы уже заметили, что данных очень много и разобраться с ними «на глаз» проблематично. Поэтому если кто-то месяц назад подключал к компьютеру флешку (или подключит в будущем), то об этом довольно трудно узнать.

В такой ситуации может помочь список доверенных устройств. Концепция довольно проста: создаётся список ваших устройств, которым вы доверяете. Затем сравнивается журнал с этим списком — если там есть информация об устройствах, которые отсутствуют в списке доверенных, то будет выведена соответствующая информация.

Составить список доверенных устройств можно командой usbrip events gen_auth несколькими способами. Рассмотрим обязательные опции.

Во-первых, нужно указать файл, куда будет сохранён этот список, в моём случае путь до файла

/auth.json. Затем нужно указать атрибуты для включения в список авторизованных устройств, это делается опцией -a после которой через пробел без кавычек можно указать одно или более полей: "vid", "pid", "prod", "manufact", "serial".

Далее нужно указать устройства, которые мы хотим добавить. Можно использовать рассмотренные выше фильтры. К примеру, я добавлю устройства по их VID, для этого я указываю опцию --vid и после неё через пробел перечисляю все идентификаторы производителей, которые я хочу добавить.

В результате получается команда:

В качестве фильтра можно использовать дату — то есть вы можете проверить, в какие дни подключались только доверенные устройства и перечислить эти дни:

Выявление подключения чужих USB устройств к компьютеру в Linux

Для проверки используется команда usbrip events violations, после которой достаточно указать файл со списком доверенных устройств:

Пример вывода в моём случае:


Я вначале немного напрягся, но потом вспомнил о других своих устройствах. То, которое является многократным «нарушителем» - это ещё один внешний USB диск (точнее обычный диск, подключаемый к ноутбуку через SATA-USB переходник).

Освежить память помогла команда:

На той коробке тоже так и написано, «SuperSpeed».

Второе устройство, которое 2307 Boot ROM и Phison меня озадачило чуть сильнее. Это оказались не USB наушники и даже не тачпад ноута. Это оказалась моя же флешка, на который был создан раздел EFI для обновления БИОСа на моём ноутбуке. Возможно, она распозналась таким необычным образом из-за того, что компьютер был загружен вместе с ней или ещё по каким-то причинам. Мораль: не надо спешить высаживаться на измену если получены неожиданные результаты.

И вторая мораль: VID и PID могут меняться при некоторых условиях или система может видеть их иначе, опять же, при некоторых условиях. Серийный номер USB устройств также может быть подменён, по крайней мере для некоторых устройств.

Сохранение результатов в файл

Если при обработке файла выбрать вторую опцию:

То программа предложит ввести путь до файла (или принять значение по умолчанию) — полученные данные будут сохранены в формате JSON.

Ещё у программы есть специальная команда storage, которая позволяет сохранять результаты. В первую очередь storage удобна для работы с Cron, но можно запускать её и вручную.

Информация будет заархивирована. На архив можно установить пароль.

Пример добавления службы в Cron вы найдёте в файле /usr/usbrip/cron/usbrip.cron. Информацию о настройке Cron вы найдёте в этой статье.

Анализ только последних записей

Если вы анализируете журналы с других компьютеров и вам для этого приходится их конвертировать, то вы можете ограничиться только последними строками. Например, чтобы создать файл, в который будут скопирована только последняя 1000 строк из исходного файла, вы может использовать команду вида:

Если вы конвертируете данные из journalctl, то вы также можете установить дату, после которой вы хотите получить данные.

Всегда нужно начинать с переключения локали (иначе полученный файл будет непонятен программам):

Если я хочу получить информацию о событиях после определённой даты, то нужно использовать опцию -S, после которой нужно указать дату в формате ГГГГ-ММ-ДД, например:

Далее используем уже знакомую команду для конвертации в формат syslog:

И запускаем usbrip с опцией -f, указав подготовленный файл:

Заключение

Итак, мне программа usbrip показалась очень интересной — она выжимает всё, что возможно из системных журналов по событиям, связанным с USB интерфейсом (если, к примеру, у какого-то USB устройства не указан серийный номер, значит и система его тоже не знает). А с учётом возможности конвертировать файлы, это делает её очень универсальной.

В основном, мы смотрим PID, чтобы убить невосприимчивую программу, и она похожа на диспетчер задач Windows.

Что такое идентификатор процесса PID?

PID обозначает идентификационный номер процесса, который обычно используется большинством ядер операционной системы, таких как Linux, Unix, macOS и Windows.

Это уникальный идентификационный номер, который автоматически присваивается каждому процессу, когда он создается в операционной системе.

Это было проверено, выполнив следующую команду в системе В 32-битных системах 32768 является максимальным значением, но мы можем установить любое значение до 2 ^ 22 (приблизительно 4 миллиона) в 64-битных системах. Вы можете спросить, почему нам нужно такое количество PID? потому что мы не можем повторно использовать PID сразу. Также во избежание возможных ошибок.

PID для запущенных процессов в системе можно найти с помощью следующих девяти методов, таких как команда pidof, команда pgrep, команда ps, команда pstree, команда ss, команда netstat, команда lsof, команда fuser и команда systemctl.

В этом уроке мы рассмотрим идентификатор процесса Apache для проверки.

Метод-1: Использование команды pidof

pidof используется для поиска идентификатора процесса запущенной программы.

Он выводит эти идентификаторы на стандартный вывод.

Чтобы продемонстрировать это, мы узнаем идентификатор процесса Apache2 из системы Debian 9.

Из вышесказанного вы можете столкнуться с трудностями идентификации идентификатора процесса, поскольку он показывает все PID (включая родительский и дочерний) с именем процесса.

Следовательно, нам нужно выяснить родительский PID (PPID), который мы ищем.

Это может быть первый номер. В моем случае это 3754, и он показан в порядке убывания.

Способ-2: Использование команды pgrep

pgrep просматривает текущие процессы и перечисляет идентификаторы процессов, которые соответствуют критериям выбора для stdout.

Это также похоже на вышеприведенный вывод, но этот приводит к сокращению результатов в порядке возрастания, что ясно говорит о том, что родительский PID является последним.

В моем случае это 3754.

Примечание. Если у вас есть несколько идентификаторов процесса, вы можете столкнуться с проблемой идентификации идентификатора родительского процесса при использовании команды pidof & pgrep.

Метод-3: Использование команды pstree

pstree показывает запущенные процессы как дерево.

Дерево коренится либо в pid, либо в init, если pid опущен.

Если имя пользователя указано в команде pstree, тогда отображается весь процесс, принадлежащий соответствующему пользователю.

pstree визуально объединяет идентичные ветви, помещая их в квадратные скобки и префикс с количеством повторений.

Чтобы получить только один родительский процесс, используйте следующий формат.

Команда pstree очень простая, потому что она отдельно разделяет родительский и дочерний процессы

Метод-4: Использование команды ps

ps отображает информацию о выборе активных процессов.

Он отображает идентификатор процесса (pid = PID), терминал, связанный с процессом (tname = TTY), кумулятивное время процессора в формате [DD-] hh: mm: ss (time = TIME) и исполняемое имя (ucmd = ЦМД).

По умолчанию выходной файл не сортируется.

Из вышеприведенного вывода мы можем легко идентифицировать идентификатор родительского процесса (PPID) на основе даты начала процесса.

Метод-5: Использование команды ss

ss используется для вывода статистики сокетов.

Он позволяет отображать информацию, аналогичную netstat.

Он может отображать больше информации о TCP и состоянии, нежели другие инструменты.

Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.

Метод-6: Использование команды netstat

По умолчанию netstat отображает список открытых сокетов.

Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.

Метод-7: использование команды lsof

Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.

Метод-8: Использование команды fuser

Утилита fuser должна записывать на стандартный вывод идентификаторы процессов процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.

Метод-9: Использование команды systemctl

Это замена старого системного управления SysV и большинство современных операционных систем Linux были адаптированы systemd.

dm@dm-desktop:</p>
<p>В данной статье я хочу написать о консольных программах, которые помогут выдать полную информацию о “железе” вашего ПК (фирма-изготовитель, марка, ID устройства и другие данные про оборудование). Многие пользователи, которые перешли в Линукс с ОС корпорации зла, привыкли работать в графических программах, но с годами работы в Linux понимаешь, что в Терминале все работает быстрее, выдаваемая информация полнее и гибче.</p>
<p><em>01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)</em> <br /><em>02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)</em> <br /><em>03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller</em> <br /><em>04:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)</em> <br /><em>05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller</em> <br /><em>06:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)</em> <br /><em>07:05.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)</em> <br /><em>07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)</em> </p>
<p>Чтобы получить расширенную информацию выполните:</p>
<p><em>03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller (prog-if 30 [XHCI])</em> <br /> <em>Subsystem: ASUSTeK Computer Inc. P8B WS Motherboard</em> <br /> <em>Flags: bus master, fast devsel, latency 0, IRQ 46</em> <br /> <em>Memory at fe500000 (64-bit, non-prefetchable) [size=32K]</em> <br /> <em>Capabilities: <access denied></em> <br /> <em>Kernel driver in use: xhci_hcd</em> </p>
<p><em>05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller (prog-if 30 [XHCI])</em> <br /> <em>Subsystem: ASUSTeK Computer Inc. P8B WS Motherboard</em> <br /> <em>Flags: bus master, fast devsel, latency 0, IRQ 50</em> <br /> <em>Memory at fe300000 (64-bit, non-prefetchable) [size=32K]</em> <br /> <em>Capabilities: <access denied></em> <br /> <em>Kernel driver in use: xhci_hcd</em> </p>
<p><em>07:05.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)</em> <br /> <em>Flags: bus master, medium devsel, latency 32, IRQ 20</em> <br /> <em>Memory at fb000000 (32-bit, non-prefetchable) [size=16M]</em> <br /> <em>Capabilities: <access denied></em> <br /> <em>Kernel driver in use: cx8800</em> </p>
<p><em>07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0) (prog-if 10 [OHCI])</em> <br /> <em>Subsystem: ASUSTeK Computer Inc. Motherboard</em> <br /> <em>Flags: bus master, medium devsel, latency 32, IRQ 21</em> <br /> <em>Memory at fc000000 (32-bit, non-prefetchable) [size=2K]</em> <br /> <em>I/O ports at a000 [size=128]</em> <br /> <em>Capabilities: <access denied></em> <br /> <em>Kernel driver in use: firewire_ohci</em> <br />В итоге текста станет намного больше, но и информация про оборудование будет более объемная. Можно даже узнать, например, номер IRQ, на котором висит нужное устройство. Если нужно узнать информацию про конкретное оборудование, например видео карту Nvidia, тогда нужно применить команду поиска с командой grep. В итоге наша команда будет следующей :</p>
<p> <em>lspci | grep NVIDIA</em> </p>
<p>Вывод команды был следующий:</p>
<p><em>01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 440] (rev a1)</em> <br /><em>01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)</em> </p>
<p>Если хотите получить информацию про оборудование в текстовый файл, то выполните команду:</p>
<p>В итоге в вашем Домашнем каталоге появится текстовый файлик lspci.txt</p>
<p>Если нужно получить список всех устройств в системе, в том числе USB и SCSI, конфигурация памяти, узнать тип процессора, то можно воспользоваться программой dmesg. Она выводит список всего оборудования, которое будет обнаружено ядром системы.</p>
<p>Выполните команду в Терминале:</p>
<p>Если выполнить команду:</p>
<p>то список найденного оборудования будет весьма большим. Поэтому для анализа всей информации советую сохранить вывод этой команды в текстовый файл. Для этого выполните команду:</p>
<p> <em>dmesg | less > dmesg.txt</em> </p>
<p>Выходные данные dmesg можно также фильтровать для поиска нужных устройств. Следующая команда покажет список всех устройств USB в системе:</p>
<p> <em>dmesg | grep -i usb</em> </p>
<p>Также можно использовать утилиту lshw. Если не установлена, то выполните команду:</p>
<p> <em>sudo apt-get install lshw</em> </p>
<p>Чтобы ее запустить выполните команду:</p>
<p>Программа выводит структурированный список оборудования вместе с информацией об устройствах. Информация получается весьма емкой и полезный. Часть информации из вывода утилиты:</p>
<p><em>*-cdrom</em> <br /> <em>описание: DVD-RAM writer</em> <br /> <em>продукт: DRW-24B5ST</em> <br /> <em>производитель: ASUS</em> <br /> <em>физический ID: 0.0.0</em> <br /> <em>сведения о шине: scsi@3:0.0.0</em> <br /> <em>логическое имя: /dev/sr1</em> <br /> <em>логическое имя: /media/dm/disk</em> <br /> <em>версия: 1.00</em> <br /> <em>возможности: removable audio cd-r cd-rw dvd dvd-r dvd-ram</em> <br /> <em>конфигурация: ansiversion=5 mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 state=mounted status=ready</em> <br /> <em>*-medium</em> <br /> <em>физический ID: 0</em> <br /> <em>логическое имя: /dev/sr1</em> <br /> <em>логическое имя: /media/dm/disk</em> <br /> <em>конфигурация: mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 state=mounted</em> </p>
<p>Чтобы узнать информацию о процессоре выполните команду:</p>
<p>В моем случае вывод был такой (показана лишь часть текстовой информации):</p>
<p><em>processor : 0</em> <br /><em>vendor_id : AuthenticAMD</em> <br /><em>cpu family : 21</em> <br /><em>model : 1</em> <br /><em>model name : AMD FX(tm)-6100 Six-Core Processor</em> <br /><em>stepping : 2</em> <br /><em>microcode : 0x6000629</em> <br /><em>cpu MHz : 1400.000</em> <br /><em>cache size : 2048 KB</em> <br /><em>physical id : 0</em> <br /><em>siblings : 6</em> <br /><em>core id : 0</em> <br /><em>cpu cores : 3</em> <br /><em>apicid : 16</em> <br /><em>initial apicid : 0</em> <br /><em>fpu : yes</em> <br /><em>fpu_exception : yes</em> <br /><em>cpuid level : 13</em> <br /><em>wp : yes</em> </p>
<p>Чтобы узнать состояние батареи ноутбука нужно выполнить следующую команду:</p>
<p>Чтобы узнать информацию о всех подключенных USB устройствах нужно воспользоваться утилитой lsusb. Выполните команду:</p>
<p><em>Bus 003 Device 004: ID 13fe:4100 Kingston Technology Company Inc.</em> <br /><em>Bus 003 Device 003: ID 125f:c96a A-DATA Technology Co., Ltd. C906 Flash Drive</em> <br /><em>Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</em> <br /><em>Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub</em> <br /><em>Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub</em> <br /><em>Bus 002 Device 004: ID 058f:6361 Alcor Micro Corp. Multimedia Card Reader</em> <br /><em>Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</em> <br /><em>Bus 005 Device 002: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse</em> <br /><em>Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub</em> <br /><em>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</em> <br /><em>Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub</em> <br /><em>Bus 011 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub</em> <br /><em>Bus 010 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc.</em> <br /><em>Bus 010 Device 002: ID 046d:0829 Logitech, Inc.</em> <br /><em>Bus 010 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</em> <br /><em>Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub</em> <br /><em>Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</em> </p>
<p>И напоследок пару утилит для получения информации о жестких дисках. Утилита hdparm регулирует и просматривает параметры жестких дисков с интерфейсом ATA. Она может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.Чтобы узнать информацию о подключенных жестких дисках выполните команду:</p>
<p> <em>sudo hdparm -I /dev/sda</em> </p>
<p>Данной командой мы узнаем информацию о вашем винчестере /dev/sda. Привожу часть вывода:</p>
<p> <em>sudo apt-get install hdparm</em> </p>
<p>Далее поможет программа fdisk. Это семейство утилит для работы с разделами жесткого диска. Выполните команду:</p>
<p>В итоге мы увидим список всех подключенных жестких дисков, флешек и карт памяти. Также мы увидим сколько разделов создано на диске.</p>
<p><em>Диск /dev/sda: 640.1 Гб, 640135028736 байт</em> <br /><em>255 головок, 63 секторов/треков, 77825 цилиндров, всего 1250263728 секторов</em> <br /><em>Units = секторы of 1 * 512 = 512 bytes</em> <br /><em>Размер сектора (логического/физического): 512 байт / 512 байт</em> <br /><em>I/O size (minimum/optimal): 512 bytes / 512 bytes</em> <br /><em>Идентификатор диска: 0x0009d6f7</em> </p>
<p><em>Устр-во Загр Начало Конец Блоки Id Система</em> <br /><em>/dev/sda1 * 2048 61441501 30719727 83 Linux</em> <br /><em>/dev/sda2 61442048 73730031 6143992 82 Linux своп / Solaris</em> <br /><em>/dev/sda3 73730048 1250263039 588266496 83 Linux</em> </p>
<p>На этом все и удачи всем!</p>
<p>Красавчик ÁKOS из популярной венгерской группы Bonanza Banzai</p>
<p><iframe src=

UsbRip tool Linux

В этой статье рассказывается об инструменте Usbrip, который позволяет автоматизировать отслеживание истории использования USB-устройств в системе.

Вступление

В настоящее время широко распространены USB-устройства: флэш-накопители, внешние накопители, мыши, клавиатуры, принтеры, зарядные устройства для мобильных телефонов. Как и любые другие события в системе, история USB-подключений также отслеживается ОС Linux. Каждый раз, когда вы подключаете или отключаете USB-устройство, соответствующая информация заносится в системные лог файлы:

  • /var/log/dmesg
  • /var/log/daemon.log
  • /var/log/kern.log
  • /var/log/syslog
  • /var/log/messages

Вы можете вручную просмотреть эти файлы, чтобы узнать историю USB-подключений, или использовать инструмент, который позволит автоматизировать этот процесс представляя информацию в удобном формате. Одним из таких инструментов для отслеживания истории событий USB является утилита Usbrip.

О Usbrip

Программа usbrip отслеживает характеристики USB-устройств и отображает их в следующих столбцах:

  • Connected (Дата и время подключения)
  • Host (Хост)
  • VID (vendor ID) (идентификатор производителя)
  • PID (product ID) (идентификатор продукта)
  • Product (Имя устройства)
  • Manufacturer (Производитель)
  • Serial Number (Серийный номер)
  • Port (Порт)
  • Disconnected (Дата и время отключения)

Возможности Usbrip

Usbrip имеет несколько интересных функций. Отметим следующие три примечательные особенности.

1. Поиск информации об использовании в системе несанкционированных USB устройств

Это основная цель инструмента Usbrip. Используя инструмент usbrip, мы можем доказать, что USB-устройство было подключено к определенной системе Linux определенным пользователем в течение определенного промежутка времени. В общем, мы можем использовать Usbrip в любых случаях, когда задействованы USB-устройства.

Usbrip позволяет экспортировать полученные данные по USB-соединениям в JSON файл. Почему используется именно JSON формат? Потому что он позволяет легко найти любые «несанкционированные события». Например, например можно создать файл, скажем auth.json , и сохранить в нем список авторизованных или доверенных USB-устройств.

Этот auth.json файл можно использовать, чтобы выяснить, какие USB-устройства были подключены и являются ли они авторизованными устройствами. Таким образом можно узнать, скопировал ли какой-либо пользователь что-то из вашей системы без вашего разрешения.

Обратите внимание, что если вы устанавливаете usbrip с помощью сценария установщика, auth.json файл будет автоматически создан в папке /var/opt/usbrip/trusted/, то есть в том же месте куда устанавливается программа. Однако есть возможность выбрать произвольный каталог размещения для auth.json

2. Отображение подробных характеристик USB устройств

Если требуется узнать подробные технические характеристики USB-устройств, это можно сделать зная VID и PID устройства. Usbbrip черпает подробную информацию о поставщиках, устройствах и производимых моделях из usb.ids из публичной базы данных.

3. Резервное копирование событий USB

Давайте посмотрим, как установить и использовать Usbrip в Linux для сбора событий USB-подключения.

Установка Usbrip в Linux

Поскольку Usbrip написан на Python, мы можем установить его с помощью диспетчера пакетов Pip.

Чтобы получить полный функционал, вам необходимо установить usbrip, используя его скрипт установщика под названием install.sh .

Во-первых, убедитесь, что вы установили необходимые зависимые пакеты:

В Debian, Ubuntu и производных системах вы можете установить их следующей командой:

Теперь приступим к установке самой программы. Загрузите репозиторий usbrip:

Приведенная выше команда клонирует содержимое репозитория usbrip и сохраняет его в каталоге с именем «usbrip» в текущем каталоге.

Переходим в каталог usbrip:

Делаем скрипт установщика исполняемым:

И, наконец, запускаем установщик при помощи команды:

Здесь мы использовали -s флаг для включения модуля хранения. Это не только установит программу usbrip, но и создаст список доверенных USB-устройств, историю и также базу несанкционированных событий. В ходе установки устанавливается секретный пароль. Он будет использован при дальнейшем использовании программы.

После завершения установки можно удалить клонированный каталог:

Как отобразить историю событий USB-устройств с помощью Usbrip в Linux

Перед тем, как начать пользование программой, давайте ознакомимся с перечнем общих опций и доступных флагов.

1. Получение помощи

Чтобы просмотреть раздел справки программы Usbrip, просто запустите:

Результат данной команды:

Как вы можете увидеть, есть четыре основные команды, а именно banner, events, storage и ids.

Чтобы просмотреть список возможностей данных команд, запустите:

Чтобы вывести список всех параметров, относящихся к определенной команде, например events, запустите:

2. Просмотр истории подключений USB-устройств.

Чтобы показать историю подключений USB-устройств, запустите:

Вам будет предложено отобразить историю событий USB в консоли или сохранить в файле JSON. Если вы хотите отобразить результат, просто нажмите ENTER (по умолчанию) или введите цифру 2, чтобы сохранить его в файле JSON.

Выберем вывод по умолчанию и получаем следующее:

Отображение истории событий USB-устройств с помощью Usbrip

По умолчанию Usbrip отображает результат табличном формате. Если окно терминала слишком мало для правильного отображения таблицы, вывод отображается в формате списка. Если вы хотите, чтобы Usbrip все равно отображал результат в формате таблицы добавьте ключ -t:

3. Как сохранить историю USB событий в файле

Вместо того, чтобы отображать историю событий в стандартном выводе, мы можем сохранить ее в файл в формате JSON.

Для этого запустите следующую команду:

Введите 2, когда вам будет предложено выбрать, как вы хотите сохранить вывод. Вам будет предложено ввести расположение и имя выходного файла. Просто введите местоположение по вашему выбору, а также можете просто нажать ENTER, чтобы сохранить вывод в файл с именем history.json в $HOME директорию.

Вы можете просмотреть содержимое полученного файла использовав команду:

4. Отображение истории событий внешних USB-устройств

Отображение истории внешних USB-устройств

5. Отображение истории USB событий за определенный период времени

6. Отображение информации о конкретном USB устройстве

Возможно, вам будет интересно просмотреть события USB-подключений по определенному устройству. Следующая команда предоставит вам короткую информацию с перечнем устройств, которая содержит только колонки «Connected», «Disconnected», «Serial» и «Product»:

Отображение краткой информации по USB-устройствам с помощью usbrip

Также здесь использована опция -n 20, для ограничения количества отображаемых записей.

7. Поиск информации о конкретных USB-устройствах

В следующем примере отобразим 15 недавних событий моего беспроводного приемника Logitech. Я также перечислил детали только в 4 столбцах, а именно: «Connected», «Disconnected», «Serial» и «Product».

Просмотр истории событий определенного USB-устройства

Точно так же вы можете фильтровать события USB, объединив множество полей, таких как PID, VID, порт, имя хоста, серийный номер и т. д.

8. Создание списка доверенных USB-устройств

Чтобы создать список авторизованных USB-устройств, используйте опцию authgen:

Эта команда генерирует список доверенных USB-устройств в виде файла JSON с именем auth.json содержащем информацию о первых 10 устройствах, подключенных с 29 марта 2021 года. Этот файл будет содержать сведения об атрибутах VID и PID.

9. Поиск нарушений безопасности

Если вы хотите проверить наличие несанкционированного доступа к USB, просто найдите auth.json файл, который был создан ранее:

Вы также можете фильтровать вывод по своему вкусу.

Пример:

Эта команда будет искать в истории событий внешних USB-устройств нарушения на основе списка доверенных USB-устройств (

/auth.json) по атрибуту «PID», ограничивать результирующие события теми, у которых в качестве имени хоста указано «ostechnix», «Logitech» в качестве производителя и «0123456789» в качестве серийного номера. Выводимый результат будет представлен в форме таблицы со столбцами «Connected» и «Disconnected».

Если USB-устройство отображается в истории, но не в auth.json файле, мы можем сказать, что произошло событие нарушения политики безопасности

Дополнительные сведения об использовании Usbrip можно найти на странице проекта в GitHub.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: