• [ Регистрация ]Открытая и бесплатная
  • 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
Порт открыт, а значит, на хосте активна служба 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

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

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

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

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

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

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

Справка Testing the Infrastructure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройки sudoers

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

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

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

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

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

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

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