团建拓展网站建设需求分析锦州网站制作公司
HVV笔记——常见漏洞扫描工具AWVS、AppScan、Nessus的使用
- 1 AWVS
 - 1.1 安装部署
 - 1.2 激活
 - 1.3 登录
 - 1.4 扫描web应用程序
 - 1.4.1 需要账户密码登录的扫描
 - 1.4.2 利用录制登录序列脚本扫描
 - 1.4.3 利用定制cookie扫描
 
- 1.5 扫描报告分析
 - 1.5.1 AWVS报告类型
 - 1.5.2 最常用的报告类型:
 
- 1.6 Goby+AWVS联动
 
- 2 AppScan
 - 2.1 扫描方式
 - 2.2 安装部署
 - 2.3 扫描web应用程序
 - 2.4 手动探索扫描
 - 2.5 安装证书和登录绕过
 - 2.5 测试报告
 
- 3 Nessus
 - 3.1 Kali安装Nessus
 - 3.2 离线激活Nessus
 - 3.2.1 去Nessus官方申请激活码
 - 3.2.2 获得质询码(challenge code)
 - 3.2.3 获得插件、激活码和证书
 - 3.2.4 安装证书和插件
 
- 3.3 解除IP限制
 - 3.4 解决重启失效
 - 3.4.1 编写启动脚本
 - 3.4.2 Nessus命令合集
 - 3.4.3 BUG解决
 
- 3.5 使用Nessus进行主机发现
 - 3.6 使用Nessus扫描log4J漏洞
 - 3.6.1 靶场环境搭建
 - 3.6.2 log4Jshell扫描
 - 3.6.1 靶场环境搭建
 - 3.6.2 log4Jshell扫描
 
1 AWVS
AWVS(Acunetix Web Vulnerability Scanner)是一款知名的网络漏洞扫描工具,通过网络爬虫测试网站安全,检测流行的Web应用攻击,如跨站脚本、sql 注入等。
1.1 安装部署
Windows安装没有什么难度,这里主要记录Kali环境下的安装与部署。
准备acunetix_trial.sh和激活包pathc_awvs。
下载地址:
修改acunetix_trial.sh和patch_awvs权限
chmod 777 acunetix_trial.sh patch_awvs
 
执行安装命令
./acunetix_trial.sh
 
点击Enter继续

后续一直按Enter,根据提示输入yes。
根据提示输入主机名称:127.0.0.1,email:asdfg@qq.com,Password:m123456@,点击Enter
注意不能输错,退格键方向键都会被转义。Email格式中@后面应该是必须字母,密码也有复杂度要求。

等待安装完成
 
1.2 激活
将激活补丁复制到指定目录下,并设置运行权限
#1 复制补丁
cp -a patch_awvs /home/acunetix/.acunetix_trial/v_190325161/scanner/
#2 设置权限
chmod 777 /home/acunetix/.acunetix_trial/v_190325161/scanner/patch_awvs
#3 运行补丁
/home/acunetix/.acunetix_trial/v_190325161/scanner/patch_awvs
 

为了保护原始license不失效,这里尽快执行如下的命令,不然license会被修改然后就无法破解成功。
chattr +i /home/acunetix/.acunetix_trial/data/license/license_info.json
rm -fr /home/acunetix/.acunetix_trial/data/license/wa_data.dat
touch /home/acunetix/.acunetix_trial/data/license/wa_data.dat
chattr +i /home/acunetix/.acunetix_trial/data/license/wa_data.dat
 
重新启动AWVS进程
#重启进程
systemctl restart acunetix_trial.service
#启动进程
systemctl start acunetix_trial.service
#停止进程
systemctl stop acunetix_trial.service
#查看进行状态
systemctl status acunetix_trial.service
 

1.3 登录
访问:https://127.0.0.1:13443 进入AWVS首页,点击Advanced..,点击【Accept the Risk and Continue】,输入刚才注册的用户名密码,登录即可。
 
在界面右上角点击用户名,选择profile,往下滚动页面,即可看到激活信息。

1.4 扫描web应用程序
Targets→add Targets,输入扫描地址和扫描描述,点击右上角的save

1.4.1 需要账户密码登录的扫描
如果目标网站需要登录,那么可以在AWVS的目标界面设置,找到并勾选Site Login,选择try to auto-login into the site,输入登录IP地址、用户名、密码和重复密码。

找到HTTP Authentication,输入用户名密码,重复密码。

点击右上角save→Scan,弹出扫描设置对话框,设定相应的选项后点击Create Scan:

上图中选择的时间表为立即扫描,如果是future scan,可以在扫描列表中单击IP,进入到扫描情况界面。
1.4.2 利用录制登录序列脚本扫描
Targets→add Target,设置IP后进入目标设置页面,勾选Site Login,选择Use pre-recorded login sequence,点击New

输入用户名密码,点击目标网站的登录按钮。检查右侧操作流程是否正确且完整。
 
检查无误后点击next,点击finishi。然后就可以扫描了。
1.4.3 利用定制cookie扫描
扫描过程会遇到网站存在手机验证码、图形验证码、滑动验证等等,而这些验证码都是一次性的,这时候想要深度扫描时,就需要进行登录绕过。
添加目标,打开目标设置页面,找到并点击最下面的Advanced,勾选Custom Cookies,输入目标网站的地址:
 
这时切换到其他浏览器,获取网站的cookie值,返回到AWVS输入cookie的值,点击+,保存后即可扫描。
1.5 扫描报告分析
1.5.1 AWVS报告类型
-  
Standard Reports:标准报告
 -  
Affected Items:受影响项目
 -  
Comprehensive (new):综合(新)
 -  
Developer:开发者
 -  
Executive Summary:执行摘要
 -  
Quick:快速报告
 
1.5.2 最常用的报告类型:
-  
Executive Summary:执行摘要 给公司大领导看,只关注整体情况,不关注具体细节
 -  
Comprehensive (new):综合(新):一般给QA和产品经理看
 -  
Developer:开发者:给开发人员看
 -  
OWASP Top 10 2017 行业报告的代表
 -  
WASC Threat Classification 行业报告的代表
 
1.6 Goby+AWVS联动
将AWVS的api_key添加到Goby的AWVS插件中,即可扫描。AWVS的api_key获取如下:

扫描完成后,找到扩展程序中的AWVS,可以一键生成报告。
2 AppScan
2.1 扫描方式
-  
Static: 静态分析 (白盒扫描) 源码分析:支持(Taint analysis\pattern matching)
 -  
Dynamic: 动态分析 (黑盒扫描)
 -  
Hybrid:混合分析(黑,白)【知道源代码】
 -  
Run-Time: 运行时分析(玻璃盒)【不知道源代码】
 -  
Client-Side:客户端分析(Javascript)
 
2.2 安装部署
安装前需安装.NET Framework 4.7.2
下载地址
运行安装程序,一路next即可,之后将补丁AppScanSDK.dll 和 HclLicenseProvider.dll 拷贝到安装目录D:\Program Files (x86)\HCL\AppScan Standard下替换原来的文件。
2.3 扫描web应用程序
自动扫描,采用的是类似爬虫的方式。
打开AppScan后选择扫描web应用程序,输入目标地址,会自动检测是否可连接,此页面可以勾选是否配置代理。而后点击下一步
 
在登录管理页面,如果目标网站需要登录后才能操作,那么可以选择记录。
在测试策略页面,点击左下角的完全扫描配置,可以自行设定。

跳转到如下界面后即可进行扫描

2.4 手动探索扫描
扫描→手动扫描→外部设备

将浏览器的代理IP设为本地,端口设为上图中的端口。打开目标网站,浏览页面进行操作。然后切换到AppScan页面点击停止记录,进行扫描即可。
使用内置浏览器扫描时,按照需要配置cookie。
2.5 安装证书和登录绕过
主要应对https协议
打开AppScan后,手动探索→外部设备→记录代理配置→导出SSL证书→在外部浏览器中导入证书→浏览器设置代理让AppScan抓取流量。
如果目标网站采用了验证码,那么可以使用外部浏览器先登录网站,然后将cookie添加到AppScan中或者登录后开启代理再使用AppScan扫描。
2.5 测试报告

3 Nessus
3.1 Kali安装Nessus
下载地址:https://docs.tenable.com/releasenotes/Content/nessus/nessus.htm
命令行下载
curl --request GET \ --url 'https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.5.1-debian10_amd64.deb' \ --output 'Nessus-10.5.1-debian10_amd64.deb'
 
安装,这步完成后会提示服务的端口,可以登录进行配置
dpkg -i Nessus-10.5.1-debian10_amd64.deb 
 

启动Nessus
service nessusd start
 

浏览器访问nessus的web页面,Kali的IP+服务的端口,勾选Register Offline,点击Continue,选择 Managed Scanner选项,点击Continue,选择Tenable.sc,点击Continue

根据提示创建管理员用户密码,等待配置完成。
安装完成后是这样的界面,尚未激活,不能扫描。
 
3.2 离线激活Nessus
3.2.1 去Nessus官方申请激活码
https://zh-cn.tenable.com/products/nessus/nessus-essentials 姓名随便填,邮箱必须正确,用来接收激活码。进入填写的邮箱获取激活码,
3.2.2 获得质询码(challenge code)
/opt/nessus/sbin/nessuscli fetch  --challenge
 

3.2.3 获得插件、激活码和证书
浏览器打开网页 https://plugins.nessus.org/v2/offline.php ,输入申请的激活码,以及上一步得到的质询码,点击Submit,即可得到更新插件地址,及license证书。

