В этой статье продолжим поиск флагов в уязвимой
VM Necromancer.
Сохраняем файл
talisman, и меняем ему разрешение. Затем запускаем его:
При ответе на вопрос, хотим ли мы одеть талисман, ничего не произошло.
Попробуем отладить этот файл с помощью утилиты - отладчика
gdb.
Отладчиком называется программа, которая выполняет внутри себя другую программу. Основное назначение отладчика - дать возможность пользователю в определенной степени осуществлять контроль над выполняемой программой, т.е. определять, что происходит в процессе ее выполнения. Наиболее известным отладчиком для Linux является программа GNU GDB.
>
gdb /root/talisman
И получим немного информации о функциях программы:
>
info functions

Создадим точку восстановления wearTalisman, потому, что после, нам понадобиться одеть талисман.
> break wearTalisman
> run
Затем перейдем к chantToBreakSpell:
> jump chantToBreakSpell
Нам удалось одеть талисман. Мы получаем наш 4-й флаг и намек повторить слова из флага на UDP порту 31337. Перед этим декодируем из base64 в человекопонятный текст –
blackmagic

Получаем 5-й флаг и информацию о директории, которую следует посетить:
> 192.168.0.109/thenecromancerwillabsorbyoursoul
Слово
necromancer– является ссылкой, которая предлагает нам скачать файл, сохраним его:
Внизу страницы, так же есть подсказка, указывающая на UDP порт 161 (используется для SNMP) В первую очередь займемся анализом самого файла, для этого необходимо использовать Wireshark. Нужно будет два раза распаковать архив, для того, чтобы добраться до файла с расширением .cap
При рассмотрении файла, выясняется, что это дамп сигнализации в стандарте IEEE 802.11, а значит, имеет место быть Wi-Fi, возможно это хэндшейк.
В общем, попробуем расковырять это с помощью aircrack-ng и полюбившимся словарем rockyou.txt.
>
aircrack-ng /root/ necromancer.cap -w /usr/share/wordlists/rockyou.txt

Спустя немного времени, обнаруживается пароль.
Итак, мы имеем на текущий момент:
· пароль –
death2all
· Вероятно открытый 161 порт. Здесь, сделаю отступление:
SNMP— стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP. К поддерживающим SNMP устройствам относятся маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры, модемные стойки и другие.
Порт/ID: 161/UDP,162/UDP
Для использования данного порта, а точнее для взаимодействия с ним, нами будет использоваться
Net-SNMP — представляет собой набор программного обеспечения для развёртывания и использования протокола SNMP (v1, v2c и v3 и протокол AgentX субагента). Он поддерживает IPv4, IPv6, IPX, AAL5, сокеты доменов UNIX и других протоколов.
Приложения, входящие в Net-SNMP:
·
encode_keychange — производит изменение ключа KeyChange в SNMPv3.
·
snmptranslate — перевод MIB OID имён между цифровой и текстовой формами.
·
snmpget — взаимодействует с сетью, используя SNMP GET запросы.
·
snmpgetnext — взаимодействует с сетью, используя SNMP GetNext запросы.
·
snmpbulkget — взаимодействует с сетью, используя SNMP GETBULK запросы.
·
snmpwalk — получает поддерево управления значений с помощью SNMP GetNext запросов.
·
snmpbulkwalk — получает поддерево управления значений с помощью SNMP GETBULK запросов.
·
snmpset — взаимодействует с сетью, используя SNMP SET запросы.
·
snmptrap — посылать SNMP траппы или информационные сообщения.
·
snmpd — SNMP агент, который отвечает на запросы SNMP для данного хоста.
·
snmptrapd — демон SNMP, прослушивает SNMP траппы или информационные сообщения, регистрируя их, или воздействует на них.
·
snmptest — взаимодействует с сетью, используя SNMP запросы.
·
mib2c — утилита преобразования MIB-файлов, которая позволяет перевести MIB-структуру в другие формы, такие как C-код
·
tkmib — Perl/Tk интерактивный графический браузер MIB для SNMP.
Продолжаем, с помощью утилиты –
snmpwalk:
>
snmpwalk-c death2all -v 1 192.168.0.103

Результат – «Закрыто». Пробуем открыть с помощью –
snmpset.
> snmpset -c death2allrw -v 1 192.168.0.103 iso.3.6.1.2.1.1.6.0 s Unlocked
Строка должна принять вид «Unlocked» Теперь выполняем предыдущую команду:
>
snmpwalk-c death2all -v 1 192.168.0.103

Счастье, то какое, 7-ой флаг и подсказка, явно указывающая на SSH порт.
7-ой флаг – это хэш MD5. Вытащим из него информацию:
В результате получен – demonslayer, который возможно, является паролем или логином к SSH. Пробуем:
>
ssh 192.168.0.103
В качестве пароля он не подошел, значит это логин. Для поиска пароля воспользуемся брутфорсом по словарю rockyou.txt и Metasploit Framework.
>
msfconsole
>
use auxiliary/scanner/ssh/ssh_login
>
set rhosts 192.168.0.103
>
set username demonslayer
>
set pass_file /usr/share/wordlists/rockyou.txt
>
run

Используя эти учетные данные, устанавливаем соединение на 22-ом порту:
> ssh demonslayer@192.168.0.103

Осмотримся вокруг и обнаруживаем 8-ой флаг, заглянем внутрь.
> ls –a
> cat flag8.txt
Defend yourself! –Стоит рассматривать как localhost на 777 порту.
> nc localhost 777
Теперь необходимо ответить на несколько вопросов.
Первый вопрос - Where do the Black Robes practice magic of the Greater Path?
Ответ –
Kelewan.
Второй вопрос- Who did Johann Faust VIII make a deal with?
Ответ –
Mephistopheles.
Третий вопрос - Who is tricked into passing the Ninth Gate?
Ответ –
Hedge.
Попутно собираем флаги.
Последнее предложение дает подсказку. Осмотримся внимательнее еще раз. Вернемся на шаг назад.
>
ls –la
>
cat .smallvile
Сказано, что мы получили великую силу, значит ли это, что можно использовать sudo?
>
sudo –l

Значит. Ну и следуя инструкции, заглянем в последний, 11-й флаг на этой машине.
> sudo /bin/cat /root/flag11.txt
На этом и заканчивается прохождение этой VM. Спасибо за внимание.
Первая часть
тут.