Взлом Обучение

Свинский гитхаб. Ломаем Git и Svn на примере Мираторга

Свинский гитхаб. Ломаем Git и Svn на примере Мираторга

Тебе ещё не надоели LFI и SQL-инъекции? Сегодня я тебе расскажу о другом способе проводить аудит организаций. Такая утечка данных — очень распространенная, происходит она по вине разработчиков, которые не убирают из общего доступа директории с данными Git или Svn. Таким образом ты можешь выкачать весь репозиторий компании в которой ты проводишь аудит, а значит получит доступ к существенному объему информации. Ты не веришь? Мы тебе всё покажем и расскажем на примере крупнейшего в РФ производителя мяса, компании Мираторг.

Время от времени при выполнении теста на проникновение для веб-приложений я сталкиваюсь с общедоступными каталогами .git. Вы наверняка знаете, что Git это инструмент контроля версий, который помогает отслеживать изменения в файлах и папках и широко используется в сообществе веб-разработчиков. В этой статье я расскажу о способах получения информации с веб-сервера, имеющего общедоступный каталог .git. Для людей, которые знают, как использовать Git это может показаться нелепым, ведь здесь нет ничего нового или революционного и всё, что я покажу — это базовый функционал Git. Причина, по которой существует эта статья — рассказать людям, почему наличие .git и .svn на вашем веб-сервере может быть опасным.

Теория

Проверить доступность репозитория можно перейдя на .git/HEAD:

Статус ответа 200 – значит есть “уязвимость”.

Если в веб-приложении находится каталог .git и включён листинг директорий, вы можете загрузить весь контент с помощью wget -r https://сайт/.git (качать будет достаточно долго), после чего можно увидеть изменения с помощью команды git diff:

wget -r https:// www.yulab.org/.git –no-check-certificate

Также существуют утилиты, которые могут помочь сдампить репозитории автоматически и намного быстрее, чем метод с использованием wget, я кратко опишу их функционал, после чего перейдем к реальным “атакам”.

1. https://github.com/arthaud/git-dumper

git-dumper это скрипт написанный на Python3. Инструмент сначала проверит, доступен ли список каталогов. Если это так, он просто рекурсивно загрузит .git (что вы бы сделали с wget), но если список каталогов недоступен, он будет использовать несколько методов, чтобы найти как можно больше файлов. Этапы работы git-dumper:

  1. Получает все общие файлы (.gitignore, .git / HEAD, .git / index и т. д.);
  2. Поиск ссылок (таких как refs / Heads / master, refs / remotes / origin / HEAD и т. д.);
  3. Поиск объектов (sha1);
  4. Рекурсивное извлечение всех объектов, анализируя каждый коммит;
  5. Запуск git checkout .

Аргументы запуска:

—proxy PROXY – работа через прокси;

—jobs JOBS – количество одновременных запросов;

—retry RETRY – количество попыток;

—timeout TIMEOUT – максимальное время в секундах для ожидания ответа;

—user-agent USER_AGENT – юзер-агент для запросов;

—header HEADER – дополнительный HTTP заголовок (‘NAME=VALUE’)

Использование: python3 git-dumper.py [аргументы] URL DIR

URL – адресс сайта/ip;

DIR – папка, в которую будет загружен дамп.

2. https://github.com/0xHJK/dumpall

Ещё один скрипт на Python3, который способен дампить .git, а также .svn и .DS_Store, принцип работы такой же как и у git-dumper.

Аргументы запуска:

—version отображает версию скрипта;

—url – обязательный параметр, адресс сайта либо айпи, в котором будут указаны каталоги (.git, .svn, .DS_Store)

—outdir – каталог для загрузки дампа (имя каталога по умолчанию — это имя хоста);

—force – скрипт попытается начать дамп, игнорируя ошибки.

Использование: python 3 dumpall.py -u http://АДРЕСС_САЙТА/.git/

3. https://github.com/lijiejie/GitHack

GitHack почти ничем не отличается от git-dumper и имеет схожий алгоритм работы:

  1. Парсинг файла .git/index и поиск всех элементов в проекте (имя файла, файл sha1)
  2. Дамп объектов из папки .git/objects/, чтобы скачать соответствующие файлы.
  3. zlib распаковывает файлы и записывает исходный код в соответствии с структурой каталогов.

Использование: python3 GitHack.py https://АДРЕСС_САЙТА/.git/

4. https://github.com/admintony/svnExploit

SvnExploit — это инструмент, который умеет дампить .svn репозитории. Он также как и git-dumper пытается найти и скачать как можно больше файлов.

Аргументы запуска:

—url – обязательный параметр, адресс сайта либо айпи, в котором будет указан каталог.svn;

—thread количество потоков (по умолчанию 5);

—dump – режим дампа репозитория.

