Gray Hat C#, Nessus, Программирование

#29 Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности. Автоматизация Nessus.

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

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


Nessus изначально разрабатывался как сканер уязвимостей с открытым исходным кодом, но в 2005 году он стал закрытым после того, как его приобрела компания Tenable Network Security. На момент написания этой статьи компания Tenable предлагает семидневную пробную версию Nessus Professional и ограниченную версию Nessus Home. Самая большая разница между ними заключается в том, что Nessus Home позволяет сканировать только 16 IP-адресов одновременно, но Home должно быть достаточно, чтобы вы могли запустить примеры из этого раздела, и ознакомиться с программой. Nessus особенно популярен среди профессионалов, которые помогают сканировать сети других компаний и управлять ими. Следуйте инструкциям на сайте Tenable https://www.tenable.com/products/nessus-home/, чтобы установить и настроить Nessus Home.


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


REST и Nessus API

Появление веб-приложений и API привело к появлению архитектуры API, называемой REST API. REST (передача репрезентативного состояния) — это способ доступа и взаимодействия с ресурсами (такими как учетные записи пользователей или сканирование уязвимостей) на сервере, обычно через HTTP, с использованием различных методов HTTP (GET, POST, DELETE и PUT). Методы HTTP описывают наше намерение сделать HTTP-запрос (например, хотим ли мы создать ресурс или изменить ресурс?), что-то вроде операций CRUD (создание, чтение, обновление, удаление) в базах данных.


Например, взгляните на следующий простой HTTP-запрос GET, который похож на операцию чтения базы данных (например, SELECT * FROM users WHERE id = 1):

get

В этом примере мы запрашиваем информацию для пользователя с идентификатором 1. Чтобы получить информацию для идентификатора другого пользователя, Вы можете заменить 1 [1] в конце URI на идентификатор этого пользователя.
Чтобы обновить информацию для первого пользователя, HTTP-запрос может выглядеть следующим образом:

В нашем гипотетическом RESTful API предыдущий запрос POST обновит имя первого пользователя на Брэндон Перри. Обычно запросы POST используются для обновления ресурса на веб-сервере.


Чтобы полностью удалить учетную запись, используйте DELETE, например:

API Nessus будет вести себя аналогичным образом. При использовании API мы будем отправлять JSON на сервер и получать его с сервера, как в этих примерах. Классы, которые мы напишем в этом разделе, предназначены для управления способами взаимодействия с REST API.
После установки Nessus вы сможете найти документацию по REST API Nessus по адресу https://:8834/api. Мы рассмотрим лишь некоторые из основных вызовов API, используемых для управления Nessus при выполнении сканирования уязвимостей.

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

Цикл статей по Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности.