![](/uploads/posts/2022-08/03.jpg)
Содержание статьи
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.143 paper.htb
И запускаем сканирование портов.
![Результат работы скрипта Результат работы скрипта](/uploads/posts/2022-08/02.png)
Скрипт нашел три открытых порта: 22 — служба OpenSSH 8.0, 80 и 443 — веб‑сервер Apache 2.4.37. Обычно в SSL-сертификате можно подсмотреть новые доменные имена в поле commonName
, но не в этот раз.
![Главная страница сайта Главная страница сайта](/uploads/posts/2022-08/03.jpg)
Точка входа
При пентесте веб‑сервисов лучше всего работать в Burp. Полезно, к примеру, что в Burp History можно будет просмотреть всю цепочку пользовательских запросов и ответов сервера. Так, в HTTP-заголовке X-Backend-Server
находим еще один домен — office.
.
![Запросы в Burp History Запросы в Burp History](/uploads/posts/2022-08/04.png)
Тоже добавляем его в /
.
10.10.11.143 paper.htb office.paper
И на этом домене находим новый сайт.
![Главная страница office.paper Главная страница office.paper](/uploads/posts/2022-08/05.jpg)
И снова Burp History нам помогает — по страницам, к которым обращается наш клиент, мы определяем, что на машине установлен WordPress.
![Запросы в Burp History Запросы в Burp History](/uploads/posts/2022-08/06.png)
Точка опоры
WordPress
На сайте несколько статей с комментариями, которые мы можем прочитать. И один из комментирующих указывает, что в черновиках лежат какие‑то секретные данные.
![Комментарий с сайта Комментарий с сайта](/uploads/posts/2022-08/07.jpg)
Поскольку мы столкнулись с 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](/uploads/posts/2022-08/08.png)
И мы находим уязвимость, которая позволяет читать приватные посты. По предоставленной утилитой ссылке мы получим инструкцию, как эксплуатировать уязвимость.
![Описание обнаруженной уязвимости Описание обнаруженной уязвимости](/uploads/posts/2022-08/09.png)
Переходим к странице /
, и нам становится доступным скрытый пост.
![Содержимое скрытого поста Содержимое скрытого поста](/uploads/posts/2022-08/10.jpg)
Находим ссылку на еще один домен. Добавим его в /
и просмотрим в браузере.
10.10.11.143 paper.htb office.paper chat.office.paper
![Панель регистрации Rocket.Chat Панель регистрации Rocket.Chat](/uploads/posts/2022-08/11.png)
Так мы получаем доступ к панели регистрации в 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;} }
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.