- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- usbrip
- Описание usbrip
- Справка по usbrip
- Справка по команде events
- Операционные системы Astra Linux
- Linux-форензика в лице трекинга истории подключений USB-устройств
- Скриншоты
- Описание
- Справка
- Синтаксис
- Опции
- Примеры использования
- Ссылки и постскриптум
- Usb rip astra 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
Данная команда позволяет работать с событиями, у неё четыре подкоманды:
Источник
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
- реализации и совершенствования функциональных возможностей;
- поддержки современного оборудования;
- обеспечения соответствия актуальным требованиям безопасности информации;
- повышения удобства использования, управления компонентами и другие.
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
- инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
- отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
- обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Источник
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 (сам в шоке, если честно).
Источник
Usb rip astra linux
usbrip is a small piece of software which analyzes Linux log data: journalctl output or contents of /var/log/syslog* (or /var/log/messages* ) files. Based on the collected data usbrip can build USB event history tables with the following columns:
- Connected (date & time)
- Host
- VID (vendor ID)
- PID (product ID)
- Product
- Manufacturer
- Serial Number
- Port
- Disconnected (date & time)
Besides, it also can:
- Export collected data as a JSON dump for later use.
- Generate a list of authorized (trusted) USB devices as a JSON file (call it auth.json).
- Search for «violation events» based on auth.json: discover USB devices that do appear in history and do NOT appear in the auth.json file.
- *when installed with -s flag* Create protected storages (7-Zip archives) to automatically backup and accumulate USB events with the help of cron scheduler.
- Search additional details about a specific USB device based on its VID and/or PID.
Way 1. Install with pip:
Way 2. Install bleeding-edge with install.sh (recommended, extra features available):
System Log Structure
usbrip supports two types of timestamps to parse within system log files:
- Non-modified – standard syslog structure for GNU/Linux ( «%b %d %H:%M:%S» , ex. «Jan 1 00:00:00» ). This type of timestamp does not provide the information about the year.
- Modified (recommended) – better syslog structure which provides high precision timestamps including years ( «%Y-%m-%dT%H:%M:%S.%f%z» , ex. «1970-01-01T00:00:00.000000-00:00» ).
If you do have journalctl installed, then there’s nothing to worry about as it can convert timestamps on the fly. Otherwise, the desired syslog structure can be achieved by setting RSYSLOG_FileFormat format in rsyslog configuration.
- Comment out the following line in /etc/rsyslog.conf :
- Add custom .conf file for usbrip:
- *optional* Delete existing log files:
Firstly, usbrip will check if there is a chance to dump system events using journalctl as the most portable option. If not – it will search for and parse /var/log/syslog* or /var/log/messages* system log files.
- python3.6 interpreter (or newer)
- python3-venv
- p7zip-full (used by storage module)
For simplicity, lets agree that all the commands where
/usbrip$ prefix is appeared are executed in the
/usbrip directory which is created as a result of a git clone:
Besides installing with pip, usbrip can also be installed with custom installers/install.sh script.
When using install.sh some extra features become available:
- The virtual environment is created automatically.
- You can use the storage module – set a cron job to backup USB events on a schedule (example of a cron job can be found in usbrip/cron/usbrip.cron ).
⚠️ Warning: if you are using cron scheduling, you want to configure the crontab with sudo crontab -e in order to force the storage update submodule run as root. The storage passwords are kept in /var/opt/usbrip/usbrip.ini and accessible by root only by default.
To install usbrip with install.sh use:
- When -l switch is enabled, Python dependencies are resolved from local .tar packages (3rdPartyTools directory) instead of PyPI.
- When -s switch is enabled, not only the usbrip project is installed but also the list of trusted USB devices, history and violations storages are created.
After the installation completes feel free to remove the
When installed with install.sh , usbrip uses the following paths:
- /opt/usbrip/ – project’s main directory.
- /var/opt/usbrip/log/ – usbrip cron logs.
- /var/opt/usbrip/storage/ – USB event storages ( history.7z and violations.7z , created during the installation process).
- /var/opt/usbrip/trusted/ – lists of trusted USB devices ( auth.json , created during the installation process).
- /var/opt/usbrip/usbrip.ini – usbrip configuration file (contains passwords for 7-Zip storages).
- /usr/local/bin/usbrip – symlink to the /opt/usbrip/venv/bin/usbrip script.
Cron jobs can be set as follows:
/usbrip$ cat usbrip/cron/usbrip.cron | tee -a tmpcron
/usbrip$ sudo crontab tmpcron
/usbrip$ rm tmpcron «>
The installers/uninstall.sh script removes usbrip and all the installation artifacts from your system.
To uninstall usbrip use:
- When -a switch is enabled, not only the usbrip project directory is deleted but also all the storages and usbrip logs are deleted too.
Don’t forget to remove the cron job if you had set up one.
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [-c [ . ]] [-f [ . ]] [-q] [—debug] Get USB event history.
$ usbrip events open [-t | -l] [-e] [-n ] [-d [ . ]] [—host [ . ]] [—vid [ . ]] [—pid
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [-c [ . ]] [-q] [—debug] Open USB event dump.
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [-f [ . ]] [-q] [—debug] Generate a list of trusted (authorized) USB devices.
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [-c [ . ]] [-f [ . ]] [-q] [—debug] Get USB violation events based on the list of trusted devices. # ———- STORAGE ———-
$ sudo usbrip storage list [-q] [—debug] List contents of the selected storage. STORAGE_TYPE is either «history» or «violations».
$ sudo usbrip storage open [-t | -l] [-e] [-n ] [-d [ . ]] [—host [ . ]] [—vid [ . ]] [—pid
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [-c [ . ]] [-q] [—debug] Open selected storage. Behaves similarly to the EVENTS OPEN submodule.
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [—lvl ] [-q] [—debug] Update storage — add USB events to the existing storage. COMPRESSION_LEVEL is a number in [0..9].
. ]] [—manufact [ . ]] [—serial [ . ]] [—port
. ]] [—lvl ] [-q] [—debug] Create storage — create 7-Zip archive and add USB events to it according to the selected options.
$ sudo usbrip storage passwd [—lvl ] [-q] [—debug] Change password of the existing storage. # ———- IDs ———-
$ usbrip ids search [—vid ] [—pid
] [—offline] [-q] [—debug] Get extra details about a specific USB device by its and/or
from the USB ID database.
$ usbrip ids download [-q] [—debug] Update (download) the USB ID database. «>
To get a list of module names use:
To get a list of submodule names for a specific module use:
To get a list of all switches for a specific submodule use:
Show the event history of all USB devices, suppressing banner output, info messages and user interaction ( -q , —quiet ), represented as a list ( -l , —list ) with latest 100 entries ( -n NUMBER , —number NUMBER ):
Show the event history of the external USB devices ( -e , —external , which were actually disconnected) represented as a table ( -t , —table ) containing Connected, VID, PID, Disconnected and Serial Number columns ( -c COLUMN [COLUMN . ] , —column COLUMN [COLUMN . ] ) filtered by date ( -d DATE [DATE . ] , —date DATE [DATE . ] ) and PID ( —pid
. ] ) with logs taken from outer files ( -f FILE [FILE . ] , —file FILE [FILE . ] ):
👽 Note: there is a thing to remember when working with filters. There are 4 types of filtering available: only external USB events (devices that can be pulled out easily, -e ), by date ( -d ), by fields ( —host , —vid , —pid , —product , —manufact , —serial , —port ) and by number of entries you get as the output ( -n ). When applying different filters simultaneously, you will get the following behavior: firstly, external and by date filters are applied, then usbrip will search for specified field values in the intersection of the last two filters, and in the end it will cut the output to the number you defined with the -n option. So think of it as an intersection for external and by date filtering and union for by fields filtering. Hope it makes sense.
Build the event history of all USB devices and redirect the output to a file for further analysis. When the output stream is NOT terminal stdout ( | or > for example) there would be no ANSI escape characters (color) in the output so feel free to use it that way. Also notice that usbrip uses some UNICODE symbols so it would be nice to convert the resulting file to UTF-8 encoding (with encov for example) as well as change newline characters to Windows style for portability (with awk for example):
👽 Note: you can always get rid of the escape characters by yourself even if you have already got the output to stdout. To do that just copy the output data to usbrip.out and apply one more awk instruction:
Generate a list of trusted USB devices as a JSON file ( trusted/auth.json ) with VID and PID attributes containing the first three devices connected on November 30, 1984:
⚠️ Warning: there are cases when different USB flash drives might have identical serial numbers. This could happen as a result of a manufacturing error or just some black hats were able to rewrite the drive’s memory chip which turned out to be non-one-time programmable and so on. Anyways, «no system is safe». usbrip does not handle such cases in a smart way so far, namely it will treat a pair of devices with identical SNs (if there exists one) as the same device regarding to the trusted device list and genauth module.
Search the event history of the external USB devices for violations based on the list of trusted USB devices ( trusted/auth.json ) by PID attribute, restrict resulting events to those which have Bob-PC as a hostname, EvilUSBManufacturer as a manufacturer, 0123456789 as a serial number and represent the output as a table with Connected, VID and PID columns:
Search for details about a specific USB device by its VID ( —vid VID ) and PID ( —pid PID ):
Источник