Использование: python3 SvnExploit.py -u http://АДРЕСС_САЙТА/.svn

После дампа репозиториев логичным шагом становится нахождение паролей и разного рода ключей авторизации, для этого можно воспользоваться двумя утилитами:

  1. https://github.com/trufflesecurity/truffleHog — ищет секреты в репозиториях git, глубоко копаясь в истории коммитов;
  2. https://github.com/zricethezav/gitleaks — это инструмент SAST для обнаружения паролей, ключей API и токенов, в репозиториях git.

Переходим к практике

Говорят, что Мираторг, крупнейший производитель мяса в России принадлежит родственнику жены Дмитрия Медведева. Мы решили проверить, что же на самом деле происходит в этой конторе.

А происходит вот что. При деплое сайта, кодеры не удалили директорию .git. Да не просто не удалили, а ещё и оставили в ней все ключики.

И вот, перед нами сайт достаточно известной компании. Нет никаких намёков на SQL инъекции или другие серьёзные уязвимости, но это не значит, что мы не можем его развалить.

Запускаем git-dumper (python3 git_dumper.py -r 3 -t 50 https://git.shop.miratorg.ru git.shop.miratorg.ru)

Спустя несколько минут программа закончит работу и у нас появится папка git.shop.miratorg.ru, в которой будет дамп репозитория:

Похожая ситуация встречается на https://dev1.shop.miratorg.ru и https://dev2.shop.miratorg.ru

В результате мы получили дамп исходного кода сайта компании. В файлах были обнаружены токены доступа к страницам ОК, ВК и Instagram. Это помимо всех кодов от БД и прочих полезностей.

Для поиска “уязвимых” сайтов можно использовать дорки:

«.svn» intitle:Index и «.git» intitle:Index

Таким образом был найден сайт https://americanpestonline.com на WordPress, а используя git-dumper (python3 git_dumper.py -r 3 -t 50 https://americanpestonline.com americanpestonline.com) были добыты конфиги с паролями:

Немного поискав .svn репозитории через дорки был найден са        йт http://www.metaisbianca.com.br и с помощью SvnExploit удалось получить файлы конфигурации SMTP:

python3 SvnExploit.py -u http://www.metaisbianca.com.br/.svn/ —dump

Итоги

Эксплуатировать неправильно сконфигурированные сервера не составляет особого труда, а последствия могут быть очень серьёзными и если вы собираетесь использовать Git на “живом” сервере, убедитесь, что каталог .git не индексируется, а его подкаталоги и все файлы доступны только с авторизацией. Кроме того, следует использовать файл .gitignore, чтобы конфиденциальные файлы не добавлялись по ошибке.

Файл:Biohazard symbol.svg — Википедия

ВНИМАНИЕ! НЕСАНКЦИОНИРОВАННЫЙ ДОСТУП К УДАЛЕННЫМ СИСТЕМАМ — ПРОТИВОПРАВНЫЕ ДЕЙСТВИЯ. АДМИНИСТРАЦИЯ САЙТА НЕ СОВЕРШАЕТ И НЕ РЕКОМЕНДУЕТ ВАМ СОВЕРШАТЬ ПРОТИВОПРАВНЫХ ДЕЙСТВИЙ ИЛИ ПОЛУЧАТЬ ДОСТУП К ОТКРЫТЫМ СИСТЕМАМ. СТАТЬЯ ОПУБЛИКОВАНА ПОСЛЕ ТОГО, КАК ВСЕ ЗАТРАГИВАЕМЫЕ В НЕЙ ОРГАНИЗАЦИИ БЫЛИ ОПОВЕЩЕНЫ. ДАННАЯ СТАТЬЯ НАПРАВЛЕНА НА ТО, ЧТОБЫ УКАЗАЗТЬ НА ПРОБЛЕМЫ С СИСТЕМАМИ ЭТИХ ОРГАНИЗАЦИЙ И ПРИДОСТЕРЕЧЬ ИХ ОТ ВОЗМОЖНЫХ АТАК. МЫ НЕ РЕКОМЕНДУЕМ ВАМ ПОВТОРЯТЬ ОПИСАННЫХ ЗДЕСЬ ДЕЙСТВИЙ. СТАТЬЯ НАПИСАНА НЕ АВТОРОМ НАШЕЙ РЕДАКЦИИ И ОПУБЛИКОВАНА НА ПРАВАХ КОНФЕДЕНЦИАЛЬНОСТИ И ЖУРНАЛИСТСКОЙ ТАЙНЫ.

Наше оповещение Мираторга
Очень злой админ
Очень злой админ Автор статьи

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Комментарии

  1. Можно добавить ..А если сайт имеет корневую директорию /public .. папка .git будет располагаться по пути url/../.git . Приведенные выше инструменты смотрят на вложенность?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *