HTB Spectra. Пентестим WordPress и повышаем привилегии в Unix

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

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

Се­год­ня мы с тобой прой­дем лег­кую машину с пло­щад­ки Hack The Box под наз­вани­ем Spectra. Мы будем пен­тестить сайт под управле­нием WordPress, прод­вигать­ся на хос­те бла­года­ря авто­логи­ну и повысим при­виле­гии за счет коман­ды initctl.

warning

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

 

Разведка

 

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

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

10.10.10.229 spectra.htb

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

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

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

По резуль­татам ска­ниро­вания име­ем три откры­тых пор­та:

  • порт 22 — служ­ба SSH;
  • порт 80 — веб‑сер­вер nginx 1.17.4;
  • порт 3306 — СУБД MySQL.

SSH и MySQL для нас пока зак­рыты, поэто­му нач­нем с веба. Вни­матель­но изу­чим сайт и соберем информа­цию.

 

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

Сайт пред­став­ляет собой прос­то стра­ницу с дву­мя ссыл­ками. Пер­вая ведет к катало­гу, где раз­вернут сайт Software Issue Management на WordPress, а по вто­рому адре­су прос­то получим сооб­щение об ошиб­ке при под­клю­чении к базе дан­ных.

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

Стра­ница сай­та Software Issue Management

Со­обще­ние об ошиб­ке соеди­нения с базой дан­ных 

Точка входа

Ин­тересен адрес тес­тового сай­та:

http://10.10.10.229/testing/index.php

Мне показа­лось подоз­ритель­ным пря­мое ука­зание индекс‑фай­ла index.php, поэто­му я про­верил, что вер­нет сер­вер при обра­щении к http://10.10.10.229/testing/. И сер­вер вдруг вер­нул все содер­жимое этой дирек­тории! Прос­тей­шая ошиб­ка в нас­трой­ках веб‑сер­вера, которая иног­да может помочь.

Со­дер­жимое дирек­тории testing

Быс­тро перес­мотрев фай­лы, я нашел в wp-config.php.save (бэкап wp-config.php) учет­ные дан­ные для под­клю­чения к базе дан­ных.

Учет­ные дан­ные для под­клю­чения к базе дан­ных

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

 

WordPress

Для тес­тирова­ния сай­тов на WordPress мне не раз при­гож­далась ути­лита WPScan. С ее помощью мож­но обна­ружить уяз­вимые вер­сии самого WordPress, тем и пла­гинов, а так­же соб­рать спи­сок поль­зовате­лей и переб­рать учет­ные дан­ные — в общем, все, что нуж­но.

Ча­ще все­го уяз­вимос­ти кро­ются в пла­гинах, поэто­му я зарядил перебор в агрессив­ном режиме (занима­ет око­ло получа­са).

wpscan --url http://spectra.htb/main/ --plugins-detection aggressive

К сожале­нию, ничего обна­руже­но не было. Но вспом­ним, что у нас есть один пароль, который мож­но спре­ить (Password Spraying) по всем най­ден­ным поль­зовате­лям. Давай поищем их в CMS. Запус­каем WPScan с опци­ей -e u.

wpscan --url http://spectra.htb/main/ -e u

Най­ден­ные поль­зовате­ли

И у нас получа­ется авто­ризо­вать­ся от име­ни поль­зовате­ля administrator с паролем, най­ден­ным в бэкапе фай­ла кон­фигура­ций WordPress.

Про­филь поль­зовате­ля administrator 

Точка опоры

Ад­минис­тра­тор WordPress име­ет пра­во заг­ружать на сер­вер файл, поэто­му мы можем заг­рузить шелл и выпол­нить бэк­коннект к сво­ему хос­ту. В дан­ном слу­чае это лег­че все­го сде­лать с помощью модуля exploit/unix/webapp/wp_admin_shell_upload в Metasploit Framework. В опци­ях модуля сле­дует ука­зать адрес и порт локаль­ного хос­та для под­клю­чения (LHOST и LPORT), целевой хост (RHOSTS), дан­ные адми­нис­тра­тор­ской учет­ки и путь к домаш­нему катало­гу WordPress (TARGETURI).

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

Ответить

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