Подорож у Onionland: злом прихованого сервісу з даркнета в завданні NeoQUEST-2016

Поки триває реєстрація на пітерську «очну ставку» 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, розповімо, які небезпеки чекають «модників» — користувачів всіляких «розумних» гаджетів, і багато багато іншого!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.