Bandit

Перевод заданий варгейма OverTheWire: Bandit на русский язык.

Уровни 0–34. Названия команд, имена файлов, хосты и ссылки оставлены в оригинале.

SSH · bandit.labs.overthewire.org · порт 2220

Уровень 0 bandit0 → bandit1

Цель уровня

Цель этого уровня — войти в игру по SSH. Хост, к которому нужно подключиться — bandit.labs.overthewire.org, порт 2220. Имя пользователя — bandit0, пароль — bandit0. После входа перейдите на страницу Уровня 1, чтобы узнать, как пройти уровень 1.

Команды, которые могут понадобиться

ssh

Полезные материалы

Уровень 1 bandit1 → bandit2

Цель уровня

Пароль для следующего уровня хранится в файле readme в домашнем каталоге. Используйте этот пароль, чтобы войти на bandit1 по SSH. Каждый раз, когда находите пароль уровня, используйте SSH (порт 2220), чтобы войти на этот уровень и продолжить игру.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

СОВЕТ: Заведите на своей локальной машине файл для заметок и паролей!

Пароли уровней не сохраняются автоматически. Если не сохранять их самостоятельно, придётся начинать заново с bandit0.

Пароли также иногда меняются. Рекомендуется вести заметки о том, как решать каждое задание. По мере усложнения уровней подробные заметки помогают вернуться к месту, где вы остановились, служат справкой для последующих задач или помогают другим после того, как вы прошли задание.

Уровень 2 bandit2 → bandit3

Цель уровня

Пароль для следующего уровня хранится в файле с именем - в домашнем каталоге.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

Полезные материалы

Уровень 3 bandit3 → bandit4

Цель уровня

Пароль для следующего уровня хранится в файле с именем --spaces in this filename-- в домашнем каталоге.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

Полезные материалы

Уровень 4 bandit4 → bandit5

Цель уровня

Пароль для следующего уровня хранится в скрытом файле в каталоге inhere.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

Уровень 5 bandit5 → bandit6

Цель уровня

Пароль для следующего уровня хранится в единственном человекочитаемом файле в каталоге inhere. Совет: если терминал «поехал», попробуйте команду «reset».

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

Уровень 6 bandit6 → bandit7

Цель уровня

Пароль для следующего уровня хранится в файле где-то внутри каталога inhere и обладает всеми перечисленными свойствами:

  • человекочитаемый;
  • размер 1033 байта;
  • не исполняемый.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find

Уровень 7 bandit7 → bandit8

Цель уровня

Пароль для следующего уровня хранится где-то на сервере и обладает всеми перечисленными свойствами:

  • владелец — пользователь bandit7;
  • группа-владелец — bandit6;
  • размер 33 байта.

Команды, которые могут понадобиться

ls, cd, cat, file, du, find, grep

Уровень 8 bandit8 → bandit9

Цель уровня

Пароль для следующего уровня хранится в файле data.txt рядом со словом millionth.

Команды, которые могут понадобиться

man, grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Уровень 9 bandit9 → bandit10

Цель уровня

Пароль для следующего уровня хранится в файле data.txt и является единственной строкой текста, встречающейся лишь один раз.

Команды, которые могут понадобиться

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Полезные материалы

Уровень 10 bandit10 → bandit11

Цель уровня

Пароль для следующего уровня хранится в файле data.txt в одной из немногих человекочитаемых строк, перед которой стоит несколько символов «=».

Команды, которые могут понадобиться

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Уровень 11 bandit11 → bandit12

Цель уровня

Пароль для следующего уровня хранится в файле data.txt, который содержит данные в кодировке base64.

Команды, которые могут понадобиться

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Полезные материалы

Уровень 12 bandit12 → bandit13

Цель уровня

Пароль для следующего уровня хранится в файле data.txt, в котором все строчные (a-z) и заглавные (A-Z) буквы сдвинуты на 13 позиций.

Команды, которые могут понадобиться

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Полезные материалы

Уровень 13 bandit13 → bandit14

Цель уровня

Пароль для следующего уровня хранится в файле data.txt, который представляет собой hexdump многократно сжатого файла. На этом уровне может быть полезно создать каталог внутри /tmp, в котором вы будете работать. Используйте mkdir с труднодоступным для угадывания именем каталога. Или, что лучше, команду «mktemp -d». Затем скопируйте файл данных с помощью cp и переименуйте его с помощью mv (читайте man-страницы!).

Команды, которые могут понадобиться

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv, file

Полезные материалы

Уровень 14 bandit14 → bandit15

Цель уровня

