Пентест история, или… есть такая профессия – вежливый взломщик

Эта история о том, как когда-то давно с простого увлечения нашего сотрудника (назовем его Petya) у нашей компании появилась новая перспективная услуга Пентест (и команда)… С примерами и картинками.

 

Сразу оговорюсь. Если Вы – руководитель, у которого нет времени читать много букв и технических терминов, то Вам стоит пролистать статью до конца, где я в сжатом виде разместил наш опыт проведения пентеста в виде кейса + Summary. Ну, и можете глянуть описание пентеста (в тексте статьи, выделено курсивом).

 

 

…Я всегда подозревал, что с ним что-то не так. Хороший, ответственный, внимательный, немногословный сотрудник. Не любит свет. Всегда приходит вовремя. Всё время занят работой. В общем, находка для работодателя. Идеальный сотрудник. Работал, работал, тянул свою лямку. Почти не жаловался. Ну да, в пиковые периоды – как у всех. С кем не бывает. Когда звезды сходятся, приваливает объем рутины, по телефону на той стороне чувствуется «неполное профессиональное соответствие» сотрудников других организаций, с кем приходится взаимодействовать, Petya иногда расстраивался. До глубокой грусти…

 

 

Одним светлым солнечным днём, просматривая популярные HR-порталы в поиске новых кадров, обнаруживаю его резюме. Это же он, наш Petya! Вот это поворот! Первая мысль – «На ковер!» Ну, чтобы отчитать. Но стоп! Дай, думаю, разберусь в ситуации. Читаю резюме. Ага… Судя по всему, он хочет просто покончить с той большой депрессией, в которую его загнала работа. Он, если верить резюме, даже повышения зарплаты не просил! Да это же просто крик о помощи: «Заберите меня кто-нибудь! Мне много не надо!». Этот звоночек нельзя было пропускать, и я решил пообщаться с ним откровенно.

 

В итоге оказалось, что не всё так плохо. Достаточно было лишь развести его и ту работу, которую он выполнял, по «разным углам». Он был готов на всё!

 

Но было еще кое-что. В процессе беседы выяснилось, что у него есть тайные увлечения, о которых я не знал. Petya оказался последователем хмурой секты CEH. Он осваивает хитрые и мудреные азы хакинга и учится тому, как вежливо вскрывать информационные системы, сервисы и инфраструктуру. Он участвует в разных забавах типа CTF. Без лишнего шума, особо никому не распространяясь о своем хобби. Ну, вы понимаете. «Вы же не спрашивали – я и не рассказывал».

 

Надо ли говорить, что его рабочие задачи к хобби ну никак не относилось. От слова «совсем».

 

Мы решили попробовать и дать ему возможность двигаться в своем любимом деле. Теперь у нас в штате появился начинающий пентестер!

 

Лирическое отступление! Мир всё больше и больше скатывается в цифровую плоскость. Бизнес и государство перестраивает и автоматизирует свои процессы. Информационные ресурсы начинают активно передавать данные через Интернет. Злоумышленники так же перестраиваются. Теперь киберпространство становится целью для атак с желанием наживы. Чтобы украсть «кошелек», ограбить банк или даже развязать войну, не обязательно выходить из дома. 2018-й год показал, что даже одна масштабная вредоносная кампания может нанести ущерб, сопоставимый с доходами небольшого государства. А за 2017 год ущерб от компьютерных преступлений в мире превысил $600 млрд. !

 

Поэтому всё чаще и чаще организации хотят понимать уровень реальной защищенности своих данных и что делать, чтобы его повысить. Пентест – это отличный ответ на поставленный вопрос. Кстати, «Pentest» («Penetration test» – «тест на проникновение») – это разговорное название процедуры анализа защищенности информационных систем путем поиска и эксплуатации их уязвимостей.

 

Вот еще несколько убедительных доводов:

Зачем нужен пентест

 

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

 

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

 

Так у нашего пентестера появилось первое «дело». С заказчиком, название которого по понятным причинам мы не раскрываем (немаленькое, кстати сказать, производственное предприятие с развитой инфраструктурой и высокой зрелостью в части ИБ (как вы увидите дальше, лишь на бумаге)), договорились попробовать «взломать» его с двух сторон – изнутри и снаружи.

 

