Всех приветствую, читатели Хабра! В сегодняшней статье я поделюсь примерами поиска возможных уязвимостей (и соответственно эксплоитов под уязвимости), причем, постараюсь проводить поиск по программному обеспечению от корпорации Apple.
Среди моих коллег, друзей, товарищей, знакомых, соседей и близких бытует мнение о том, что платформы macOS и iOS неуязвимы, несокрушимы. Это не совсем так. В начале моей сегодняшней статье я немного развею это утверждение, просто обнаружив в базах эксплоитов примеры возможных эксплоитов под эти системы. Причем покажу я примеры использования не только веб-приложения базы, но и программ, таких как searchsploit и metasploit.
Но на этом я не стану ограничиваться и покажу приблизительное количество известных эксплоитов (и соответсвенно уязвимостей) и под другие ОС и проведу некоторую статистику. Публикация ориентирована на практические примеры поиска эксплоитов, но важную теорию я буду объяснять походу.
Но перед тем как начинать примечание
Правовая информация:
Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей
В данной статье, я только находил возможные эксплоиты (под уязвимые ОС, программы, библиотеки языков програмирования, "железо"), но не использовал их, и не атаковал никакие системы и устройства. То есть все действия легитимны.
И как всегда просьба не переходить на личности в комментариях, если вы обнаружили ошибку недочет или неточность, просто без оскорблений напишите комментарий или напишите мне личным сообщением. Здесь я всего лишь делюсь опытом поиска возможных уязвимого ПО и эксплоитов.
Теперь разберем несколько понятий, прежде чем приступить к практике
Эксплоит - это компьютерная программа, или ряд компьютерных программ, скриптов или компьютерного кода, которые используют уязвимости программного обеспечения, операционной системы, или даже самого "железа" для выполнения самых различны
действий. Иначе говоря это вредоносная программа (или же атакующая программа).
Здесь также важно отметить что для того чтобы проэксплуатировать обнаруженную уязвимость, необязательно писать вредоносный код, или использовать атакующие программы; некоторые уязвимости можно эксплуатировать при помощи более "простых" программ, например браузеров. Ярким примером является XSS-атака и XSS-уязвимость (межсайтовый скриптинг), или CSRF (межсайтовая подделка запроса)
Приступим к практике.
Я использовал ОС Parrot Security (дистрибутив Linux с прицелом не пентест), основанный на Debian GNU/Linux. Первое что необходимо найти присутствует ли программа в репозитории дистрибутива (она не предустановлена). Открыл терминал и ввел команду
apt search searchsploit
Программа имеется в репозитории, поэтому сразу ее устанавливаем:
sudo apt install searchsploit

После чего, для вывода справки вбил
searchsploit (или searchsploit -h)

А далее я начал процесс поиска. Мне наиболее интересно было найти уязвимости, уязвимые сервисы и ПО (и эксплоиты) под продукцию Apple. Просто ввожу
searchsploit Apple
Конечно не все из них относятся к macOS и iOS, а какие вообще не относятся (поиск идет по словам содержащим корень 'apple'), но увы, очень львиная доля из них относится к продукции гиганта







Как видно из скриншотов львиная доля эксплоитов относится к ядру OSX и браузера Safari
Здесь необходимо сделать ремарку
Бывают апаратные (hardware) уязвимости и эксплоиты, бывают програмные (software) уязвимости и эксплоиты. А бывают и програмно-аппаратные уязвимости и эксплоиты. Аппаратный эксплоит (hardware) и уязвимость относятся только к определенному "железу" (или линии устройств), програмная (software) уязвимость и эксплоит относится только к программному типу. Но также существуют и програмно-аппаратные уязвимости, которые представляют собой комбинацию обоих типов. Яркими примерами являются уязвимости Spectre и Meltdown, обнаруженные в 2018 году
Мне стало интересно найти сперва именно аппаратную уязвимость продукции Apple
поэтому в терминале ввожу:
searchsploit hardware Apple
и получаю уже небольшой список. После чего выбираю уже конкретный интересующий эксплоит (для примера)
searchsploit hardware/dos/9666.php
После чего запускаю программу с ключами -v -w
searchsploit -v -w hardware/dos/9666.php