也可以使用官方提供的方法用命令行的方式安装证书。证书安装命令和下载按钮在页面底部。
3.2.4 安装证书和插件
这里采用下载后离线安装证书的方式,执行如下命令
/opt/nessus/sbin/nessuscli fetch --register-offline nessus.license
 

安装插件(需要先下载,文件大小为361.412MB)
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz
/opt/nessus/lib/nessus/plugins/  #插件包目录
 

重启Nessus,重新访问Nessus网站,等待加载插件(耗时较长,需要耐心等待)
完成后进入Nessus系统。显示激活成功,具有了scan功能。
3.3 解除IP限制
如果Nessus页面显示仅允许扫描16个IP,那么就需要解除IP限制。
-  
获取当前plugins的版本
https://plugins.nessus.org/v2/plugins.php
202304091403
 -  
停止Nessus服务
serice nessusd stop -  
创建
plugin_feed_info.incvi plugin_feed_info.inc内容如下:
PLUGIN_SET = "202304091403"; PLUGIN_FEED = "ProfessionalFeed (Direct)"; PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning"; -  
将
plugin_feed_info.inc替换到/opt/nessus/var/nessus/plugin_feed_info.inccp plugin_feed_info.inc /opt/nessus/var/nessus/ -  
删除
/opt/nessus/lib/nessus/plugins/plugin_feed_info.inc -  
启动nessus服务
 
这时如果设置页面显示Licensed Hosts Unlimited,则无限制。但可能会出现重启后插件被删除的情况,解决方案请看下一步。
3.4 解决重启失效
接上一步。
由于Nessus服务每次重启后,都会重置plugin_feed_info.inc,这将会使nessus/plugins目录下所有的插件都被删除,无法扫描。因此要将Nessus服务设置为手动,并且先停止Nessus服务。可以写成批处理解决此问题。
3.4.1 编写启动脚本
vi qd_nessus.shservice nessusd stop;
cp /root/nessus/plugin_feed_info.inc /opt/nessus/var/nessus/;
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc;
service nessusd start;
 
每次需要启动Nessus时,输入启动命令
sh /root/nessus/qd_nessus.sh
 
3.4.2 Nessus命令合集
#启动
service nessusd start;
#重启
service nessusd restart;
#查看状态
service nessusd status
#停止服务
service nessusd stop
 
3.4.3 BUG解决
在解除ip限制的过程中,如果已经解除成功,但是新建扫描项目时,发现很快就结束,无扫描结果。此时查看plugins目录内容是否被删除。
du -h /opt/nessus/lib/nessus/plugins
 

如果低于上图所示的值,则需要执行如下命令
service nessusd stop;
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz
sh qd_nessus.sh
 
重新访问Nessus即可。
3.5 使用Nessus进行主机发现
-  
启动Nessus
cd nessus sh qd_nessus.sh -  
进入Nessus网站并登录,点击
New Scan,选择Host Discovery,按照提示输入相关内容
 -  
注意到左侧的
Schedule是配置定时任务的,Notifications是配置邮件提醒的 ,可暂时不予理睬。 -  
点击
Discovery,选择常用端口扫描
这里细心的道友可能发现页面主题变了,我是在
Settings→Advanced→User Interface→UI Theme设置的。 -  

 -  
保存后即可在
My Scans中找到计划,启动扫描了。 
3.6 使用Nessus扫描log4J漏洞
3.6.1 靶场环境搭建
centos7+docker+vulhub
安装docker,vulhub,部署log4j靶场
#1 进入log4j/CVE-2021-44228
cd log4j/CVE-2021-44228
#2 编译环境
docker-compose build
#3 运行环境
docker-compose up -d
#4 查看端口
docker-compose ps
docker ps
 
3.6.2 log4Jshell扫描
登录后,点击New Scan→Log4Shell→输入Name和Target→点击Discovery→选择扫描类型Thorough→点击Report→选择Credentials选项卡→点击SSH→选择身份验证方法password→输入被扫描服务器的用户名和密码→在plugins页面选择插件→运行扫描即可。
漏洞
3.6.1 靶场环境搭建
centos7+docker+vulhub
安装docker,vulhub,部署log4j靶场
#1 进入log4j/CVE-2021-44228
cd log4j/CVE-2021-44228
#2 编译环境
docker-compose build
#3 运行环境
docker-compose up -d
#4 查看端口
docker-compose ps
docker ps
 
3.6.2 log4Jshell扫描
登录后,点击New Scan→Log4Shell→输入Name和Target→点击Discovery→选择扫描类型Thorough→点击Report→选择Credentials选项卡→点击SSH→选择身份验证方法password→输入被扫描服务器的用户名和密码→在plugins页面选择插件→运行扫描即可。
 此外Nessus还提供Log4Shell 漏洞生态系统扫描的功能。
