- Формирует строку регистрации для binfmt_misc с сигнатурой бинарника, путем к интерпретатору и флагом C (credentials). Флаг заставляет ядро использовать права исходного SUID-бинарника, а не права интерпретатора.
- Выполняет команду `echo <registration_string> > /proc/sys/fs/binfmt_misc/register`, связывая запуск данного SUID-бинарника с вызовом интерпретатора.
- При запуске `chfn` ядро вызывает интерпретатор с правами `root`.
Техника простая и тихая. Она обходит стандартное сканирование SUID-файлов, поскольку у самого интерпретатора нет SUID-бита, а легитимный бинарник используется лишь как прокси. Детектировать можно только мониторингом регистрации обработчиков в `/proc/sys/fs/binfmt_misc` и проверкой путей интерпретаторов.
Большой минус в том, что обработчики `binfmt_misc` не сохраняются после перезагрузки. Так что нужно подумать над дополнительным механизмом персистентности.
Подробности: https://dfir.ch/posts/today_i_learned_binfmt_misc/