Тестирование на проникновение (penetration testing) — метод оценки безопасности компьютерных систем или сетей средствами моделирования атаки злоумышленника. Для кого-то это хобби, для кого-то работа, для кого-то это стиль жизни. На страницах нашего журнала мы постараемся познакомить тебя с профессией настоящего «этичного хакера», с задачами, которые перед ним ставятся, и их решениями.

 

Шаг 1. Официальная часть

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

Очень важно развеять всевозможные стереотипы, если компания заказывает подобную услугу в первый раз. Часто бывает нужно успокоить заказчика: рассказать, что все пройдет хорошо, что ничего не сломается, а любые действия этичных хакеров будут согласовываться. Короче говоря, задача — дать почувствовать, что заказчик использует пентестеров как инструмент, полностью им управляет и ничего не выйдет из-под контроля.

 

Шаг 2. Определение «меты»

После заключения договора об оказании услуги «тестирование на проникновение» перед этичным хакером ставится задача эту услугу оказать. Самое полезное, что хакер может найти для себя в договоре, — это сроки, которых ему необходимо придерживаться. Обычно еще до начала каких-либо работ уже есть некое представление о тестируемой ИС в виде информации с официального сайта, а также из поисковиков. Такой pre-recon помогает примерно представить объем работ и с грехом пополам все распланировать.

Представим, что сегодняшним объектом тестирования будет крупная компания (несколько точек по всей стране), которая занимается, к примеру, типографией. Сетевой периметр (перечень ресурсов, доступных любому пользователю интернета), скорее всего, состоит из нескольких веб-приложений, корпоративных сервисов, а также сервисов сетевой инфраструктуры. В штате организации около 3000 человек. Офисы объединены между собой средствами VPN. На данном этапе уже обговорены рассматриваемые модели нарушителя.

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

 

Шаг 3. Recon сетевого периметра

Recon — сокращение от английского reconnaissance, в переводе значит «разведка». Хороший рекон — это залог успешного «пробива» (преодоления сетевого периметра организации). Рекон принято делить на активный и пассивный.

Под пассивным реконом подразумевается любой метод сбора информации, при котором этичный хакер никак не взаимодействует с системой или же ведет себя в отношении нее как легитимный пользователь. Последнее — это уже полупассивный метод, но его можно отнести к полностью пассивным в том случае, если активность со стороны пентестера не ведет к срабатыванию механизмов IPS/IDS.

Под активным реконом принято понимать длительное общение с нейм-серверами тестируемой организации, то есть брутфорс DNS.

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

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

 

Шаг 4. Инвентаризация сервисов

После того как сетевой периметр согласован, можно с чистой совестью приступать к инвентаризации сервисов, которые на нем доступны. При этом нужно не забыть уведомить заказчика и предоставить IP-адреса, с которых будут проводиться работы. Предположим, что на сетевом периметре заказчика отсутствуют IPS/IDS-системы. Это избавляет пентестера от возможных проблем с банами адресов. Вопросы, которые касаются банов адресов «атакующего», обговариваются с заказчиком в рабочем порядке, чтобы избежать любых недопониманий и недоразумений.

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

В большинстве организаций для внешнего сетевого периметра характерны следующие типовые сервисы:

  • веб-приложения;
  • корпоративные приложения;
  • почта;
  • менеджмент-сервисы;
  • сервисы сетевой инфраструктуры.
 

Шаг 5. Поиск «внешних» уязвимостей

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

 

Шаг 6. Эксплуатация «внешних» уязвимостей

Завершив поиск «внешних» уязвимостей, этичный хакер выделяет для себя уязвимые сервисы, эксплуатация которых возможна как теоретически, так и практически (выполнены необходимые условия для эксплуатации, имеется PoC, есть возможность разработать эксплойт за небольшой промежуток времени).

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

