
🔪 Сканирование памяти на предмет секретов и не только. Возможно, со временем станет полноценным набором инструментов для /proc.
Dismember — это набор инструментов командной строки для Linux, который можно использовать для сканирования памяти всех процессов (или отдельных) на предмет распространённых секретов и пользовательских регулярных выражений, среди прочего.
В конечном итоге он станет полноценным набором инструментов /proc.

Используя команду grep, он может сопоставлять регулярное выражение по всей памяти всех (доступных) процессов. Это может быть использовано для поиска конфиденциальных данных в памяти, идентификации процесса по чему-то, содержащемуся в его памяти, или для допроса памяти процесса на предмет интересной информации.
Существует множество встроенных шаблонов, включённых через команду scan, которая эффективно работает как сканер секретов по памяти вашей машины.
Dismember можно использовать для поиска в памяти всех процессов, к которым у него есть доступ, поэтому запуск от root является наиболее эффективным методом.
Также включены команды для вывода списка процессов, изучения состояния процессов и связанной информации, построения деревьев процессов и многого другого...
| Команда | Описание |
|---|---|
grep | Искать в памяти процесса заданную строку или регулярное выражение |
scan | Искать в памяти процесса набор предопределённых шаблонов секретов |
Загрузите бинарный файл из последнего релиза и добавьте его в свой PATH.
# search memory owned by process 1234
dismember grep -p 1234 'the password is .*'
# search memory owned by processes named "nginx" for a login form submission
dismember grep -n nginx 'username=liamg&password=.*'
# find a github api token across all processes
dismember grep 'gh[pousr]_[0-9a-zA-Z]{36}'
# search all accessible memory for common secrets
dismember scan
Разве вся эта информация не находится просто в
/proc?
В значительной степени. Dismember в основном просто читает и отображает это. Если вы можете обойтись командой grep whatever /proc/[pid]/blah — дерзайте! Я создал это в качестве образовательного опыта, потому что в одну ночь не мог уснуть и допоздна читал man-страницы proc (я веду чрезвычайно рок-н-рольный образ жизни). Это не замена существующим инструментам, но, возможно, может их дополнить.
Вы знаете, насколько ужасными кажутся некоторые из этих команд, если их читать вне контекста?
| Команда | Описание |
|---|
files | Показать список файлов, к которым обращается процесс |
find | Найти PID по имени процесса. Если совпадает несколько процессов, возвращается первый. |
info | Показать информацию о процессе |
kernel | Показать информацию о ядре |
kill | Завершить процесс (или процессы) с помощью SIGKILL |
list | Вывести список всех процессов, доступных в данный момент в системе |
resume | Возобновить приостановленный процесс с помощью SIGCONT |
suspend | Приостановить процесс с помощью SIGSTOP (используйте 'dismember resume' для выхода из приостановки) |
tree | Показать древовидную диаграмму процесса и всех дочерних процессов (по умолчанию PID 1). |