Faraday渗透测试IDE和漏洞管理平台
为了使组织免受不断变化的黑客,脚本骗子以及动机不佳的每个人的侵害,那么我们就必须每天都在改善自己的游戏。毫无疑问,运行在它们上面的服务器和应用程序始终处于被利用的危险中,尤其是当它们暴露于公共领域时。牢记这一点,就必须为自己配备最好的工具,技能和团队,以竭尽全力保护和保护我们所珍爱的东西。
与此启示相结合,保护应用程序,服务器和网络应该是每项业务不可或者缺的一部分,因为显然在线存在非常重要。因此,我们共享了另一种工具,可以帮助开发人员和渗透测试人员确定其代码中的漏洞。在窥视之前最好先制止麻烦。破坏。介绍法拉第。
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会立即接管工作,完成后,它将向服务器发送报告。
我们可以通过登录到仪表板并选择客户端连接的工作区来查看报告