Вы же слышали что то по типу, что взломать можно все? В интернете так много серверов, на которых расположенный сайты, фтп, нюдсы и многое другое, не суть важно. Из-за такого большого кол-ва интернета, не так то и много людей, которые шарят за интернет изнутри.
Любой может купить сервер за 200р, и создать сайт, а вот настроить безопасность или не сломать ничего что делает сервер безопасным, не все смогут. Ведь проблема может быть не обязательно в сервере, может и в самом сайте.
Содержание
О взломе
- Сбор инфы
- Поиск уязвимостей
- Взлом
Собираем информацию
Можно использовать такие поисковики как Shodan, Censys, ZoomEye, но мы ж панки, и платить за поиск УС с уязвимостями не будем, поэтому доркинг.
site
– искать по конкретному сайтуinurl
– указать на то, что искомые слова должны быть частью адреса страницы/сайтаintitle
– оператор поиска в заголовке самой страницfiletype
– поиск файлов конкретного типа по расширению
Используйте это – inurl: /proc/self/cwd
, этот запрос найдет сервер, у которого имеется возможность любому пользователю с помощью уязвимости Path Traversal получить доступ к директории /proc/self/cwd
.
Directory traversal attack
Атака с обходом каталога использует недостаточную проверку безопасности или очистку имен файлов, предоставленных пользователем, так что символы, представляющие “переход к родительскому каталогу”, передаются через API файловой системы ОС. (QWASP)
Вот что мы видим на странице
Так как данный сервер запущен на Apache, мы можем посмотреть содержимое всего сайта перейдя в каталог www.
Перейдем на домашнюю страницу и увидим личные файлы администратора, в том числе и список файлов, которые он загружал
А теперь самое интересное, та самая директория /proc/self/cwd
, которая позволяет перейти в директорию home и посмотреть список юзеров
Здесь содержится единственная директория пользователя
Вернемся назад и попробуем посмотреть файл /etc/passwd
:
У нас имеется полный список всех пользователей, осталось проверить, какие сервисы запущены на сервере, а для этого воспользуемся NMap, но перед этим нам нужно узнать IP сервера:
ping domain
Берём IP и используем его для сканирования:
nmap IP
Итак, на сервере запущены сервисы ssh и smtp, посмотрим, имеются ли уязвимости в этих сервисах или других частях сайта через сканнер nikto.
Поиск уязвимостей
Запустим сканнер:
nikto -h url
Конкретно на этом сайте сканнеру не удалось найти уязвимостей, связанных с запущенными сервисами, однако это не означает, что его невозможно взломать.
Взлом
Зная, что на сервере запущен SSH и имея список пользователей системы, мы можем попробовать подобрать пароль к одному из пользователей.
Для этого используем инструмент hydra
hydra -V -f -t 4 -l username -P /root/wordlist ssh://IP
-V
– показывать пару логин+пароль во время перебора
-f
– остановка как только будет найден пароль для указанного логина
-P
– путь до словаря с паролями
-l
– логин
-P
– путь к словарю паролей
ssh://
– указание сервиса и IP адрес цели
Пример пентеста сайта на WordPress
Теперь мы рассмотрим ещё один пример взлома, но теперь на сайте, сделанного с помощью CMS WordPress.
Найдем какой-нибудь сайт
inurl:wp-content
В Kali Linux присутствует специальный сканнер WPScan, которым мы и воспользуемся
wpscan --url url
Так же может потребоваться обновить базу данных
По завершению сканирования, утилита выведет отчет.
В этом случае отчет не дал никаких результатов по уязвимостям, поэтому воспользуемся более грубым методом перебора пользователей
wpscan --url url --enumerate -u
В итоге удалось найти одного пользователя
Как и в случае с предыдущем сайтом, попробуем атаковать пользователя перебором по словарю
wpscan --url url --passwords file --usernames username
Вот и все. Это самый начальный взлом, подобными способами получится взломать далеко не все.
Но тем не менее об этом лучше знать. Ведь это актуально не только для сайтов.
О защите
Самый универсальный и простой способ.
Сайты как таковы публичны, и их директории\файлы и тп. Поэтому вот что вам нужно сделать на хосте:
- Убрать индексацию “приватных” дир. в robots.txt
- Выставить правильные права на дир. которые не должны быть публичными
А для БД сайта, ssh пользователей, вашего аккаунта хоста и аккаунта вашей CMS (если он есть) – поставить сложный пароль и везде разный.
Желательно максимально допустимой длинны используя все доступные символы. Времена когда вы вводили пароли руками – прошли, ну или почти :)
На бумагу такой пароль будет трудно записать. Но существуют менеджеры паролей.
За все время произошло много сливов БД, и еще произойдет, поэтому ваш пароль уже может быть в каком нибудь вордлисте. Это не говоря о генерации возможных паролей, в основе которых ваши данные – ФИО, дата рождения, увлечения и тд.
Все остальные методы защиты упираются в ваши знания, знания систем, программирования и тд. или наличия денег и готовность их тратить на защиту.