Logo

Probe

Use your baseline scanning skills to enumerate a secure network.

TryHackMe: Прохождение комнаты Probe.

Probe

Просканируем с помощью nmap все порты (-p-) цели в режиме зондирования для определения какой сервис (и его версия) там скрывается (-sV):

$ nmap -sV -p- $RHOST

nmap
Сразу находим ответы на следующие три вопроса:

1. What is the version of the Apache server?
2. What is the port number of the FTP service?
12. What is the name of the software being used on the standard HTTP port?

Переходим к разбору двух вопросов связанных с сертификатом:

3. What is the FQDN for the website hosted using a self-signed certificate and contains critical server information as the homepage?
4. What is the email address associated with the SSL certificate used to sign the website mentioned in Q3?

FQDN означает “полностью определённое имя домена”, сокращение от Fully Qualified Domain Name. Полное имя вообще должно включать корневой домен, но в ответе его указывать не нужно.

Полностью определённое имя домена
Посмотрим какой же сертификат используется на сервере. Судя по результатам сканирования выше, криптографический протокол (ssl/http) используется на стандартном порту 443, а также 1443, именно там можно запросить сертификат, сразу же видим и FQDN, и почту:
$ openssl s_client -showcerts -connect $RHOST:443

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

5. What is the value of the PHP Extension Build on the server?

Если пройтись по http портам, то можно обнаружить на 1443 вывод информации о текущей конфигурации PHP – phphinfo(). Получим информацию про PHP Extension Build.

$ wget --no-check-certificate -q -O - https://$RHOST:1443 | grep 'PHP Ext'

Поскольку сервер использует самоподписанный сертификат, необходимо указать ключ --no-check-certificate отключающий данную проверку. По умолчанию wget всё пишет в файл, поэтому укажем необходимость вывода информации в стандартный вывод -O -, ну и ключ -q для подавления служебной информации. Особо стоит отметить, что обязательно необходимо указать протокол https. Ну а grep отфильтрует только нужную строку:

wget php exptension build

6. What is the banner for the FTP service?

Подключимся к ftp (адрес порта мы получили при ответе на второй вопрос). FTP использует простой протокол, поэтому мы можем использовать как специализированную утилиту ftp, так и обычный telnet. Поскольку нам нужно получить лишь приветственное сообщение от сервера, нам достаточно обычного telnet:

$ telnet $RHOST 1338
telnet

Следующие два вопроса можно объединить.

7. What software is used for managing the database on the server?
13. What is the flag value associated with the web page hosted on port 8000?

Запустим сканер каталогов. Воспользуемся для этого ffuf, это более современный и продвинутый аналог классических dirb и dirbuster. Уберем вывод ресурсов с ошибкой 403 -fc 403. Ключ -c исключительно для эстетики, он включает цветной вывод. В качестве словаря -w укажем big.txt.

Если у вас в системе нет словарей (из коробки они имеются, например, в linux дистрибутивах Parrot и Kali), то их можно скачать в репозитории SecLists.

Особое внимание на слово-параметр FUZZ в адресе, именно оно будет заменяться при переборе на значения из словаря.

$ ffuf -u "http://$RHOST:8000/FUZZ" -fc 403 -c -w /usr/share/wordlists/dirb/big.txt

telnet
По результатам вывода видим секретный каталог при переходе по которому получаем флаг из 13 вопроса. А так же каталог который однозначно указывает на приложение используемое на сервере для администрирования MySQL.

8. What is the Content Management System (CMS) hosted on the server?
9. What is the version number of the CMS hosted on the server?

По результатам самого первого сканирования мы видели, что на порту 9007 висит http. Попробуем открыть в браузере. Получим ошибку, оказывается там используется протокол https. Перезайдем и увидим некий блог, в правом нижнем углу которого намеренно стерто наименование CMS системы. Попробуем посмотреть в исходный код страницы. Там стоит обратить внимание на мета тег с именем generator, он указывает и CMS, и её версию:

<meta name="generator" content="XXXXXX ?.?.?" />

10. What is the username for the admin panel of the CMS?

Откроем первую же запись блога, под ним указана дата публикации, раздел и имя пользователя. Удостовериться можно открыв админ панель и введя данное имя пользователя. Для несуществующих пользователей будет выведено сообщение “The username non-exist-user is not registered on this site”, а для существующих – о неверном пароле.

Как найти админ панель? Уже зная что за CMS используется на сервере, легко в сети узнать её стандартный адрес. Либо возможно запустить какой-либо сканер уязвимостей. Как специализированный под данную CMS, так и универсальный. Сканер обязательно укажется ссылку на админ панель при её обнаружении. Для ответа на 11 вопрос как раз требуется запустить подобный сканер.

11. During vulnerability scanning, OSVDB-3092 detects a file that may be used to identify the blogging site software. What is the name of the file?

Воспользуемся стареньким nikto:

$ nikto -host $RHOST -port 9007

К сожалению, ресурс открытой базы уязвимостей закрыт с 2016 года, поэтому прямого указания на OSVDM-3092 в современных версиях nikto не будет (частично сопоставления старых OSVDM-nnnn к современным CVE-YYYY-nnn можно делать на CVE). Итак, среди прочего, будет выведено сообщение указывающее на файл который позволяет идентифицировать ПО на сайте, собственно это и есть ответ на 11 вопрос:

/xxxxxxx.xxx: License file found may identify site software.

На этом всё.