Алгоритм пентеста

Алгоритм проведения пентеста

 

Естественно, предварительно заключив «Соглашение о конфиденциальности», которое позволяет работать на преддоговорной основе и получать от Заказчика информацию в виде заполненного опросного листа.

 

 

От Заказчика была принята задача. Нужно было, имитируя действия реального нарушителя, получить админские привилегии для управления доменом.

 

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

 

Petya с умным и невозмутимым видом накинув капюшон приступил к делу. К слову сказать, была использована собственная методика, в основе которой – NIST SP800-115 и OWASP Foundation «OWASP Testing Guide».

 

Этапы работы, в общем-то, стандартны. Это сбор информации, ее анализ и эксплуатация уязвимостей. Эксплуатация – вещь опасная, и нужно всё тщательно согласовать с Заказчиком, чтобы не «завалить» работающие системы. В итоге, договорились, что, когда мы находим «дыры» в системе защиты (назовем их «открытые двери»), то сразу информируем Заказчика об этих «дверях» и в режиме диалога определяемся, насколько далеко мы можем в них «входить».

 

Поиск «дверей» закончился успешно. 9 штук при обследовании внешнего периметра (имитация действий хакера) и 18 при поиске изнутри (действия инсайдера). Естественно, все найденные уязвимости были описаны в Отчете, и Заказчику предложены способы устранения.

 

Собрав нужную инфу, перешли к эксплуатации уязвимостей. Это всегда весело! Потому что начинается тот самый penetration, от которого и произошло слово «Pentest»  🙂 

 

Забегая вперед, скажу, что было найдено несколько «железобетонных» способов добиться поставленной цели. Перед презентацией результатов специалисты по IT и ИБ Заказчика (всё ещё) самодовольно спрашивали, удалось ли «накопать ну хоть что-нибудь». Наш сотрудник в своей невозмутимой манере просто снял улыбку с их лиц фразой: «Ребят, мы вас взломали, как минимум, двумя разными способами». Конечно, потом они запросили материалы, информацию, скриншоты, описание действий и прочее. Всё это мы предоставили им в виде подробного отчета.

 

Итак, давайте посмотрим, как это было. Забегая вперед, скажу, что было найдено НЕЧТО, что заставило гендира Заказчика во время презентации заёрзать в кресле. Но об этом чуть позже.

 

Из гостевой подсети, не имея сведений о диапазонах адресов, был проведен скан. Нашли хост с Windows XP (да-да, ретрограды среди нас), которая оказалась подвержена уязвимости MS08-067. Плюс бонус – пустой пароль от админской учетки. К сожалению, осмотр данных на машине не дал ценной информации для дальнейшего продвижения. Ветка зашла в тупик.

 

Далее попробовали просканить определенный диапазон адресов. Проанализировав трафик, нашли пакеты DTP, которые сообщили, что порт на коммутаторе Cisco находится в дефолтном режиме Dynamic Auto. А это значит, что есть возможность провести атаку типа Vlan Hopping! В итоге удалось заменить режим порта на TRUNK. Теперь можно идентифицировать VLANы. Для каждого из VLAN был настроен виртуальный интерфейс и успешно были получены IP-адреса. Так мы смогли залезть из гостевой сети в корпоративную.

 

 

Довольно потирая руки в предвкушении еще большего веселья, Petya продолжил свои изыскания.

 

После получения конфигурации DNS-серверов, вывалился список контроллеров домена, спасибо DNS-запросу. Теперь нужно сузить круг поиска целей. Провели разведку хостов с использованием DNS-запросов по словарю из ~5000 самых популярных DNS-имен. Получили список реальных хостов и их адресов.

 

Теперь нужно было получить любую доменную учетную запись, пусть даже не привилегированную, чтобы провести углубленную разведку через доступ к AD и для последующих атак, чтобы достичь контроллеров домена.

 

По итогам скана выбрали все хосты с устаревшей ОС Windows XP/2003, уязвимые к MS08-067 (легко эксплуатируется и может дать полный доступ к уязвимой системе). Под учеткой скомпрометированного локального админа с уязвимых хостов попробовали войти на другие хосты. В результате был получен доступ еще к 4 машинам! Кстати, для доступа не пришлось восстанавливать пароль. Нужен был лишь его хэш (атака Pass-the-Hash). Такая вот особенность Windows…

 

Но тут нас ждало разочарование. Ни одна из 4 рабочих станций не оказалась в домене… Ну хорошо… Решили попробовать NetBios-спуфинг (атакующий отвечает на каждый NetBios/Browser/LLMNR-запрос своим ip-адресом). Эти запросы обычно посылаются рабочей станцией, если она использует короткие имена, без указания полного домена. Обманутая ложным ответом, рабочая станция может выполнить подключение к сервису на хосте атакующего. Иногда (это зависит от сервиса), это влечет за собой отправку хэша пароля. В итоге, «обманутый» хост подключился, и мы получили хэш от пароля доменного пользователя. Брутфорсом пароль был вскрыт за 10 минут. Удача явно на нашей стороне.

 

Заполучив доменную учетную запись, появилась возможность подключиться к службе каталогов AD и произвести разведку структуры предприятия. AD нужен для получения списка доменных пользователей из группы админов домена. Далее решили попробовать два способа получения доступа к контроллеру домена.

 

 

Способ 1 – «горизонтальная эскалация привилегий». Это повторение попыток получения доступа к известному списку хостов, извлекая хэши паролей наиболее привилегированных пользователей с машин, к которым имеется доступ. Повторения проводятся, пока не найдется учетка админа домена.

 

Используя полученную ранее доменную учетную запись, попробовали подключиться к административным шарам C$, ADMIN$ на всех известных машинах. Результат – получен доступ к ряду хостов. С каждого он вытащил список работающих пользователей, и содержимое куста реестра HKLM\Security (LSA secrets). LSA secrets — это хранилище чувствительных данных. Там лежат хэши 10 последних успешных попыток входа под доменной учетной записью. В результате была найдена учетная запись пользователя, которая имеет доступ на большую часть хостов серверной подсети.

 

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

 

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

 

Главная цель была достигнута. Однако, Petya не был бы пентестером, если бы не решил попробовать снова дойти до цели, но другим путем.

 

 

Способ 2 – «подделка kerberos ticket». Любой, даже не привилегированный, пользователь домена, может получить от контроллера kerberos ticket (билет), с которым он может иметь доступ к произвольной рабочей станции, которая, в свою очередь, доверяет контроллеру домена, выдавшему данный билет. Т.е., всего-то, нужно суметь подделать билет и указать в нем максимальные привилегии в рамках домена.

 

Получив билет, пропатчили его нужным нам образом. Подарком судьбы было то, что контроллер домена не проверял контрольную сумму билета. Таким образом, у нас снова появилась возможность войти на произвольную рабочую станцию домена. Ну, а дальше – см. способ 1.

 

 

Несмотря на достижение главной цели двумя независимыми способами, нашего героя было уже не остановить  🙂 

 

На некоторых активных сетевых устройствах Cisco был найден запущенный сервис Cisco Smart Install. Он позволяет читать/писать startup-конфиг устройства, перезагружать его, при этом не требуя аутентификации. В общем, рулить устройством, перекраивая его настройки по собственному усмотрению.

 

Помимо прочего, на одном из хостов мы нашли уязвимость MS08-067. Поэксплуатировав ее, получили доступ к интерфейсу системы видеонаблюдения! Ну, естественно, с данного узла получили дамп хэшей паролей пользователей.

 

Все найденные ранее хосты с открытым 445/tcp портом прошерстили на предмет анонимного доступа к расшаренным ресурсам с правом записи. На каждый из таких расширенных ресурсов закинули ярлык. Он обрабатывается проводником Windows так, что происходит обращение к указанному ресурсу. В качестве ресурса был указан специальный ресурс, при обращении к которому жертва автоматически отправляет хэш текущего пользователя. Потом – рутина: брутфорс – и восстановленный пароль. А с его помощью можно получать доступ к самой рабочей станции.

 

В сервисе IBM System Storage Tape Library была найдена SSL-уязвимость heartbleed. Говоря по-русски, это «недержание» памяти процесса. Могут «утечь», в т.ч., чувствительные данные (логины, пароли, идентификаторы сессий и пр.).

 

На одном из хостов была найдена уязвимость в сервисе Microsoft IIS (MS15-034). Она происходит из-за ошибки анализа HTTP-заголовка Range в драйвере http.sys и дает возможность удаленно исполнять программный код злоумышленника с наивысшими привилегиями.

 

На внутреннем почтовом сервере была открыта возможность анонимной отправки сообщений за пределы домена. На сервере имелся OpenRelay. Правда, почтовое сообщение не дошло до адресата благодаря дальнейшей фильтрации. Но, как говорится, осадочек-то остался. Наличие OpenRelay – это недочет. И мы бы даже не писали про почтовик, если бы не возможность запуска команды VRFY. Она позволяет проверять правильность имени адресата перед отправкой. Т.е., злоумышленник может просто подобрать имена пользователей сервера с ее помощью.

 

Нашли VoIP-шлюз. Доступ к «админке» осуществлен по дефолтным логину и паролю (*facepalm*). Где-то «рядом» нашелся ip-телефон тоже с дефолтными учетными данными производителя.

 

Была проведена рутинная проверка на наличие уязвимости MS17-010. По результатам проверки выборочных 82 рабочих станций с ОС Windows, уязвимыми оказались 30 хостов. Это 36%. Потенциально 36% парка машин подвержены полному несанкционированному доступу, со всеми вытекающими последствиями. Часть из них, как оказалось, принадлежала бухгалтерии.

 

При анализе внутреннего портала обнаружена SQL-инъекция в телефонном справочнике, который реализован отдельным веб-приложением на PHP. Инъекция позволяет получить результат выполнения запроса с информацией из справочника, которую в дальнейшем можно использовать, например, для социальной инженерии.

 

 

А ТЕПЕРЬ, ВНИМАНИЕ, НЕЧТО! Ради этого стоило копать! Именно это заставило генерального директора Заказчика снять очки и проснуться на презентации!

 

По результатам скана было найдено ~500 хостов с открытыми http/https-портами. Со всех них получили снимки индексных (дефолтных) страниц. В результате просмотра снимков найдены устройства, само наличие которых недопустимо в корпоративной сети! В основном, это устройства типа PLC (программируемый логический контроллер). По умолчанию они должны быть выведены в отдельную производственную сеть. Но, видимо, администраторы решили упростить себе работу.

 

Учитывая, что PLC напрямую управляют производственными линиями, при этом не имея механизмов аутентификации, их наличие в корпоративной сети – большая… недальновидность, скажем так. Представьте, что вы, по сути, дали возможность примерно 500 сотрудникам инструмент по модификации производственного цикла. Это может привести к абсолютно непредсказуемым последствиям. Как скоро Заказчик произнесет сакральную фразу: «Что-то пошло не так»?

 

Во время презентации эта ситуация красочно обсуждалась представителями Заказчика. Передать коротко ее можно словами: «Ну как же так, друзья?»

 

 

…Прошло немало времени. Но и по сей день Petya активно развивает это направление, активно делится компетенциями и передает свой опыт команде «вежливых» хакеров.

 

…Из всего вышесказанного можно сделать правильный философский вывод. Никакие правильно составленные документы, политики, правила, регламенты и прочие писульки важные ОРД, никакие системы, подсистемы, средства и пароли не заменят дотошного парня-пентестера (хм, почему именно парня? Интересно взглянуть на девушку-хакера). Только он один, этот герой невидимого фронта, находясь на стороне добра, сможет открыть вам глаза на истину и сообщить всю правду о вашей безопасности, ради вашей же безопасности. Главное – чтобы до него на эту правду не наткнулся другой. Антигерой, который руководствуется совсем другими мотивами.

 

А кто из них будет первым, решать только Вам!

 

 

А теперь – обещанный кейс.

 

Анализ реальной защищенности информационной системы производственного предприятия

 

Задача: получить полный контроль над доменом из гостевого сегмента сети методом «черного ящика» (отсутствии каких-либо сведений о конфигурации сети).

 

Ход решения:

 

1 — Необходимо попасть из гостевого сегмента сети в корпоративный (сканирование сегмента, анализ трафика; замена режима порта коммутатора Cisco с Dynamic Auto (по умолчанию) на TRUNK; идентифицированы VLANы; получены IP-адреса). Возможность реализована.

 

2 — Необходимо получить учетные данные доменного администратора (сканирование сегмента сети, поиск компьютеров с уязвимостями, получение доступа к ним и локальных учетных записей; получение доменной учетной записи; разведка структуры домена; получение списка доменных пользователей из группы администраторов домена).

 

2.1. (способ 1) Найдена учетная запись, имеющая доступ на большую часть хостов серверной подсети. С каждого получен список активных пользователей. На некоторых обнаружена активная учетная запись доменного администратора. Получение ее данных.

2.2. (способ 2) Подделка kerberos ticket и указание в нем максимальных привилегий (возможность получения доступа к любой доменной рабочей станции). Получение данных учетной записи доменного администратора.

 

Summary. Что мы накопали

 

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

  • Операционные системы, установленные на ряд АРМ, устарели (Windows XP и Windows 7). Найденные в них уязвимости не «закрываются» производителем. Существует риск получения полного несанкционированного доступа к уязвимой системе. Выборочная проверка показала 36% уязвимых рабочих станций, в т.ч. некоторые принадлежат бухгалтерии. Доступ к критической бухгалтерской документации и процессам может привести к ощутимым негативным последствиям.
  • Имеется возможность получения доступа для управления и произвольной перенастройки ряда сетевых устройств, VoIP-шлюза и одного из IP-телефонов. Злоумышленник может существенно затруднить работу локальной сети и телефонии, что приведет к вынужденному простою в работе персонала, потенциально – к финансовым и, возможно, репутационным издержкам.
  • Был получен доступ к интерфейсу системы видеонаблюдения. С ее помощью злоумышленник может быть осведомлен об обстановке на предприятии в режиме реального времени, о конфигурации, размещении и характеристиках камер, чтобы использовать эту информацию для проработки возможных путей проникновения на защищаемую территорию и движения по ней.
  • Ряд сервисов (в частности, внутренний почтовый сервер и телефонный справочник) дают возможность получения или подбора имена пользователей. Эта информация может быть полезной для злоумышленника при проведении социальной инженерии или уточнения имен учетных записей.
  • Были найдены устройства, наличие которых недопустимо в корпоративной сети. Устройства типа PLC (программируемый логический контроллер) напрямую управляют производственными линиями, при этом не имеют возможности устанавливать пароль для доступа к ним. Их наличие в корпоративной сети – критическая проблема, т.к. у любого пользователя с соответствующими привилегиями есть возможность влиять на производственный цикл. Это может привести к выпуску продукции ненадлежащего качества, срыву сроков поставки, выводу из строя производственных линий и т.д. В данном случае весьма вероятны непредсказуемые финансовые и репутационные риски.

 

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

 


 

Мы поможем найти уязвимости в Вашей инфраструктуре и дать рекомендации по борьбе с ними

 


 

Если у вас есть вопросы по проведению пентеста или другие вопросы связанные с информационной безопасностью, задавайте в комментариях или наших группах в социальных сетях, я обязательно на них отвечу!

 

Руденко Дмитрий

Руководитель отдела комплексных систем защиты информации.

«Инжиниринговый центр РЕГИОНАЛЬНЫЕ СИСТЕМЫ»

 

 

 

 

Присоединяйтесь к нам  в социальных сетях и будьте в курсе последних событий в области ИБ 

  • сообщество в Viber
Сообщество ИБ ИЦРС в Viber Страница ИЦРС на Facebook

 

 

Назад