/ifrit

Incident Forensic Response In Terminal script for linux

Primary LanguageShell

IFRIT

Incident Forensic Response In Terminal script for linux

IFRIT. Incident Forensic Response In Terminal =)

Статья: https://xakep.ru/2023/05/03/linux-incident-response/

Скрипт для сбора различной информации на linux, которая может быть полезна при расследовании инцидентов информационной безопасности, триаже и анализе хостов. Тестировался на Debian-like дистрибутивах типа Kali, Astra. Могут встречаться баги, в системе мы ничего не меняем (предполагаем работу с флешки), формируем папку с результатми выполнения команд (об этом ниже).

Перед запуском:

  1. Посмотри код. Скорректируй команды с тегом #!
  2. Задай в начале файла для поиска - IP, термины, файловые IOC, временной диапазон предполагаемого инцидента
  3. При необходимости - удали или отредактируй блок с тематическим файлом 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):

  1. Сделать бест практис по оформлению текущего кода с >> >> >> в вид {}>>.
  2. Задать переменные для IOC типа поисковых терминов, IP.
  3. Задать подсчёт контрольной суммы самого файла после блока определений. Зачем? Потому что захотел.
  4. Сделать смешные и понятные пояснения.
  5. Сделать readme на английском + markdown.
  6. В описании добавить картинок.
  7. Сделать комментарии на едином языке и оформлении (русская версия, английский).
  8. Сделать автоматическую проверку на аномалии и релевантную инфу (греп грепнутых результатов?).
  9. Цветовые алёрты в консоли.
  10. Убрать закладку для тех, кто не читает то, что запускает. Шутка. Просто об этом подумать и помнить.
  11. Чистка кода (научиться не говнокодить).
  12. Оптимизировать записываемые файлы (структура, убрать запись эхов без результативных команд, возможно мини-функции).
  13. Подумать о том, что вписывая выполняемые эхо-команды в текстовые файлы, можно сформировать эмулятор терминала для игрищ и CTF\digital forensic.
  14. Переделать множественные cat'ы, чтобы выводились названия и пути файлов
  15. Добавить вывод списка запущенных процессов с удалённым исполняемым файлом (т.е. в памяти)
  16. В выводе финальной директории указывать абсолютный путь