Аудит безопасности. Изучаем жертву.Часть 2
В прошлой части (Часть 1) мы научились находить IP-адрес сервера, так же поверхностно прошлись по его составляющим.
Теперь рассмотрим расширение wappalyzer, о котором я говорил в конце прошлой части.
- Сайт сделан на фреймворке Django, написан на языке Python.
- Стоит защита, о которой я говорил в прошлой части (CloudFlare)
Если вы изучили все поля запросов, который мы смотрели, то могли увидеть там это:
Здесь видно, что сайт находится под защитой, эти заголовки будут на каждом сайте, где она присутствует. Теперь вы знаете еще один способ отследить это.
Теперь логичный вопрос, а что с этим всем делать?
Начнем. Мы знаем IP-адрес, на чем написан сайт, видели открытые порты.
Теперь открываем наш Kali Linux, я буду показывать на WSL, потому что мне он кажется намного удобнее, сути это не меняет, терминал остается все тем же.
Сейчас мы будем использовать утилиту под названием Nmap. Каждый, кто хоть чуть чуть сталкивался с пентестом, знает что это такое.
Nmap - многофункциональная утилита, для сканирования открытых портов, поиска сервисов и информации о них, для каждого открытого порта. Так же, для нее присутствует множество скриптов, которые буду искать уязвимости по указанным портам. Функционал обширный, не хватит слов, чтобы обьяснить все, что данная утилита может, лучше прочитайте сами на официальном сайте.
Итак, запустили терминал, вписываем: nmap -sV 5.61.52.74 -vv
-sV - параметр, для получения версий сервисов, использующихся на портах (service version)
-vv - параметр, который включает полный показ происходящего, чтобы сканирование не было пустым, советую его включать.
По сути, мы видим все тоже самое, что видели в прошлой части на сайте censys.io.
НО мы не видим порта 8091. Почему?
Потому что утилита сканирует только первую 1000 портов, тоесть 1-1000.
Чтобы утилита сканировала все порты, нужно добавить параметр -p 1-65535
Тогда nmap будет сканировать все возможные порты, но и сканирование займет больше времени.
Теперь соберем всю информацию, которую мы нашли в кучку.
IP-адрес: 5.61.52.74
Порты: 22, 80, 443, 6379, 8091
Сервисы: ssh, http, https, redis
ЯП/Фреймворк/Сервер: python, django, nginx
Дальше, если информации нам хватает, то начинаем изучать каждый сервис тщательнее.
Если информации не хватает - используйте maltego и/или zaproxy.
Это очень функциональные утилиты для поиска информации, о них лучше почитать отдельно, там слишком много функций.
Нам необходимо получить версию каждого из сервисов.
Сканирование nmap дало нам версию сервера и openssh.
А теперь, финал. Так как мы не мега кодеры, которые смогут разобрать каждый из сервисов на кусочки и найти дырки самостоятельно, остается только искать готовое.
Здесь мы поступаем как бОльшая часть пентестеров: ищем готовые уязвимости в сервисах.
У нас есть название сервиса, его версия - этого хватит, чтобы найти возможные пути проникновения.
Ищите в поисковиках что-то по типу: [сервис версия exploit] (openssh 8.9 exploit)
Ничего готового я найти не смог, но вектор атаки подсказать смогу.
На сервере присутствует БД redis. Пока что, я могу предложить только брутфорсить логин/пароль.
В следующих частях мы разберем что такое уязвимости и с чем их едят и
расскажу вам интересную историю, связанную с одной из уязвимостей.
P.S
Пройдясь по сайту сканированием папок, могу сказать, что на этом сервере с вероятностью 99.9% нет тех самых баз, о который они пишут. Они хранятся на другом сервере.
Здесь БД используется только для хранения лог/пас пользователей.