• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Используем Mosh для получения сессии на сервере

stihl

Moderator
Регистрация
09.02.2012
Сообщения
1,178
Розыгрыши
0
Реакции
510
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
Сегодня мы повысим привилегии в Linux, воспользовавшись возможностью создать сессию оболочки Mosh в привилегированном контексте. На пути к шеллу получим данные по SNMP, проникнем в установленную на сайте CMS и узнаем пароль пользователя.
Наша конечная цель — получение прав суперпользователя на машине UnderPass с учебной площадки Hack The Box. Уровень задания — легкий.

warning​

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

Разведка​


Сканирование портов​

Добавляем IP-адрес машины в /etc/hosts:

10.10.11.48 underpass.htb
И запускаем сканирование портов.

Справка: сканирование портов​

Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
Код:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1

Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Результат работы скрипта
Сканер нашел два открытых порта:

  • 22 — служба OpenSSH 8.9p1;
  • 80 — веб‑сервер Apache 2.4.52.
Также проверим популярный UDP-порт 161, на котором обычно работает служба SNMP.

sudo nmap -sU -p161 -A 10.10.11.48
Результат сканирования порта 161
Результат сканирования порта 161
Порт открыт, а значит, на хосте активна служба SNMP.


Точка входа​

Начинаем с сайта на 80-м порте веб‑сервера. Однако там нас ожидает стандартная страница веб‑сервера Apache.

Страница по умолчанию
Страница по умолчанию
На сайте ничего интересного найти не удалось, поэтому приступим к сканированию.

Справка: сканирование веба c feroxbuster​

Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся. Я предпочитаю Для просмотра ссылки Войди или Зарегистрируйся.
Нам понадобятся следующие параметры:
  • -u — URL;
  • -w — словарь (я использую словари из набора Для просмотра ссылки Войди или Зарегистрируйся);
  • -t — количество потоков;
  • -d — глубина сканирования.
Запускаем feroxbuster и задаем все параметры:

feroxbuster -u Для просмотра ссылки Войди или Зарегистрируйся -w directory_2.3_medium_lowercase.txt -d 1 -t 256
Просканировав все файлы и каталоги, ничего нужного для продвижения не находим. Также я просканировал поддомены при помощи ffuf, но и тут ничего интересного не было.

Тогда переходим от сканирования веб‑сервера к тестированию службы SNMP на порте 161.

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

В SNMP используется сommunity-based модель безопасности (на основе строки сообщества). Фактически это идентификатор пользователя или пароль, который отправляется вместе с запросом. Если строка сообщества неверна, агент игнорирует запрос. Попробуем получить информацию по стандартной строке public.

snmpwalk -v 2c -c public underpass.htb
Информация из SNMP
Информация из SNMP

Обычно информации вываливается очень много, но в этот раз все почти уместилось на одном экране. В первых параметрах сразу отмечаем имя пользователя steve@underpass.htb, а также идущую следом строку:

UnDerPass.htb is the only daloradius server in the basin!
Загуглим daloradius server.

Результат поиска в Google
Результат поиска в Google

Самая Для просмотра ссылки Войди или Зарегистрируйся ведет на GitHub-репозиторий daloRADIUS. Это приложение Radius Web Management для управления пользователями, составления отчетности, ведения бухгалтерского учета и тому подобных вещей. Убедимся, что на сервере действительно установлено это веб‑приложение, для чего обратимся к файлу daloradius/ChangeLog.

Содержимое файла ChangeLog
Содержимое файла ChangeLog

В справке приложения можно найти учетные данные администратора системы по умолчанию.

Справка Testing the Infrastructure
Справка Testing the Infrastructure

Переходим к странице авторизации:

Для просмотра ссылки Войди или ЗарегистрируйсяИ пытаемся залогиниться с найденными учетными данными.

Страница авторизации daloRADIUS
Страница авторизации daloRADIUS

Система была развернута со всеми настройками по умолчанию, поэтому мы получаем административный доступ.

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

Продвижение​

Немного почитав про администрирование daloRADIUS, можно узнать, что панель управления пользователями предоставляет излишнюю информацию. Мы можем получить список пользователей вот на этой странице:

/daloradius/app/operators/mng-list-all.php
Помимо ID, имени пользователя и ссылки на профиль, на странице отображается и хеш пароля.

Содержимое страницы Users Listing
Содержимое страницы Users Listing

Судя по длине хеша, используется алгоритм хеширования MD5. Быстро проверить хеш MD5 по базам можно на сайте Для просмотра ссылки Войди или Зарегистрируйся. В итоге сразу получаем пароль пользователя svcMosh.

Результат взлома пароля
Результат взлома пароля

Нередки случаи, когда у пользователя один пароль в разных сервисах. С полученными учетными данными удалось подключиться по SSH и забрать первый флаг.

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

Локальное повышение привилегий​

Теперь нам необходимо собрать информацию. Я буду использовать для этого скрипты PEASS.

Справка: скрипты PEASS​

Что делать после того, как мы получили доступ в систему от имени пользователя? Вариантов дальнейшей эксплуатации и повышения привилегий может быть очень много, как в Linux, так и в Windows. Чтобы собрать информацию и наметить цели, можно использовать Для просмотра ссылки Войди или Зарегистрируйся (PEASS) — набор скриптов, которые проверяют систему на автомате и выдают подробный отчет о потенциально интересных файлах, процессах и настройках.
Загрузим на удаленный хост скрипт для Linux, дадим право на выполнение и запустим сканирование. В выводе будет много информации, но важной в этом случае можно назвать только настройки sudoers.

Настройки sudoers
Настройки sudoers

Пользователь svcMosh может запустить /usr/bin/mosh-server без ввода пароля в привилегированном контексте.

Mosh (Mobile Shell) — это аналог SSH, но с некоторыми дополнительными функциями:

  • сессии сохраняются, даже когда клиент меняет свой адрес, например при переходе на другую беспроводную сеть;
  • терминальные сессии поддерживаются в активном состоянии даже при потере подключения или при переводе клиентского компьютера в режим ожидания;
  • клиент Mosh пытается реагировать на события клавиатуры (набор текста, удаление символов), не дожидаясь ответа от сервера, что скрывает сетевую задержку.
Запускаем сервер Mosh. В терминале отобразятся порт и ключ для подключения клиента.

sudo /usr/bin/mosh-server new
Запуск сервера Mosh
Запуск сервера Mosh

В другом терминале подключаемся с указанными данными и получаем сессию root.

MOSH_KEY=g7GjrHThX59jU+nwHKFldg mosh-client 127.0.0.1 60001
Флаг рута
Флаг рута

Машина захвачена!
 
Activity
So far there's no one here
Сверху Снизу