Faraday渗透测试IDE和漏洞管理平台

时间:2020-02-23 14:38:09  来源:igfitidea点击:

为了使组织免受不断变化的黑客,脚本骗子以及动机不佳的每个人的侵害,那么我们就必须每天都在改善自己的游戏。毫无疑问,运行在它们上面的服务器和应用程序始终处于被利用的危险中,尤其是当它们暴露于公共领域时。牢记这一点,就必须为自己配备最好的工具,技能和团队,以竭尽全力保护和保护我们所珍爱的东西。

与此启示相结合,保护应用程序,服务器和网络应该是每项业务不可或者缺的一部分,因为显然在线存在非常重要。因此,我们共享了另一种工具,可以帮助开发人员和渗透测试人员确定其代码中的漏洞。在窥视之前最好先制止麻烦。破坏。介绍法拉第。

Faraday引入了一个新概念IPE(集成渗透测试环境),它是一个多用户渗透测试IDE。 Faraday旨在分发,索引和分析在安全审核过程中生成的数据。旨在让我们以真正的多用户方式利用社区中的可用工具。

在本指南中,我们将安装并探索Faraday如何做到最好。让我们检查一下它具有的功能:

Faraday的特点

我们将在此应用程序中找到以下软件包:工作区:信息被组织到各种工作区中。冲突:如果两个插件为单个元素生成冲突信息,则将产生用户必须解决的冲突。CSV导出:Faraday支持从WEB导出CSV UIFaraday插件:提供Faraday强大的脚本功能,并允许我们查询数据库而无需离开自己喜欢的工作空间,无论是GTK界面还是终端。

以下是法拉第可以安装的要求:

我们需要:Python 3.6及更高版本PostgreSQL数据库

如何安装Faraday

Faraday Server是PostgreSQL与Faraday Client和WebUI之间的接口。服务器的职责是在客户端或者WebUI和PostgreSQL之间传输信息,并确保它们保持同步。

安装Python 3 Linux

由于Python是Faraday依赖的主要软件包,因此让我们继续进行安装,以防万一我们没有它,请按照以下步骤操作

在Ubuntu上安装Python 3.6+

如果我们使用的是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

在CentOS上安装Python 3.6+

如果我们使用的是CentOS 7或者8,则需要运行以下命令来安装Python 3.

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

安装PostgreSQL数据库服务器

在继续安装Faraday之前,请确保已安装PostgreSQL数据库。我们可以使用以下链接快速安装postgreSQL:

在Ubuntu上安装PostgreSQL 13
在Debian上安装PostgreSQL 12
如何在Ubuntu上安装PostgreSQL 12

安装完成后,通过运行以下命令验证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 <==

在Debian | Ubuntu | Kali | CentOS上安装Faraday

现在一切都应该准备好在法拉第进行,我们将毫不犹豫地下载并进行设置。好消息是,法拉第开发人员提供了DEB软件包,以便在所有基于Debian的系统中轻松安装。根据版本号,访问Faradays Releases 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

命令完成后,它将为我们提供一个随机生成的密码,以登录到Web UI,如下所示。

配置Faraday以进行远程访问

默认情况下,Faraday在localhost上侦听。使用该配置,如果服务器位于远程位置,则我们将无法访问应用程序。要更改此设置,请打开以下文件,然后将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 2017-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步骤中生成密码。

安装法拉第插件

我们需要nmap之类的插件,而其余的则需要服务器才能扫描客户端。如下获取Faraday插件

sudo pip3 install faraday-plugins

在CentOS 7上安装法拉第| CentOS的8

就像在debian,Ubuntu或者Kali中一样,在继续安装Faraday之前,请确保已安装Python和PostgreSQL数据库。我们可以使用以下链接快速安装PostgreSQL:

如何在CentOS 7上安装PostgreSQL 13
在CentOS 8上安装PostgreSQL 13 | RHEL 8

配置PostgreSQL

打开pg_hba.conf文件,然后按照下面的建议进行更改。

vim /var/lib/pgsql/POSTGRESQL_VERSION/data/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 <==

安装和配置完成后,通过运行以下命令验证PostgreSQL版本是否高于或者等于9.6:

$psql -c "SELECT version()" postgres

完成后,我们发现Python3出于某种原因缺失,请运行以下命令进行安装

sudo yum install python3 -y

在我们基于RPM的系统上,Faraday开发人员自豪地为我们提供rpm软件包。根据版本号,访问Faradays Releases 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

第二个命令将为我们提供一个随机生成的密码,以登录到Web UI。

配置法拉第以进行远程访问

默认情况下,Faraday在localhost上侦听。使用该配置,如果服务器位于远程位置,则我们将无法访问应用程序。要更改此设置,请打开以下文件,然后将localhost更改为我们想要的IP,或者我们可以按如下所示仅允许所有IP地址:

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

配置完成后,启动法拉第服务器

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

创建工作区

登录后,创建一个客户端可以连接并加载扫描结果的工作空间。要创建工作区,请遵循以下屏幕截图

单击用户图标下拉菜单,然后选择工作区。

在工作区页面上,单击新建

将会弹出一个表格。输入详细信息以及目标主机,然后保存。我们将完成。

安装法拉第插件

法拉第插件是法拉第的核心。它们包括大多数可用的安全性开源工具,例如Nmap,Hydra,Lynis等。我们可以按以下方式安装法拉第插件

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

在CentOS 8上安装Faraday Client

到目前为止,我们已经安装了法拉第的服务器部分。它遵循服务器-客户端体系结构,建议不要在同一台计算机上混合使用服务器和客户端。为此,我们将法拉第客户端完全安装在另一台机器上。请注意,在此示例中,客户端需要GUI。 GNOME是启动GTK App的不错选择。首先,如下更新计算机:

sudo yum update

然后按照中所述安装Python客户端服务器。一旦安装了Python,请按照以下步骤为CentOS 8安装Faraday客户端。

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

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

使用法拉第

如上所示,在使用.deb或者.rpm安装程序安装法拉第时,即会安装法拉第命令。为了开始扫描客户端,请运行上面的faraday-client,然后发出安全命令,例如Nmap。在此示例中,我们将使用Nmap。

我们将使用实时服务器对IP运行一个简单的nmap命令。我们应该观察到faraday-client会立即接管工作,完成后,它将向服务器发送报告。

我们可以通过登录到仪表板并选择客户端连接的工作区来查看报告