Неожиданный способ взломать систему: что такое бинарный анализ в Linux?Давай разберёмся, как можно использовать бинарный анализ в 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