К списку уроков

Урок 2. Основы Linux

Онлайн и в Б-835, 16 октября (четверг), 15:00

Надо было ставить что? Линукс! На втором занятии CTF курса вы пройдете БАЗУ по Линуксу на примере Kali, который поставили на вводном занятии.

🎥 Видеозапись этого урока, к сожалению, утеряна. Предлагаем посмотреть видеозапись этого же урока в прошлогоднем курсе в Telegram-канале, тред "Записи".

1. Введение: Почему Linux?

В мире информационной безопасности Linux является стандартом. Большинство серверов, которые вам предстоит взламывать, работают на Linux. Большинство инструментов для атаки и анализа (Kali Linux, Parrot OS) также построены на базе Linux.

В отличие от Windows, где пользователь взаимодействует с графическим интерфейсом (GUI), в Linux сила заключается в Terminal (Консоли). Это прямой диалог с операционной системой.

2. Базовая навигация и управление файлами

В CTF ваша первая задача часто звучит так: «Вы попали на сервер, найдите файл flag.txt». Для этого нужно уметь перемещаться по директориям.

Основные команды

Команда

Описание

Пример использования

pwd

Print Working Directory. Где я сейчас?

pwd

ls

List. Показать файлы в папке.

ls -la (показать всё, включая скрытые файлы)

cd

Change Directory. Перейти в папку.

cd /home/user или cd .. (назад)

cat

Concatenate. Вывести содержимое файла на экран.

cat flag.txt

mkdir

Make Directory. Создать папку.

mkdir my_exploit

touch

Создать пустой файл.

touch notes.txt

rm

Remove. Удалить файл (аккуратно!).

rm file.txt

cp

Copy. Копировать файл.

cp flag.txt flag_backup.txt

mv

Move. Переместить или переименовать файл.

mv file.txt new_name.txt

CTF Hint: Всегда используйте ls -la. Флаги часто прячут в скрытых файлах, названия которых начинаются с точки (например, .hidden_flag).

3. Работа с содержимым и поиск (The Power Tools)

Найти файл — это полдела. Часто флаг спрятан внутри огромного лога или зашифрован. Здесь на помощь приходят фильтры и пайпы (pipes).

Конвейер (Pipe |)

Символ | позволяет передать результат работы одной команды на вход другой.

Пример: cat huge_log.txt | grep "flag" (читаем файл -> передаем результат в поиск -> ищем слово "flag").

Важнейшие утилиты для CTF

  1. grep — Поиск текста внутри файлов.

    • grep -r "CTF{" . — Искать строку "CTF{" во всех файлах текущей директории и подпапках (рекурсивно).

  2. find — Поиск самих файлов по имени, размеру или дате.

    • find / -name "flag.txt" 2>/dev/null — Искать файл flag.txt по всей системе, скрывая ошибки доступа.

  3. strings — Вытаскивает читаемые строки из бинарных (нечитаемых) файлов.

    • strings program.exe | grep "pass" — Часто позволяет найти "зашитые" пароли в простых крякми (CrackMe).

  4. file — Определяет тип файла, не доверяя расширению.

    • Если файл называется image.jpg, но file image.jpg говорит "ASCII text", значит, это текст, а не картинка.

  5. 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) и нужно найти флаг:

  1. Разведка (Who am I?):

    • id — Кто я? В какой я группе?

    • uname -a — Какая версия ядра? (важно для поиска эксплойтов).

  2. Осмотр местности (Where am I?):

    • ls -la — Что лежит в домашней папке?

    • Есть ли интересные файлы: .bash_history (история команд, там могут быть пароли!), .ssh (ключи).

  3. Поиск флага:

    • Попробуйте find / -name "flag*" или grep -r "flag" /var/www/.

  4. Анализ прав (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