Прохождение Bandit от overthewire.org

от автора

День добрый, бандиты. Досмотрев первый сезон Mr. Robot я решил, что ни чем не хуже главного героя и установил себе Kali Linux, готовый бороздить просторы домашней сети в поисках уязвимостей и картинок голых девок на телефоне своего брата. Запустив nmap три раза и обнаружив, без особого удивления, что жизнь — не кино, я решил применить более структурированный подход к своим поискам и начать с азов информационной безопасности и поиска уязвимостей.

Следующим моим шагом было посещения r/hacking на reddit.com и чтение закрепленного поста, в котором упоминали сайт overthewire.org и игру Bandit, как одну из подходящих для начинающих «хакеров». Уверен, что читатель имеет представление об играх формата Capture The Flag (учитывая хаб, в котором я публикуюсь), но, на всякий случай, поясню. Вы подключаетесь к удаленной машине и в изолированном пространстве ищете ключ для подключения к следующей машине, используя рекомендации на сайте. Далее я для себя и всех вас приведу прохождение первых 10 уровней, ибо записывать исключительно чтоб не забыть и ни с кем не поделиться — грех. Поехали!

P.S. Все пароли спрятаны за спойлерами, читайте и не переживайте.

Уровень 0

Необходимо подключиться к хосту на bandit.labs.overthewire.org, порт 2220 и зайти за пользователя bandit0 с паролем bandit0. Сказано — сделано. Используем стандартный синтаксис команды ssh.

:~$ ssh bandit0@bandit.labs.overthewire.org -p 2220 This is a OverTheWire game server. More information on http://www.overthewire.org/wargames  bandit0@bandit.labs.overthewire.org's password: <b>bandit0</b> ... bandit0@bandit:~$  

Уровень 1

Пароль для перехода на следующий уровень находится в файле readme в домашней директории. Для его открытия нам понадобится команда cat.

bandit0@bandit:~$ cat readme

Пароль

boJ9jbbUNNfktd78OOpsqOltutMc3MY1

В конце каждого уровня подключаемся с помощью ssh к следующему пользователю на localhost:

bandit0@bandit:~$ ssh bandit1@localhost Could not create directory '/home/bandit0/.ssh'. The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:98UL0ZWr85496EtCRkKlo20X3OPnyPSB5tB5RPbhczc. Are you sure you want to continue connecting (yes/no)? <b>yes</b> Failed to add the host to the list of known hosts (/home/bandit0/.ssh/known_hosts). This is a OverTheWire game server. More information on http://www.overthewire.org/wargames  bandit1@localhost's password: <b>Пароль</b> bandit1@bandit:~$ 

Я не обращал внимания на предупреждения о localhost, потому что у меня не было прав на создание файлов, очевидно. Но это не мешает перейти на следующий уровень.

Уровень 2

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

bandit1@bandit:~$ cat ./-

Пароль

CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

bandit1@bandit:~$ ssh bandit2@localhost

Пропускаем мимо ушей предупреждение, подключаемся к bandit2 и переходим на следующий уровень.

Уровень 3

На этом уровне файл spaces in this filename, содержащий пароль, имеет в названии пробелы. С этим тоже легко справиться:

bandit2@bandit:~$ cat "spaces in this filename"

Пароль

UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

bandit2@bandit:~$ ssh bandit3@localhost

Уровень 4

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

bandit3@bandit:~$ cd inhere bandit3@bandit:~/inhere$ ls bandit3@bandit:~/inhere$ ls -a .  ..  .hidden bandit3@bandit:~/inhere$ cat .hidden

Пароль

pIwrPrtPN36QITSp3EQaw936yaFoFgAB

bandit3@bandit:~/inhere$ ssh bandit4@localhost

Уровень 5

Пароль находится в единственном файле, который вы сможете прочитать (буквально), в директории inhere. Чтобы получить информацию о файле будем использовать команду file. Для начала перейдем в директорию и посмотрим, что внутри:

bandit4@bandit:~$ cd inhere bandit4@bandit:~/inhere$ ls -file00  -file01  -file02  -file03  -file04  -file05  -file06  -file07  -file08  -file09 

Все файлы начинаются с -, поэтому используем синтаксис из второго уровня и дополним *, чтобы получить информацию о всех файлах сразу

bandit4@bandit:~/inhere$ file ./-* ./-file00: data ./-file01: data ./-file02: data ./-file03: data ./-file04: data ./-file05: data ./-file06: data ./-file07: ASCII text ./-file08: data ./-file09: data 

Как мы видим, единственный файл, который мы можем прочитать это -file07. Чем и займемся, используя знакомую нам команду cat.

bandit4@bandit:~/inhere$ cat ./-file07

Пароль

koReBOKuIDDepwhWk7jZC0RTdopnAYKh

bandit4@bandit:~/inhere$ ssh bandit5@localhost 

Уровень 6

Теперь, помимо читаемости файла, нужно учесть размер в 1033 байта и факт, что файл не исполняемый. Для этого воспользуемся командой find с параметром -size 1033c. Сначала сменим директорию, конечно же, и посмотрим, что внутри.

bandit5@bandit:~$ cd inhere bandit5@bandit:~/inhere$ ls maybehere00  maybehere03  maybehere06  maybehere09  maybehere12  maybehere15  maybehere18 maybehere01  maybehere04  maybehere07  maybehere10  maybehere13  maybehere16  maybehere19 maybehere02  maybehere05  maybehere08  maybehere11  maybehere14  maybehere17 bandit5@bandit:~/inhere$ find -size 1033c ./maybehere07/.file2 bandit5@bandit:~/inhere$ cat ./maybehere07/.file2

Пароль

DXjZPULLxYr17uwoI01bNLQbtFemEgo7

bandit5@bandit:~/inhere$ ssh bandit6@localhost

Мы легко избежали блуждания по папкам командой file, это не может не радовать!

Уровень 7

Продолжаем изучать возможные тесты команды find и ищем файл на сервере, который принадлежит пользователю bandit7, группе bandit6 и весит 33 байта. Перейдем в корень и начнем поиски.

bandit6@bandit:~$ cd / bandit6@bandit:/$ find -user bandit7 -group bandit6 -size 33c find: ‘./root’: Permission denied find: ‘./home/bandit28-git’: Permission denied find: ‘./home/bandit30-git’: Permission denied find: ‘./home/bandit5/inhere’: Permission denied find: ‘./home/bandit27-git’: Permission denied find: ‘./home/bandit29-git’: Permission denied find: ‘./home/bandit31-git’: Permission denied find: ‘./lost+found’: Permission denied find: ‘./etc/ssl/private’: Permission denied find: ‘./etc/polkit-1/localauthority’: Permission denied find: ‘./etc/lvm/archive’: Permission denied find: ‘./etc/lvm/backup’: Permission denied find: ‘./sys/fs/pstore’: Permission denied find: ‘./proc/tty/driver’: Permission denied find: ‘./proc/26731/task/26731/fd/6’: No such file or directory find: ‘./proc/26731/task/26731/fdinfo/6’: No such file or directory find: ‘./proc/26731/fd/5’: No such file or directory find: ‘./proc/26731/fdinfo/5’: No such file or directory find: ‘./cgroup2/csessions’: Permission denied find: ‘./boot/lost+found’: Permission denied find: ‘./tmp’: Permission denied find: ‘./run/lvm’: Permission denied find: ‘./run/screen/S-bandit26’: Permission denied find: ‘./run/screen/S-bandit18’: Permission denied find: ‘./run/screen/S-bandit13’: Permission denied find: ‘./run/screen/S-bandit16’: Permission denied find: ‘./run/screen/S-bandit31’: Permission denied find: ‘./run/screen/S-bandit8’: Permission denied find: ‘./run/screen/S-bandit14’: Permission denied find: ‘./run/screen/S-bandit19’: Permission denied find: ‘./run/screen/S-bandit21’: Permission denied find: ‘./run/screen/S-bandit12’: Permission denied find: ‘./run/screen/S-bandit5’: Permission denied find: ‘./run/screen/S-bandit22’: Permission denied find: ‘./run/screen/S-bandit24’: Permission denied find: ‘./run/screen/S-bandit25’: Permission denied find: ‘./run/screen/S-bandit0’: Permission denied find: ‘./run/screen/S-bandit20’: Permission denied find: ‘./run/screen/S-bandit23’: Permission denied find: ‘./run/shm’: Permission denied find: ‘./run/lock/lvm’: Permission denied find: ‘./var/spool/bandit24’: Permission denied find: ‘./var/spool/cron/crontabs’: Permission denied find: ‘./var/spool/rsyslog’: Permission denied find: ‘./var/tmp’: Permission denied find: ‘./var/lib/apt/lists/partial’: Permission denied find: ‘./var/lib/polkit-1’: Permission denied <b>./var/lib/dpkg/info/bandit7.password</b> find: ‘./var/log’: Permission denied find: ‘./var/cache/apt/archives/partial’: Permission denied find: ‘./var/cache/ldconfig’: Permission denied 

Мы видим единственный файл, к которому имеем доступ. Так давайте откроем его!

bandit6@bandit:/$ cat ./var/lib/dpkg/info/bandit7.password

Пароль

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

bandit6@bandit:/$ ssh bandit7@localhost

Уровень 8

Необходимо осуществить поиск по файлу data.txt и найти пароль напротив слова millionth. Воспользуемся командой grep на интуитивно понятном уровне.

bandit7@bandit:~$ grep millionth data.txt

Пароль

millionth cvX2JJa4CFALtqS87jk27qwqGhBM9plV

bandit7@bandit:~$ ssh bandit8@localhost

Уровень 9

Нужно найти в файле data.txt уникальную строку. Воспользуемся командами sort и uniq с опцией -u, проложив между ними пайп.

bandit8@bandit:~$ sort data.txt | uniq -u

Пароль

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

bandit8@bandit:~$ ssh bandit9@localhost

Уровень 10

Нужной найти пароль среди огромного количества случайных символов в файле data.txt. Воспользуемся волшебной командой strings и сразу поставим побольше непрерывных символов в строке, например, 10.

bandit9@bandit:~$ strings -10 data.txt ========== the*2i"4 ========== password Z)========== is &=========

Пароль

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

8Zpc    $FOxF[

Заключение

Вот и все, ребята! Лайкайте, не лайкайте, а продолжение я все равно напишу, чтобы не забыть чем занимался! Не забывайте читать мануалы и хэлпы, это очень помогает в любое время.

ссылка на оригинал статьи https://habr.com/ru/post/505906/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *