OverTheWire — действительно крутая команда, которая предлагает вам несколько задач, чтобы попрактиковаться в эксплуатации на стороне сервера.



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

Уровень 0

The goal of this level is for you to log into the game using SSH. The host to which you need to connect is bandit.labs.overthewire.org, on port 2220. The username is bandit0 and the password is bandit0

Конечно, это действительно регистрация.

Используя ssh -p 2220 [email protected]чтобы закончить

1-й уровень

The password for the next level is stored in a file called - located in the home directory

Вы можете видеть, что файл паролей находится в целости и сохранности.

Однако это специализированное имя файла кажется значимым, и вы не можете просто cat его использовать. Давайте узнаем, почему через руководство.

The cat utility reads files sequentially, writing them to the standard output. The file operands are processed in command-line order. If file is a single dash (`-`) or absent, cat reads from the standard input. If file is a UNIX domain socket, cat connects to it and then reads it until EOF. This complements the UNIX domain binding capability available is inetd(8).

Что ж, это имеет смысл, если вы знаете такие команды, как cat | ./someprog , которые позволяют передавать стандартный ввод в программу.

В любом случае, просто используйте cat ./-, чтобы передать его

Уровень 2

The password for the next level is stored in a file called spaces in this filename located in the home directory

Я просто думаю о том, что этот вызов хочет сказать нам. Возможно, он просто хочет, чтобы мы знали, что некоторые конкретные символы, такие как пробел, нуждаются в / в командах.

Спасибо за автоматическое завершение в текущей оболочке.

Уровень 3

The password for the next level is stored in a hidden file in the inhere directory.

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

Используя ls -a, мы можем получить его

Уровень 4

The password for the next level is stored in the only human-readable file in the inhere directory. Tip: if your terminal is messed up, try the “reset” command.

Введение странное, и когда вы открываете папку, вы можете увидеть 10 файлов, как показано ниже.

Инструкция reset действительно крутая, она может реактивировать оболочку. А вот clear мне очень подходит.

Изучите базовый сценарий оболочки, который может помочь решить эту проблему.

for((i=0;i<10;i++));do cat './-file'$i; echo '\n'; done

Уровень 5

The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:
- human-readable
- 1033 bytes in size
- not executable

Что ж, эта задача будет действительно утомительной, если делать ее вручную. мы должны найти какое-то умное решение.

Принимая во внимание эти три подсказки, мы, наконец, получаем такие команды, как

find ./ -size 1033c и /myabehere07/.file2 наша цель

Уровень 6

The password for the next level is stored somewhere on the server and has all of the following properties:
- owned by user bandit7
- owned by group bandit6
- 33 bytes in size

Кажется, еще find и параметры игры. Внимательно прочитайте руководство find, и мы можем попробовать с инструкцией, подобной

find / -size 33c -readble -group bandit6 -user bandit7

Ответ находится в /var/lib/dpkg/info/bandit7.password.

Уровень 7

The password for the next level is stored in the file data.txt next to the word millionth

Начиная с этой задачи. Подсказка становится

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

Кажется, нам приходится иметь дело с string трюками и некоторыми compression посохами.

Мы пробуем cat data.txt | grep millionth и добиваемся успеха.

Уровень 8

The password for the next level is stored in the file data.txt and is the only line of text that occurs only once

Самое прямое ощущение - удалить строки, которые дублируются.

Этот вызов задержал меня на некоторое время. Ибо не внимательно прочитал описание uniq

Filter adjacent  matching  lines  from INPUT (or standard input), writing to OUTPUT (or standard output).

То есть, если две одинаковые строки разделены другими линиями. Эта инструкция мало что даст

Ответ должен быть

sort data.txt | uniq -u

Уровень 9

The password for the next level is stored in the file data.txt in one of the few human-readable strings, beginning with several ‘=’ characters.

Начинать с нескольких «=»? Это определенно относится к выражению регулярного выражения.

Попробуйте с cat data.txt | grep -a "==="

Вот -a для обработки этого бинарного файла

Уровень 10

The password for the next level is stored in the file data.txt, which contains base64 encoded data

Это было просто. Хотя я обычно кодирую/декодирую base64, используя скрипты Python.

base64 -d ./data.txt