#58 Kali Linux для продвинутого тестирования на проникновение. Интеллект-карта хакера. Разведка веб-приложений.
Здравствуйте, дорогие друзья.
Нет замены человеческому разуму. В этом разделе мы больше сосредоточимся на том, как веб-приложение выглядит с точки зрения злоумышленника. На рисунке ниже показана карта взлома приложения:
Интеллект-карта разделена на две категории: злоумышленники могут атаковать либо уязвимости на стороне сервера, либо уязвимости на стороне клиента. Эти уязвимости обычно возникают по одной из следующих причин:
• Использование старой или неисправленной технологии.
• Плохая конфигурация безопасности для новейших технологий.
• Недостаток дизайна или кодирование без учета требований безопасности.
• Человеческий фактор: нехватка квалифицированных кадров.
На стороне сервера злоумышленники обычно выполняют следующий список атак:
• Обход брандмауэра веб-приложений
• Инъекционные атаки
• Удаленное выполнение кода
• Включение файлов – удаленное и локальное
• Обход пути к каталогу
• Использование управления сеансами
• Использование бизнес-логики реализации системы или приложения.
• Неправильная конфигурация веб-сервисов или избыточные права авторизации.
• Приманка уязвимых сервисов через общую инфраструктуру
• Выявление любой релевантной информации, которая может помочь им выполнять более целенаправленные атаки.
Атаки на стороне клиента нацелены на системы, в которых обычно отсутствуют элементы управления безопасностью (особенно брандмауэры, системы обнаружения вторжений и средства защиты конечных точек), которые можно найти в корпоративных системах. Если эти атаки успешны и установлена постоянная связь, клиентское устройство может использоваться для запуска атак, если оно повторно подключено к сети цели. Эти атаки ориентированы на использование уязвимостей, которые существуют на стороне клиента, а не сервера сторона. Это могут быть браузеры, приложения и сети, а именно:
• Уязвимости Internet Explorer: Internet Explorer имеет 1177 известных уязвимостей. (см. https://www.cvedetails.com/product/9900/Microsoft-Internet-Explorer.html?vendor_id=26) по состоянию на декабрь 2021 года.
• Уязвимости JavaScript и Java.
• Уязвимости закрепления/повторного связывания DNS: повторное связывание DNS — это атака на код, основанная на DNS, встроенный в веб-страницы. Обычно запросы из кода, встроенного в веб-страницы (JavaScript, Java и Flash) привязаны к веб-сайту, с которого они происходят (политика одного и того же происхождения). Атака с повторной привязкой DNS может использоваться для повышения способности вредоносных программ на основе JavaScript, и проникать в частные сети, нарушать политику браузера в отношении того же происхождения.
• Уязвимости внедрения клиентских сценариев/межсайтовых сценариев: отраженные, постоянные (сохраненные), и уязвимости на основе DOM.
Имея в виду эти уязвимости, злоумышленники вооружены полным списком наборов для эксплуатации и готовы начать разведку.
Разведка веб-приложений
Веб-приложения и предоставление услуг из этих приложений особенно сложны. Как правило, услуги доставляются конечному пользователю с использованием многоуровневой архитектуры с серверами приложений и веб-серверами, доступными из Интернета, при взаимодействии с промежуточным программным обеспечением службы, внутренних серверов и базы данных, расположенные во внутренней сети.
Сложность увеличивается за счет нескольких дополнительных факторов, которые необходимо учитывать при тестировании, которое включает в себя следующее:
• Сетевая архитектура, включая элементы управления безопасностью (брандмауэры, IDS/IPS и приманки), и конфигурации, такие как балансировщики нагрузки
• Архитектура платформы (аппаратное обеспечение, операционная система и дополнительные приложения) системы, на которых размещены веб-сервисы
• Приложения, промежуточное ПО и базы данных последнего уровня, которые могут использовать разные платформы. (Unix или Windows), поставщики, языки программирования и сочетание открытого исходного кода, коммерческое и проприетарное программное обеспечение
• Процессы аутентификации и авторизации, включая процесс поддержания сеанса состояние во всем приложении
• Базовая бизнес-логика, определяющая, как будет использоваться приложение.
• Взаимодействие на стороне клиента и связь с веб-службой
Учитывая доказанную сложность веб-сервисов, важно, чтобы пентестер был адаптируемым к конкретной архитектуре каждого сайта и параметрам обслуживания. При этом процесс тестирования необходимо применять последовательно, чтобы ничего не упустить.
Для достижения этих целей было предложено несколько методологий. Наиболее широко принятых, и одним из них является Open Web Application Security Project (OWASP; см. www.owasp.org) и его список 10 основных уязвимостей.
В качестве минимального стандарта OWASP предоставляет тестировщикам указания. Тем не менее, сосредоточив внимание только на этих 10 уязвимостях недальновидно, и методология демонстрирует некоторые пробелы, в частности применительно к поиску уязвимостей в логике того, как приложение должно работать для поддержки бизнес-практики.
Используя подход kill chain, некоторые действия, характерные для разведки веб-приложений, которые следует выделить, включают следующее:
• Определение целевого веб-приложения, особенно в отношении того, где и как оно размещено.
• Перечисление структуры каталогов сайта и файлов целевого сайта, включая определение того, используется ли система управления контентом (CMS). Это может включать загрузка веб-сайта для автономного анализа, включая анализ метаданных документа, и использование сайта для создания пользовательского списка слов для взлома паролей (используя такой инструмент, как как crunch). Это также гарантирует, что все файлы поддержки идентифицированы.
• Определение механизмов аутентификации и авторизации и определение того, как состояние сеанса сохраняется во время транзакции с этой веб-службой. Обычно это может включать анализ файлов cookie и способов их использования с использованием прокси-инструмента.
• Перечисление всех форм. Поскольку это основные средства для ввода данных и взаимодействующие со службой веб-приложений, в них находится несколько уязвимостей, которые можно использовать, например, атаки путем внедрения SQL/XML/JSON и межсайтовые сценарии.
• Определение других областей, которые принимают входные данные, таких как страницы, позволяющие загружать файлы, а также любые ограничения на допустимые типы загрузки.
• Определение того, как обрабатываются ошибки, и фактические сообщения об ошибках, полученных пользователем. Часто ошибка предоставляет ценную внутреннюю информацию, такую как программное обеспечение, и используемая версия или внутренние имена файлов и процессов. Первым шагом является проведение ранее описанной пассивной и активной разведки.
В частности, убедитесь, что размещенные сайты идентифицированы, а затем используйте сопоставление DNS для идентификации всех размещенных сайтов, которые доставляются одним и тем же сервером. Один из самых распространенных и успешных средств атаки является атака нецелевого сайта, размещенного на том же физическом сервере, что и веб-сайт, и использование слабых мест на сервере, чтобы получить root-доступ, а затем использовать повышенные привилегии, для атаки на целевой сайт.
Этот подход довольно хорошо работает в общедоступной облачной среде, где многие приложения размещены на той же модели «Программное обеспечение как услуга» (SaaS).
На этом все. Всем хорошего дня!
#1 Kali Linux для продвинутого тестирования на проникновение. Целевое тестирование.
#2 Kali Linux для продвинутого тестирования на проникновение. Методология тестирования.
#3 Kali Linux для продвинутого тестирования на проникновение. Введение в возможности Kali Linux.
#7 Kali Linux для продвинутого тестирования на проникновение. Kali на Android (телефоны без рута).
#8 Kali Linux для продвинутого тестирования на проникновение. Настройка и кастомизация Kali Linux.
#11 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Metasploitable3.
#12 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Mutillidae.
#14 Kali Linux для продвинутого тестирования на проникновение. OSINT и Пассивная разведка.
#15 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Maltego.
#16 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. OSRFramework. theHarvester.
#18 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Гугл Дорки.
#20 Kali Linux для продвинутого тестирования на проникновение. Защитный OSINT. CUPP. CeWL. Twofi.
#24 Kali Linux для продвинутого тестирования на проникновение. IPv4. IPv6. Инструменты IPv6.
#26 Kali Linux для продвинутого тестирования на проникновение. Сканирование портов. Nmap. Masscan.
#27 Kali Linux для продвинутого тестирования на проникновение. Информация DHCP. ARP-broadcasting.
#30 Kali Linux для продвинутого тестирования на проникновение. Оценка уязвимости. Эксплойты.
#33 Kali Linux для продвинутого тестирования на проникновение. OWASP ZAP.
#35 Kali Linux для продвинутого тестирования на проникновение. Сканер сетевых уязвимостей OpenVAS.
#37 Kali Linux для продвинутого тестирования на проникновение. Специализированные сканеры.
#42 Kali Linux для продвинутого тестирования на проникновение. The Social Engineering Toolkit (SET).
#48 Kali Linux для продвинутого тестирования на проникновение. Беспроводные и Bluetooth-атаки.
#49 Kali Linux для продвинутого тестирования на проникновение. Беспроводная разведка.
#50 Kali Linux для продвинутого тестирования на проникновение. Обход скрытого SSID.
#52 Kali Linux для продвинутого тестирования на проникновение. Атака на WPA и WPA2. Брут-форс атака.
#56 Kali Linux для продвинутого тестирования на проникновение. WPA3. Bluetooth-атаки.