Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cmdchamp — тренажёр bash CLI — 30 уровней от ls до повышения привилегий | Kitploit
Инструменты/GitHubGitHub/mellen9999/cmdchamp
Взлом паролейПовышение привилегийАудит Wi-FiАнализ хэшейСкриптинг и автоматизацияФорензикаСетевая безопасностьCTFТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
12361 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
mellen9999/cmdchamp

cmdchamp

тренажёр bash CLI — 30 уровней от ls до повышения привилегий

Репозиторий
# cmdchamp

Bash CLI-тренажёр — 30 уровней от `ls` до повышения привилегий.

![demo](https://assets.kitploit.com/production/public/readmes/11563/15814f8c144f4c90af68990054b6c02e7f0b02ac4bb7940baa8a7a9b00d53165.gif)

Каждый вопрос просит вас ввести реальную команду — мгновенная обратная связь, двигайтесь дальше. Промахнулись — и вам не просто показывают ответ: показывают, что напечатала ВАША команда, в сравнении с ожидаемым результатом, а для конвейера — количество строк на каждом этапе, чтобы вы видели, где именно он «умер». Для вопросов с текстовым сравнением указывается, к какому принятому ответу ваш был ближе всего, и какой именно флаг вы упустили. Ответили правильно длинным путём — и вам покажут короткий: `cat f | grep -c X` заслуживает подсказку `Shorter: grep -c X f`, которая срабатывает и на меньшее число этапов конвейера, и на меньшее число символов, потому что урок — в сэкономленных процессах. Многие вопросы выполняются на реальных файлах в песочнице, и все принимают несколько корректных синтаксисов (`sort -u` или `sort | uniq`). Tab переключает man-страницу, когда нужна справка, — сокращённые страницы для каждой команды, которую выполняет ответ, плюс синтаксис shell, на который он опирается (`x=$(cmd)`, `${var:-default}`, `${path##*/}`), так что в вопросе не остаётся ничего, что нужно угадывать. Порядок рандомизируется при каждом запуске, чтобы вы не могли его заучить. Мастерство отслеживает, что вы знаете: ответьте на вопрос правильно дважды, чтобы освоить его, промахнётесь — и он понижается, чтобы вернуться раньше. Серия из 5 правильных ответов запускает fire mode — баннер, который действует, пока вы не промахнетесь.

Каждый уровень завершается босс-раундом — без man-страниц, таймер 30 секунд, 4/5 для прохода. Провалили — можно сразу повторить босса или вернуться к практике. Пройдите все 30, и откроется **challenge mode** — финальное испытание: многоступенчатые цепочки команд, которые собирают инструменты со всей игры в один конвейер. 30 секунд на каждую, одна жизнь, без man-страниц, ваш лучший результат — рекорд. Каждая цепочка оценивается по реальному выводу в песочнице, так что *любой* корректный конвейер проходит. Каждый запуск также создаёт **новую рандомизированную песочницу** — другие IP, счётчики, хосты и данные логов — и выбирает из 50+ шаблонов цепочек с меняющимися разделителями, порядком сортировки и агрегатами, так что самый загруженный IP, топовый URL, наибольший счётчик никогда не повторяются дважды. Первый запуск включает короткий обучающий курс и тест на определение уровня, который позволяет пропустить уже знакомые уровни.

С [bubblewrap](https://github.com/containers/bubblewrap) команды выполняются в реальной изолированной файловой системе и оцениваются по фактическому выводу. Внутренняя «коробка» синтетическая — пользователь `sandbox`, хост `sandbox`, собственные `/etc/passwd` и командная строка ядра — так что ничто из введённого вами не выведет на экран ваше реальное имя пользователя, имя машины или структуру диска, а `id`, `whoami` и `hostname` отвечают одинаково везде. Это распространяется и на уровень криминалистики: уровень 28 выдаёт вам реальный образец бинарника (`samples/target.bin`) и оценивает, действительно ли вы извлекли из него флаг, домен эксфильтрации и утёкший API-ключ — то же самое для вопросов `jq` на реальном JSON. Финальное испытание собирает эти извлечения в цепочки с таймером. Уровни 24–25 теперь тоже выполняются по-настоящему: внутри собственного сетевого пространства имён песочницы запускается небольшой HTTP-сервис на `localhost:8080`, пока выполняется ваш ответ, с тремя слушающими портами, так что `curl`, `jq` по HTTP, `ss` и `nmap` оцениваются по тому, что они реально вернули. Ничего не открывается вашей машине — пространство имён по-прежнему блокирует все исходящие соединения, а порт невидим снаружи. Только инструменты, которые физически не могут работать в песочнице — wifi/RF, захват трафика в реальном времени и крупномасштабная криминалистика памяти/диска — остаются с текстовым сравнением. Уровни поиска (16–17) принимают и синтаксис `rg`/`fd`, и `grep`/`find`. Встроено редактирование строк в стиле Vi — движения, операторы, счётчики, регистры, отмена и визуальный режим (`v`/`V`, `o` для смены конца), с `?` для полной карты клавиш.

## Установка

**Arch (AUR):**

```bash
paru -S cmdchamp   # or: yay -S cmdchamp
```

**Где угодно (один файл):**

```bash
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
```

Добавьте `~/.local/bin` в PATH при необходимости: `echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc`

**Или клонируйте:**

```bash
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
```

**Требуется:** bash 4.4+, coreutils, awk

**macOS:** Поставляется с bash 3.2 — сначала установите bash 4.4+: `brew install bash`

**Опционально:** [bubblewrap](https://github.com/containers/bubblewrap) (`bwrap`) для режима песочницы (только Linux) — большинство дистрибутивов для десктопа включают его. Без него ответы сравниваются только по тексту

**Опционально:** `python3` — обслуживает HTTP-сервис localhost песочницы, поэтому вопросы `live api` / `live box` на уровнях 24–25 оцениваются по реальному выводу. Без него эти вопросы возвращаются к текстовому сравнению; больше ничего не меняется

**Доступность:** Учитывает `NO_COLOR` и `TERM=dumb`. Раскладка адаптируется к `COLUMNS` / `tput cols`. Полосы мастерства несут и цвет, и символ `✓` / `~` / `x` — читаемы и без цвета.

**Терминалы:** Работает на настоящих последовательных терминалах, а не только эмуляторах. cmdchamp проверяет, что терминал реально может отобразить, и выбирает один из трёх уровней отрисовки — Unicode, DEC ACS псевдографика или чистый ASCII, — так что рамки остаются целыми на VT100/VT220/VT320/VT420 или Wyse. На монохромном экране цветовые различия перекодируются в жирный/инверсный. Принудительно задайте уровень через `CMDCHAMP_ASCII=1` или `CMDCHAMP_UNICODE=1`. `./test_terminals.sh` проверяет это.

## Использование

```bash
cmdchamp                # Запустить игровое меню
cmdchamp explain 'CMD'  # Объяснить любую команду — каждый флаг, плюс окружающий синтаксис shell
cmdchamp autopsy        # Прочитать собственную историю shell и сопоставить её с учебной программой
cmdchamp daily          # Сыграть сегодняшний ежедневный забег (одинаковый для всех)
cmdchamp daily 2026-02-16   # Переиграть забег конкретного дня (посоревнуйтесь с другом)
cmdchamp play           # Песочница свободной игры: введите любую команду, посмотрите, как она выполняется
cmdchamp --no-sandbox   # Отключить песочницу (только текстовое сравнение)
cmdchamp reset          # Сбросить весь прогресс
cmdchamp test           # Запустить самотесты
cmdchamp version        # Показать версию
cmdchamp help           # Показать справку
```

`cmdchamp explain` (или `cmdchamp x`) — это панель Tab как отдельный инструмент: вручную написанные страницы для ~300 команд плюс окружающий синтаксис shell, офлайн, без сети, без зависимостей. Принимает команду в кавычках или отдельные слова, а при отсутствии того и другого читает stdin — так что `history | tail -1 | cmdchamp x` объясняет, что вы только что выполнили. Выход 0, когда команда известна, 1 — когда нет.

`cmdchamp autopsy` читает историю вашего shell — `$HISTFILE`, затем `~/.bash_history`, затем `~/.zsh_history`, или файл, который вы укажете, или `-` для stdin — и сопоставляет её с 30 уровнями: к чему вы реально тянетесь, привычки, от которых стоит отказаться, с вашим собственным счётчиком рядом с каждой (`cat` в `grep`, `find` в `xargs` без `-print0`, `chmod 777`, `curl | sh`), сколько команд, которым учит игра, вы когда-либо запускали, и самый ранний уровень с пробелом. Он выводит **только паттерны и счётчики** — никогда строку, фрагмент или «пример» из вашей истории, потому что в истории хранятся токены и пароли, введённые как аргументы. Ничего не покидает машину, и нет флага, чтобы заставить его выводить вашу историю.

Меню содержит продолжение, новую игру, сценарии, испытание, ежедневный забег, практику, статистику, настройки, справку и выход на фиксированных горячих клавишах `1`–`9` и `0`. Строка, которую вы ещё не разблокировали, затемняется, а не скрывается, поэтому цифра рядом с меткой никогда не сдвигается по мере прогресса. `j`/`k` или стрелки перемещают курсор, Enter выбирает, а `q` (или Esc) выходит. Площадка находится вверху списка **Сценариев** — это единственная запись, которая никогда не блокируется. **Справка** — это справочник на трёх страницах: все клавиши, что стоит и открывается на каждом режиме, как работают подсчёт очков и затухание, что означают отметки в статистике, как оценивается ответ и каждая переменная окружения. Обучающий курс первого запуска по-прежнему в одном нажатии клавиши на последней странице.

**Ежедневный забег** (после ROOT) — это забег с посевом по дате: посев управляет и цепочками, и рандомизированной песочницей, так что все и везде получают байт-идентичные вопросы *и* данные в этот день, одна засчитанная попытка, серия подряд идущих дней и копируемый счёт, которым можно поделиться. **Практика** отрабатывает любой достигнутый уровень (показан с его % мастерства) с подсказками и без таймера, не затрагивая основной прогресс. **Площадка** — это скомпрометированная машина, которую вы разбираете настоящим shell: кто-то проник, использовал её, затем попытался прибраться, и каждое действие оставило след на диске. Команды выполняются по-настоящему в песочнице, и ничего не оценивается. До 8 токенов `flag{...}` спрятаны по дереву (больше открывается по мере прохождения уровней), `map` раскладывает взлом по фазам и отмечает, где вы находитесь, `learn` — это учебная программа по безопасности из 8 модулей за этим, `hint` углубляется на уровень с каждым запросом, а Tab объясняет, что вы ввели. Заголовок всегда называет фазу, которую вы ищете, и файлы, которые она оставила, так что вы никогда не смотрите на приглашение, не зная, куда направить команду, — а если шесть команд прошли без находки, первая подсказка приходит сама.

## Статистика

Две страницы. Первая — тридцать полос уровней: как далеко вы продвинулись. Вторая — то же мастерство, спроецированное на **команды**, от самых слабых, потому что уровень — слишком крупная единица для отработки: один уровень 13 обучает `cp`, `mv`, `ln`, `chmod`, ACL, `du`, `tar` и `diff`, и одна красная полоса не скажет, какие из них вы продолжаете упускать. Учитываются только достигнутые уровни, а сетка ограничена одним экраном — список задач, который нужно прокручивать, не список задач. Под ней названы три самые слабые команды с уровнем, который обучает каждой, так что страница заканчивается там, где начинается Практика, — названия уровней тематические, и `xargs 0/4` — тупик, если приходится угадывать, что он живёт в Batch Ops.

## Уровни

| # | Название | Фокус |
|---|------|-------|
| | **Основы** | |
| 1 | Первые шаги | pwd, ls, echo, cd, mkdir |
| 2 | Основы файлов | cp, mv |
| 3 | Сохраните работу | >, >>, tee |
| 4 | Чтение файлов | cat, head, tail, less |
| 5 | Базовые конвейеры | pipes, grep, wc, sort, uniq |
| 6 | Ввод и here-строки | <, <<<, tr, cut, rev, bc |
| 7 | Обработка ошибок | 2>, 2>&1, &>, /dev/null |
| 8 | Логические операторы | &&, \|\| |
| 9 | Переменные | `$VAR`, присваивание, раскрытие |
| 10 | Специальные переменные | `$$`, `$?`, `$!`, `$#`, `$@`, `$0` |
| 11 | Управление заданиями | bg, fg, jobs, &, Ctrl+Z, nice, ulimit |
| 12 | Условия проверки | -f, -d, -z, -n, -eq, -lt |
| 13 | Основные файловые инструменты | cp, mv, ln, chmod, ACL, du, tar, diff |
| 14 | Системное администрирование | ping, df, free, ss, systemctl, ip, sysctl, lsblk, getent |
| 15 | Мультиплексоры | tmux: сессии, окна, панели |
| 16 | Поиск текста | grep, ripgrep, regex |
| 17 | Поиск файлов | find, fd, по имени/размеру/времени/типу |
| 18 | Обработка данных | sort, uniq, cut, awk, tr, comm, join, numfmt |
| 19 | Строки и массивы | раскрытие параметров, массивы |
| 20 | Управление потоком | if/else, циклы, case, функции |
| 21 | Пакетные операции | find -exec, xargs, sed -i, crontab |
| 22 | Продвинутые regex | lookahead, sed, awk |
| | **DevOps и безопасность** | |
| 23 | Git | ветки, удалённые репозитории, rebase, stash, bisect |
| 24 | Сетевые инструменты | tshark, curl, jq, ssh-туннели, openssl, SMB, живая HTTP-конечная точка |
| 25 | Сканирование сети | nmap, определение сервисов, скрипты, живая цель |
| 26 | WiFi и RF | aircrack-ng, netcat, tcpdump, беспроводная разведка |
| 27 | Взлом хешей | hashcat, john, hydra, кодирование |
| 28 | Криминалистика | strings, readelf, binwalk, volatility, exiftool |
| 29 | Повышение привилегий | SUID, capabilities, GTFOBins, перечисление |
| 30 | ROOT | аварийное восстановление, chroot, выживание офлайн |

## Сценарии

Многошаговые задания в песочнице — состояние сохраняется между шагами. Доступны из меню **Сценарии** после прохождения босса-разблокировки, который перечисляет их в порядке открытия под площадкой. Числа ниже — это id сценариев, которые никогда не меняются.

| # | Название | Открывается после | Шагов |
|---|------|-----------|-------|
| 1 | Блокировка прав | босс L13 | 6 |
| 2 | Архив и извлечение | босс L13 | 6 |
| 3 | Найди иголку | босс L16 | 7 |
| 4 | Грязный CSV | босс L18 | 4 |
| 5 | Инцидент | босс L18 | 5 |
| 6 | Сломанный деплой | босс L21 | 7 |
| 7 | Авария в логах | босс L21 | 5 |
| 8 | Хирургия конфигов | босс L21 | 5 |
| 9 | Спасение Git | босс L23 | 6 |
| 10 | Пакетный рефакторинг | босс L21 | 6 |
| 11 | Криминалистическая зачистка | босс L22 | 6 |
| 12 | Резервное копирование с wildcard | босс L29 | 4 |
| 13 | Перехват PATH | босс L29 | 4 |

Сценарии 12–13 — это эксплойт-боксы: вы внедряете реальную tar-checkpoint инъекцию / перехват PATH и оцениваетесь по артефакту, который она создаёт (появляется файл, эксфильтрируется секрет). *Эффект* эксплойта выполняется по-настоящему в песочнице; граница привилегий симулируется — ничего не выполняется как настоящий root.

## Тест на определение уровня

После обучающего курса первого запуска вас спрашивают, хотите ли вы пройти тест на определение уровня, чтобы перепрыгнуть вперёд. Согласитесь — и он задаёт 2 вопроса на уровень, по 30 секунд на каждый, без man-страниц. Один промах — и это ваш стартовый уровень.

## Пасхальные яйца

8 скрытых достижений. Экран статистики показывает, сколько вы нашли.

## Управление

| Клавиша | Действие |
|-----|--------|
| Enter | Отправить ответ |
| Tab | Переключить man-страницу |
| Ctrl+d | Выход (сводка сессии) |
| Esc | Vi обычный режим |
| ? | Все привязки клавиш (обычный режим) |

## Данные

Прогресс сохраняется в `${XDG_DATA_HOME:-~/.local/share}/cmdchamp/`.

## Лицензия

MIT
Скачать инструмент