Содержание статьи
Упражняться мы будем на тренировочной машине Trick с площадки Hack The Box. По уровню сложности она оценена как легкая.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.166 trick.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Мы нашли четыре открытых порта:
- 22 — служба OpenSSH 7.9p1;
- 25 — служба Postfix SMTP;
- 53 — служба BIND 9.11.5;
- 80 — веб‑сервер Nginx 1.14.2.
Трансфер DNS-зоны
Так как на 53-м порте активна служба DNS, начнем с нее. Трансфер зоны DNS может существенно увеличить поверхность атаки, раскрыв новые записи DNS. Выгрузить зону можно одним запросом AXFR:
dig trick.htb axfr @10.10.11.166
Раскрываем новые доменные имена и сразу добавляем их в файл /
.
10.10.11.166 trick.htb root.trick.htb preprod-payroll.trick.htb
Теперь перейдем к веб‑серверу. Так как у нас много адресов, стоит заглянуть по каждому.
Точка входа
Есть форма логина, и никакой защиты от брутфорса, поэтому попробуем разные словари с техниками обхода авторизации. Обычно для перебора я использую Burp Suite Professional. Перебирать стоит как поле логина, так и поле пароля.
Некоторые нагрузки, нацеленные на эксплуатацию SQL-инъекции, дали не такой же результат, что основная масса. В коде страницы видим ошибку SQL. Несмотря на то что выполнить байпас авторизации не вышло, можно проэксплуатировать саму SQL-инъекцию.
Запустим sqlmap без специальных параметров, чтобы он определил рабочую нагрузку. Указываем URL (параметр --url
), данные POST (параметр --data
) и говорим принимать рекомендуемый дефолтный вариант ответа, если у sqlmap будут вопросы (параметр --batch
).
sqlmap --url "http://preprod-payroll.trick.htb/ajax.php?action=login" --data "username=test&password=test" --batch
Рабочая нагрузка определена, теперь перейдем к эксплуатации.
Точка опоры
Для начала посмотрим, какие есть базы данных (параметр --dbs
).
sqlmap --url "http://preprod-payroll.trick.htb/ajax.php?action=login" --data "username=test&password=test" --batch --dbs
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»