常见漏洞扫描工具AWVS、AppScan、Nessus的使用
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.inc
vi 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.inc
cp 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 漏洞生态系统扫描的功能。
相关文章:

常见漏洞扫描工具AWVS、AppScan、Nessus的使用
HVV笔记——常见漏洞扫描工具AWVS、AppScan、Nessus的使用1 AWVS1.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 最常用的报告类型:…...

Vue学习——【第二弹】
前言 上一篇文章 Vue学习——【第一弹】 中我们学习了Vue的相关特点及语法,这篇文章接着通过浏览器中的Vue开发者工具扩展来进一步了解Vue的相关工作机制。 Vue的扩展 我们打开Vue的官方文档,点击导航栏中的生态系统,点击Devtools 接着我…...

恐怖的ChatGPT!
大家好,我是飞哥!不知道大家那边咋样。反正我最近感觉是快被ChatGPT包围了。打开手机也全是ChatGPT相关的信息,我的好几个老同学都在问我ChatGPT怎么用,部门内也在尝试用ChatGPT做一点新业务出来。那就干脆我就趁清明假期这一天宝…...

MIPI D-PHYv2.5笔记(12) -- Clock Lane的ULPS
声明:作者是做嵌入式软件开发的,并非专业的硬件设计人员,笔记内容根据自己的经验和对协议的理解输出,肯定存在有些理解和翻译不到位的地方,有疑问请参考原始规范看 LP Mode的Clock Lane ULPS 尽管Clock Lane不包含常规…...

创建网络数据集
目的:主要是用来做路径规划。 第一步:加载用作构建网络数据集的道路网数据到arcmap。 第二步:做打断处理。【如果线数据未做过打断处理,需要做这一步。】 有两种方式【1、编辑器里面的高级编辑器的打断相交线功能;2、…...

从功能到年薪30W+的测试开发工程师,分享我这10年的职业规划路线
求职?择业?跳槽?职业规划? 作为一名初出茅庐的软件测试员,职业发展的道路的确蜿蜒曲折,面对一次次的岗位竞争,挑战一道道的面试关卡,一边带着疑惑,一边又要做出选择&…...

ChatGPT中文免登陆-ChatGPT中文版上线
ChatGPT不支持地区 ChatGPT 是一个开源平台,可在全球范围内使用,不应该存在地区限制。然而,由于某些原因,可能有地区对 ChatGPT 的访问有限制或屏蔽的情况。 如果您发现自己无法访问 ChatGPT,可以尝试以下解决方法&a…...

多线程之最大并行数
4核8线程,采取超线程技术,将一个核心模拟成两个线程。 public class 最大并行数 {public static void main(String[] args) {//向java虚拟机返回可用处理器的数目//getRuntime获取运行状态,获取可用线程数int countRuntime.getRuntime().ava…...

智慧城市发展的基本原理是什么?
智慧城市的建设与发展遵循一定的基本原理。随着智慧城市的持续迭代升级,智慧城市已经从信息化建设与信息技术产品应用阶段,演进到了信息化与城市现代化深度融合阶段,其基本原理也在发生变化。当前,随着数字技术的发展与成熟应用&a…...

技术宅小伙:利用JAVA开发个常用的编辑接口
大家好,今天的任务是创建一个常用的编辑接口。实际上,这个接口是在大约十点半时给我的,他说要在下午上线。我在7号接口完成之后,通过代码和预言室来实现这个业务。 首先,这是一个评论编辑接口,编辑的内容是…...

Image as set points【ICLR 2023 notable top 5%】
Code:https://github.com/ma-xu/Context-Cluster OpenReview:https://openreview.net/forum?idawnvqZja69 前置知识: 1)归纳偏置是否有用? 答:有效,但存在一定的限制。强inductive bias的架构…...

10个超级实用的Python技巧
人生苦短,我学Python。离不开它自带的“buff”。 - 简单好用Python的优势很多,最明显的便是简单、易上手。Python的语法非常简单,比如敲“Hello World”,用其他编程语言要敲6-7行代码,用Python只需要1行代码ÿ…...

【Java语法糖】泛型与源码角度分析静态问题
概念 首先聊聊泛型,泛型是JDK5的新特性。泛型是用来指定不同类型来控制形参具体限制的类型。泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段泛型没用)。写了这么多代码应该能知道泛型的优点就是…...

App 抓包提示网络异常怎么破?
背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: Fiddler中看到的请求是这样的: 你可能开始找证书的问题:是…...

操作系统-文件系统
一、总论 1.1 直观感受 这一章虽然名义上很简单,但是我个人觉得真的很难,其难度是要远超于 lab3 和 lab4 的。对于 lab3 和 lab4,其难度主要集中于复杂的函数调用关系上,如果理清了函数调用关系,会发现难度就很容易弄…...

虚拟机无法访问外网的问题
配置: 1、虚拟机采用NAT模式进行配置 2、虚拟机IP:192.168.109.101,掩码:255.255.255.0,网关:192.168.109.2 3、虚拟机网络编辑器:网关192.168.109.2,网段192.168.109.0,…...

软件测试【常见】62 道面试题,不背完这些你还想去面试?
01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 02、您认为做好测试用例设计工作的关键是什么? 03、您在从事性能测试工作时,是否使用过一些测试工具?如果有࿰…...

聚观早报 | ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜
今日要闻:ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜;亚马逊游戏部门百名员工被裁;国内一公司推出太空葬;苹果将在印度国金融中心开设零售店ChatGPT 停止 Plus 付费 4 月 5 日消息,ChatGPT 目前已…...

对接多个 Neuron 实例,实现多网关协同分析与设备联动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxTiQ9Lw-1680846960656)(C:\Users\DELL\Desktop\0407技术号四\0407技术号四图片\对接多个 Neuron 实例,实现多网关协同分析与设备联动 图1.png)] 3 月份,eKuiper 团队主要进行…...

