В сегод­няшнем рай­тапе мы про­экс­плу­ати­руем уяз­вимос­ти в популяр­ной CMS WordPress, кор­поратив­ном мес­сен­дже­ре RocketChat, а так­же раз­берем одну из самых нашумев­ших уяз­вимос­тей — Polkit LPE. Все это в рам­ках лег­кой машины Paper с пло­щад­ки Hack The Box.
 

Разведка

 

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

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

10.10.11.143 paper.htb

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

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

Скрипт нашел три откры­тых пор­та: 22 — служ­ба OpenSSH 8.0, 80 и 443 — веб‑сер­вер Apache 2.4.37. Обыч­но в SSL-сер­тифика­те мож­но под­смот­реть новые домен­ные име­на в поле commonName, но не в этот раз.

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

Точка входа

При пен­тесте веб‑сер­висов луч­ше все­го работать в Burp. Полез­но, к при­меру, что в Burp History мож­но будет прос­мотреть всю цепоч­ку поль­зователь­ских зап­росов и отве­тов сер­вера. Так, в HTTP-заголов­ке X-Backend-Server находим еще один домен — office.paper.

Запросы в Burp History
Зап­росы в Burp History

То­же добав­ляем его в /etc/hosts.

10.10.11.143 paper.htb office.paper

И на этом домене находим новый сайт.

Главная страница office.paper
Глав­ная стра­ница office.paper

И сно­ва Burp History нам помога­ет — по стра­ницам, к которым обра­щает­ся наш кли­ент, мы опре­деля­ем, что на машине уста­нов­лен WordPress.

Запросы в Burp History
Зап­росы в Burp History
 

Точка опоры

 

WordPress

На сай­те нес­коль­ко ста­тей с ком­мента­риями, которые мы можем про­читать. И один из ком­менти­рующих ука­зыва­ет, что в чер­новиках лежат какие‑то сек­ретные дан­ные.

Комментарий с сайта
Ком­мента­рий с сай­та

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

Пе­реда­дим ска­неру сле­дующие парамет­ры:

  • --url — URL;
  • -e ap — поиск уста­нов­ленных пла­гинов;
  • --plugins-detection — спо­соб опре­деле­ния пла­гина. Aggressive — гру­бое ска­ниро­вание перебо­ром;
  • -t — количес­тво потоков;
  • --api-token — получен­ный с офи­циаль­ного сай­та API-ключ.
wpscan --urlhttp://office.paper -e ap --plugins-detectionaggressive -t 256 --api-token [...KEY...]
Обнаруженные уязвимости WordPress
Об­наружен­ные уяз­вимос­ти WordPress

И мы находим уяз­вимость, которая поз­воля­ет читать при­ват­ные пос­ты. По пре­дос­тавлен­ной ути­литой ссыл­ке мы получим инс­трук­цию, как экс­плу­ати­ровать уяз­вимость.

Описание обнаруженной уязвимости
Опи­сание обна­ружен­ной уяз­вимос­ти

Пе­рехо­дим к стра­нице /?static=1, и нам ста­новит­ся дос­тупным скры­тый пост.

Содержимое скрытого поста
Со­дер­жимое скры­того пос­та

На­ходим ссыл­ку на еще один домен. Добавим его в /etc/hosts и прос­мотрим в бра­узе­ре.

10.10.11.143 paper.htb office.paper chat.office.paper
Панель регистрации Rocket.Chat
Па­нель регис­тра­ции Rocket.Chat

Так мы получа­ем дос­туп к панели регис­тра­ции в Rocket.Chat!

 

Rocket.Chat

Rocket.Chat — это пол­ностью нас­тра­иваемый мес­сен­джер на ; background-image: -moz-linear-gradient(rgba(255,255,255,0),#fff); background-image: -webkit-linear-gradient(rgba(255,255,255,0),#fff); background-image: linear-gradient(rgba(255,255,255,0),#fff); } .xakepcut .wrapper { text-align: center; background-color: #fafbff; border: solid 4px #ddd; -webkit-transition: all 300ms ease-out; -moz-transition: all 300ms ease-out; -o-transition: all 300ms ease-out; transition: all 300ms ease-out; padding: 40px; } .xakepcut .wrapper:hover { background-color: #f0f1f5; border-color: #3498db; } .xakepcut h1 {font-weight:900 !important;font-size:52px !important;color:#000;margin:0;} .xakepcut p {line-height:18px} .xakepcut h3 {color: #d20; font: normal 26px/30px Roboto,sans-serif !important;margin-top:0} .xakepcut h4 {color: #000; font-size: 22px !important; line-height: 24px !important;} .xakepcut small {display: block; max-width: 600px; color: #666; font-size:13px; line-height: 15px; margin: 10px auto;} .xakepcut .or {position:relative; height:2px; background-color:#ccc; margin: 40px 50px 30px;} .xakepcut .or:after { display: block; position: absolute; left: 50%; width: 80px; top: -12px; content: "или"; font-size: 21px; color: #999; background-color: #fafbff; margin-left: -40px; -webkit-transition: all 300ms ease-out; -moz-transition: all 300ms ease-out; -o-transition: all 300ms ease-out; transition: all 300ms ease-out; } .xakepcut .wrapper:hover .or:after {background-color: #f0f1f5;} .xakepcut table {width: 100%; border: none !important; margin: 20px auto;} .xakepcut table td {width: 50%; max-width: 400px; border: none !important;} .xakepcut table h4 {font: normal 18px Roboto Condensed,sans-serif !important; text-transform: uppercase; color: #666; margin: 0;} .xakepcut table form {position:relative; min-height: 200px; background-color: #d7d8d8; padding: 20px; margin: 0 10px;} .xakepcut table .starburst {right: -10px; top: -10px;} .xakepcut table .striked {position: absolute; display: block; top: -10px; left: 0; right: 0; width: 75px; font-size: 12px; font-weight: 400; opacity: 0.7; margin: 0 auto;} .xakepcut table .price {position:relative; font: bold 36px Roboto Condensed,sans-serif !important; color: #000; margin: 20px auto;} .xakepcut table .price small {display:inline;font-size:50%;line-height:auto} .xakepcut .button { display: block; width: 100%; max-width: 400px; color: #fff; background-color: #d20; border: none; padding: 15px 5px; margin: 10px auto 0; } .xakepcut .button:hover, .xakepcut .button:active, .xakepcut .button:focus { background-color: #b10; } .xakepcut .button-success { background-color: #20af24; } .xakepcut .button-success:hover, .xakepcut .button-success:active, .xakepcut .button-success:focus { background-color: #0a8c0e; } .xakepcut table .desc {display: block; font-size: 15px; color: #333; margin-top: 8px;} .xakepcut .login-link { position: relative; display: block; float: right; } @media (max-width: 632px) { .xakepcut table {margin-bottom: 0;} .xakepcut table td {display: block; width: 100%; max-width: 350px; margin: 0 auto 20px;} .xakepcut table .button {padding: 10px 5px;} .xakepcut table form {min-height: auto;} } @media (min-width: 783px) and (max-width: 991px) { .xakepcut table {margin-bottom: 0;} .xakepcut table td {display: block; width: 100%; max-width: 350px; margin: 0 auto 20px;} .xakepcut table .button {padding: 10px 5px;} .xakepcut table form {min-height: auto;} }


Скачать:









Важно:


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





Заходи на mc.foxygame.ru:25565

Советуем прочитать