自定义AWVS的Docker镜像

2022-02-16 22:37:38 浏览数 (1)

前言

(1)之前发布了AWVS14批量漏洞扫描Docker篇,看到后台很多小伙伴留言问是如何搭建的,故而有此文做个记录

(2)网上几乎千篇一律的pull他人的容器进行使用或无详细的制作过程,一般只有头和最后的结果却忽略了中间存在的一些坑

(3)也发现很多Docker镜像存在各种后门及挖矿程序,所以建议自定义镜像

AWVS简介

AWVS是Acunetix Web Vulnerability Scanner的缩写。

它是一个自动化的Web应用程序安全测试工具,审计检查漏洞。

它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。

可以通过检查SQL注入攻击漏洞、跨站脚本攻击漏洞等来审核Web应用程序的安全性。

AWVS功能介绍

WebScanner:全站扫描,Web安全漏洞扫描

Site Crawler:爬虫功能,遍历站点目录结构

Target Finder:端口扫描,找出web服务器 Subdomain Scanner:子域名扫描器,利用DNS查询

Blind SQL Injector:盲注工具

HTTP Editor:http协议数据包编辑器

HTTP Sniffer:HTTP协议嗅探器

HTTP Fuzzer:模糊测试工具

Authentication Tester:Web认证破解工具

Web Srevice Scanner:Web服务扫描器

Web Srevice Editor:Web服务编辑器

docker build 构建镜像

新建项目

  • Ubuntu环境
  • 简易的Dockerfile环境

在任意目录下执行以下语句

代码语言:javascript复制
mkdir ubuntu && cd ubuntu
vim Dockerfile

Dockerfile里面的内容为:

代码语言:javascript复制
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y

构建镜像

代码语言:javascript复制
docker build -t xsgcs/awvs14:220117111 .

执行后会生成出现镜像内容

代码语言:javascript复制
REPOSITORY     TAG         IMAGE ID       CREATED              SIZE
xsgcs/awvs14   220117111   eb348505474e   About a minute ago   102MB
ubuntu         18.04       dcf4d4bef137   7 days ago           63.2MB

运行容器

代码语言:javascript复制
docker run -it -d -p 8088:3443 eb348505474e

进入容器

代码语言:javascript复制
docker exec -it 8d6e162ff38f /bin/bash

宿主机复制文件至容器

代码语言:javascript复制
docker cp /var/local/ubuntu/acunetix_14.6.211220100_x64.sh 8d6e162ff38f:/var/local/
docker cp /var/local/ubuntu/awvs_crack/ 8d6e162ff38f:/var/local/

容器复制文件至宿主机

代码语言:javascript复制
docker cp d6e162ff38f:/var/local/ /var/local/xsgcs/

部署AWVS

环境依赖安装

代码语言:javascript复制
apt-get update

apt install libxshmfence-dev libxdamage1 libgtk-3-0 libasound2 libnss3 libxss1 libx11-xcb-dev libgbm-dev sudo systemd net-tools libx11-xcb1 libxcb-dri3-0 libgbm1 libdrm2 libxshmfence1 vim -y

安装AWVS14

安装包及破解文件已打包在容器里面,对应路径为:/var/local/

等待环境依赖安装完成之后,执行acunetix_14.6.211220100_x64.sh脚本,并选择Enter进入下一步

代码语言:javascript复制
root@10a035ad6a67:/var/local# ./acunetix_14.6.211220100_x64.sh

Acunetix Installer Version: v_211220100, Copyright (c) Acunetix
------------------------------------------------------------

Checking os...
Checking for dependencies...
Please read the following License Agreement. You must accept the terms of this
agreement before continuing with the installation.
press ENTER to continue
>>>

输入yes表示同意

代码语言:javascript复制
Last modified March 4, 2021.

Accept the license terms? [yes|no]
[no] >>> yes

自定义主机名、邮箱地址、密码并自动开始安装

代码语言:javascript复制
Configuring acunetix user...
    Creating user acunetix.

By default the Acunetix will be installed to /home/acunetix/.acunetix

Checking database port...
Checking backend port...

Configuring hostname...
Insert new hostname, or leave blank to use 2a06bd213923
    Hostname [2a06bd213923]:xsgcs

