
Инструмент для извлечения информации из только что запущенных процессов
Я написал это ещё в колледже
Ориентирован на серверы с полученным root-доступом, читает память из системных вызовов sshd и sudo, обрабатывающих аутентификацию по паролю. Не записывает никаких данных в память отслеживаемых процессов. Порождает новый процесс для каждой выполняемой команды sshd и sudo.
Прослушивает событие proc с помощью netlink-сокетов, чтобы получить процессы-кандидаты для трассировки. При получении процесса sshd или sudo подключается ptrace и трассируются системные вызовы read и write, извлекая строки, связанные с аутентификацией по паролю.
Мне не очень нравится решение с бэкдором в openssh или установкой модуля ядра на целевых серверах, поэтому я сделал это.

make
./3snake -h
./3snake
Запуск в текущем терминале
./3snake
Демонизация и вывод в файл
./3snake -d -o "/tmp/output_file.txt"
Находится в config.h
passwdLinux, включённый ptrace, смонтированная файловая система /proc
| Возможности | X |
|---|---|
| Аутентификация по паролю на сервере OpenSSH | X |
| sudo | X |
| su | X |
| извлечение строк по regex из процессов | ~ |
| ssh-клиент | X |
MIT и «Написано в колледже»