Пароль для следующего уровня хранится в /etc/bandit_pass/bandit14 и может быть прочитан только пользователем bandit14. На этом уровне вы получаете не сам следующий пароль, а приватный SSH-ключ, с помощью которого можно войти на следующий уровень. Посмотрите на команды, которыми вы входили на предыдущие уровни bandit, и выясните, как использовать ключ для этого уровня.
Если нужна помощь с этим уровнем: файл с подсказкой можно найти в домашнем каталоге.
Обязательно читайте сообщения об ошибках — они информативны.

Команды, которые могут понадобиться

ssh, scp, umask, chmod, cat, nc, install

Полезные материалы

Уровень 15 bandit15 → bandit16

Цель уровня

Пароль для следующего уровня можно получить, отправив пароль текущего уровня на порт 30000 на localhost.

Команды, которые могут понадобиться

ssh, telnet, nc, openssl, s_client, nmap

Полезные материалы

Уровень 16 bandit16 → bandit17

Цель уровня

Пароль для следующего уровня можно получить, отправив пароль текущего уровня на порт 30001 на localhost с использованием шифрования SSL/TLS.

Полезное замечание: получаете «DONE», «RENEGOTIATING» или «KEYUPDATE»? Прочитайте раздел «CONNECTED COMMANDS» в man-странице.

Команды, которые могут понадобиться

ssh, telnet, nc, ncat, socat, openssl, s_client, nmap, netstat, ss

Полезные материалы

Уровень 17 bandit17 → bandit18

Цель уровня

Учётные данные для следующего уровня можно получить, отправив пароль текущего уровня на порт на localhost в диапазоне 31000–32000. Сначала выясните, на каких из этих портов есть слушающий сервер. Затем определите, какие из них говорят по SSL/TLS, а какие нет. Только 1 сервер выдаст следующие учётные данные, остальные просто вернут вам то, что вы им отправили.

Полезное замечание: получаете «DONE», «RENEGOTIATING» или «KEYUPDATE»? Прочитайте раздел «CONNECTED COMMANDS» в man-странице.

Команды, которые могут понадобиться

ssh, telnet, nc, ncat, socat, openssl, s_client, nmap, netstat, ss

Полезные материалы

Уровень 18 bandit18 → bandit19

Цель уровня

В домашнем каталоге есть 2 файла: passwords.old и passwords.new. Пароль для следующего уровня находится в passwords.new и является единственной строкой, изменившейся между passwords.old и passwords.new.

ЗАМЕЧАНИЕ: если вы решили этот уровень и видите «Byebye!» при попытке войти на bandit18 — это относится к следующему уровню, bandit19.

Команды, которые могут понадобиться

cat, grep, ls, diff

Уровень 19 bandit19 → bandit20

Цель уровня

Пароль для следующего уровня хранится в файле readme в домашнем каталоге. К сожалению, кто-то изменил .bashrc так, чтобы вас выкидывало при входе по SSH.

Команды, которые могут понадобиться

ssh, ls, cat

Уровень 20 bandit20 → bandit21

Цель уровня

Чтобы получить доступ к следующему уровню, используйте setuid-бинарник в домашнем каталоге. Запустите его без аргументов, чтобы узнать, как им пользоваться. Пароль для этого уровня можно найти в привычном месте (/etc/bandit_pass) после того, как вы воспользуетесь setuid-бинарником.

Полезные материалы

Уровень 21 bandit21 → bandit22

Цель уровня

В домашнем каталоге есть setuid-бинарник, который делает следующее: он подключается к localhost на порт, который вы указываете аргументом командной строки. Затем он читает строку текста из соединения и сравнивает её с паролем предыдущего уровня (bandit20). Если пароль верный, он передаст пароль для следующего уровня (bandit21).

ЗАМЕЧАНИЕ: Попробуйте подключиться к собственному сетевому демону, чтобы проверить, работает ли он так, как вы думаете.

Команды, которые могут понадобиться

ssh, nc, cat, bash, screen, tmux, управление задачами Unix («job control»: bg, fg, jobs, &, CTRL-Z, …)

Уровень 22 bandit22 → bandit23

Цель уровня

Программа автоматически запускается через регулярные интервалы из cron — планировщика задач на основе времени. Загляните в /etc/cron.d/ за конфигурацией и посмотрите, какая команда выполняется.

Команды, которые могут понадобиться

cron, crontab, crontab(5) (используйте «man 5 crontab» для доступа к этому)

Уровень 23 bandit23 → bandit24

Цель уровня

Программа автоматически запускается через регулярные интервалы из cron — планировщика задач на основе времени. Загляните в /etc/cron.d/ за конфигурацией и посмотрите, какая команда выполняется.

ЗАМЕЧАНИЕ: Умение читать shell-скрипты, написанные другими людьми, — очень полезный навык. Скрипт для этого уровня намеренно сделан лёгким для чтения. Если возникают проблемы с пониманием того, что он делает, попробуйте выполнить его, чтобы увидеть отладочную информацию, которую он печатает.

Команды, которые могут понадобиться