Configuring the master user...
    Email: xsgcs@xsgcs.com
    Password:Xsgcs.com
    Password again:Xsgcs.com

Initializing file system...

Extracting files to /home/acunetix/.acunetix....

稍等几分钟就可以安装完毕,安装结束后其实服务并没有正常启动(会自动退出),这里跟Windows下安装有一些区别

默认情况下并没有启动AWVS需切换成acunetix账户进行重新启动

在linux下安装AWVS会创建acunetix账户来管理AWVS

执行以下语句进行启动

代码语言:javascript复制
su acunetix
cd /home/acunetix/.acunetix
./start.sh

再使用Ctrl P Q退出容器而不停止运行里面的内容

访问https://服务器IP:8088,输入账户xsgcs@xsgcs.com、密码Xsgcs.com即可登录

默认安装好后是处于未破解的情况,接下来我们进行破解使用

破解AWVS

安装包及破解文件已打包在容器里面,对应路径为:/var/local/

将容器里/var/local/awvs_crack文件夹中对应的license_info.jsonwa_data.dat文件覆盖至/home/acunetix/.acunetix/data/license/

推荐将license_info.jsonwa_data.dat文件设置为只读权限

代码语言:javascript复制
cp /var/local/awvs_crack/license_info.json /home/acunetix/.acunetix/data/license/
cp /var/local/awvs_crack/wa_data.dat /home/acunetix/.acunetix/data/license/
chmod 444 /home/acunetix/.acunetix/data/license/license_info.json
chmod 444 /home/acunetix/.acunetix/data/license/wa_data.dat
chown root:acunetix /home/acunetix/.acunetix/data/license/license_info.json
chown acunetix:acunetix /home/acunetix/.acunetix/data/license/wa_data.dat

修改/etc/hosts文件并添加如下内容并保存

代码语言:javascript复制
echo 127.0.0.1 updates.acunetix.com >> /etc/hosts
echo 127.0.0.1 erp.acunetix.com >> /etc/hosts

重新刷新页面即可

打包并上传至Docker Hub

将容器打包成镜像

代码语言:javascript复制
docker commit e52e307bbf0a xsgcs:awvs14v2112201000

登录Docker Hub

代码语言:javascript复制
docker login

设置镜像标签并上传至Docker Hub

代码语言:javascript复制
docker tag xsgcs:awvs14v2112201000 xsgcs/awvs14:2112201000
docker push xsgcs/awvs14:2112201000

其他说明

  • 错误异常1
代码语言:javascript复制
error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>nYour browser didn't send a complete request in time.n</body></html>nn"

解决方式

代码语言:javascript复制
ifconfig eth0 mtu 900
  • 错误异常2
代码语言:javascript复制
Error response from daemon: conflict: unable to delete 009c92684e05 (must be forced) - image is referenced in multiple repositories

解决方式

代码语言:javascript复制
docker rmi xsgcs:awvs14v211220100
  • 错误异常3

容器重启后AWVS没有自动重启运行,可手动执行容器里面的/var/local/awvs.sh脚本

脚本内容为:

代码语言:javascript复制
#!/bin/bash
echo '127.0.0.1 updates.acunetix.com' >> /etc/hosts
echo '127.0.0.1 erp.acunetix.com' >> /etc/hosts
su -l acunetix -c "/home/acunetix/.acunetix/start.sh";

或在run容器时添加bash命令

完整运行命令如下

代码语言:javascript复制
docker run -it -d -p 8088:3443 xsgcs/awvs14:211220100 /bin/bash /var/local/xsgcs.sh

现成镜像

如感觉以上搭建起来比较麻烦或不想自己搭建的也可以用小生观察室已搭建好的纯净镜像一键启动即可使用

已打包好的镜像

代码语言:javascript复制
docker pull xsgcs/awvs14_crack_211220100:211220100

docker run -it -d -p 8088:3443 xsgcs/awvs14_crack_211220100:211220100 /bin/bash /var/local/xsgcs.sh

访问 https://YOUR_IP:8088/

账户:xsgcs@xsgcs.com 
密码:Xsgcs.com

0 人点赞