Затянуть с подписанием — обычное дело для любой крупной компании. Исключением не стал договор между Томом Хантером и одним сетевым зоомагазином на основательный пентестинг. Предстояло проверить и сайт, и внутреннюю сеть, и даже рабочий Wi-Fi.

Неудивительно, что руки зачесались еще до того, как были улажены все формальности. Ну просто посканировать сайт на всякий случай, вряд ли такой известный магазин, как «Собака Баскервилевых», допустит промахи уже здесь. Спустя пару дней Тому все-таки доставили подписанный оригинал договора — в это время за третьей кружкой кофе Том из внутренней CMS с интересом оценивал состояние складов…

Источник: Ehsan Taebloo

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

После всех формальностей Том Хантер вооружился предоставленной VPN-учеткой и отправился в локальную сеть заказчика. Учетная запись была внутри домена Active Directory, так что можно было взять и без особых ухищрений сделать дамп AD — слить всю общедоступную информацию о пользователях и рабочих машинах.

Том запустил утилиту adfind и начал отправлять на контроллер домена LDAP-запросы. С фильтром по классу objectСategory, указав person в качестве атрибута. Вернулся ответ вот с такой структурой:

dn:CN=Гость,CN=Users,DC=domain,DC=local
>objectClass: top
>objectClass: person
>objectClass: organizationalPerson
>objectClass: user
>cn: Гость
>description: Встроенная учетная запись для доступа гостей к компьютеру или домену
>distinguishedName: CN=Гость,CN=Users,DC=domain,DC=local
>instanceType: 4
>whenCreated: 20120228104456.0Z
>whenChanged: 20120228104456.0Z

Помимо этого было еще много полезной инфы, но самое интересное лежало в поле >description: >description. Это комментарий к учетной записи — в принципе, удобное место, чтобы хранить незначительные пометки. Но администраторы клиента посчитали, что и пароли могут здесь спокойно полежать. Кому, в конце концов, могут быть интересны все эти незначительные служебные учетки? Поэтому комментарии, которые получил Том, имели вид:

Создал Администратор, 2018.11.16 7po!*Vqn

Не нужно быть семи пядей во лбу, чтобы понять, для чего пригодится комбинация в конце. Оставалось распарсить большой файл ответа от КД по полю >description: и вот они — 20 пар логин-пароль. Причем почти половина имеет права доступа по RDP. Неплохой плацдарм, время разделить атакующие силы.

Сетевое окружение


Доступные шары «Собаки Баскервилевых» напоминали большой город во всем его хаосе и непредсказуемости. С профилями user и RDP Том Хантер был в этом городе нищим мальчиком, но даже он успел много чего рассмотреть через сияющие витрины политики безопасности.

Части файл-серверов, бухгалтерские счета и даже связанные с ними скрипты — все это было выложено в общий доступ. В настройках одного из таких скриптов Том нашел MS SQL-хэш одного пользователя. Немного магии брутфорса — и хэш пользователя превратился в plain text пароль. Спасибо John The Ripper и Hashcat.



К какому-нибудь сундуку этот ключ должен был подойти. Сундук был найден, и более того — с ним было связано еще десять «сундуков». И внутри шести лежали… права суперпользователя, nt authority\система! На двух удалось запустить хранимую процедуру xp_cmdshell и отправить cmd-команды в Windows. Чего еще пожелать?

Домен-контроллеры


Второй удар Том Хантер уготовил для домен-контроллеров. В сети «Собаки Баскервилевых» их было три — в соответствии с количеством территориально удаленных серверов. У каждого домен-контроллера есть общедоступная папка, словно открытая витрина в магазине, возле которой ошивается все тот же нищий мальчик Том.

И на этот раз парнишке снова повезло — с витрины забыли убрать скрипт, где был захардкожен пароль локального серверного админа. Так что путь к домен-контроллеру был открыт. Заходи, Том!

Здесь из волшебной шляпы был извлечен mimikatz, который поживился несколькими домен-администраторами. Том Хантер получил доступ ко всем машинам в локальной сети, и дьявольский хохот спугнул кота с соседнего кресла. Этот путь был короче, чем ожидалось.

EternalBlue


Память о WannaCry и Petya еще жива в умах пентестеров, но некоторые админы, похоже, забыли о шифровальщиках в потоке других вечерних новостей. Том обнаружил три узла с уязвимостью в протоколе SMB — CVE-2017-0144 или EternalBlue. Это та самая уязвимость, с помощью которой распространялись шифровальщики WannaCry и Petya, уязвимость, которая позволяет выполнить произвольный код на узле. На одном из уязвимых узлов была сессия доменного админа — «проэксплуатируй и получи». Что поделаешь, время научило не всех.



«Собака Бастервилевых»


Классики информационной безопасности любят повторять, что самым слабым местом любой системы является человек. Заметили, что заголовок выше не соответствует названию магазина? Возможно, не все так внимательны.

В лучших традициях фишинговых блокбастеров Том Хантер зарегистрировал домен, на одну букву отличающийся от домена «Собаки Баскервилевых». Почтовый адрес на этом домене имитировал адрес службы информационной безопасности магазина. В течение 4 дней с 16:00 по 17:00 равномерно на 360 адресов с фейкового адреса рассылалось вот такое письмо:



Пожалуй, от массового слива паролей сотрудников спасла лишь их собственная лень. Из 360 писем открыли всего 61 — служба безопасности не пользуется большой популярностью. Зато дальше было проще.


Фишинговая страница

46 человек кликнули по ссылке и почти половина — 21 сотрудник — не посмотрели в адресную строку и спокойно ввели свои логины-пароли. Хороший улов, Том.



Wi-Fi сеть


Теперь на помощь кота рассчитывать не приходилось. Том Хантер забросил в свой старенький седан несколько железок и отправился к офису «Собаки Баскервилевых». Визит его согласован не был: Том собирался испытать Wi-Fi заказчика. На парковке бизнес-центра нашлось несколько свободных мест, которые удачно входили в периметр целевой сети. О его ограничении, видимо, особенно не задумывались — словно администраторы беспорядочно тыкали дополнительные точки в ответ на любую жалобу о слабом вай-фае.

Как работает защита WPA/WPA2 PSK? Шифрование между точкой доступа и клиентами обеспечивает ключ предварительной сессии — Pairwise Transient Key (PTK). PTK использует Pre-Shared Key и пять других параметров — SSID, Authenticator Nounce (ANounce), Supplicant Nounce (SNounce), MAC-адреса точки доступа и клиента. Том перехватил все пять параметров, и теперь не хватало лишь Pre-Shared Key.



Утилита Hashcat забрутила это недостающее звено минут за 50 — и наш герой оказался в гостевой сети. Из нее уже можно было увидеть рабочую — как ни странно, здесь Том управился с паролем минут за девять. И все это не уходя с парковки, без всяких VPN. Рабочая сеть открывала нашему герою просторы для чудовищной деятельности, но он… так и не накинул бонусов на карту магазина.

Том выдержал паузу, посмотрел на часы, бросил пару банкнот на столик и, распрощавшись, вышел из кафе. Может, снова пентест, а может, что и в телеграм-канал придумал написать…

Комментарии (3)


  1. szelga
    15.09.2019 11:27

    Но администраторы клиента посчитали, что и пароли могут здесь спокойно полежать.
    даже не знаю, что на такое сказать.


    1. TomHunter Автор
      15.09.2019 22:08

      Встречается такое регулярно.


  1. TomHunter Автор
    15.09.2019 22:07

    Встречается такое регулярно.