Kali Linux, Kali Linux для продвинутого тестирования на проникновение, Уязвимости, Эксплойты

#30 Kali Linux для продвинутого тестирования на проникновение. Оценка уязвимости. Эксплойты.

Здравствуйте, дорогие друзья.

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

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

В этом разделе Вы узнаете о следующем:

• Использование сетевых и локальных ресурсов по поиску уязвимостей.

• Сканирование уязвимостей с помощью Nmap

Lua-скрипты

• Написание собственного сценария Nmap с использованием Nmap Scripting Engine (NSE)

• Выбор и настройка нескольких сканеров уязвимостей

• Установка Nessus в Kali и знакомство с онлайн-сканером сообщества Qualys.

• Сканеры для веб-сайтов и приложений

• Моделирование угроз в целом

Номенклатура уязвимостей

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

При правильном выполнении сканирования уязвимостей обеспечивается инвентаризация устройств (как авторизованных, так и мошеннических), известные уязвимости, которые активно сканируются, и насколько устройства соответствуют различным политикам и правилам.

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

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

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

• Сканеры могут оказывать негативное влияние на сеть; они могут создавать задержку в сети или привести к выходу из строя некоторых устройств. Рекомендуется настроить сканирование, удалив подключаемые модули типа «отказ в обслуживании», во время начального сканирования.

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

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

Локальные и онлайновые базы данных уязвимостей

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

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

Если известен эксплойт для конкретной уязвимости, большинство поставщиков сообщат об этом своим клиентам.

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

Другие онлайн-сайты, которые собирают, анализируют и обмениваются информацией об уязвимостях:

• Национальная база данных уязвимостей, объединяющая все общедоступные данные об уязвимостях. Опубликовано правительством США, доступна по адресу http://web.nvd.nist.gov/view/vuln/search

Packet Storm Security, доступна по адресу https://packetstormsecurity.com/.

SecurityFocus, доступна по адресу http://www.securityfocus.com/vulnerabilities

• База данных эксплойтов, поддерживаемая Offensive Security, доступна по адресу https://www.exploit-db.com/  

• За некоторыми уязвимостями нулевого дня специалисты по тестированию на проникновение также могут следить https://0day.today/

База данных Exploit также копируется локально в Kali, и ее можно найти в папке /usr/share/exploitdb.

Чтобы найти локальную копию эксплуатируемой базы данных, откройте окно терминала и введите searchsploit и желаемый поисковый запрос в командной строке. Это вызовет скрипт, который ищет файл базы данных (.csv), содержащий список всех эксплойтов. Поиск выдаст описание известных уязвимостей, а также путь к соответствующему эксплойту. Эксплойт можно извлечь, скомпилировать, и работать с конкретными уязвимостями. Взгляните на рисунок ниже, на котором показано описание уязвимости окна обмена:

Searching in searchsploit with keywords

Сценарий поиска просматривает каждую строку в файле CSV слева направо, поэтому порядок поиска строки важны; поиск Oracle 10g вернет несколько эксплойтов, но 10g Oracle не будет выводиться.

Кроме того, скрипт чувствителен к регистру; хотя Вам указано использовать символы нижнего регистра в поисковом запросе, поиск vsFTPd не возвращает совпадений, но FTPd возвращает больше совпадений с пробелом между vs и FTPd. Более эффективный поиск в CSV-файле можно выполнить с помощью команды grep, или средство поиска, например, KWrite (apt-get install kwrite).

Поиск в локальной базе данных может выявить несколько возможных эксплойтов с описанием и путем листинга; однако их нужно будет настроить для вашей среды, а затем скомпилировать и использовать. Скопируйте эксплойт в каталог /tmp (данный путь не учитывает, что /windows/remote находится в каталоге /platforms).

Эксплойты, представленные в виде сценариев, таких как аутентификация Perl, Ruby и PHP, относительно легко взломать. Например, если целью является сервер Microsoft Exchange 2019, который может быть уязвимым для удаленного выполнения кода, с использованием действительных учетных данных, скопируйте эксплойт в корневой каталог, а затем выполните как стандартный файл Python, как показано на рисунке ниже:

Running the Python script from exploit-db for the Microsoft exchange server vulnerability

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

Уязвимость RPC DCOM, идентифицированная как 76.c, на практике известна как относительно стабильная. Так, мы будем использовать его в качестве примера. Чтобы скомпилировать этот эксплойт, скопируйте его из каталога хранилища в каталог /tmp. В этом месте скомпилируйте его с помощью GCC с помощью следующей команды:

