Как искать эксплойты с помощью SearchSploit
Мы уже писали недавно о том как 📊 Как искать уязвимости CVE? | (itsecforu.ru) Теперь предлагаем рассмотреть Searchsploit более детельно.
Searchsploit это инструмент поиска в командной строке, в который включен Репозиторий Exploit Database. Инструмент позволяет вам всегда иметь под рукой Exploit Database, куда вы мы ни отправлялись. SearchSploit дает вам возможность выполнять детальный поиск в автономном режиме в вашей локальной проверенной копии репозитория. Эта возможность особенно полезна для задач аудита информационной безопасности в изолированных сетях без доступа в Интернет.
The Exploit Database – это архив публичных эксплойтов и соответствующего уязвимого программного обеспечения, разработанный для использования тестировщиками на проникновение и исследователями уязвимостей
Многие эксплойты содержат ссылки на бинарные файлы, которые не включены в стандартный репозиторий, но могут быть найдены в репозитории Exploit Database Binary Exploits. Если вы предполагаете, что во время оценки у вас не будет доступа в Интернет, проверьте оба репозитория, чтобы получить наиболее полный набор данных.
Как установить SearchSploit на Linux
Если вы используете стандартную GNOME-сборку Kali Linux, пакет exploitdb уже включен по умолчанию! Однако если вы используете вариант Kali Light или свой собственный ISO, вы можете установить пакет вручную следующим образом:
sudo apt update && sudo apt -y install exploitdb
Вы можете установить и другие связанные пакеты: exploitdb-papers и exploitdb-bin-sploits.
Если вы не используете Kali Linux, пакет exploitdb может быть недоступен через менеджер пакетов, в этом случае вы можете установитьSearchSploit, следуя инструкциям на вкладке ‘Git’.
Обновление SearchSploit
Если вы используете Kali Linux, вы можете быть уверены, что пакет exploitdb будет обновляться еженедельно. Если вы используете Homebrew или Git, вы можете получать ежедневные обновления (в 05:05 UTC).
Независимо от того, как вы установили SearchSploit, все, что вам нужно сделать для его обновления, это выполнить следующую команду:
searchsploit -u
Если вы используете пакет Kali Linux и не обновлялись с 20 сентября 2016 года (такое бывает?), сначала вам нужно обновить пакет традиционным способом:
sudo apt update && sudo apt -y full-upgrade
Обратите внимание, мы не рекомендуем вам использовать для обновления пакеты .zip с GitHub или устаревшие пакеты archive.tar.bz2.
Как пользоваться SearchSploit
Используя команду -h, вы можете увидеть все доступные вам функции и опции:
searchsploit -h
Базовый поиск
Просто задайте любое количество поисковых терминов, которые вы хотите найти:
Обратите внимание на то, что SearchSploit использует оператор AND, а не оператор OR. Чем больше терминов используется, тем больше результатов будет отобрано.
Совет а: Не используйте аббревиатуры (используйте SQL Injection, а не SQLi).
Совет: Если вы не получаете ожидаемых результатов, попробуйте поискать более широко, используя более общие термины (используйте Kernel 2.6 или Kernel 2.x, а не Kernel 2.6.25).
Поиск по названию
По умолчанию searchsploit проверяет оба заданных наименований на наличие эксплойтов и по пути к файлам. В зависимости от критериев поиска, это может привести к ложным срабатываниям (особенно при поиске терминов, соответствующих платформам и номерам версий). В таком случае поиск оптимизировать, выполняя поиск только по названиям используя параметр -t:
Если бы мы не использовали опцию -t, то мы бы получили 94 (6 строк находятся в заголовке/под колонтитулом) результата, а не 9.
Исключение нежелательных результатов
Мы можем удалить нежелательные результаты с помощью опции –exclude. Мы также можем исключить сразу несколько терминов, разделяя значения символом | (pipe). Это можно продемонстрировать следующим образом:
Таким образом, мы сокращаем результаты до 30 с возможных 41 (6 строк приходится на заголовок/ колонтитул)!
Возможно, вы также заметили, что “3.2” не всегда отображается в результатах. Это потому, что SearchSploit по умолчанию пытается определить версию, а затем ищет между любыми значения в заголовках. Это поведение можно отключить, используя флаг -s.
Совет: Выполнив команду: searchsploit linux kernel –exclude=”(PoC)|/dos/” | grep ‘ 3.2’ (пробел перед версией), вы получите еще более “чистый” результат (отсортированный по версии без заголовков).
Передача результатов (альтернативный метод удаления нежелательных результатов)
Вывод searchsploit можно направить в любую другую программу, что особенно полезно при выводе результатов в формате JSON (с помощью опции -j). С ее помощью можно удалить все нежелательные эксплойты с помощью grep. В следующем примере мы используем grep, чтобы отфильтровать все результаты “Denial of Service (DoS)”.
Передав результаты поиска в grep, мы смогли отфильтровать результаты до 5, вместо 17 (6 строк находятся в заголовке/сноске)!
Совет: Мы рекомендуем использовать “/dos/” в grep, а не “dos”, чтобы фильтр применялся к пути, а не к заголовку. Хотя записи об отказе в обслуживании могут не содержать “dos” в названии, они все равно будут содержать “dos” в пути. Удаление результатов на основе пути также гарантирует, что вы случайно не отфильтруете результаты, которые действительно содержат “dos” в названии (например: EDB-ID #24623).
Цветной вывод
По умолчанию searchsploit выделяет поисковые термины в результатах, когда они отображаются пользователю. Это происходит путем вставки невидимых символов в вывод до и после изменения цвета.
Теперь, если вы передадите результаты (например, в grep) и попытаетесь подобрать фразу из выделенного и не выделенного текста в результатах, это не увенчается успехом. Эту проблему можно решить с помощью опции –colour (опция –color также работает)
Копирование в буфер обмена
Итак, теперь, когда мы нашли искомый эксплойт, существуют различные способы быстрого доступа к нему.
Используя -p, мы можем получить дополнительную информацию об эксплойте, а также скопировать полный путь к нему в буфер обмена:
Скопировать в папку
Мы рекомендуем не модифицировать эксплойты в локальной копии базы данных. Вместо этого сделайте копию тех, которые представляют интерес, и используйте их из рабочего каталога. Используя опцию -m, мы можем выбрать любое количество эксплойтов, которые будут скопированы в ту же папку, в которой мы сейчас находимся:
Exploit-DB Online
Репозиторий Exploit Database является основным ядром Exploit-DB, что делает SearchSploit эффективным и простым в использовании. Однако некоторые метаданные эксплойтов (такие как скриншоты, установочные файлы, теги и сопоставления уязвимостей) не включены. Чтобы получить к ним доступ, вам придется обратиться к веб-сайту.
Вы можете быстро сгенерировать ссылки на интересующие вас эксплойты, используя опцию -w:
¯_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.