Книга «Kali Linux. Тестирование на проникновение и безопасность»
Привет, Хаброжители! 4-е издание Kali Linux 2018: Assuring Security by Penetration Testing предназначено для этических хакеров, пентестеров и специалистов по IT-безопасности. От читателя требуются базовые знания операционных систем Windows и Linux. Знания из области информационной безопасности будут плюсом и помогут вам лучше понять изложенный в книге материал. Чему вы научитесь • Осуществлять начальные этапы тестирования на проникновение, понимать область его применения • Проводить разведку и учет ресурсов в целевых сетях • Получать и взламывать пароли • Использовать Kali Linux NetHunter для тестирования на проникновение беспроводных сетей • Составлять грамотные отчеты о тестировании на проникновение • Ориентироваться в структуре стандарта PCI-DSS и инструментах, используемых для сканирования и тестирования на проникновение
Структура издания
Глава 1 «Установка и настройка Kali Linux». В этой главе вы познакомитесь с Kali Linux 2018. Особое внимание уделяется различным методам использования системы. Глава написана так, что даже неопытный пользователь сможет запустить Kali Linux с Live DVD; установить и настроить систему на жестком диске, SD-карте, подключенном к USB-порту флеш-накопителе; установить Kali Linux на виртуальной машине. Кроме того, используя AWS, вы можете установить Kali Linux в облаке.
Глава 2 «Создание испытательной лаборатории». В этой главе рассказывается, как создать безопасную виртуальную среду, в которой можно на законных основаниях выполнять разработанные для каждой главы практические примеры. В главе также приведены подробные инструкции по настройке таких виртуальных машин, как Metasploitable 2 и Metasploitable 3, которые будут использоваться как целевые машины в экспериментах на проникновение (пентестах).
Глава 3 «Методология тестирования на проникновение». Здесь представлены различные методологии тестирования с целью планирования и определения масштабов пентестов. Вы также найдете описание практических шагов и технологий, предназначенных для испытаний на проникновение.
Глава 4 «Получение отпечатка и сбор информации». На первом этапе тестирования на проникновение применяется несколько распространенных инструментов, используемых для разведки, включая взлом базы данных Google. В этом издании вы найдете новую информацию о таких инструментах для автоматического сбора информации, как Devploit, RedHawk и Shodan.
Глава 5 «Методы сканирования и уклонения». В этой главе рассказывается, как с помощью мощнейшего инструмента Nmap обнаружить целевые объекты, узлы и сервисы. С помощью Netdiscover и Striker выполняется автоматизированное сканирование и сбор информации. Кроме того, в этой главе рассматривается такой инструмент, как Nipe, предоставляющий пользователям конфиденциальность и анонимность.
Глава 6 «Сканирование уязвимостей». Здесь на практических примерах показано, как найти уязвимости в целевой машине. Приводятся пошаговые инструкции по использованию таких мощных автоматизированных инструментов для оценки уязвимостей, как Nessus 7 и OpenVAS. Вы найдете новую информацию о Linux-инструменте Lynis, предназначенном для сканирования и проверки уязвимостей, и инструменте SPARTA, назначение которого — оценка и перечисление уязвимостей. Работа всех инструментов проводится в испытательной лаборатории, и гарантируется, что оценки реального типа точно моделируются.
Глава 7 «Социальная инженерия». Обсуждаются основные принципы и методы, применяемые профессиональными социальными инженерами для манипуляции людьми, чтобы те разглашали информацию или совершали иные действия.
Глава 8 «Целевая эксплуатация». В этой главе вы будете применять методы и инструменты для эксплуатации компьютерных систем (эксплойты). Эксплойты используют уязвимости и недостатки в системах, что дает возможность пользователю получить доступ к системе.
Глава 9 «Повышение привилегий и поддержание доступа». Здесь вы узнаете, как повысить уровень доступа и взломать другие учетные записи в системе. Взломанные учетные записи будут использоваться для сохранения доступа к системе и получения дальнейшего доступа к сети.
Глава 10 «Тестирование веб-приложений». В этой главе мы рассмотрим несколько основных инструментов, предназначенных для тестирования веб-приложений, а также облачные приложения, так как они основаны на тех же протоколах и используют многие из тех же платформ.
Глава 11 «Тестирование беспроводных сетей на проникновение». В главе рассматривается настройка инструментов, предназначенных для захвата данных, необходимых для взлома беспроводных сетей и получения к ним доступа, включая настройку поддельных точек доступа.
Глава 12 «Мобильное тестирование на проникновение с Kali NetHunter». В этой главе представлен практический подход к тестированию на проникновение с помощью мобильных устройств. Подробно описывается установка и настройка необходимых приложений, а также демонстрируется процесс сканирования и оценки уязвимостей, атак типа «человек посередине» и беспроводных атак, которые могут выполняться мобильными приложениями.
Глава 13 «PCI DSS: сканирование и тестирование на проникновение». Здесь вводится стандарт, описываются шесть задач и 12 требований, приводится обзорный тест на проникновение. Акцент делается на PCI DSS версий 11.3.1 и 11.3.2.
Глава 14 «Инструменты для создания отчетов о тестировании на проникновение». Обсуждаются различные типы отчетов и процедуры, которые проводятся по окончании тестирования, а также демонстрируется использование платформы Dradis для организации и полного документирования теста на проникновение.
Отрывок. Методология тестирования на проникновение
Одним из важнейших факторов, влияющих на успешность проведения теста на проникновение, является стандартная методология испытания. Отсутствие стандартных методик проведения теста на проникновение означает отсутствие однотипности. Мы уверены, вы не хотите быть испытателем, проводящим бессистемный тест, применяя то один, то другой инструмент и не имея представления о том, какие результаты этот тест должен принести.
Методология — это набор стандартных правил, практических действий и процедур, которые реализуются при работе с любой программой, предназначенной для проверки информационной безопасности. В методологии тестирования на проникновение в первую очередь определяется план проведения теста. В этом плане предусматриваются не только цели проведения испытаний, но и действия, которые должны быть выполнены для оценки истинного состояния безопасности сети, приложений, системы или любой их комбинации.
Испытатель обязан обладать практическими навыками проведения испытаний. Он должен владеть инструментами, с помощью которых проводится тест. Только четко определенная методика проведения испытаний на проникновение, теоретические знания и практические навыки испытателя позволят провести полный и достоверный тест на проникновение. Но в то же время методология не должна препятствовать испытателю анализировать свои догадки.
Методология тестирования на проникновение
Чтобы определить, какой тест вам сейчас нужно будет провести, необходимо знать, какие тесты существуют, в каких областях и для каких целей они применяются. Все тесты можно разделить на три группы.
- Методы «белого ящика». В этой группе тестов испытатель хорошо знает проверяемую систему и имеет полный доступ ко всем ее компонентам. Испытатели работают с клиентом и имеют доступ к закрытой информации, серверам, запущенному программному обеспечению, сетевым схемам, а иногда даже к учетным данным. Этот тип испытаний обычно проводится для проверки новых приложений перед их вводом в эксплуатацию, а также для регулярной проверки системы в рамках ее жизненного цикла — Systems Development Life Cycle (SDLC). Такие мероприятия позволяют выявить и устранить уязвимости раньше, чем они могут попасть в систему и навредить ей.
- Методы «черного ящика». Эта группа тестов применима, когда испытателю ничего не известно об испытуемой системе. Этот тип тестирования в наибольшей степени похож на настоящие атаки злоумышленника. Испытатель должен получить всю информацию, творчески применяя имеющиеся у него в распоряжении методы и инструменты, но не выходя за рамки заключенного с клиентом соглашения. Но и этот метод имеет свои недостатки: хотя он и имитирует реальную атаку на систему или приложения, испытатель, используя только его, может пропустить некоторые уязвимости. Это очень дорогой тест, так как занимает большое количество времени. Выполняя его, испытатель изучит все возможные направления атаки и только после этого сообщит о результатах. Кроме того, чтобы не повредить проверяемую систему и не вызвать сбой, испытатель должен быть очень осторожным.
- Методы «серого ящика». Тест учитывает все преимущества и недостатки первых двух тестов. В этом случае испытателю доступна только ограниченная информация, позволяющая провести внешнюю атаку на систему. Испытания обычно выполняются в ограниченном объеме, когда испытатель немного знает о системе.
Для обеспечения наилучших результатов тестирования, независимо от применяемых тестов на проникновение, испытатель должен соблюдать методологию проведения испытаний. Далее мы более подробно обсудим некоторые наиболее популярные стандартные методы проведения испытаний.
- Руководство по тестированию OWASP.
- Руководство по тестированию на проникновение PCI.
- Стандарт выполнения тестирования на проникновение.
- NIST 800–115.
- Руководство по методологии тестирования безопасности с открытым исходным кодом (OSSTMM).
Руководство по тестированию OWASP
Open Web Application Security Project (OWASP) — этот проект объединил разработчиков программных средств с открытым исходным кодом. Люди, входящие в данное сообщество, создают программы для защиты веб-приложений и веб-сервисов. Все приложения создаются с учетом опыта борьбы с программами, наносящими вред веб-сервисам и веб-приложениям. OWASP — это отправная точка для системных архитекторов, разработчиков, поставщиков, потребителей и специалистов по безопасности, то есть всех специалистов, которые принимают участие в проектировании, разработке, развертывании и проверке на безопасность всех веб-сервисов и веб-приложений. Другими словами, OWASP стремится помочь создавать более безопасные веб-приложения и веб-сервисы. Главным преимуществом руководства по тестированию OWASP является то, что по представленным результатам тестов можно получить всестороннее описание всех угроз. Руководство по тестированию OWASP определяет все опасности, которые могут повлиять на работу как системы, так и приложений, и оценивает вероятность их появления. С помощью описанных в OWASP угроз можно определить общую оценку выявленных проведенным тестированием рисков и выработать соответствующие рекомендации по устранению недостатков.
Руководство по тестированию OWASP в первую очередь сосредотачивает внимание на следующих вопросах.
- Методы и инструменты тестирования веб-приложений.
- Сбор информации.
- Проверка подлинности.
- Тестирование бизнес-логики.
- Данные испытаний.
- Тестирование атак типа «отказ в обслуживании».
- Проверка управления сессиями.
- Тестирование веб-сервисов.
- Тест AJAX.
- Определение степени рисков.
- Вероятность угроз.
PCI-руководство по тестированию на проникновение
Здесь собраны нормативы для компаний, соответствующих требованиям PCI (Payment Card Industry — индустрия платежных карт). Причем в руководстве вы найдете нормативы не только по стандарту PCI v3.2. Оно создано Советом безопасности по стандартам PCI, в котором определены методы тестирования на проникновение в рамках программ управления уязвимостями.
Стандарт PCI Data Security Standard (PCI DSS) версии 3.2 был выпущен в апреле 2016 года Советом по стандартам безопасности индустрии платежных карт (PCI SSC). После обновления стандарта требования были уточнены, появились дополнительные указания и семь новых требований.
Для устранения проблем, связанных с нарушениями секретности личных данных владельцев карт, а также для защиты от существующих эксплойтов в стандарт PCI DSS V. 3.2 были включены различные изменения, большинство из которых относятся к поставщикам услуг. В эти изменения были добавлены новые требования к тестированию на проникновение, согласно которым тестирование с сегментацией для поставщиков услуг выполнялось по крайней мере каждые шесть месяцев или после любых значительных изменений в элементах управления/методах сегментации. Кроме того, в этом стандарте содержится несколько требований, обязывающих поставщиков услуг в течение года непрерывно отслеживать и поддерживать критически важные элементы управления безопасностью.
Стандартное проведение тестов на проникновение
Стандарт выполнения тестирования на проникновение состоит из семи основных разделов. Они охватывают все требования, условия и методы проведения испытаний на проникновение: от разведки и до попыток проведения пентестов; этапы сбора информации и моделирования угроз, когда, чтобы добиться лучших результатов проверки, испытатели работают инкогнито; этапы исследования уязвимостей, эксплуатации и пост-эксплуатации, когда практические знания испытателей в области безопасности соединяются с данными, полученными в ходе проведения тестов на проникновение; и как заключительный этап — отчетность, в которой вся информация предоставляется в виде, понятном клиенту.
Сегодня действует первая версия, в которой все стандартные элементы испытаны в реальных условиях и утверждены. Вторая версия находится в стадии разработки. В ней все требования будут детализированы, уточнены и усовершенствованы. Поскольку план каждого теста на проникновение разрабатывается индивидуально, в нем могут быть применены разные тесты: от тестирования веб-приложений до проведения испытаний, предусмотренных для тестирования методом «черного ящика». С помощью этого плана сразу можно определить ожидаемый уровень сложности конкретного исследования и применить его в необходимых, по мнению организации, объемах и областях. Предварительные результаты исследования можно увидеть в разделе, отвечающем за сбор разведданных.
Ниже в качестве основы для выполнения тестов на проникновение приведены основные разделы рассматриваемого нами стандарта.
- Предварительное соглашение на взаимодействие.
- Сбор разведданных.
- Моделирование угроз.
- Анализ уязвимостей.
- Эксплуатация.
- Пост-эксплуатация.
- Составление отчета.
NIST 800–115
Специальное издание Национального института стандартов и технологий (National Institute of Standards and Technology Special Publication, NIST SP 800–115) является техническим руководством по тестированию и оценке информационной безопасности. Публикация подготовлена Лабораторией информационных технологий (Information Technology Laboratory, ITL) в NIST.
В руководстве оценка безопасности трактуется как процесс определения того, насколько эффективно оцениваемая организация отвечает конкретным требованиям безопасности. При просмотре руководства вы увидите, что в нем содержится большое количество информации для тестирования. Хотя документ редко обновляется, он не устарел и может послужить в качестве справочника для построения методологии тестирования.
В этом справочнике предлагаются практические рекомендации по разработке, внедрению и ведению технической информации, тестам безопасности и процессам и процедурам экспертизы, охватывая ключевой элемент или техническое тестирование на безопасность и экспертизу. Данные рекомендации можно использовать для нескольких практических задач. Например, поиск уязвимостей в системе или сети и проверка соответствия политике или другим требованиям.
Стандарт NIST 800–115 предоставляет большой план для испытаний на проникновение. Он позволяет убедиться, что программа тестирования на проникновение соответствует рекомендациям.
Руководство по методологии тестирования безопасности с открытым исходным кодом
OSSTMM — документ, довольно сложный для чтения и восприятия. Но он содержит большое количество актуальной и очень подробной информации по безопасности. Это также самое известное руководство по безопасности на планете с примерно полумиллионом загрузок ежемесячно. Причина такой популярности в следующем: эти инструкции примерно на десятилетие опережают все остальные документы в индустрии безопасности. Цель OSSTMM — в развитии стандартов проверки безопасности Интернета. Данный документ предназначен для формирования наиболее подробного основного плана для тестирования, что, в свою очередь, обеспечит доскональное и всестороннее испытание на проникновение. Независимо от других организационных особенностей, таких как корпоративный профиль поставщика услуг по тестированию на проникновение, это испытание позволит клиенту убедиться в уровне технической оценки.
Фреймворк: общее тестирование на проникновение
Несмотря на то что стандарты различаются по количеству условий, тестирование на проникновение можно разбить на следующие этапы.
1. Разведка.
2. Сканирование и перечисление.
3. Получение доступа.
4. Повышение привилегий.
5. Поддержание доступа.
6. Заметание следов.
7. Составление отчета.
Рассмотрим каждый этап более подробно.
Разведка
Это первый и очень важный этап в тесте на проникновение. На него может уйти немало времени. Многие испытатели делят данный этап на две части: активную и пассивную разведку. Я же предпочитаю эти два этапа объединить, так как полученные результаты скажут сами за себя.
Разведка (рекогносцировка) — это систематический подход, когда вы стараетесь обнаружить расположение и собрать максимально возможное количество информации о целевой системе или машине. Это еще называется сбором следов.
Для проведения данного процесса могут быть использованы следующие методы (в действительности список методов может быть значительно шире).
- Социальная инженерия (это увлекательный метод).
- Исследование в Интернете (с помощью поисковых машин Google, Bing, LinkedIn и т. д.).
- Путешествие по мусорным бакам (можно испачкать руки).
- Холодные звонки.
Вы можете выбрать любой из перечисленных методов для получения информации о целевой системе или машине. Но что же мы все-таки должны на данном этапе узнать?
Нам, конечно, может быть полезным каждый бит информации. Но у нас должна быть приоритетная цель. При этом учтите, что собранные данные, которые на текущем этапе могут показаться ненужными, позже могут пригодиться.
Сначала для нас будет очень важна следующая информация.
- Имена контактов в организации.
- Где располагается организация (если такие данные есть).
- Адреса электронной почты (эти данные можно использовать позже для фишинга, то есть сбора конфиденциальных данных).
- Номера телефонов важных персон, работающих в этой компании (пригодятся для фишинга).
- Операционные системы, используемые в компании, например Windows или Linux.
- Объявления о работе.
- Резюме сотрудников (прошлое и настоящее).
На первый взгляд все эти данные кажутся полезными (разве что смущают объявления о работе). Но представим, что вы встречаетесь с системным администратором. Зная основные требования, вы можете получить большое количество информации о внутренней системе организации. Это можно использовать для разработки направления атаки.
Для этих же целей служат и резюме сотрудников. Зная, что люди умеют делать, легко можно определить, с какими системами они работают, а какие им недоступны.
Вам это может показаться утомительным. Но имейте в виду: чем больше информации вы соберете, тем больше у вас будет возможностей для принятия решений как сейчас, так и позже.
Мы считаем, что к разведке следует прибегать на протяжении всего взаимодействия.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Kali Linux
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.