Третья статья про очевидные уязвимости уже здесь.
На этот раз поговорим про публикацию на сайте админок и прочих скриптов.
На данный момент весь интернет постоянно шерстят боты, сканируя популярные названия файлов в корне сайта.
Например:
- /phpmyadmin/index.php
- /pma/index.php
- /server-status
- /server-info
Все эти страницы потенциально уязвимые.
А что можно сделать с PhpMyAdmin?
В первую очередь, это прекрасное место для подбора паролей.
Закрытые порты здесь не спасут.
Во вторую очередь, безалаберность администраторов.
К примеру многие админы не брезгуют и сохраняют логин-пароль в конфигурации PhpMyAdmin.
И когда бот находит PMA - он мгновенно получает доступ к базе, экспортирует все страницы и стирает все таблицы.
Создает одну таблицу на базу с единственной строкой.
Ваша база данных взломана. Наш Bitcoin кошелек: ABC
С вас 0.5 BTC и мы вернем все данные
Неприятная ситуация, особенно на продакшен-сервере.
Решение:
Удаляем с продакшена все возможные админки и клиенты баз данных.
Если требуется админка - хостим её на DEV-сервере с VPN доступом.
Например: OpenVPN
А что случится с server-status и server-info
Если стоит задача найти уязвимые места или скрытые, например админку по сложному адресу: /Jdqhuf3r7admin/index.php, то здесь нам поможет /server-status, который подскажет, к каким страницам идет обращение.
И большинство параметров GET будут доступны злоумышленникам.
Почему большинство, а не все?
Потому что server-status не выводит полный лог, а ограничивается обрезанной строкой адреса. Например: /admin/index.php?action=login&login=ro...
Но и этого бывает достаточно для взлома админки или получения доступа к бекапам.
А из server-info можно узнать подробности установленного Apache. Например подключенные модули, с помощью которых можно устроить DDoS.
Решение:
Отключаем mod_status и mod_info и убираем из конфига
<Location "/server-info">
SetHandler server-info
</Location>
<Location "/server-status">
SetHandler server-status
</Location>
Если вам потребуются данные страницы - организуйте отдельный домен или локалхост и получайте данные через VPN.
Не открывая эти страницы наружу.
Думаю, что суть смог объяснить.
Любые посторонние клиенты уменьшают вашу безопасность, какими бы надежными они не были.
Для взломщика важна каждая деталь и он зацепится за любую мелочь.
Например, был случай, что скрытая часть админки без пароля была указана в robots.txt.
Disallow: /articles/trash/
Disallow: /users/
Disallow: /admin/
Disallow: /admin_new/
Таким образом злоумышленники могли получить доступ ко всему сайту, но владельцу повезло, что мы обратили внимание на слово /admin/ в robots.txt при редактировании.
Такие дела!
Всем нулей и единиц!