Incident Forensic Response In Terminal script for linux
Статья: https://xakep.ru/2023/05/03/linux-incident-response/
Скрипт для сбора различной информации на linux, которая может быть полезна при расследовании инцидентов информационной безопасности, триаже и анализе хостов. Тестировался на Debian-like дистрибутивах типа Kali, Astra. Могут встречаться баги, в системе мы ничего не меняем (предполагаем работу с флешки), формируем папку с результатми выполнения команд (об этом ниже).
Перед запуском:
- Посмотри код. Скорректируй команды с тегом #!
- Задай в начале файла для поиска - IP, термины, файловые IOC, временной диапазон предполагаемого инцидента
- При необходимости - удали или отредактируй блок с тематическим файлом junk_info
Запуск (предпочтительно от рута\sudo): chmod a+x ./ifrit.sh && ./ifrit.sh
На выхлопе получаем директорию вида
- <имя_хоста><юзер><дата и время>
в которой есть:
- директория\архив artifacts\artifacts.tar.gz
с собранными файлами и артефактами (например, браузерными), а также тематические файлы:
activity_info - пользовательская активность
apps_file - приложения, история
console_log - лог работы скрипта
cronconfigs_info - запланированные задачи
devices_info - инфа по железу
env_profile_info - инфа по конфигам профиля
history_info - ключевые действия на хосте
host_info - основной файл с базовой информацией о хосте
ioc_word_info - список файлов и строк из них, где встречаются искомые термины
IP-search_info - файл с результатами грепа IP-адресов в файлах
junk_info - мегомусорный файл с результатами выполнения всех команд, которые были пожеланы быть выполнеными
lsof_file - файл для хранения вывода lsof
network_add_info - результаты грепа логов (сетевые артефакты)
network_info - инфа по сетевым конфигам
pstree_file - гламурный вывод дерева процессов
root_cfg - текстовка конфигураций профиля рута
services_configs - конфиги всех служб
services_info - инфа по службам
usb_list_file - история подключения USB-носителей
users_files - инфа по пользовательским файлам, мини-листинг файловой системы
users_files_timeline - священный таймлайн изменения файлов в пользовательских каталогах
usrs_cfgs - текстовка конфигураций профилей пользователей
virt_apps_file - инфа по виртуалкам или вайнам, альтернативным ОС в системе
TODO (updated 27.05.2023):
Сделать бест практис по оформлению текущего кода с >> >> >> в вид {}>>.Задать переменные для IOC типа поисковых терминов, IP.Задать подсчёт контрольной суммы самого файла после блока определений. Зачем? Потому что захотел.- Сделать смешные и понятные пояснения.
- Сделать readme на английском + markdown.
- В описании добавить картинок.
- Сделать комментарии на едином языке и оформлении (русская версия, английский).
- Сделать автоматическую проверку на аномалии и релевантную инфу (греп грепнутых результатов?).
Цветовые алёрты в консоли.- Убрать закладку для тех, кто не читает то, что запускает. Шутка. Просто об этом подумать и помнить.
- Чистка кода (научиться не говнокодить).
- Оптимизировать записываемые файлы (структура, убрать запись эхов без результативных команд, возможно мини-функции).
- Подумать о том, что вписывая выполняемые эхо-команды в текстовые файлы, можно сформировать эмулятор терминала для игрищ и CTF\digital forensic.
Переделать множественные cat'ы, чтобы выводились названия и пути файловДобавить вывод списка запущенных процессов с удалённым исполняемым файлом (т.е. в памяти)В выводе финальной директории указывать абсолютный путь