如何及时、快速发现Web应用安全漏洞,并且修补安全漏洞,减轻或消除Web安全风险成为安全行业的重要课题。
小型Web应用几十上百个页面,大型的Web应用成千上万个页面。如果靠人工的方式去检测每个页面的安全性,显然,这个成本是难以估计的。所以,我们需要借助于自动化工具,帮助审计员去发现Web安全漏洞。这些自动化工具就是Web漏洞扫描器。
目标:通过网络漏洞扫描,全面掌握目标服务器存在的安全漏洞;
常用的网络漏洞扫描器有Nessus、NeXpose、OpenVAS等;
网络漏洞扫描指的是利用一些自动化工具发现网络上各类主机设备的安全漏洞,这些自动化工具通常称为漏洞扫描器。漏洞扫描通常可以分为两类:黑盒扫描和白盒扫描。
白盒扫描的结果更加准确,但一般来说它所识别出的漏洞不应当作为外部渗透测试的最终数据,因为这些漏洞由于防火墙和各类防护软件的原因很可能无法在外部渗透测试中得到利用。同时,一般情况 下你是没有机会获取用户名和口令。
漏洞扫描器一般会附带一个用于识别主机漏洞的特征库,并定期进行更新。在漏洞扫描的时候,就是利用特征库里的脚本与目标系统的反馈信息进行匹配,如果能够匹配上,就说明存在某一个漏洞。
漏洞扫描器在识别漏洞的过程中,会向目标发送大量的数据包,有时候会导致目标系统拒绝服务或被扫描数据包阻塞,扫描行为也会被对方的入侵检测设备发现。
漏洞扫描器扫描出的结果通常会有很多误报(报告发现的漏洞实际并不存在)或者漏报(未报告发现漏洞但漏洞实际存在)。因此,需要对扫描结果进行人工分析,确定哪些漏是实际存在的,这个过程就叫做漏洞验证,这是渗透测试过程中不可缺少的一步,只有验证漏洞存在的真实性,才能对漏洞进行深度利用。
渗透测试工作中,在得到客户认可的情况下,可以使用扫描器进行扫描,但使用时一定要注意规避风险,对其系统运行可能造成的影响将到最低。
Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞,如SQL注入,XSS,目录遍历,命令注入等。
AWVS有两个版本:
新版本AWVS 11,通过IP地址+端口3443访问;
老版本AWVS 10.5,是一个软件(推荐这个)。
新老版本需要的自取:链接:百度云网盘链接 ,nxtw
这里以老版本的AWVS 10.5做演示。
OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统、应用程序中的安全问题,识别远程主机、Web应用存在的各种漏洞;
Nessus曾将是业内开源漏洞扫描工具的标准,在Nessus商业化不在开放源代码后,在它的原始项目中分支出OpenVAS开源项目,经过多年的发展,OpenVAS已经成为当前最好的开源漏洞扫描器,功能非常强大;OpenVAS使用NVT脚本(漏洞库)对多种远程系统(包括Windows、Linux、UNIX以及Web应用程序等)的安全问题进行检测。
更新源:apt update && apt upgrade && apt dist-upgrade
国内源更快:vim /etc/apt/sources.list
,换成下面任意一组即可:
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
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
#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
apt-get install gvm
gvm-setup
,这一步时间会很长,耐心等候…这里可能会出现error:
ERROR: The default postgresql version is not 13 required by libgvmd
ERROR: Use pg_upgradecluster to update your postgres cluster
错误原因:kali默认使用postgresql的版本是12,而openvas要13,并且12与13版本间不兼容
解决方法:手动停用postgresql12开启13
apt install gvm -y
apt install --yes postgresql-13
systemctl stop postgresql@13-main
systemctl daemon-reload
pg_dropcluster 13 main --stop
pg_upgradecluster 12 main
apt-get install gvm
gvm-start
;修改密码:
sudo gvm-check-setup
,这里有十步检查;gvm-feed-update
;gvmd --user=admin --new-password=password
gvm-stop
netstat -antp | grep 939*
开始进行扫描的时候需要新建一个目标。
查看扫描模板,就是在扫描过程中使用的扫描策略和配置,这个扫描模板也可以自己配置。
点击开始按钮开始扫描。
扫描结束之后,显示已经完成。
可以将扫描结果下载保存为pdf格式,便于阅读。
做完扫描需要关注的问题:漏洞名称、漏洞风险等级(高危、中危、低危)、漏洞描述、漏洞危害、修复建议
发现一个高危漏洞:ms17-010,接下来用MSF对该漏洞进行攻击。
Metasploit就是一个漏洞框架(The Metasploit Framework),是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具,目前最流行、最强大、最具扩展性的渗透测试平台软件,2003年由HD Moore发布第一版,2007年用ruby语言重写,MSF默认集成在Kali Linux之中。
“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。
use exploit/windows/smb/ms17_010_eternalblue
我们show targets看一下这个模块适用于哪些系统的主机
攻击的主机ip:set RHOST IP地址
接着run执行攻击,程序就会运行,当看到WIN的时候,说明我们已经渗透进去了,按下回车出现了win 2008的cmd,这是已经是渗透成功了。当这个系统打了这个补丁后,这个漏洞就没有威力了。