在Kali下安装w4af软件

音乐FM:Paradise

一、简介

w4af是一款Web高级应用程序攻击和审计python 3框架。主要帮助开发人员和渗透测试人员识别和利用他们的web应用程序中的漏洞。

w4af最初基于w3af开发,由于w3af依赖于较为老旧的Python模块,kali系统在迭代版本的过程中逐渐移除了对老旧python模块的支持,所以在较新的kali上并不能运行成功。由此产生基于Python 3的w4af并将开发重心转移到该项目上,老旧的w3af已经没有进行维护。


二、前置配置

在本教程中会安装许多特定的软件,大多数服务部署在国外,在安装的过程中存在下载速度慢、无法访问链接、安装失败的情况,所以本教程会提供特定软件的镜像地址及安装包。

在此教程中会通过在段前加注“【必须】”以提示您需要注意该段内容必须阅读、命令必须执行。

大致流程:

w4af流程图

(一)、kali镜像

在网上一直存在需要更换xx源的教程,其本质上就是将国外的下载地址通过镜像(数据“克隆”)的方式替换为国内服务地址,使其国外低速下载服务能够通过国内CDN进行高速访问。这里所述的kali镜像指的是kali下的apt软件管理服务镜像。在kali中,大多数软件的下载、更新、删除都需要借助apt软件管理器,通过对apt软件管理器源地址的修改,使得能够通过国内CDN加速下载(更新)软件。

kali系统在之前提供了国内官方源,但后续已经关闭,所以我们必须借助其他国内镜像站。

现在的kali国内镜像站主要有:中科大、清华、浙大、东软、重庆、阿里巴巴等,这里我们统一使用清华的镜像。

1、更新源

  1. 必须】首先我们需要打开sources.list文件,修改系统官方源。
sudo vim /etc/apt/sources.list  # 使用vim访问文件,当然也可以使用其他文本编辑软件,例如:nano
  1. 必须】将官方源进行“#”注释。
# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
# deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware # 注释该条语句,并在后续添加国内源

# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware

  1. 必须】在sources.list文件中添加国内源
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free # 该语句用于添加源码源。一般我们并不需要,可以选择注释掉。
  1. 必须】按ESC键并输入:x退出vim
  2. 当然,您也可以通过sed命令直接进行源替换(注意:会删除kali官方源)
sudo sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list

2、更新源

必须】对sources.list文件进行修改后并不会自动进行源更换,需要手动进行:

sudo apt-get update # 更新索引

除了更新索引外,您还可以进行:

sudo apt-get upgrade # 更新软件
sudo apt-get dist-upgrade # 全局全盘升级
sudo apt-get clean # 删除缓存
sudo apt-get autoclean # 自动化删除缓存

当然,这些操作并不是强制的,特别是进行更新软件操作。您可能许久没有更新,那么更新过程将会持续较长时间。

(二)、Python 3安装

w4af基于Python 3框架开发,所以您需要具有python 3环境,注意:在最新(24/4/23)的w4af中您需要Python 3版本大于或等于3.11。

必须】您可以通过

python3 --version

检查您的python 3版本。

必须】如果您已经完成上述更新apt源步骤,那么您仅需要执行:

sudo apt install python3

(三)、pip软件包安装

pip作为Python中的标准库管理器,其用于安装、管理不属于Python标准库的其他软件包。您可以将它类比于apt管理器。

1. pip换源

必须】同样,pip的官方源在国内访问速度较慢,需要将其替换为国内源。

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip # 临时使用镜像升级pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 设置默认源地址

如果您仅希望临时使用该源地址,则可以

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

pip也可以配置多个镜像源,源地址间需要空格

pip config set global.extra-index-url "<url1> <url2>..."

2. pipenv&wheel安装

Pipenv是Python依赖管理工具,您可以将其看作是pip和virtualenv的组合体。wheel是Python的一种构件包格式,用于替代Python传统的egg文件。

必须】安装命令

python -m pip install --upgrade pipenv wheel

必须】安装完成,您可以通过

pipenv --version

检查您是否安装成功。

注意:如果您并没有安装成功,那么可能是pip管理器与apt管理器出现冲突,这个时候我们需要采用apt方式安装。

sudo apt install pipenv

(四)、npm软件包安装

npm是JavaScript运行时Node.js的默认程序包管理器,作为Node.js的开放式模块登记和管理系统,主要用于发布、下载Node.js包。

1. npm安装

必须】在安装之前,您需要先安装Node.js

sudo apt install nodejs

必须】之后,您再安装npm

sudo apt install npm

2. npm换源

必须】换源同样一步完成

npm config set registry https://registry.npmmirror.com

如果您希望恢复官方源,则

npm config set registry https://registry.npmjs.org

ok,您成功完成前置步骤!


三、w4af安装

(一)、下载w4af

必须】首先,我们需要克隆w4af的仓库文件或者下载库zip压缩包

git clone git@github.com:w4af/w4af.git

注意:如果您并没有将ssh公开密钥上传至您的github仓库,那么您并不能直接通过克隆方式,需要采用下载zip包方式,链接地址:w4af zip