cron, crontab, crontab(5) (используйте «man 5 crontab» для доступа к этому)

Уровень 24 bandit24 → bandit25

Цель уровня

Программа автоматически запускается через регулярные интервалы из cron — планировщика задач на основе времени. Загляните в /etc/cron.d/ за конфигурацией и посмотрите, какая команда выполняется.

ЗАМЕЧАНИЕ: Этот уровень требует написать ваш первый собственный shell-скрипт. Это очень большой шаг, и вы должны гордиться собой, когда пройдёте этот уровень!

ЗАМЕЧАНИЕ 2: Имейте в виду, что ваш shell-скрипт удаляется сразу после выполнения, так что, возможно, стоит держать копию под рукой…

Команды, которые могут понадобиться

chmod, cron, crontab, crontab(5) (используйте «man 5 crontab» для доступа к этому)

Уровень 25 bandit25 → bandit26

Цель уровня

Демон слушает на порту 30002 и выдаст вам пароль для bandit25, если ему дать пароль для bandit24 и секретный числовой 4-значный пин-код. Получить пин-код можно только перебором всех 10000 комбинаций — это называется brute-force (перебор).
Создавать новое соединение каждый раз не нужно.

Уровень 26 bandit26 → bandit27

Цель уровня

Войти на bandit26 из bandit25 должно быть довольно просто… Оболочка пользователя bandit26 — не /bin/bash, а что-то другое. Выясните, что это, как оно работает и как из него выйти.

ЗАМЕЧАНИЕ: если вы пользователь Windows и обычно используете Powershell для подключения по ssh к bandit — известно, что Powershell вызывает проблемы с задуманным решением этого уровня. Вместо него используйте командную строку (cmd).

Команды, которые могут понадобиться

ssh, cat, more, vi, ls, id, pwd

Уровень 27 bandit27 → bandit28

Цель уровня

Отличная работа — вы получили оболочку! Теперь скорее забирайте пароль для bandit27!

Команды, которые могут понадобиться

ls

Уровень 28 bandit28 → bandit29

Цель уровня

Есть git-репозиторий по адресу ssh://bandit27-git@bandit.labs.overthewire.org/home/bandit27-git/repo через порт 2220. Пароль пользователя bandit27-git такой же, как у пользователя bandit27.

Со своей локальной машины (не с машины OverTheWire!) клонируйте репозиторий и найдите пароль для следующего уровня. Для этого на вашей машине должен быть установлен git.

Команды, которые могут понадобиться

git

Полезные материалы

Уровень 29 bandit29 → bandit30

Цель уровня

Есть git-репозиторий по адресу ssh://bandit28-git@bandit.labs.overthewire.org/home/bandit28-git/repo через порт 2220. Пароль пользователя bandit28-git такой же, как у пользователя bandit28.

Со своей локальной машины (не с машины OverTheWire!) клонируйте репозиторий и найдите пароль для следующего уровня. Для этого на вашей машине должен быть установлен git.

Команды, которые могут понадобиться

git

Полезные материалы

Уровень 30 bandit30 → bandit31

Цель уровня

Есть git-репозиторий по адресу ssh://bandit29-git@bandit.labs.overthewire.org/home/bandit29-git/repo через порт 2220. Пароль пользователя bandit29-git такой же, как у пользователя bandit29.

Со своей локальной машины (не с машины OverTheWire!) клонируйте репозиторий и найдите пароль для следующего уровня. Для этого на вашей машине должен быть установлен git.

Команды, которые могут понадобиться

git

Полезные материалы

Уровень 31 bandit31 → bandit32

Цель уровня

Есть git-репозиторий по адресу ssh://bandit30-git@bandit.labs.overthewire.org/home/bandit30-git/repo через порт 2220. Пароль пользователя bandit30-git такой же, как у пользователя bandit30.

Со своей локальной машины (не с машины OverTheWire!) клонируйте репозиторий и найдите пароль для следующего уровня. Для этого на вашей машине должен быть установлен git.

Команды, которые могут понадобиться

git

Полезные материалы

Уровень 32 bandit32 → bandit33

Цель уровня

Есть git-репозиторий по адресу ssh://bandit31-git@bandit.labs.overthewire.org/home/bandit31-git/repo через порт 2220. Пароль пользователя bandit31-git такой же, как у пользователя bandit31.

Со своей локальной машины (не с машины OverTheWire!) клонируйте репозиторий и найдите пароль для следующего уровня. Для этого на вашей машине должен быть установлен git.

Команды, которые могут понадобиться

git

Полезные материалы

Уровень 33 bandit33 → bandit34

Цель уровня

После всей этой возни с git пришло время для очередного «побега». Удачи!

Команды, которые могут понадобиться

sh, man

Уровень 34 bandit34

На данный момент уровень 34 ещё не существует.