• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

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


Hooko

Уважаемый пользователь
Форумчанин
Регистрация
24.08.2016
Сообщения
230
Репутация
345
Jabber
Как раз имеется один заказ, после выполнения которого прошло уже достаточно времени, и клиент разрешил опубликовать информацию в сети, но, естественно, без упоминания названия предприятия, имён его сотрудников и т. д. Чтоб не отнимать много времени постараюсь изложить всё кратко, без воды.

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

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

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

При осмотре этих сайтов на одном из них был обнаружен форум 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-запрос и выводящую его результат в удобочитаемом виде.

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

Hooko

Уважаемый пользователь
Форумчанин
Регистрация
24.08.2016
Сообщения
230
Репутация
345
Jabber
Пролог

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

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

Вступление

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

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

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

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

Всё.

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

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

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

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

Пароль от почты, как и следовало ожидать, был в 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. Если что-то не получилось - попробуйте другой подход, будьте более гибким

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

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

Антоха

Уважаемый пользователь
Форумчанин
Регистрация
26.12.2012
Сообщения
2 780
Репутация
4 652
Однажды вечером, убивая скуку и запасы кофе, я перечитывал статьи на форуме.
Статейка получила на экспе 6 голосов и не выбилась в лидеры конкурса. Но почитать ничо так.
 

Hooko

Уважаемый пользователь
Форумчанин
Регистрация
24.08.2016
Сообщения
230
Репутация
345
Jabber
Статейка получила на экспе 6 голосов и не выбилась в лидеры конкурса. Но почитать ничо так.
Ага. В курсе. От туда копипастнул. думаю что, у многих нет акка на экспе, пусть тут почитают sm582398247
 
Верх Низ