🎥 Видеозапись этого урока, к сожалению, утеряна. Предлагаем посмотреть видеозапись этого же урока в прошлогоднем курсе в Telegram-канале, тред "Записи".
1. Введение: Почему Linux?
В мире информационной безопасности Linux является стандартом. Большинство серверов, которые вам предстоит взламывать, работают на Linux. Большинство инструментов для атаки и анализа (Kali Linux, Parrot OS) также построены на базе Linux.
В отличие от Windows, где пользователь взаимодействует с графическим интерфейсом (GUI), в Linux сила заключается в Terminal (Консоли). Это прямой диалог с операционной системой.
2. Базовая навигация и управление файлами
В CTF ваша первая задача часто звучит так: «Вы попали на сервер, найдите файл flag.txt». Для этого нужно уметь перемещаться по директориям.
Основные команды
Команда | Описание | Пример использования |
| Print Working Directory. Где я сейчас? |
|
| List. Показать файлы в папке. |
|
| Change Directory. Перейти в папку. |
|
| Concatenate. Вывести содержимое файла на экран. |
|
| Make Directory. Создать папку. |
|
| Создать пустой файл. |
|
| Remove. Удалить файл (аккуратно!). |
|
| Copy. Копировать файл. |
|
| Move. Переместить или переименовать файл. |
|
CTF Hint: Всегда используйте ls -la. Флаги часто прячут в скрытых файлах, названия которых начинаются с точки (например, .hidden_flag).
3. Работа с содержимым и поиск (The Power Tools)
Найти файл — это полдела. Часто флаг спрятан внутри огромного лога или зашифрован. Здесь на помощь приходят фильтры и пайпы (pipes).
Конвейер (Pipe |)
Символ | позволяет передать результат работы одной команды на вход другой.
Пример: cat huge_log.txt | grep "flag" (читаем файл -> передаем результат в поиск -> ищем слово "flag").
Важнейшие утилиты для CTF
grep— Поиск текста внутри файлов.grep -r "CTF{" .— Искать строку "CTF{" во всех файлах текущей директории и подпапках (рекурсивно).
find— Поиск самих файлов по имени, размеру или дате.find / -name "flag.txt" 2>/dev/null— Искать файл flag.txt по всей системе, скрывая ошибки доступа.
strings— Вытаскивает читаемые строки из бинарных (нечитаемых) файлов.strings program.exe | grep "pass"— Часто позволяет найти "зашитые" пароли в простых крякми (CrackMe).
file— Определяет тип файла, не доверяя расширению.Если файл называется
image.jpg, ноfile image.jpgговорит "ASCII text", значит, это текст, а не картинка.
head/tail— Показать начало или конец файла.
4. Права доступа (Permissions)
В Linux каждый файл имеет права доступа для трех категорий: Владелец (User), Группа (Group), Остальные (Others).
Формат записи при ls -l: -rwxr-xr--
r (read) — чтение.
w (write) — запись/изменение.
x (execute) — исполнение (запуск программы или вход в папку).
Команда chmod меняет права:
chmod +x script.sh— Делает скрипт исполняемым (обязательно для запуска эксплойтов).chmod 777 file— Дает полные права всем (опасно в реальности, но часто используется новичками в CTF для тестов).
5. Методология решения задач (Linux Basics)
Если вам дали доступ по SSH (ssh user@host -p port) и нужно найти флаг:
Разведка (Who am I?):
id— Кто я? В какой я группе?uname -a— Какая версия ядра? (важно для поиска эксплойтов).
Осмотр местности (Where am I?):
ls -la— Что лежит в домашней папке?Есть ли интересные файлы:
.bash_history(история команд, там могут быть пароли!),.ssh(ключи).
Поиск флага:
Попробуйте
find / -name "flag*"илиgrep -r "flag" /var/www/.
Анализ прав (Privilege Escalation):
Если флаг читается только пользователем root, проверьте команду
sudo -l. Она покажет, какие команды вы можете запускать от имени суперпользователя без пароля.
6. Полезные материалы
Для закрепления материала практика обязательна. Просто читать теорию бесполезно.
OverTheWire: Bandit (Must Have!)
Легендарная серия уровней (Wargame). Вы начинаете с уровня 0 и используете команды Linux, чтобы найти пароль к следующему уровню. Идеально покрывает этот урок.
Ссылка: overthewire.org/wargames/bandit
Linux Journey
Интерактивный учебник по Linux на русском языке.
Ссылка: linuxjourney.com
ExplainShell
Сервис, который объясняет любую команду. Вставьте туда
tar -xzvf archive.tar.gz, и он распишет каждый флаг.Ссылка: explainshell.com