Pull to refresh
0

Путешествие в Onionland: взлом скрытого сервиса из даркнета в задании NeoQUEST-2016

Reading time 4 min
Views 16K
Пока продолжается регистрация на питерскую «очную ставку» NeoQUEST-2016, посетить которую может любой желающий, мы продолжаем разбирать задания online-этапа.

И на очереди задание «Эти горькие луковые слёзы», в котором участникам предстояло взломать скрытый сервис, расположенный в даркнете Onionland. Доступ к таким сервисам возможен только через сеть Tor и только по имени, но в остальном они ничем не отличаются от обычных сайтов. Было два принципиально разных способа решения задания:
  • поиск уязвимости «вручную»;
  • настройка сканера веб-уязвимостей для работы с .onion-сайтами.

Разбор обоих способов — под катом!

Исходные данные


Участникам был дан адрес сайта cx7b2vy6foxjlzsh.onion и имя пользователя randomradon, чей пароль необходимо было достать.

Псевдо-домен верхнего уровня .onion указывает на то, что сайт находится в сети Tor. Для входа на такой сайт нужно использовать либо Tor Browser, либо сервисы вроде tor2web или onion.city. Так или иначе, попав на сайт, можно увидеть вот такую картину:



Тут мнения участников о том, что делать дальше, расходились. Кто-то искал уязвимость «вручную», кто-то использовал сканер веб-уязвимостей для работы с .onion-сайтами. Рассмотрим оба пути.

Способ 1 — ищем уязвимость «вручную»


Просмотр сайта не дает ничего интересного, кроме многочисленных указаний на то, что сайт находится в разработке. Это намекает на возможное наличие отладочных страниц. И действительно, попробовав различные стандартные названия, можно найти страницу test.html с какими-то формами.



Последняя форма отправляет запрос на сервер и содержит SQL-инъекцию (это можно обнаружить, например, оставив пустым поле ввода при отправке формы).



Дальше нужно понять, что же возвращает сервер. Простейший запрос показывает, что возвращается md5-хэш от единственного результата запроса:

0 AND 1=0 UNION SELECT 1; --


Следующим шагом является извлечение имеющихся баз данных. Очевидно, запрос вроде такого:

0 AND 1=0 UNION SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 1 OFFSET 0; --


не может извлечь названия, так как он возвращает хэш названия БД, а не само название. Это можно обойти, доставая названия по буквам с помощью функции SUBSTR() и определяя извлеченную букву по хэшу:

0 AND 1=0 UNION SELECT SUBSTR(SCHEMA_NAME, 1, 1) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 1 OFFSET 0; --


В базе данных находится три схемы:
  • information_schema
  • test
  • torsite

Далее с помощью запросов вида

0 AND 1=0 UNION SELECT SUBSTR(TABLE_NAME, 1, 1) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="TORSITE" LIMIT 1 OFFSET 0; --


можно получить таблицы в torsite (test была пустой):
  • key
  • message
  • user

Затем аналогичным образом можно получить поля таблиц, увидеть, что пароли хранятся в таблице user, достать оттуда пароль пользователя randomradon (хранящийся в виде хэша) и обратить хэш (например, с помощью онлайн-сервисов или радужных таблиц).

Способ 2 — используем сканеры


Простейший способ найти уязвимость в сайте – воспользоваться сканером уязвимостей! А вот настроить сканер для работы со скрытыми сервисами Tor – не такая простая задача. Основная проблема состоит в том, что многие сканеры опираются на IP-адрес сайта. В сети Tor IP-адреса не используются, и сканеры работают некорректно.

Популярный сканер Nmap может быть настроен для работы в даркнете Tor. Для этого нужно сделать следующее:
  1. Скачать и установить специальную версию nmap-nseportscan-socks4a
  2. Добавить в файл hosts запись «127.0.0.1 cx7b2vy6foxjlzsh.onion», это позволяет избежать ошибки разрешения имени cx7b2vy6foxjlzsh.onion
  3. Скачать и запустить Tor
  4. Запустить nmap с правами root, используя следующие параметры:
sudo ./nmap -sK --script connectscan, <список скриптов> --proxy socks4a://127.0.0.1:9050 cx7b2vy6foxjlzsh.onion –F

Nmap не находит уязвимостей, зато обнаруживает потенциально интересную тестовую страницу:



Изучив код страницы, в одном из скриптов можно найти запрос, который «упускает» Nmap:



Для исследования отдельного запроса удобнее использовать Sqlmap. Этот инструмент поддерживает работу с .onion-сайтами, никакая специальная настройка не нужна, запуск осуществляется командой:

python sqlmap.py -u «cx7b2vy6foxjlzsh.onion/qwertyqwerty.php» --data=«id=1» --tor --tor-port=9050 --tor-type=SOCKS5

Sqlmap обнаруживает SQLi уязвимость:



Далее при помощи Sqlmap можно вытащить всю необходимую информацию о базе данных:



Sqlmap получает данные несмотря на то, что они возвращаются в виде хэша. Невозможность прямого получения данных обходится с помощью техник Time-based blind SQLi и Boolean-based blind SQLi. Обе техники извлекают информацию посимвольно, значение символа находится бинарным поиском: каждым запросом очередной символ сравнивается с некоторым числом.

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

Time-based blind SQLi не подходит для использования в сети Tor из-за больших (и зачастую случайных) задержек; зато Boolean-based blind SQLi вполне работает. Символ за символом, Sqlmap «высасывает» базу данных.

To be continued


Обычно даркнет ассоциируется с таинственными, секретными сетями, темные углы которых кишат незаконной деятельностью: управлением ботнетами, продажей наркотиков и т. п. Такое представление не совсем верно, ведь нелегальный контент – вовсе не основное предназначение даркнета. Впрочем, нельзя отрицать наличие там действительно опасных скрытых сайтов и сервисов.

Все меньше заданий online-этапа остается разобрать, и все меньше остается времени до «очной ставки», в программе которой — множество докладов на самые разнообразные темы! Мы поговорим о безопасности Intel ME, о том, как найти ботов в социальных сетях, расскажем о незащищенности публичных беспроводных сетей, «залезем» в процессор, обсуждая Intel SGX и Intel MPX, расскажем, какие опасности поджидают «модников» — пользователей всевозможных «умных» гаджетов, и многое многое другое!
Tags:
Hubs:
+11
Comments 0
Comments Leave a comment

Articles

Information

Website
neobit.ru
Registered
Employees
51–100 employees
Location
Россия