Faraday — IDE для тестирования на проникновение и платформа управления уязвимостями

Faraday — IDE для тестирования на проникновение и платформа управления уязвимостями

 

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

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

Faraday представляет новую концепцию — IPE (Integrated Penetration-Test Environment), которая представляет собой многопользовательскую IDE для тестирования на проникновение. Faraday предназначен для распространения, индексации и анализа данных, созданных во время аудита безопасности. Он был создан для того, чтобы вы могли использовать доступные в сообществе инструменты по-настоящему многопользовательским способом.

В этом руководстве мы установим и исследуем, как Faraday делает то, что у него получается лучше всего. Давайте посмотрим, чем он обладает:

Особенности Faraday

В этом приложении вы найдете следующее:

  • Рабочие области: информация организована в различные рабочие области. Каждая рабочая область содержит задания команды пентестеров и всю обнаруженную информацию.
  • Конфликты: если два плагина создают конфликтующую информацию для отдельного элемента, возникает конфликт, который пользователю придется разрешить.
  • Экспорт в CSV: Faraday поддерживает экспорт в CSV из своего веб-интерфейса.
  • Плагин Faraday: предоставляет мощные функции сценариев Faraday и позволяет запрашивать базу данных, не покидая вашего любимого рабочего пространства, будь то интерфейс GTK или терминал.

Вот что требует Faraday перед установкой:

Тебе нужно:

  • Python 3.6 и выше
  • База данных PostgreSQL

Как установить Faraday

Faraday Server — это интерфейс между PostgreSQL и Faraday Client и WebUI. Сервер отвечает за передачу информации между клиентом или WebUI и PostgreSQL и обеспечение их синхронизации.

Шаг 1. Установите Python 3 Linux

Поскольку Python является основным пакетом, от которого зависит Faraday, давайте продолжим и установим его, если у вас его нет, выполните следующие шаги

Установите Python 3.6+ на Ubuntu

Если вы используете Ubuntu 16.10 или новее, вы можете легко установить Python 3.6 с помощью следующих команд:

sudo apt-get update
sudo apt-get install python3.6 python3-pip -y

Если вы используете другую версию Ubuntu (например, последнюю версию LTS) или хотите использовать более современный Python, мы рекомендуем использовать deadsnakes PPA для установки Python 3.8:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.8 python3-pip python3-dev -y

Установите Python 3.6+ на CentOS

Если вы используете CentOS 7 или 8, все, что вам нужно сделать для установки Python 3, — это выполнить следующую команду.

sudo yum update
sudo yum install -y python3  python3-pip python3-devel

Шаг 2: Установите сервер базы данных PostgreSQL

Прежде чем приступить к установке Faraday, давайте убедимся, что установлена ​​база данных PostgreSQL. Вы можете быстро установить postgreSQL, используя приведенные ниже ссылки:

Установите PostgreSQL 12 в Debian
Как установить PostgreSQL 12 в Ubuntu

После завершения установки убедитесь, что версия PostgreSQL выше или равна 9.6, запустив:

$ sudo su - postgres
$ psql -c "SELECT version()" postgres

Настроить PostgreSQL

Откройте файл pg_hba.conf (не забудьте указать правильную версию PostgreSQL):

sudo vim /etc/postgresql/POSTGRESQL_VERSION/main/pg_hba.conf

Если вы не можете найти файл pg_hba.conf по указанному выше пути, просто найдите его следующим образом.

sudo find / -name pg_hba.conf

После того, как вы открыли файл, вам необходимо отредактировать следующие строки, чтобы тип аутентификации был установлен с « ident » на « md5 »:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5 <==
# IPv6 local connections:
host    all             all             ::1/128                 md5 <==

Шаг 3: Установка Faraday в Debian | Ubuntu | Kali | CentOS

Теперь все должно быть готово для Faraday, и мы без колебаний загрузим его и настроим. Хорошая новость заключается в том, что разработчики Faraday предоставили пакеты DEB для простой установки во всех системах на основе Debian. В зависимости от номера выпуска посетите страницу релизов Faraday на GitHub, чтобы загрузить последнюю версию .

sudo apt update
sudo apt install wget -y
wget https://github.com/infobyte/faraday/releases/download/v3.12/faraday-server_amd64.deb

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

sudo dpkg -i faraday-server_amd64.deb

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

sudo faraday-manage initdb

После завершения команды вы получите случайно сгенерированный пароль для входа в веб-интерфейс.

 

Настройте Faraday для удаленного приема

По умолчанию Faraday слушает на локальном хосте. При такой конфигурации вы не сможете получить доступ к своему приложению, если ваш сервер находится в удаленном месте. Чтобы изменить это, откройте следующий файл и измените localhost на предпочитаемый IP-адрес или просто разрешите все IP-адреса следующим образом:

port = 5985
bind_address = 0.0.0.0   ##This Part
websocket_port = 9000
debug = false
secret_key = TBdhDvbWXo6p9MJOH1SPcD1cs
agent_token = 7gDQ35BvIqWt18z0omP5Amxw6

И наше приложение должно быть готово и его можно запустить, запустив:

sudo systemctl start faraday-server

Затем проверьте его статус следующим образом.

sudo systemctl status faraday-server

● faraday-server.service - Faraday Server
     Loaded: loaded (/etc/systemd/system/faraday-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-11-06 09:32:37 UTC; 5s ago
   Main PID: 40670 (.faraday-server)
      Tasks: 3 (limit: 2204)
     Memory: 91.8M
     CGroup: /system.slice/faraday-server.service
             └─40670 /nix/store/m9g361va65ccbj2v5nil4dfr194zgarn-python3-3.8.3/bin/python3.8 /nix/store/ws2ix6dhr7hj2k1r8x0iv9ssjcx0bpvr-python3.8-faradaysec-3.11.1/bin/.faraday-server-wrapped

Nov 06 09:32:37 ubuntu2004.localdomain systemd[1]: Starting Faraday Server...
Nov 06 09:32:37 ubuntu2004.localdomain systemd[1]: Started Faraday Server.

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

sudo ufw allow 5985/tcp

Теперь откройте браузер и укажите в нем http: // <ip-address-or-fqdn>: 5985 и войдите в систему, указав « faraday » в качестве имени пользователя и пароля, сгенерированного на этапе initdb.

Установите плагины Faraday

Нам нужны плагины, такие как nmap и остальные, чтобы сервер мог сканировать клиентов. Получите плагины Faraday следующим образом

sudo pip3 install faraday-plugins

Шаг 4. Установка Faraday на CentOS 7 | CentOS 8

Как и в Debian, Ubuntu или Kali, прежде чем мы приступим к установке Faraday, давайте убедимся, что установлены Python и база данных PostgreSQL. Вы можете быстро установить PostgreSQL, используя приведенные ниже ссылки:

Установите PostgreSQL 13 на CentOS 8 | RHEL 8

Настроить PostgreSQL

Откройте файл pg_hba.conf и внесите изменения, как рекомендовано далее.

vim /var/lib/pgsql/POSTGRESQL_VERSION/data/pg_hba.conf

После того, как вы открыли файл, вам необходимо отредактировать следующие строки, чтобы тип аутентификации был установлен с « identity » на « md5» :

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5 <==
# IPv6 local connections:
host    all             all             ::1/128                 md5 <==

Завершения установки и настройки убедитесь, что версия PostgreSQL выше или равна 9.6, запустив:

$ psql -c "SELECT version()" postgres

После этого вы обнаружите, что Python3 отсутствует по той или иной причине, выполните приведенную ниже команду, чтобы установить его.

sudo yum install python3 -y

В наших системах на основе RPM разработчики Faraday с гордостью представляют вам пакеты rpm . В зависимости от номера выпуска посетите страницу релизов Faraday на GitHub и скачайте последнюю версию .

sudo yum update
sudo yum install wget vim epel-release -y
wget https://github.com/infobyte/faraday/releases/download/v3.12/faraday-server_amd64.rpm

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

sudo rpm -ivh faraday-server_amd64.rpm

Перезагрузите сервер PostgreSQL и инициализируйте базу данных:

sudo systemctl restart postgresql
sudo faraday-manage initdb

Вторая команда предоставит вам случайно сгенерированный пароль для входа в веб-интерфейс.

Настройте Faraday для удаленного приема

По умолчанию Faraday слушает на локальном хосте. При такой конфигурации вы не сможете получить доступ к своему приложению, если ваш сервер находится в удаленном месте. Чтобы изменить это, откройте следующий файл и измените localhost на предпочитаемый IP-адрес или просто разрешите все IP-адреса следующим образом:

port = 5985
bind_address = 0.0.0.0   ##This Part
websocket_port = 9000
debug = false
secret_key = TBdhDvbWXo6p9MJOH1SPcD1cs
agent_token = 7gDQ35BvIqWt18z0omP5Amxw6

После настройки запустите сервер Faraday.

systemctl start faraday-server

Теперь откройте браузер и укажите в нем http: // <ip-address-or-fqdn>: 5985 и войдите в систему, указав « faraday » в качестве имени пользователя и пароля, сгенерированного на этапе initdb.

Если у вас возникают проблемы с подключением, разрешите порт 5985 на вашем брандмауэре, если он работает.

sudo firewall-cmd --permanent --add-port=5985/tcp
sudo firewall-cmd --reload

Шаг 5. Создайте рабочее пространство

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

Щелкните раскрывающееся меню значка пользователя и выберите « Рабочие области ».

На странице рабочих областей нажмите « Создать ».

Появится форма. Введите данные плюс целевой хост, затем сохраните. И все будет готово.

Установите плагины Faraday

Плагины Faraday — это ядро ​​Faraday. Они включают в себя большинство доступных инструментов безопасности с открытым исходным кодом, таких как Nmap, Hydra, Lynis и многие другие. Вы можете установить плагины Faraday следующим образом

sudo pip3 install faraday-plugins

##On Ubuntu 20 you have to copy faraday-plugins to a directory on PATH###
$ sudo cp ~/.local/bin/faraday-plugins /usr/local/bin/

Список всех плагинов

faraday-plugins list-plugins

Available Plugins:
Acunetix         - [Command:  No - Report: Yes] - Acunetix XML Output Plugin
Amap             - [Command: Yes - Report:  No] - Amap Output Plugin
Appscan          - [Command:  No - Report: Yes] - Appscan XML Plugin
AppSpider        - [Command:  No - Report: Yes] - AppSpider XML Output Plugin
Arachni          - [Command: Yes - Report: Yes] - Arachni XML Output Plugin
arp-scan         - [Command: Yes - Report:  No] - arp-scan network scanner
awsprowler       - [Command:  No - Report: Yes] - AWS Prowler
Beef             - [Command: Yes - Report:  No] - BeEF Online Service Plugin
brutexss         - [Command: Yes - Report:  No] - brutexss
Burp             - [Command:  No - Report: Yes] - Burp XML Output Plugin
Checkmarx        - [Command:  No - Report: Yes] - Checkmarx XML Output Plugin
Cobalt           - [Command:  No - Report: Yes] - Cobalt CSV Output Plugin
dig              - [Command: Yes - Report:  No] - DiG
dirb             - [Command: Yes - Report:  No] - Dirb
dirsearch        - [Command: Yes - Report:  No] - dirsearch
Dnsenum          - [Command: Yes - Report:  No] - Dnsenum XML Output Plugin
Dnsmap           - [Command: Yes - Report:  No] - Dnsmap Output Plugin
Dnsrecon         - [Command: Yes - Report:  No] - Dnsrecon XML Output Plugin
Dnswalk          - [Command: Yes - Report:  No] - Dnswalk XML Output Plugin
faraday_csv      - [Command:  No - Report: Yes] - Faraday CSV Plugin
Fierce           - [Command: Yes - Report:  No] - Fierce Output Plugin
Fortify          - [Command:  No - Report: Yes] - Fortify XML Output Plugin
fruitywifi       - [Command: Yes - Report:  No] - FruityWiFi
ftp              - [Command: Yes - Report:  No] - Ftp
Goohost          - [Command: Yes - Report:  No] - Goohost XML Output Plugin
Hping3           - [Command: Yes - Report:  No] - hping3

Шаг 5: Установка клиента Faraday на CentOS 8

Пока что мы установили серверную часть Faraday. Он соответствует архитектуре сервер-клиент, и не рекомендуется одновременно использовать сервер и клиент на одной машине. Для этого мы вообще установим клиент Faraday на другую машину. Обратите внимание, что для этого примера клиенту требуется графический интерфейс. GNOME — хороший выбор для запуска приложения GTK. Сначала обновите свои машины следующим образом:

sudo yum update

Затем установите Python на клиентские серверы, как это было описано в шаге 1. После установки Python перейдите к установке клиента Faraday следующим образом для CentOS 8.

sudo yum install cairo cairo-devel libjpeg-turbo-devel pango pango-devel pangomm
sudo dnf -y install dnf-plugins-core
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf config-manager --set-enabled PowerTools
sudo dnf install gobject-introspection-devel cairo-gobject-devel gtk3 -y
sudo pip3 install faraday_client

Затем запустите клиент Faraday, как показано ниже. Вам потребуется ввести URL-адрес сервера в конце вывода приложения. Введите его соответственно и нажмите Enter. Позже вы введете имя пользователя и пароль клиента Faraday, а также рабочее пространство, которое мы создали ранее.

$ faraday-client


  _____                           .___
_/ ____\_____  ____________     __| _/_____   ___.__.
\   __\ \__  \ \_  __ \__  \   / __ | \__  \ <   |  |
 |  |    / __ \_|  | \// __ \_/ /_/ |  / __ \_\___  |
 |__|   (____  /|__|  (____  /\____ | (____  // ____|
             \/            \/      \/      \/ \/

[*[       Open Source Penetration Test IDE       ]*]
            Where pwnage goes multiplayer

2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:323 - printBanner()]  Starting Faraday IDE.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:435 - main()]  Dependencies met.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:279 - checkConfiguration()]  Checking configuration.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:280 - checkConfiguration()]  Setting up ZSH integration.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:282 - checkConfiguration()]  Setting up user configuration.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:265 - setupXMLConfig()]  Copying default configuration from project.
2020-11-06T13:07:06+0000 - faraday_client.start_client - INFO {MainThread} [start_client.py:183 - setConf()]  Setting configuration.

Please enter the Faraday Server URL (Press enter for http://localhost:5985): http://172.17.106.186:5985

 

Заключение

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