В этой статье мы погово­рим об экс­плу­ата­ции динами­чес­кого DNS, обна­ружим и заюзаем баг OS Command Injection, а так­же исполь­зуем ошиб­ку в поль­зователь­ском скрип­те и повысим при­виле­гии до рута копиро­вани­ем фай­лов. Все это поможет нам прой­ти сред­нюю по слож­ности машину Dynstr с пло­щад­ки Hack The Box.

warning

Под­клю­чать­ся к машинам с HTB рекомен­дует­ся толь­ко через VPN. Не делай это­го с компь­юте­ров, где есть важ­ные для тебя дан­ные, так как ты ока­жешь­ся в общей сети с дру­гими учас­тни­ками.

 

Разведка

 

Сканирование портов

IP машины — 10.10.10.244, добав­ляем его в /etc/hosts, что­бы обра­щать­ся по име­ни:

10.10.10.244 dynstr.htb

И запус­каем ска­ниро­вание пор­тов.

Справка: сканирование портов

Ска­ниро­вание пор­тов — стан­дар­тный пер­вый шаг при любой ата­ке. Он поз­воля­ет ата­кующе­му узнать, какие служ­бы на хос­те при­нима­ют соеди­нение. На осно­ве этой информа­ции выбира­ется сле­дующий шаг к получе­нию точ­ки вхо­да.

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та.

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Результат работы скрипта
Ре­зуль­тат работы скрип­та

На­ходим три откры­тых пор­та: 22 (служ­ба SSH), 53 (служ­ба DNS) и 80 (веб‑сер­вер Apache). На SSH нам ловить нечего, но мож­но сра­зу пос­мотреть, что может дать DNS. В пер­вую оче­редь нас инте­ресу­ют новые домен­ные име­на и сер­веры:

host -l 10.10.10.244
Проверка DNS-сервера
Про­вер­ка DNS-сер­вера

Но DNS нам ничего не вер­нул, поэто­му перехо­дим к вебу. Вни­матель­но осмотрим­ся на сай­те и поищем любую потен­циаль­но полез­ную информа­цию. Сайт ока­зал­ся очень информа­тив­ным — пря­мо на глав­ной стра­нице находим мно­жес­тво новых доменов, один адрес элек­трон­ной поч­ты и даже какие‑то учет­ные дан­ные.

Главная страница сайта
Глав­ная стра­ница сай­та
Информация для связи — адрес электронной почты
Ин­форма­ция для свя­зи — адрес элек­трон­ной поч­ты

Сра­зу же добавим най­ден­ные DNS в /etc/hosts и еще раз про­тес­тиру­ем каж­дое из них, но уже с помощью dnsrecon.

10.10.10.244 dynstr.htb dnsalias.htb dynamicdns.htb no-ip.htb dyna.htb
dnsrecon -a dnsalias.htb
dnsrecon -a dynamicdns.htb
dnsrecon -a no-ip.htb
dnsrecon -a dyna.htb
Проверка найденных имен DNS
Про­вер­ка най­ден­ных имен DNS

Сно­ва без­резуль­тат­но. Поэто­му воз­вра­щаем­ся к вебу. Так как мы видим толь­ко одну стра­ницу сай­та, есть смысл поис­кать дру­гой кон­тент.

 

Сканирование веб-контента

Су­щес­тву­ет мно­го ути­лит для перебо­ра URL в поис­ках незалин­кован­ного кон­тента. Нап­ример, dirsearch или dirb. Но я с недав­них пор пред­почитаю лег­ковес­ный ffuf. При запус­ке исполь­зуем сле­дующие парамет­ры:

  • -u — URL;
  • -w — сло­варь (исполь­зуем directory-list-2.3-medium из набора Seclists);
  • -t — количес­тво потоков.
ffuf -u http://dynstr.htb/FUZZ -w ~/tmp/wordlists/WebContent/dirs/directory-list-2.3-medium.txt -t 120
Результат сканирования каталогов с помощью ffuf
Ре­зуль­тат ска­ниро­вания катало­гов с помощью ffuf

В резуль­тате я нашел нес­коль­ко катало­гов. Дирек­тория assets обыч­но содер­жит вспо­мога­тель­ный кон­тент, такой как скрип­ты, кар­тинки, шриф­ты и сти­ли, поэто­му она нам неин­терес­на. При обра­щении к фай­лу server-status получа­ем ответ 403 Forbidden, что озна­чает огра­ниче­ние или отсутс­твие дос­тупа к матери­алу на стра­нице. Куда инте­рес­нее дирек­тория nic. Давай пов­торим ска­ниро­вание, но уже в этом катало­ге.

ffuf -u http://dynstr.htb/nic/FUZZ -w ~/tmp/wordlists/WebContent/dirs/directory-list-2.3-medium.txt -t 120
Результат сканирования каталогов с помощью ffuf
Ре­зуль­тат ска­ниро­вания катало­гов с помощью ffuf

Мы находим единс­твен­ную стра­ницу update, при обра­щении к которой получа­ем ответ — badauth.

curl http://dynstr.htb/nic/update ; echo
Обращение к странице /nic/update
Об­ращение к стра­нице /nic/update

По­ка неяс­но, что это, но давай поищем этот каталог в Google. Может ока­зать­ся, что это извес­тная тех­нология, и тог­да мы смо­жем почитать докумен­тацию и открыть какие‑то допол­нитель­ные воз­можнос­ти или даже ска­чать готовые экс­пло­иты. Гуг­лим /nic/update, что­бы най­ти точ­ное сов­падение, и пер­вая же ссыл­ка при­водит нас к NO-IP DDNS.

Поиск каталога /nic/update
По­иск катало­га /nic/update
 

Технология DDNS

DDNS (динами­чес­кий DNS) — это тех­нология, которая поз­воля­ет обновлять информа­цию на сер­вере DNS на лету и, если это нуж­но, авто­мати­чес­ки. DDNS при­меня­ется для того, что­бы наз­начить пос­тоян­ное домен­ное имя устрой­ству с динами­чес­ким IP. Тог­да дру­гие хос­ты смо­гут обра­щать­ся к нему по домену или даже узна­вать, что IP-адрес изме­нил­ся.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии