История одного взлома.

Тема в разделе "СТАТЬИ И УРОКИ ПО ВЗЛОМУ И ОБХОДУ ЗАЩИТЫ", создана пользователем Hooko, 25 авг 2016.

↑ ↓
  1. Hooko Уважаемый пользователь
    Hooko
    Ответить в чате

    Форумчанин

    Регистрация:
    24.08.2016
    Сообщения:
    218
    Симпатии:
    200
    Пол:
    Мужской
    Репа:
    +221 / 4 / -4
    Jabber:
    Как раз имеется один заказ, после выполнения которого прошло уже достаточно времени, и клиент разрешил опубликовать информацию в сети, но, естественно, без упоминания названия предприятия, имён его сотрудников и т. д. Чтоб не отнимать много времени постараюсь изложить всё кратко, без воды.

    В один прекрасный день я получил заказ на тестирование защищённости компании-провайдера Х. Цель тестирования — попасть из внешней сети в локальную сеть кампании, после чего получить доступ к любой информации, предоставляющей собою хоть какую-то коммерческую ценность. Исходные данные — сайт организации (представим его как site.com).

    Началось всё с поиска машин, находящихся в той же подсети что и официальный сайт. Было найдено 10 таких хостов. С ходу подкопаться было не к чему: все сервисы, «смотрящие» наружу, были последних версий, бруту по популярным словарям логинов/паролей не поддавались либо противодействовали ему (бан по IP, большая задержка между попытками входа), на веб-серверах при обращениях по IP переборщик не нашёл никаких подозрительных директорий или файлов.

    Тогда с помощью Google, Bing и пары переборщиков был собран список поддоменов site.com
    . Оказалось, что когда-то давно на отдельном сервере провайдер предоставлял услуги веб-хостинга. Простенькие условия, небольшая плата, домен третьего уровня в подарок. Многие из этих доменов функционируют и по сей день.

    При осмотре этих сайтов на одном из них был обнаружен форум phpBB очень старой версии 2.0.15, содержащей уязвимость RCE (удалённое выполнение кода). Уязвимость была сразу же проэксплуатирована, и в одну из директорий форума влит шелл. Однако в настройках PHP для каждого клиента включалась опция open_basedir с указанием его рабочей директории, что ограничивало действия интерпретатора. Был включен и safe_mode.

    Но выход из сложившейся ситуации нашёлся. Порывшись в phpinfo(), я обнаружил опцию safe_mode_exec_dir с путём «/usr/bin/». Как оказалось, такое разрешение администратор вписал по просьбе одного из клиентов, которому понадобился доступ к бинарникам imagemagick. Конечно, в /usr/bin находился и perl. Поэтому на хосте через system() сразу был запущен перловый бекдор, влитый в ту же директорию, что и шелл.

    Внутри меня ждало небольшое разочарование — данный сервер не был подключен к локальной сети компании, но шелл на нём – это уже что-то. Тем более, разграничений в правах там особых не было, и я с лёгкостью бродил по веб-директориям всех развёрнутых хостов. На обработку информации с этого сервера ушло примерно 2 дня. Собирались все пароли от БД, админок размещённых сайтов, их пользователей и прочего, в надежде на то, что среди них попадётся какой-нибудь тестовый проект, заведённый кем-нибудь из администраторов и содержащий привилегированные логин и пароль.

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

    Там же были найдены скрипты старой версии личного кабинета, через который пользователи могли смотреть статистику своего счёта и менять тарифные планы. Новой версии на бета-хосте не наблюдалось, но старая содержала актуальные реквизиты доступа к PostgreSQL, не доступного для подключения извне. Pgsql-клиента на хосте, где я находился, установлено не было. Был только соответствующий модуль у Perl (скрипты старого ЛК были написаны на нём). Пришлось написать на нём же небольшую консольную утилиту, принимающую от пользователя sql-запрос и выводящую его результат в удобочитаемом виде.

    С её помощью мне удалось подключиться к БД и добраться до клиентской базы. В частности, до таблицы, содержащей логины и пароли пользователей для подключении.
     
    • Мне нравится Мне нравится x 3
  2. Hooko Уважаемый пользователь
    Hooko
    Ответить в чате

    Форумчанин

    Регистрация:
    24.08.2016
    Сообщения:
    218
    Симпатии:
    200
    Пол:
    Мужской
    Репа:
    +221 / 4 / -4
    Jabber:
    Пролог

    Однажды вечером, убивая скуку и запасы кофе, я перечитывал статьи на форуме. Иногда восхищался, иногда - заканчивал чтение буквально после второго предложения (надеюсь, дорогой читатель, ты так не поступишь). В моем уютном кабинете тихонько потрескивал камин, а за окном огромными белыми хлопьями падал снег. Я еще долго бы сидел в кресле-качалке, наслаждаясь атмосферой Новогоднего Чуда, но подумал о том, что пора бы уже и раскачиваться. Как в прямом, так и в переносном смысле.

    Ведь все мы здесь (на форуме) собрались не только для того чтобы получить знания, но и чтобы делиться ими, правильно? И именно поэтому я решил, что пора бы уже и поделиться чем-то. Это будет история о моей первой сложной атаке, которая, в отличии от воображаемого кабинета, камина и кресла-качалки, была в действительности.

    Вступление

    Так случилось, что после удачного взлома почты (а бывает, что и такое случается) заказчик, помимо уже привычных слов благодарности поведал мне о своей "небольшой" проблемке. Не знаю что это было - алкоголь в его крови или безграничное доверие к моей персоне, но спустя несколько минут я уже знал всю предысторию.

    Был некий человек по имени Юлиуш, который воспользовавшись доверием в реале заполучил у заказчика большую сумму денег и удачно слился к себе на родину. Описывать как это случилось нет смысла, да и не об этом будет идти речь. Факт остается фактом. Кинул? Кинул.

    Цель - узнать о кидале как можно больше, в идеале - выкачать все его файлы и организовать удаленный доступ к его ПК. От озвученной суммы вознаграждения мои глаза загорелись как пламя . Пальцы почти на полном автомате напечатали: «Я СДЕЛАЮ ЭТО!!!!1111». В голове был целый рой мыслей. Я быстро перебирал все возможные варианты и очень скоро уже пребывал в полной уверенности, что дело мне по плечу.

    Вводные данные были весьма скудны:
    1. Email кидалы.
    2. Краткая характеристика от заказчика
    - мужчина 35-40 лет, не женат.
    - увлекается горными лыжами.
    - сидит на сайтах знакомств.
    - не сидит в соц сетях.

    Всё.

    Первое, что мне нужно было сделать - продумать такой план действий, чтобы жертва не узнала о том, что ее пытаются взломать. Было совершенно очевидно, что угонять почту с помощью фейков - это довольно глупая затея, которая может загубить все дело на корню.

    Поэтому начальный план был такой:
    1. Поисковики.
    2. Брут мыла по словарю
    3. Поиск мыла в слитых базах (паблик)
    4. Поиск мыла в базах селлеров

    В дальнейшем, я планировал скорректировать свои действия в зависимости от результатов.
    А результаты были такие:

    1. Поисковики не дали ничего.
    2. Брут в течении нескольких дней тоже не дал никаких результатов.
    3. В слитых базах мыла не было.
    4. Я обратился к нескольким селлерам баз, но поиск оригинального мыла не дал результата.
    Затем я решил дать просто логин под поиск. И к моему счастью в базе слитой с одного датинга нашлась почта yanush.fed1103@domain.de.

    Пароль от почты, как и следовало ожидать, был в md5. В тот же день, я отдал хеш под брут. 3 дня ожидания - и никаких результатов. По идее, это был тупик. Возможно, кто-то уже бы остановился и сдался. Но я не из таких парней.

    Правдами и неправдами я узнал линк на датинг, откуда было слито мыло, и стал пробовать взломать его повторно. Если у кого-то вышло, то и у меня должно было выйти. Я не буду описывать все детали того, как мне получилось залить шелл. Это, пожалуй, заняло бы отдельную статью.

    Я поставил сниффер, который сохранял логины и пароли. Еще 2 дня ожидания и я наконец-то увидел долгожданный пароль - 20 символов верхнего и нижнего регистра. Пароль подошел к почте, которая была привязана к датингу.

    Что я получил:
    1. Целый архив переписок с бабушками за 60 (как говорится, на вкус и цвет...). Упоминания о встречах в разных местах (квартиры, отели и тд) и несколько фото кидалы.
    2. Последние цифры номера телефона (через «Настройки»)

    В тот же вечер я сверстал письмо, чтобы отправить его с мыла датинга. Я добавил линк на сниффер (логирует ip/user agent/webrtc) с помощью небольшой картинки в теле письма и, на всякий случай, поставил редирект на своем сервере, тоже со сниффером. Всего через день я узнал, что сидит он через Chrome последней версии на Windows 7. Еще немного позже я увидел еще один переход, уже с телефона это был IPhone 5-й модели.

    IP адрес принадлежал другой стране (т.е. на скорее всего, он действительно вернулся на родину). Я же начал изучать переписки. В одном из писем я увидел номер телефона, последние цифры которого совпадали с привязанным к почте телефонам. Я начал искать этот телефон в поисковиках и соц. сетях. Была найдена страница FB. Имя, фамилия и куча линков на датинги в ленте. Я продолжил искать уже по имени и фамилии, но уже на датингах.

    Бинго! Я нашел живой, активный профиль, с которого, видимо, в данный момент активно кидали. С превеликой осторожностью я списался с жертвой, потратил некоторое время на нейтральные беседы и плавно заводил разговор на темы, которые вызвали бы доверие. Кидала, как это обычно и происходит, был не в меру разговорчив, и буквально через несколько часов крайне фальшивого общения, он пожелал обменяться со мной фотографиями. Это был великолепный шанс, чтобы впарить ему троян. Чтобы усыпить бдительность и одновременно пересадить его с телефона за компьютер, я использовал довольно примитивный повод (5-класс, средняя школа) - сказал, что так мы сможем пообщаться через скайп. Еще несколько минут и я уже отправлял ему архив с фото, где вместо обычной фотки был троян с расширением .com, склеенный с фотографией. Удобно получилось, что доменное имя датинга тоже заканчивалось на .com. Не знаю, сыграло ли это роль, но файл он запустил.

    Несколько секунд и бот отстучал в админку.
    Слезы радости и победы. Истошный крик "еееееееее" в середине ночи, полный счастья.
    Тетка, пьющая валокордин.

    В результате я получил:
    1. Доступ к почте, которая была привязана к датингу.
    2. Удаленный доступ к ПК кидалы.
    3. Его реальный IP.

    Как вы видите, базовые принципы очень просты:
    1. Соберите как можно больше информации о цели.
    2. Продумайте план действий от и до.
    3. Давите на слабости.
    4. Анализируйте новую информацию, корректируйте исходный план действий
    5. Если что-то не получилось - попробуйте другой подход, будьте более гибким

    Я понимаю, что мне сильно повезло, даже не смотря на то, что допустил некоторые ошибки. Самое главное - я не сдался, и смог довести дело до конца. В большинстве случаев выигрывает и добивается целей не тот, кто лучше подготовлен, а тот у кого есть терпение и кто готов идти до конца. Всегда можно найти какой-то вариант.

    Как итог - я почувствовал себя гораздо увереннее, и в дальнейшем провел несколько куда более сложных точечных атак. И конечно, получил немного шекеля. А может и много шекеля...
     
    • Мне нравится Мне нравится x 1
  3. Антоха Уважаемый пользователь
    Антоха
    Ответить в чате

    Форумчанин

    Регистрация:
    26.12.2012
    Сообщения:
    3.289
    Симпатии:
    11.168
    Пол:
    Мужской
    Репа:
    +11.334 / 49 / -7
    Статейка получила на экспе 6 голосов и не выбилась в лидеры конкурса. Но почитать ничо так.
     
  4. Hooko Уважаемый пользователь
    Hooko
    Ответить в чате

    Форумчанин

    Регистрация:
    24.08.2016
    Сообщения:
    218
    Симпатии:
    200
    Пол:
    Мужской
    Репа:
    +221 / 4 / -4
    Jabber:
    Ага. В курсе. От туда копипастнул. думаю что, у многих нет акка на экспе, пусть тут почитают sm582398247
     

Поделиться этой страницей