windows下 Jenkins 主从节点通过SSH连接
之前已经介绍了在windows下,Jenkins通过启动agent.jar文件来进行主从节点配置(传送门:Jenkins 主从节点配置教程(windows10)_jenkins windows节点_町棠棠的博客-CSDN博客https://blog.csdn.net/naturly/article/details/129819780…...

JAVA练习101-任务调度器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-任务调度器 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 4月7日练习…...

华为OD机试-匿名信-2022Q4 A卷-Py/Java/JS
电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字减下来,剪拼成匿名信。 现在又一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。 但为了增加文章的混淆…...

muduo源码剖析--Inetaddress/Socket/Acceptor
InetAddress类 实际上封装了传入socket地址类,包括ip、端口以及具体的协议簇 // 封装socket地址类型 class InetAddress { public:explicit InetAddress(uint16_t port 0, std::string ip "127.0.0.1");explicit InetAddress(const sockaddr_in &…...

域名过户操作流程及常见问题
模板添加及模板过户操作流程: 一、添加模板操作流程: 1.在业务管理-域名管理-模板管理中找到“添加模板” 2.选择所有者类型(个人或是企业/组织),填写新的域名所有者资料,填写无误后点击“确定”。 目前…...

多国拟发ChatGPT禁令 关“野兽”的笼子要来了?
“人工智能想越狱“、”AI产生自我意识”、“AI终将杀死人类”、“硅基生命的进化”.......曾经只在在赛博朋克等科技幻想中出现的剧情,在今年走向现实,生成式自然语言模型正在遭受前所未有的质疑。 聚光灯下最瞩目的那个是ChatGPT,3月底到4…...

深度学习中,Params参数量和FLOPs计算量分别指什么
在深度学习中,参数量和计算量是两个重要的概念。 参数量: 参数量指的是深度神经网络中需要学习的参数数量。在深度学习中,每个神经元都有一个权重,这些权重是需要通过训练来确定的。深度神经网络中的参数量是指所有权重的数量之…...

1分钟快速制作思维导图「ChatGPT+XMind」—— 跟上时代的脚步,这辈子就起飞了 - 第5篇
历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 S…...

生成与获取token
public class JwtUtils {// TOKEN的有效期1小时(S)private static final int TOKEN_TIME_OUT 1 * 3600;// 加密KEYprivate static final String TOKEN_SECRET "itcast";// 生成Tokenpublic static String getToken(Map params){long current…...

【人工智能】ChatGTP从入门到精通
当谈论自然语言处理和文本生成技术时,Chat GPT 是一个备受瞩目的话题。作为一种基于深度学习的语言模型,Chat GPT 在近几年里已经展现出了惊人的能力,可以生成几乎无法区分与人类写作的文本,并在自然语言处理领域的各种任务中都表…...

电脑桌面图标间距突然变大怎么恢复
1. WindowsR打开 > 输入regedit 按住WindowsR打开运行,输入regedit并点击确定。 2. 双击Control Panel 双击展开HKEY_CURRENT_USER,双击展开Control Panel,双击展开Desktop。 3. 更改间距 点击打开WindowMetrics, 双击打开…...