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, уже разработанных для тестирования и исправления ваших уязвимостей, прежде чем посторонние взгляды попадут на них.