Остальные уязвимости, эксплуатация которых может потенциально привести к нарушению целостности или доступности сервиса, проверяются только по согласованию с заказчиком. Для этого на стороне заказчика выбирается ответственный, который следит за работоспособностью уязвимого сервиса в тот момент, когда этичный хакер производит эксплуатацию. В случае «падения» сервиса человек на стороне заказчика сможет оперативно восстановить его работу. На данном этапе этичный хакер уже предоставляет заказчику краткую информацию обо всех обнаруженных критичных уязвимостях на сетевом периметре и рекомендации по их устранению.

 

Шаг 7. Преодоление периметра

В результате удачной эксплуатации найденных уязвимостей этичный хакер получает доступ того или иного рода к узлам на сетевом периметре. Обладая им, пентестер стремится получить возможность выполнять локальные команды ОС. Когда такая возможность получена, он проверяет, имеет ли узел доступ во внутреннюю сеть и целесообразно ли использовать его как точку проникновения внутрь. Если узел имеет несколько сетевых интерфейсов, на которых заасайнены локальные адреса, то он с большой вероятностью подходит для развития атаки во внутреннюю сеть. На каждом из таких узлов этичный хакер «закрепляется» — максимально упрощает работу с ОС узла и строит канал, позволяющий осуществлять доступ во внутреннюю сеть организации.

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

 

Шаг 8. Рекон и инвентаризация во внутренней сети

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

Если область атаки никак не обговорена, то она представляет собой весь перечень существующих во внутренней сети узлов. Инвентаризация доступных сервисов занимает какое-то время, так что обычно параллельно с этим этичный хакер ищет наиболее простые и доступные для эксплуатации уязвимости. Например, в сервисах MS SQL может быть заведен пользователь sa, и ему никто не удосужился установить сложный пароль, или установлен Apache Tomcat с дефолтовой учеткой администратора. Хакер концентрируется на поиске уязвимостей, которые помогут эффективно и быстро повысить привилегии в ИС и эксплуатация которых не требует какого-либо согласования с заказчиком, то есть в 100% случаев не может послужить причиной нарушения целостности и доступности сервиса. Обычно процесс рекона и некоторой инвентаризации занимает не более одного дня.

 

Шаг 9. Поиск «внутренних» уязвимостей

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

 

Шаг 10. Эксплуатация «внутренних» уязвимостей

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

 

Шаг 11. Получение доступа к целевым системам

Многих заказчиков интересует возможность получения доступа к определенным бизнес-приложениям или целевым рабочим станциям. В таком случае работа в этом направлении движется сразу по двум траекториям: первая подразумевает стремление повысить привилегии в основных компонентах ИС, после чего, используя полученные привилегии, получить доступ к обозначенным целям легитимными методами; вторая траектория — это «раскрутка» сервисов на целевых узлах. На практике вторая траектория более трудоемка, и зачастую на ее полную реализацию просто не хватает времени.

 

Шаг 12. Подготовка отчета

По завершении всех практических работ этичный хакер приступает к подготовке технического отчета. Помимо информации обо всех критичных уязвимостях, отчет содержит полное описание хода работ — действия хакера в формате «история взлома». На основе данных о найденных уязвимостях готовятся рекомендации по их устранению. В том случае, когда информации об уязвимости в публичном доступе нет, пентестер готовит advisory. Эта сводка попадает в отчет в качестве рекомендации по временному устранению уязвимости, а также уходит вендору уязвимого продукта. После того как технический отчет готов, вычитан и оформлен, он передается заказчику на согласование. Когда отчет будет согласован, можно немного выдохнуть и поставить в уме +1 к числу выполненных проектов.

 

Шаг 13. Подготовка презентации

Презентация по результатам работ — один из ключевых моментов, говорящих о том, что проект для этичного хакера завершен. Контент для презентации подбирается в зависимости от того, для кого заказчик работ хочет ее провести.

 

Happy ending

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

Go and start providing your own penetration testing service!

Stay tuned!

 

Полезная информация

Общая теория по пентестам

Немного практики

В закладки

Базовые технические инструкции

Recon

Инвентаризация сервисов

Автоматизированный поиск уязвимостей

Эксплуатация уязвимостей

Туннелирование трафика

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    10 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии