最近在虚拟机上安装AWVS,过程有点曲折,写篇文章记录详细的踩坑过程,分享给大家排雷使用。
环境
关于AWVS破解版的安装方法不是本文重点,网上有很多教程,我也是找了一篇按部就班地搞,完活儿后访问地址是这样:
部署环境简单说明:
本地IP:192.168.70.1
虚拟机IP:192.168.70.3
网络连接方式:NAT
虚拟机操作系统:CentOS 7
CPU、硬盘、内存……够用即可,要给宿主机留一点空间,毕竟跑的时候还要干点别的事儿。
排查
刚开始以为是防火墙没开3443端口,上去看了一眼,之前加过,而且是permanent,端口没问题:
在本机上扫一下虚拟机的端口,可以看出来有点猫腻儿:
3443端口的状态是closed,代表该端口是开放的,但是没有应用程序响应(横向的时候如果遇到这种情况就可以搞点事情了)。再查看网络连接状态,此处只要看listen状态的进程即可,发现3443没有程序监听,说明AWVS没有运行起来:
程序安装好后会自动加入系统服务中,所以先看看服务单元有没有跑起来:
acunetix.service正常运行,看似无误,然后查看进程:
这时候却没有发现acunetix的进程,再次印证AWVS并没有真正地运行起来,那么作为系统的服务单元,其运行状态大概率有问题:
查看acunetix的运行状态可以发现,loaded确实是loaded,active也是激活状态,但进程运行出了问题。入口程序是/home/acunetix/.acunetix/start.sh,code是exited,退出了,status是1/FALURE,失败了。从code猜测,是有代码抛出了异常,导致程序退出。
// 筛选acunetix的运行日志
journalctl -u acunetix.service
运行日志中有一行引起了注意,ImportError:/lib64/libc.so.6:version‘GLIBC 2.18’not found(required by……),说明是python代码在引用库文件的时候失败了,库文件需要GLIBC 2.18。查看系统库的版本是2.17:
这是Linux自带的版本,只更新到2.17,而且yum是查询不到更高版本的,所以接下来需要手动下载:
GLIBC 2.18的安装需要gcc版本在4.5以上,系统默认的已经满足:
// 编译安装
make && make install
编译的过程会很长,最终的日志量会占到整个窗口的2/3左右。
排查到这里,环境问题解决,准备工作算是完成了。
卸载
Linux中所有的配置都是以文件形式存在,所以卸载AWVS就比较简单。先停掉AWVS,然后搜索一下acunetix的文件夹:
可以发现文件都很集中,直接用rm命令删除:
提示Operation not permitted,这种情况一般有2个原因,一是权限不够,二是文件属性不可修改。我用的是root账号登录,权限自然够,那么剩下的就是文件属性问题,查看一下:
发现license_info.json和wa_data.dat都有个属性 i,代表immutable,不可修改,这应该是按照网上破解步骤一通操作后设置的。将属性 i 去掉:
然后再删除一遍文件夹即可。最后需要删除的是用户,之前的安装过程会默认创建acunetix账号:
// 删除账号,连主目录一起删除
userdel -f acunetix
否则再次安装时会提示User acunetix already exist.,代表用户没有删干净。
重装
还是按照网络教程走,只不过这次得慢一点操作,看清破解步骤。首先是对于wvsc文件夹,将其复制到安装目录,并且要覆盖:
改变属主,由当前用户改为acunetix:
赋予执行权限:
然后是license_info.json和wa_data.dat,也是将其复制到安装目录:
同样改变属主:
赋予权限444,代表只读,并且是属主、同组、其他用户均只读。
改变文件属性,设置为 imuutable。设置到这里就可以发现为什么上一步删除文件夹失败,原因是在这里:
// 最后重启服务
systemctl start acunetix
查看一下网络监听,已经启动:
访问https://192.168.70.3:3443,也已正常。