Давай разберёмся, как можно использовать бинарный анализ в Linux для выявления уязвимостей. Покажу на примере анализа подозрительного бинарного файла. Это практический случай, который поможет тебе углубиться в суть.
### Что такое бинарник?
Бинарный файл – это программа, которая уже скомпилирована в машинный код и готова к выполнению системой. В отличие от текстовых файлов или скриптов, бинарники нельзя прочитать обычными средствами — для этого нужны специальные инструменты анализа, чтобы понять, как они работают.
Пример бинарника: любая программа с расширением
.exe на Windows или ELF на Linux — такие файлы напрямую выполняются процессором.### Шаги бинарного анализа на практике
#### 1. Начинаем с общей информации о бинарнике
Получаем базовые сведения:
file suspicious_file
Вывод покажет архитектуру, тип файла и информацию о компиляции. Например:
suspicious_file: ELF 64-bit LSB executable, x86-64, dynamically linked, ...
#### 2. Извлекаем строки из файла
Иногда в бинарнике могут быть скрыты полезные подсказки: строки, команды или даже ключи API.
strings suspicious_file | grep "password"
Вывод:
Default password: admin123
Вуаля! Простой
strings уже помог нам найти первую уязвимость.#### 3. Декомпиляция и разбор функций
Для более глубокого анализа используем Ghidra или Radare2:
- Открываем файл в Ghidra:
bash
ghidraRun
Импортируем файл и видим список функций. Поищи функции с названиями
check_auth или login, чтобы понять, как происходит проверка доступа.#### 4. Анализ системных вызовов
Запускаем бинарник в изолированной среде с
strace:strace ./suspicious_file
Вывод покажет системные вызовы. Например:
open("/etc/passwd", O_RDONLY) = 3
read(3, "root:x:0:0:root:/root:/bin/bash\n", 40) = 40
Это может дать понять, к каким файлам или ресурсам программа обращается.
#### 5. Динамический анализ
Запускаем в
gdb для отладки:gdb suspicious_file
Ставим точку останова на подозрительной функции:
break main
run
Шаг за шагом следим за выполнением программы и ищем уязвимые места.
### Что мы нашли?
- Утечка информации: статическая строка с паролем.
- Обращение к системным файлам без проверки прав.
- Логика проверки аутентификации, уязвимая к подмене данных.
### Зачем тебе это?
Такие техники помогают находить уязвимости в стороннем софте или проверять безопасность собственных программ. Используя Ghidra, Radare2 или strace, ты можешь буквально вскрыть логику работы любого бинарника.
А завтра обсудим, как настроить cron для автоматизации задач! Пока что поделись своими любимыми инструментами для анализа бинарников. Что ты используешь в своей практике?
____________________
Дополнительный материал:
🧠 - Linux команды: file, mv, cp, rmdir, ps, kill 9, find, sort, , clear
🧠 - Linux команды: mv, настройка Терминала
🧠 - Linux команды: cmp, df, apt get install, remove, update, upgrade, chmod
#LinuxJournal @LinuxSkill