Команда будет использовать приложение GNU Compiler Collection для компиляции 76.c в файл с выводом (-o) имени файла 76.exe, как показано на рисунке ниже:

Compiling the c file to create the exploit executable

Хотя мы получаем несколько предупреждений и примечание, компиляция прошла успешно без сообщения об ошибках. Когда Вы вызываете приложение для цели, Вы должны вызвать исполняемый файл (который не хранится в каталоге /tmp), используя символическую ссылку следующим образом:

Исходный код этого эксплойта хорошо задокументирован, и необходимые параметры понятны для выполнения, как показано на рисунке ниже:

Running the compiled exploit

К сожалению, не все эксплойты из базы эксплойтов и других общедоступных источников компилируются так, легко как 76.c. Есть несколько проблем, которые делают использование таких эксплойтов проблематичным, даже опасны для тестеров на проникновение, которые перечислены ниже:

• Преднамеренные ошибки или неполный исходный код часто встречаются при опыте. Разработчики стараются держать эксплойты подальше от неопытных пользователей, особенно новичков, которые пытаются скомпрометировать системы, не зная о рисках, связанных с их действиями.

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

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

• Непоследовательное поведение из-за изменения среды (новые исправления, примененные к целевой системе и языковые вариации в целевом приложении) могут потребовать значительного изменения исходного кода; опять же, это может потребовать наличие квалифицированного разработчика.

• Всегда существует риск наличия в свободном доступе кода, содержащего вредоносные функции. А пентестер может подумать, что он проводит proof of concept (POC), и не будет знать, что эксплойт также создал бэкдор в приложении, которое проверено, что может быть использовано разработчиком.

Чтобы обеспечить стабильные результаты и создать сообщество программистов, которые следуют единым практикам, было разработано несколько фреймворков эксплойтов. Самая популярная среда эксплуатации платформу Metasploit, и мы подробнее рассмотрим Metasploit в разделе «Эксплуатация».

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

На этом все. Всем хорошего дня!

#1 Kali Linux для продвинутого тестирования на проникновение. Целевое тестирование.

#2 Kali Linux для продвинутого тестирования на проникновение. Методология тестирования.

#3 Kali Linux для продвинутого тестирования на проникновение. Введение в возможности Kali Linux.

#4 Kali Linux для продвинутого тестирования на проникновение. Установка на Raspberry Pi 4, VMware Workstation Player, VirtualBox, Docker.

#5 Kali Linux для продвинутого тестирования на проникновение. Kali в облаке Amazon Web Services (AWS).

#6 Kali Linux для продвинутого тестирования на проникновение. Kali на облачной платформе Google (GCP).

#7 Kali Linux для продвинутого тестирования на проникновение. Kali на Android (телефоны без рута).

#8 Kali Linux для продвинутого тестирования на проникновение. Настройка и кастомизация Kali Linux.

#9 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Active Directory и контроллер домена.

#10 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Установка Microsoft Exchange Server 2016.

#11 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Metasploitable3.

#12 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Mutillidae.

#13 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. CloudGoat.

#14 Kali Linux для продвинутого тестирования на проникновение. OSINT и Пассивная разведка.

#15 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Maltego.

#16 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. OSRFramework. theHarvester.

#17 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. TinEye. Shodan. SpiderFoot.

#18 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Гугл Дорки.

#19 Kali Linux для продвинутого тестирования на проникновение. Защитный OSINT. Даркнет. Аналитика угроз.

#20 Kali Linux для продвинутого тестирования на проникновение. Защитный OSINT. CUPP. CeWL. Twofi.

#21 Kali Linux для продвинутого тестирования на проникновение. Активная разведка внешней и внутренней сети.

#22 Kali Linux для продвинутого тестирования на проникновение. Использование прокси с анонимными сетями. Tor. ProxyChains. 

#23 Kali Linux для продвинутого тестирования на проникновение. Разведка DNS и сопоставление маршрутов. Recon-ng framework.

#24 Kali Linux для продвинутого тестирования на проникновение. IPv4. IPv6. Инструменты IPv6.

#25 Kali Linux для продвинутого тестирования на проникновение. Идентификация внешней сетевой инфраструктуры.

#26 Kali Linux для продвинутого тестирования на проникновение. Сканирование портов. Nmap. Masscan.

#27 Kali Linux для продвинутого тестирования на проникновение. Информация DHCP. ARP-broadcasting.

#28 Kali Linux для продвинутого тестирования на проникновение. Использование SNMP. Разведка серверов домена Active Directory.

#29 Kali Linux для продвинутого тестирования на проникновение. Перечисление среды Microsoft Azure. Legion. Машинное обучение для разведки.