Getsploit: Поиск И Загрузка Эксплойтов С Использованием Агрегированной Базы Данных.

Когда я думал о дальнейшем векторе развития Уязвимые места , я обратил внимание на наших старших братьев - базу данных Эксплойт-БД .

Одной из основных утилит в их арсенале является поиск .

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

Это основная часть Кали Линукс и оперирует данными об эксплойтах из базы данных Exploit-DB. Самое приятное то, что утилита может работать с локальной базой данных и ее всегда можно взять с собой.

Так чем же мы хуже? Мы собрали в Vulners не только коллекцию эксплойтов от Exploit-DB, но и Packet Storm, 0day.today, Seebug, Zero Science Lab и многих других.

Что ж, давайте изобретем новое колесо с преферансами и поэтессами.



Давайте подробнее посмотрим на searchsploit.

И мы видим внутри bash-скрипт Длина 711 строк.

Он загружает копию данных из общедоступного репозитория эксплойт-базы данных и ищет ее.

Но где же синтаксис в стиле Google и прочие прелести современного поиска? Увы, в их подходе были как плюсы, так и минусы.

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

Минусы: довольно плохой функционал для неточного поиска.

На этом этапе идея интеграции с ним была отброшена и доминирующим стало решение написать собственный форк.



Что должен делать getploit?

Начнем с определения функциональности.

  • Поиск эксплойтов по всей коллекции уязвимостей с помощью полнотекстового поиска и Lucene.
  • Сохранение исходных кодов эксплойтов на диск
  • Оффлайн поиск по локальной базе данных
  • Кроссплатформенность и минимальные зависимости
  • Будьте с открытым исходным кодом


Пусть будет код

В результате утилита была реализована на Python с совместимостью с Python 2.6 до Python 3.6. Я постарался сохранить основные ключи идентичными searchsploit, чтобы мне не пришлось к нему снова привыкать.

  
   

isox$ git clone https://github.com/vulnersCom/getsploit isox$ cd getsploit isox$ .

/getsploit.py -h usage: Exploit search and download utility [-h] [-t] [-j] [-m] [-c COUNT] [-l] [-u] [query [query .

]] positional arguments: query Exploit search query. See https://vulners.com/help for the detailed manual. optional arguments: -h, --help show this help message and exit -t, --title Search JUST the exploit title (Default is description and source code).

-j, --json Show result in JSON format. -m, --mirror Mirror (aka copies) search result exploit files to the subdirectory with your search query name. -c COUNT, --count COUNT Search limit. Default 10. -l, --local Perform search in the local database instead of searching online. -u, --update Update getsploit.db database. Will be downloaded in the script path.

Основная механика поиска основана на API Vulners. Таким образом, вы всегда будете получать актуальные данные на данный момент «здесь и сейчас».

Ну что, поищем эксплоиты для Wordpress?

Getsploit: поиск и загрузка эксплойтов с использованием агрегированной базы данных.
</p><p>

Неплохо, правда? Давайте теперь попробуем ограничиться только коллекцией Packet Storm. Синтаксис выражений полностью соответствует строке поиска сайта и его Вы можете посмотреть его на странице помощи.



Getsploit: поиск и загрузка эксплойтов с использованием агрегированной базы данных.
</p><p>

Итак, нужные нам эксплоиты найдены.

Теперь их необходимо сохранить для дальнейшего использования.

Для этого вам нужно использовать ключ «-m».

После этого утилита создаст папку с вашим поиском и загрузит туда эксплоиты.



Getsploit: поиск и загрузка эксплойтов с использованием агрегированной базы данных.
</p><p>

Но что делать, если у нас нет онлайн-подключения к Интернету? Помните об этом, пока он еще доступен, и выполните «--update»!

isox$ .

/getsploit.py --update Downloading getsploit database archive. Please wait, it may take time. Usually around 5-10 minutes. 219686398/219686398 [100.00%] Unpacking database. Database download complete. Now you may search exploits using --local key '.

/getsploit.py -l wordpress 4.7'

При таком запросе gotsploit загрузит базу данных SQLite со всей коллекцией эксплойтов.

На момент написания это около 594 мегабайт данных.

Обратите внимание: если ваш Python скомпилирован без поддержки sqlite3 (что на самом деле бывает редко), то локальная база данных, увы, работать не будет. Здесь пришлось пожертвовать совместимостью ради скорости и возможности полнотекстового поиска с помощью модуля FTS4 SQLite. Но все не так уж и плохо, большинство сборок Python по умолчанию идут с модулем sqlite3. Попробуем найти эксплойты локально?

Getsploit: поиск и загрузка эксплойтов с использованием агрегированной базы данных.
</p><p>

Большой! Теперь вы можете взять с собой всю коллекцию эксплойтов от Vulners и использовать ее оффлайн без регистрации и СМС.

И, конечно же, исходные коды находятся по адресу наш GitHub .

Pull-запросы приветствуются.

Теги: #python #exploit #exploitdb #взлом #информационная безопасность #python

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.