22.05.2015

Пошаговый гайд по этичному хакингу

Юрий Гольцев
ст.66 журнал хакер - Haker_04.15
http://fs.to/get/dl/6bd9m0ymhim2c04sur4lsokqu.0.1139013157.3249006413.1432284798/Haker_04.15.pdf

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


ШАГ 1. ОФИЦИАЛЬНАЯ ЧАСТЬ

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

ШАГ 2. ОПРЕДЕЛЕНИЕ «МЕТЫ»

После заключения договора об оказании услуги
«тестирование на проникновение» перед этич-
ным хакером ставится задача эту услугу оказать.
Самое полезное, что хакер может найти для себя
в договоре, — это сроки, которых ему необхо-
димо придерживаться. Обычно еще до начала
каких-либо работ уже есть некое представление
о тестируемой ИС в виде информации с офици-
ального сайта, а также из поисковиков. Такой prerecon
помогает примерно прикинуть объем работ
и с грехом пополам все распланировать.
Представим, что сегодняшним объектом те-
стирования будет крупная компания (несколь-
ко точек по всей стране), которая занимается,
к примеру, типографией. Сетевой периметр
(перечень ресурсов, доступных любому поль-
зователю интернета), скорее всего, состоит
из нескольких веб-приложений, корпоративных
сервисов, а также сервисов сетевой инфра-
структуры. В штате организации около 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

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

Общая теория по пентестам:
• Vulnerability Assessment
(bit.ly/17lVCDU)
• Open Source Security Testing
Methodology Manual
(bit.ly/U9WpQY)
• The Penetration Testing Execution
Standard (bit.ly/1KNe7iF)

Немного практики
• PentesterLab (bit.ly/1uJ3RUu)
• Penetration Testing Practice Lab
(bit.ly/1fb61kO)

В закладки
• Open Penetration Testing Bookmarks
Collection
(bit.ly/1vncteH)

Базовые технические инструкции
• PTES Technical Guidlines
(bit.ly/1nPfqEU)
Recon
• Intelligence Gathering
(bit.ly/1C9U3X5)
• theHarvester (bit.ly/1fqagdX)
• recon-ng (bit.ly/18Dcs0F)
• BGP Toolkit (bit.ly/1yA1p43)
• Pastebin Scrapper
(bit.ly/1wy8P7r)

Инвентаризация сервисов
• Nmap (bit.ly/1Bv1PJ3)
• MasScan (bit.ly/1pSDGls)

Автоматизированный поиск
уязвимостей
• OpenVAS (bit.ly/1Ahucq3)
• Nessus (bit.ly/1C9Uroo)
• Nexpose (bit.ly/1Ahuey4)

Эксплуатация уязвимостей
• Metasploit (bit.ly/1elvBXe)
• Core Impact (bit.ly/19e7dWC)
• Immunity Canvas (bit.ly/1L1rmQb)
• Exploit-DB (bit.ly/1hLNOPD)

Туннелирование трафика
• SSH-туннелирование
(bit.ly/1F2xnqG)
• reDuh (bit.ly/19e7gS7)
• HTTP Tunnel (bit.ly/1D9EPRY)
• WSO (bit.ly/1NOocOP)