LazyAlpaka/ifrit
GitHub: LazyAlpaka/ifrit
IFRIT 是一个用于 Linux 终端的事件取证响应脚本,通过一次性执行快速采集主机安全调查所需的各类系统和日志信息并分类归档。
Stars: 7 | Forks: 4
# IFRIT
用于 linux 的终端事件取证响应脚本
## 更新于 13.06.2026
进行了期待已久的重构(感谢 LLM)。\
在脚本开头添加了全局标志。\
改进了运行表现和稳定性。\
添加了新的检查项,包括 docker 分析、典型的持久化驻留点(+systemd timers/generators)。\
添加了从 `/var/run/log` 收集日志的功能。\
添加了几个有趣的 `systemctl*` 系列命令。
# IFRIT. Incident Forensic Response In Terminal =)
文章:
这是一个用于在 linux 上收集各种信息的脚本,这些信息在调查网络安全事件、进行分流和主机分析时非常有用。\
它与类似的工具(UAC、CatScale、bizone 等)的主要区别在于稳定性更高,且在执行过程中发生卡顿的情况要少得多。\
已在 Debian 系发行版(如 Kali、Astra、Ubuntu (WSL))上进行了测试。可能会遇到一些 bug,在未经命令指示的情况下,我们不会对系统进行任何更改(假定是通过 U 盘运行的),我们将生成一个包含命令执行结果的文件夹(详见下文)。
运行前:
1. 查看代码。调整带有 #! 标签的命令。
2. 在文件开头设置搜索标志 - IP、术语、文件 IOC 以及假定事件的时间范围。
运行(建议以 root\sudo 权限运行):
```
chmod a+x ./ifrit.sh && ./ifrit.sh
```
运行完成后,会在脚本旁边生成一个类似以下的压缩包
```
<имя_хоста>_<юзер>_<дата и время>.tar.gz
```
其中包含一个名为 `artifacts\artifacts.tar.gz` 的归档文件,里面是经过分流的数据 - 收集到的文件和 artifacts(例如浏览器的 artifacts),以及以下分类文件:
```
activity_info - пользовательская активность
apps_file - приложения, история
console_log - лог работы скрипта
cronconfigs_info - запланированные задачи
devices_info - инфа по железу
dmesg - вывод dmesg
docker_stats - краткая статистика по docker
dpkg_status - отдельная выгрузка статуса dpkg
env_profile_info - инфа по конфигам профиля
history_info - ключевые действия на хосте
host_info - основной файл с базовой информацией о хосте
int_files_info - результаты поиска изменённых файлов за временной промежуток
ioc_word_info - список файлов и строк из них, где встречаются искомые термины
ip_search_info - файл с результатами грепа IP-адресов в файлах
journalctlq - выгрузка journalctl
junk_info - мегомусорный файл с результатами выполнения всех команд, которые были пожеланы быть выполнеными
kernel_params - параметры ядра и модули
lsof_file - файл для хранения вывода lsof
network_add_info - результаты грепа логов (сетевые артефакты)
network_info - инфа по сетевым конфигам
persistence_check - выгрузки конфигов на популярные места для закрепления от популярного ИБ-вендора
pstree_file - гламурный вывод дерева процессов
rc_scripts - листинг скриптов из автозаруска в /etc/rc*
root_cfg - текстовка конфигураций профиля рута
secur_cfg - проверка некоторых конфигов по безопасности (аудит, отправка логов, SELinux, AppArmor)
services_configs - конфиги всех служб
services_info - инфа по службам
susp_chk - проверка на некоторые очень подозрительные техники атакующих в системе
systemd_timers_gens - конфигурации таймеров и генераторов systemd
systemd_tree - результат построения дерева зависимостей systemctl
systemd_units - конфигурация всех служб
usb_list_file - история подключения USB-носителей
users_cfgs - текстовка конфигураций профилей пользователей
users_files - инфа по пользовательским файлам, мини-листинг файловой системы
users_files_timeline - священный таймлайн изменения файлов в пользовательских каталогах
virt_apps_file - инфа по виртуалкам или вайнам, альтернативным ОС в системе
```
TODO(更新于 ~~27.05.2023~~ ~~19.05.2024~~ 09.06.2026):
1. ~~按照将当前带有 >> >> >> 的代码规范重构为 {}>> 的形式。~~
2. ~~为类似搜索词、IP 的 IOC 设置变量。~~
3. ~~在定义块之后添加文件本身的校验和计算。为什么?因为想这么做。~~
4. ~~编写有趣且易于理解的说明。~~
5. 编写英文 readme + markdown。
6. 在描述中添加图片。
7. 使用统一的语言和格式编写注释(俄语版本、英语)。
8. 实现对异常和相关信息的自动检查(对搜索结果再进行 grep?)。
9. ~~在控制台中使用彩色警报。~~
10. 为那些不阅读代码就直接运行的人留下后门。开玩笑的。只需要思考并记住这一点。
11. ~~清理代码(学习不写烂代码)。~~
12. ~~优化记录的文件(结构,移除没有实际结果的 echo 记录,可能是微型函数)。~~
13. 考虑到如果在文本文件中写入正在执行的 echo 命令,可以为演练和 CTF\digital forensic 构建一个终端模拟器。
14. ~~重构多个 cat 命令,以便输出文件名和路径~~
15. ~~添加已删除可执行文件(即在内存中)的运行进程列表输出~~
16. ~~在输出最终目录时显示绝对路径~~
17. ~~重构代码,重新审视分类文件及其组合方式~~
18. ~~统一输出格式,例如单行输出或使用输出函数~~
标签:Cutter, Triage, 安全, 库, 应急响应, 应用安全, 数字取证, 自动化脚本, 超时处理, 运维