必须】克隆或下载zip包并解压后,进入w4af的目录下

cd w4af # 如果您是通过git克隆获取
cd w4af-main  # 如果您是通过zip包解压获取

注意:通过zip包解压缩可能会存在嵌套w4af-master,请仔细查看。

(二)、依赖安装

必须】w4af使用了Node.js库中的一些功能,所以需要使用npm安装依赖

npm install

必须】同样,w4af项目依赖于python 3.11,所以需要通过pipenv来安装项目的Python依赖

pipenv install --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple/ # 临时添加清华源

pipenv安装过程中持续时间较长,请耐性等待。

(三)、运行w4af

当完成pipenv的安装后,会提示到

To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

必须】那么这个时候,我们需要运行pipenv shell命令,开启一个独立shell以采用虚拟化方式运行w4af。

当执行完上述命令,会提示类似于

Launching subshell in virtual environment...
 . /home/ak/.local/share/virtualenvs/w4af-main-PNImuV0A/bin/activate 

的提示。那么这个时候其实已经进入专为w4af创建的shell。

运行w4af终端命令

./w4af_console 

启动w4af。

完成w4af的安装与启动!


四、补充工具

(一)、 DVWA

本节主要安装DVWA作为w4af的测试对象,如果您并没有该需求,则无需安装。

DVWA是一个简单且脆弱的PHP/MySQL应用程序,主要作为安全人员用于测试其技能和工具。在其中包含一些常见的不同难度的Web漏洞,主要用于练习使用。

1. 安装

必须】同样的,安装方式有git克隆和zip包两种方式

git clone git@github.com:digininja/DVWA.git

zip包地址:DVWA zip

必须】将DVMA移动到/var/www/html/下,该目录作为apache2网站的根目录,可以通过http://ip/folder访问资源

sudo mv DVWA /var/www/html # 如果通过git克隆获得
sudo mv DVWA-master /var/www/html/DVWA # 如果下载zip包获取

注意:重命名DVWA目录并不是必须的,这主要取决于您采用输入何种url链接。

2. 启动服务

DVWA主要需要两个服务:Apache 2和MySQL。前者提供网站服务,后者提供数据库支持。

kali默认不会启动上述服务,您可以通过

service apache2 status

查看该服务的状态。

必须】启动二者服务

service apache2 start # 启动Apache 2服务
service mariadb start # 启动数据库服务

后,您可以通过在浏览器输入http://127.0.0.1查看是否启动Apache 2成功。

3. 配置数据库

在完成上述服务启动后,您可以在root账户下成功启动MySQL服务(默认没有密码)。

如果您并没有配置root账户,则需要

sudo passwd # 配置root账户密码

必须】转为root账户,并进入MySQL终端

su # 输入root密码,转为root账户
mysql # 默认无需密码

如果存在类似提示

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.11.6-MariaDB-2 Debian n/a

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

则证明您已经成功进入MySQL终端。

必须】在MySQL下创建DVWA独立用户,以此单独存储DVWA数据。请依次输入下述SQL语句

-- 创建数据库dvwa
CREATE DATABASE dvwa;

-- 创建数据库用户dvwa,密码为p@ssw0rd
CREATE user dvwa@localhost IDENTIFIED BY 'p@ssw0rd';

-- 分配权限,实现远程登录
GRANT ALL ON dvwa.* TO dvwa@localhost;

-- 刷新权限
FLUSH PRIVILEGES;

注意

  1. 请务必小心:在语句输入完后记得添加“;”,如果忘记添加便执行,依旧添加“;”结束语句输入。

  2. 创建数据库名、用户名和密码并不是强制要求一致,上述仅为DVWA默认配置的账户,如果您选择自定义用户,则需要

    # 修改DVWA配置项
    vim /var/www/html/DVWA/config/config.inc.php.dist 
    # 将以下三项修改为您自定义的MySQL数据库名、账户名和密码
    $_DVWA[ 'dk_database' ] = 'dvwa';
    $_DVWA[ 'db_user' ]     = 'dvwa';
    $_DVWA[ 'db_password' ] = 'p@ssw0rd'; 
    
  3. 当配置完成后请退出root账户。

4. 启动DVWA

这一部分相对简单。

必须】修改DVWA配置文件名

# 跳转到/var/www/html/DVWA目录下
cd /var/www/html/DVWA

# 复制并重命名配置文件
cp config/config.inc.php.dist config/config.inc.php

在浏览器输入urlhttp://127.0.0.1/DVWA/setup.php后,您应该能够看到DVWA的数据库配置界面,点击页面最下方的Create/Reset Database即可完成初始化DVWA数据库。

必须】此时会跳转到DVWA的登陆界面,输入

# 账户
admin
# 密码
password

完成登陆。


参考

kali Linux更换国内源

清华大学开源软件镜像站:kali

清华大学开源软件镜像站:pypi

Kali搭建DVMA

posted @ 2024-04-24 09:30  木木亚伦  阅读(182)  评论(0编辑  收藏  举报