Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этом райтапе я покажу, как получать DNS-записи для расширения площади атаки, затем проэксплуатируем SQL-инъекцию, а когда повысим привилегии, закрепимся на машине через Fail2ban.
Упражняться мы будем на тренировочной машине Trick с площадки Hack The Box. По уровню сложности она оценена как легкая.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
:
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
).
Результат работы скрипта
Мы нашли четыре открытых порта:
Так как на 53-м порте активна служба DNS, начнем с нее. Трансфер зоны DNS может существенно увеличить поверхность атаки, раскрыв новые записи DNS. Выгрузить зону можно одним запросом AXFR:
dig trick.htb axfr @10.10.11.166
Трансфер DNS-зоны
Раскрываем новые доменные имена и сразу добавляем их в файл /etc/hosts
.
10.10.11.166 trick.htb root.trick.htb preprod-payroll.trick.htb
Теперь перейдем к веб‑серверу. Так как у нас много адресов, стоит заглянуть по каждому.
Главная страница сайта trick.htb
Главная страница сайта preprod-payroll.trick.htb
Есть форма логина, и никакой защиты от брутфорса, поэтому попробуем разные словари с техниками обхода авторизации. Обычно для перебора я использую Burp Suite Professional. Перебирать стоит как поле логина, так и поле пароля.
Burp intruder — вкладка Positions
Результаты перебора Burp Intruder
Некоторые нагрузки, нацеленные на эксплуатацию 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
Отчет sqlmap
Рабочая нагрузка определена, теперь перейдем к эксплуатации.
Для начала посмотрим, какие есть базы данных (параметр --dbs
).
sqlmap --url "http://preprod-payroll.trick.htb/ajax.php?action=login" --data "username=test&password=test" --batch --dbs
Существующие базы данных
Источник: xakep.ru