И программа выводит url ведущий на сайт exploit-db.com (https://www.exploit-db.com/) где есть описание уязвимости (зачастую) и эксплоит.
Далее просто перехожу по ссылке

В ссылке на странице указан слева направо: id уязвимости в данной базе (есть и другие базы); CVE-200X - универсальный идентификатор уязвимости (он везде одинаков); автор; тип (о них чуть ниже); платформа (либо "железо" либо ОС, либо программа, либо протокол); дата. В главном поле указано описание уязвимости и сам эксплоит, то есть код скрипта/программы (вредоносной или атакующей).
Теперь о том какие бывают уязвимости.
DoS (Denial of Service) Уязвимости, которые позволяют злоумышленнику сделать сервис недоступным для пользователей
Local (Локальные уязвимости) Уязвимости, которые могут быть использованы только с локального устройства, имеющего доступ к системе.
Remote (Удаленные уязвимости) Уязвимости, которые могут быть использованы злоумышленником из удаленного местоположения, без необходимости физического доступа к системе.
Web Applications (Уязвимости веб-приложений) Уязвимости, специфичные для веб-приложений, которые могут быть использованы для атак на пользователей или серверы
Hardware (Аппаратные уязвимости) Уязвимости, связанные с аппаратным обеспечением, которые могут быть использованы для атаки на устройства или системы
Теперь перехожу на главную страничку https://www.exploit-db.com/

И попробую найти тот же эксплоит, который нашел через программу searchsploit, но уже на сайте
Ставлю платформу - hardware и в поиске забиваю Apple

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


199
Конечно, в данной базе могут содержатся не все эксплоиты, и существуют уязвимости которые являются кроссплатформенными (чаще всего WebApps), но все же
Практически под каждую платформу (под платформой я понимаю ОС) имеются все пять типов эксплоитов, описанных выше. Вот для iOS - dos, local, remote, webapps




OpenBSD


25! Всего лишь
NetBSD_x86

7
Windows


10274
Неприлично даже
Android


154
FreeBSD


83
Linux


3035
BSD (общая)


92
Solaris


209
А теперь прародительница всех ОС - Unix (которая и дала начало Dos, Windows, Linux и всем его многотысячным отпрыскам, BSD (net, free, open) SolarisOS, iOS, Posix, Android и др.)


324
Подытожим по количеству эксплоитов по ОС
iOS - 199
OpenBSD - 25
NetBSD_x86 - 7
Windows - 10274
Android - 154
FreeBSD - 83
Linux - 3035
BSD - 92
Solaris - 209
Unix - 324
Конечно статистика сырая. Но тем не менее общую картину видно довольно четко
Не стоит забывать что это только известные эксплоиты (и уязвимости), внесенные в базу. Сколько еще не известных сказать сложно
Кроме того, в самих языках программирования (например в их интерпретаторах или библиотеках) возможны уязвимости а следовательно и эксплоиты
Например на сайте в платформах можно указать и perl - язык программирования, под него имеется несколько эксплоитов

Вернемся к searchsploit
В программе можно также найти эксплоиты под определенные типы процессоров. Например я вбил в терминале
searchsploit -v -w intel
Конечно в выводе можно получить и не относящееся к предмету поиска, но кое что интересующее нашлось


И снова ссылки на описание уязвимостей и эксплоиты


В одной из прошлых моих статей (https://habr.com/ru/articles/900414/) я показывал примеры эксплуатации уязвимостей при помощи Metasploit-Framework. То есть непосредственно атаковал уязвимую машину эксплоитами данной программы. Но ее можно использовать также для поиска эксплоитов под конкретные версии ПО, ОС и "железа". Отличие в том, что он не только выводит информацию об уязвимости, уязвимом ПО, но и дает возможность уже готового эксплоита (с опциями)
Запускаю программу в терминале
msfconsole

Для поиска необходимо использовать оператор search, например:
search Apple iOS
и программа также находит готовые эксплоиты под него

Меня заинтересовал третий эксплоит. Для вывода информации по нему забиваю
info 3

Кроме информации есть опции. Например в RHOSTS можно забить ip адрес(а) целевого устройства (или устройств) по которым и будет идти атака эксплоитом
О том как пользоваться фреймворком не для поиска, а для атаки, опять же написано в предыдущей статье (https://habr.com/ru/articles/900414/).
Еще и еще раз повторюсь, что в данных базах находятся только известные эксплоиты и уязвимости (уязвимые среды ПО и ОС). Сколько еще не открытых уязвимостей и эксплоитов сказать сложно, если вообще возможно. Применять данные эксплоиты можно только с согласия собственника ПО/ОС/аппаратуры/сети. Любой несанкционированный эксплоит не законен.
А на этом у меня сегодня все, уважаемые читатели Хабра, до новых встреч!