GitHub оказался под крупнейшей DDoS атакой, немного обсудили в общем рабочем чате вечерком. Оказалось, что мало кто знает о замечательных поисковиках shodan.io и censys.io.
Ну и я интересу ради, прям для вау эффекта поискал TeamCity (далее тс), т.к. помню прикольный баг с регой в старых версиях.
Как оказалось, его даже не нужно было применять, т.к. во многих тс админы не закрывали регистрацию, а на некоторых доступен был вход под гостем.
*картинки можно открывать в соседней вкладке, для лучшего качества
![image](https://habrastorage.org/getpro/habr/post_images/e77/948/0d3/e779480d3475b9d2334036b2dcd85323.png)
Взял самый первый попавшийся IP и двинул на их тс.
![image](https://habrastorage.org/getpro/habr/post_images/1be/179/310/1be179310f0a9a985db8c9e32c3892b3.png)
Ура, есть рега обыкновенная, и как правило, у неё прав больше, чем у гостя, см. сравнение ниже
![Гость](https://habrastorage.org/getpro/habr/post_images/32b/ed4/98c/32bed498c7157cdf03cde3900fffa06c.png)
Гость
![А вот так под новым зареганым аккаунтом](https://habrastorage.org/getpro/habr/post_images/22d/f4a/391/22df4a3912ac064a99793db0a548eff2.png)
А вот так под новым зареганым аккаунтом
В параметрах явно были прописаны некоторые доступы
![image](https://habrastorage.org/getpro/habr/post_images/df4/f46/2e8/df4f462e8abe00136f73fc5e1ed4520e.png)
Но логины пароли также и в другом месте есть — в конфигах артефактов:
![image](https://habrastorage.org/getpro/habr/post_images/367/3d9/628/3673d96283f48505f29f3c6841ac7ed7.png)
![image](https://habrastorage.org/getpro/habr/post_images/239/911/69a/23991169a797cad455336a8d55a4de93.png)
Судя по названиям БД ничего интересного быть там не может, но всё же решил попробовать.
Легковесный и быстрый клиент для монги под винду — robomongo.org
![image](https://habrastorage.org/getpro/habr/post_images/013/d16/141/013d1614180232b0b3e240beaa5708f7.png)
Сильно шариться по БД не стал, т.к. слово analytics навевает скуку.
В TFS сходить не удалось, определённо логин не вебовский, курить апи тоже скучно, ибо не самый интересный проект, но для демонстрации достаточно).
Почта разрабов добыта там же — отписался, ответа нет.
Если артефакты не были доступны — всегда можно посмотреть change log:
![image](https://habrastorage.org/getpro/habr/post_images/9a9/eb5/0b3/9a9eb50b377cd29bc2b411ee943203fb.png)
![image](https://habrastorage.org/getpro/habr/post_images/039/89a/760/03989a7602d613f63440e6f9364a8304.png)
Удивляют проекты, где пароли — простые слова, тут хоть префикс есть.
Помню однажды попался пасс — осмотрись, прям забавно.
Также, определённая категория людей, предпочитает хранить прямо в коде всякие настройки:
![image](https://habrastorage.org/getpro/habr/post_images/ad2/004/20a/ad200420aaac7b2a66892a3c025a7ac9.png)
Перехожу к самому интересному — есть проект triplay.com
Их продукты: emusic.com, estories.com, mydigipack.com, mymusiccloud.com и ещё какие-то. Установок приложения андроид 1000000+, эпловое — не понял где там количество скачиваний смотреть.
Ну и конечно же — их тимсити был открыт снаружи, + открыта рега:
![image](https://habrastorage.org/getpro/habr/post_images/b9a/3ce/e7e/b9a3cee7eec03f67172d771307ee35d2.png)
120 сборок, но артефакты были далеко не везде, вероятно для экономии места. Зато имеется Common проект, где все артифакты собираются вместе, но серверные вполне себе велись и этого было достаточно:
![image](https://habrastorage.org/getpro/habr/post_images/12b/477/806/12b47780646806a0eb18948697415c54.png)
Отлично, качаем файл и… я прям не удивлён:
![image](https://habrastorage.org/getpro/habr/post_images/953/978/969/9539789695561e9aeacfc3c762e85167.png)
![image](https://habrastorage.org/getpro/habr/post_images/f70/61c/374/f7061c37437e3441676169d23cb266cb.png)
Пришлось поставить яву и проверить коннект к ораклу (оракл для простого сайтика в проде, ааа, блин, ну почему не postgres):
![image](https://habrastorage.org/getpro/habr/post_images/283/b5b/480/283b5b48072d58e3fef22c0749c5ea76.png)
Конечно же, несмотря на то, что в конфигах был указан везде префикс prod — без явной проверки этого нельзя было сказать наверняка):
![image](https://habrastorage.org/getpro/habr/post_images/d27/edb/cc9/d27edbcc9c52c027bea2bda1b92e3165.png)
Ну и конечно, я сам зарегал почту, с которой им отписал о проблеме (только я показал скрины, а не сценарий, т.к. не хотел, чтобы чел из саппорта получил доступ к бд, где 691к аккаунтов, выкачал всё это дома и… я хз, что мог бы сделать. Сценарий немного надуман, но лучше попросить контакт админа/разраба).
В теории, полный доступ к бд и можно смело заменять чей-нибудь хеш/соль пасса своими и входить под ним.
Но я лишь почитал данные и успокоился на этом, отписавшись в офф. сапорт, на что мне ответили, что всё рассмотрят, переведут на специалиста, который ответит в порядке очереди и… молчание
Спустя несколько дней они закрыли доступ к БД, но не к тс, проверил почту — ни вопросов, ни благодарностей.
Ну ок, полез проверять дальше и… в артефактах нашёл проект, который содержит деплой скрипты, словно он в тс попадает откуда-то из вне и после сам запускает билд.
![image](https://habrastorage.org/getpro/habr/post_images/4cb/269/918/4cb2699184820ec48b448bcb26c71441.png)
![image](https://habrastorage.org/getpro/habr/post_images/830/cf4/945/830cf49452b22bb33b16b59e8821fe78.png)
Так и было, + ещё логин/пасс от тс.
Сложно было поверить в это, ну ок, телнет 22 пашет, пробую ссш, но погоди, какой же логин…
![image](https://habrastorage.org/getpro/habr/post_images/686/e13/380/686e13380b47f82cd08a6bca8f61950a.png)
Немного удивился наличию доступа, ок. Осмотрелся в консоли, посмотрел хосты (35 машин прописано) и какие-то ключики (я с никсами не оч, доступ рут и без того ясно, что даст сделать всё, что хочешь, было бы желание).
Нашёл тестовый доменчик + конкретную машину (и… кажется ssl серт).
![image](https://habrastorage.org/getpro/habr/post_images/e11/765/032/e1176503228137c1ee21c4315f659f75.png)
Выше скрин, кстати, когда я с одного сервера хожу на другой, ибо тот из вне по ssh не был доступен. И таких машин там было, конечно же, дофига, сами представьте, какая там инфраструктура.
И положил файлик с особым приветом (с ошибками, уж сорри, уже спать хотелось).
![image](https://habrastorage.org/getpro/habr/post_images/835/cb1/63e/835cb163ee53ab02dd7c7e190889a75c.png)
После очередного письма они прикрыли лавочку.
Но не тут то было, у ребят оставался тестовый аккаунт. Я вошёл под ним. Оказалось можно получить трек бесплатно… ну я на всякий F12 и… что я вижу в пейлоаде:
Нет, это не первоапрельская шутка — получить трек бесплатно или купить — решается на фронтенде флагом freeTrackPurchase:
А вот теперь нюанс — работает, видимо, не для всех аккаунтов, а для конкретно тестового)), но имея доступ к нему, можно «купить» все треки. Да и один фиг, они все доступны без авторизации (есть спец урла, инфо из БД, проверено).
Какие ошибки парни совершили:
Потому — если у вас имеются какие-либо продукты, которые доступны из вне — подумайте, как их можно использовать не по назначению сторонними людьми и предотвратите это.
А основное приложение должно быть спроектировано, да и собрано так, что «кодовая база приложения может быть в любой момент открыта в свободный доступ без компрометации каких-либо приватных данных».
И знайте продукты, с которыми работаете, как то:
Ну и я интересу ради, прям для вау эффекта поискал TeamCity (далее тс), т.к. помню прикольный баг с регой в старых версиях.
Как оказалось, его даже не нужно было применять, т.к. во многих тс админы не закрывали регистрацию, а на некоторых доступен был вход под гостем.
*картинки можно открывать в соседней вкладке, для лучшего качества
![image](https://habrastorage.org/getpro/habr/post_images/e77/948/0d3/e779480d3475b9d2334036b2dcd85323.png)
Взял самый первый попавшийся IP и двинул на их тс.
![image](https://habrastorage.org/getpro/habr/post_images/1be/179/310/1be179310f0a9a985db8c9e32c3892b3.png)
Ура, есть рега обыкновенная, и как правило, у неё прав больше, чем у гостя, см. сравнение ниже
![Гость](https://habrastorage.org/getpro/habr/post_images/32b/ed4/98c/32bed498c7157cdf03cde3900fffa06c.png)
Гость
![А вот так под новым зареганым аккаунтом](https://habrastorage.org/getpro/habr/post_images/22d/f4a/391/22df4a3912ac064a99793db0a548eff2.png)
А вот так под новым зареганым аккаунтом
В параметрах явно были прописаны некоторые доступы
![image](https://habrastorage.org/getpro/habr/post_images/df4/f46/2e8/df4f462e8abe00136f73fc5e1ed4520e.png)
Но логины пароли также и в другом месте есть — в конфигах артефактов:
![image](https://habrastorage.org/getpro/habr/post_images/367/3d9/628/3673d96283f48505f29f3c6841ac7ed7.png)
![image](https://habrastorage.org/getpro/habr/post_images/239/911/69a/23991169a797cad455336a8d55a4de93.png)
Судя по названиям БД ничего интересного быть там не может, но всё же решил попробовать.
Легковесный и быстрый клиент для монги под винду — robomongo.org
![image](https://habrastorage.org/getpro/habr/post_images/013/d16/141/013d1614180232b0b3e240beaa5708f7.png)
Сильно шариться по БД не стал, т.к. слово analytics навевает скуку.
В TFS сходить не удалось, определённо логин не вебовский, курить апи тоже скучно, ибо не самый интересный проект, но для демонстрации достаточно).
Почта разрабов добыта там же — отписался, ответа нет.
Если артефакты не были доступны — всегда можно посмотреть change log:
![image](https://habrastorage.org/getpro/habr/post_images/9a9/eb5/0b3/9a9eb50b377cd29bc2b411ee943203fb.png)
![image](https://habrastorage.org/getpro/habr/post_images/039/89a/760/03989a7602d613f63440e6f9364a8304.png)
Удивляют проекты, где пароли — простые слова, тут хоть префикс есть.
Помню однажды попался пасс — осмотрись, прям забавно.
Также, определённая категория людей, предпочитает хранить прямо в коде всякие настройки:
![image](https://habrastorage.org/getpro/habr/post_images/ad2/004/20a/ad200420aaac7b2a66892a3c025a7ac9.png)
Перехожу к самому интересному — есть проект triplay.com
Их продукты: emusic.com, estories.com, mydigipack.com, mymusiccloud.com и ещё какие-то. Установок приложения андроид 1000000+, эпловое — не понял где там количество скачиваний смотреть.
Ну и конечно же — их тимсити был открыт снаружи, + открыта рега:
![image](https://habrastorage.org/getpro/habr/post_images/b9a/3ce/e7e/b9a3cee7eec03f67172d771307ee35d2.png)
120 сборок, но артефакты были далеко не везде, вероятно для экономии места. Зато имеется Common проект, где все артифакты собираются вместе, но серверные вполне себе велись и этого было достаточно:
![image](https://habrastorage.org/getpro/habr/post_images/12b/477/806/12b47780646806a0eb18948697415c54.png)
Отлично, качаем файл и… я прям не удивлён:
![image](https://habrastorage.org/getpro/habr/post_images/953/978/969/9539789695561e9aeacfc3c762e85167.png)
![image](https://habrastorage.org/getpro/habr/post_images/f70/61c/374/f7061c37437e3441676169d23cb266cb.png)
Пришлось поставить яву и проверить коннект к ораклу (оракл для простого сайтика в проде, ааа, блин, ну почему не postgres):
![image](https://habrastorage.org/getpro/habr/post_images/283/b5b/480/283b5b48072d58e3fef22c0749c5ea76.png)
Конечно же, несмотря на то, что в конфигах был указан везде префикс prod — без явной проверки этого нельзя было сказать наверняка):
![image](https://habrastorage.org/getpro/habr/post_images/d27/edb/cc9/d27edbcc9c52c027bea2bda1b92e3165.png)
Ну и конечно, я сам зарегал почту, с которой им отписал о проблеме (только я показал скрины, а не сценарий, т.к. не хотел, чтобы чел из саппорта получил доступ к бд, где 691к аккаунтов, выкачал всё это дома и… я хз, что мог бы сделать. Сценарий немного надуман, но лучше попросить контакт админа/разраба).
В теории, полный доступ к бд и можно смело заменять чей-нибудь хеш/соль пасса своими и входить под ним.
Но я лишь почитал данные и успокоился на этом, отписавшись в офф. сапорт, на что мне ответили, что всё рассмотрят, переведут на специалиста, который ответит в порядке очереди и… молчание
Спустя несколько дней они закрыли доступ к БД, но не к тс, проверил почту — ни вопросов, ни благодарностей.
Ну ок, полез проверять дальше и… в артефактах нашёл проект, который содержит деплой скрипты, словно он в тс попадает откуда-то из вне и после сам запускает билд.
![image](https://habrastorage.org/getpro/habr/post_images/4cb/269/918/4cb2699184820ec48b448bcb26c71441.png)
![image](https://habrastorage.org/getpro/habr/post_images/830/cf4/945/830cf49452b22bb33b16b59e8821fe78.png)
Так и было, + ещё логин/пасс от тс.
Сложно было поверить в это, ну ок, телнет 22 пашет, пробую ссш, но погоди, какой же логин…
![image](https://habrastorage.org/getpro/habr/post_images/686/e13/380/686e13380b47f82cd08a6bca8f61950a.png)
wu la
ssh -p 22 -i triplay-deployer-priv root@build.triplay-inc.com
Немного удивился наличию доступа, ок. Осмотрелся в консоли, посмотрел хосты (35 машин прописано) и какие-то ключики (я с никсами не оч, доступ рут и без того ясно, что даст сделать всё, что хочешь, было бы желание).
Нашёл тестовый доменчик + конкретную машину (и… кажется ssl серт).
![image](https://habrastorage.org/getpro/habr/post_images/e11/765/032/e1176503228137c1ee21c4315f659f75.png)
Выше скрин, кстати, когда я с одного сервера хожу на другой, ибо тот из вне по ssh не был доступен. И таких машин там было, конечно же, дофига, сами представьте, какая там инфраструктура.
И положил файлик с особым приветом (с ошибками, уж сорри, уже спать хотелось).
![image](https://habrastorage.org/getpro/habr/post_images/835/cb1/63e/835cb163ee53ab02dd7c7e190889a75c.png)
После очередного письма они прикрыли лавочку.
Но не тут то было, у ребят оставался тестовый аккаунт. Я вошёл под ним. Оказалось можно получить трек бесплатно… ну я на всякий F12 и… что я вижу в пейлоаде:
{
"trackId": 1559229346,
"quality": "SD",
"dailyDownloadPurchase": false,
"freeTrackPurchase": true
}
Нет, это не первоапрельская шутка — получить трек бесплатно или купить — решается на фронтенде флагом freeTrackPurchase:
Демо покупки![image](https://habrastorage.org/getpro/habr/post_images/fc1/f90/835/fc1f908359523459fcdd28dd01556bc5.png)
![image](https://habrastorage.org/getpro/habr/post_images/a73/38e/acd/a7338eacdd845b03d4d37a97b749a556.png)
![image](https://habrastorage.org/getpro/habr/post_images/a33/075/20c/a3307520c103f4871eda0e1b0e1c880e.png)
![image](https://habrastorage.org/getpro/habr/post_images/fc1/f90/835/fc1f908359523459fcdd28dd01556bc5.png)
![image](https://habrastorage.org/getpro/habr/post_images/a73/38e/acd/a7338eacdd845b03d4d37a97b749a556.png)
![image](https://habrastorage.org/getpro/habr/post_images/a33/075/20c/a3307520c103f4871eda0e1b0e1c880e.png)
А вот теперь нюанс — работает, видимо, не для всех аккаунтов, а для конкретно тестового)), но имея доступ к нему, можно «купить» все треки. Да и один фиг, они все доступны без авторизации (есть спец урла, инфо из БД, проверено).
Какие ошибки парни совершили:
- Весьма внутренние ресурсы были открыты всему свету (БД, TeamCity, SSH)
- Даже если есть такая необходимость — не сделали вайтлиста для подключений
- Коннект под рутом извне… чет так себе идея
- Тем более, в проект добавлять сертификат для этого от рута!
- Все доступы и ключики хранят в… файлах и размножают по проектам (aws, paypal, и т.п., шаблон положил сюда), вместо того, чтобы хранить одно подключение к сервису конфигураций
- А самое главное — была разрешена рега в TeamCity, собственно с чего всё началось
- Ну и до кучи — там же собирались приложения для google/apple сторов и соответствующие серты и исходники были на месте
Потому — если у вас имеются какие-либо продукты, которые доступны из вне — подумайте, как их можно использовать не по назначению сторонними людьми и предотвратите это.
А основное приложение должно быть спроектировано, да и собрано так, что «кодовая база приложения может быть в любой момент открыта в свободный доступ без компрометации каких-либо приватных данных».
И знайте продукты, с которыми работаете, как то:
- rabbit — дефолтный логин пасс guest/guest
- redis — вообще без авторизации по дефолту и позволяет делать такое
- teamcity — по дефолту разрешена рега
- и… список можно продолжать, включая тот самый мемкеш, который доступен из вне и завалил гитхаб )
Что для тебя "счастье"?
Когда как:
0. Тишина, книга, сок
1. Жена, настолка, кот,
2. Кафе, сидр, друг
3. Код, работа, доступ root
Комментарии (7)
equand
14.04.2018 17:10Напоминает, как я искал какую панель управления проектом выбрать. Увидел Trello. Думал заюзать их, а потом узнал сколько народу случайно оставляет их дешборды публичными с логинами и паролями благодаря гуглу. Там есть и впны и даже тимвиверы.
TimsTims
14.04.2018 22:32+2Для тех, кто как и я (был) не в курсе, что же такое TeamCity, и как там оказались исходные коды:
так называемые билд-серверы. Такие штуки нужны для обеспечения непрерывной интеграции — это довольно удобная практика при разработке больших проектов, когда над разными частями работают разные команды.
(с)
Если в двух словах, то эти билд-серверы автоматизируют целый ряд рутинных задач (сборка, тестирование кода перед коммитами, инспекция кода и так далее). Попасть в такую систему для пентестера равносильно нехилому такому джекпоту: внутри чаще всего поджидают исходники проектов компании плюс все коммиты, доступы к репозиториям, параметры сборки проектов, списки разработчиков и много чего еще полезного.SanSYS Автор
15.04.2018 20:47Действительно, размещу соответствующую ссылку с названия, спасибо
FYI: есть альтертативы тс alternativeto.net/software/jetbrains-teamcity, но с ними не работал, подстав не знаю
powerman
Мораль сей истории — нельзя гитхабу ложиться, вообще, ни на минуту. Иначе у людей появляется свободное время, чешутся руки, и начинается бардак. :)