文章作者:小酱
团队交流群:
-----------------------------------------------------------
目录
AWVS(ACUNETIX WEB VULNERABILITY SCANNER) 2
AWVS的使用 3
1.快速配置扫描 3
2.扫描一个目标 3
3.批量扫描目标 4
8.HTTP editor 7
9.HTTP sniffer 7
10.HTTP Fuzzer 7
11.身份认证测试(Authentication Tester) 7
12.结果比较(Compare Results) 7
AcuSensor灰盒测试 7
目录
AWVS(ACUNETIX WEB VULNERABILITY SCANNER)
主要功能:
爬站(Site Crawler)
子域扫描器(Target Finder)
发现扫描器(Subdomain Scanner)
SQL注入验证(Blind SQL Injector)
HTTP editor
HTTP sniffer
HTTP Fuzzer
身份认证测试(Authentication Tester)
结果比较(Compare Results)
特色功能:
AcuSensor灰盒测试
AWVS的使用
快速配置扫描
第一步:选择New Scan新建扫描
第二步设置你的目标:在Website URL后面添加需要扫描的目标,AWVS支持对采用HTTP协议和HTTPS协议的网站进行扫描,如果你需要扫描的是一个应用程序那么你也可以填入完整的地址,如果在之前你使用了AWVS的Site Crawler功能对目标进行了爬取,那么你也可以导入爬行的结果然后对爬行的结果进行扫描。
第三步选择侧重扫描的漏洞类型:在Scanning options后面的选项卡中你可以选择侧重扫描的漏洞类型比如Blind SQL Injection盲注类型的SQL注入、CSRF 跨站请求伪造、DefaIut 默认设置完全检测等等。
AWVS也支持对扫描选项的定制,默认情况下只有DefauIt这个配置如果你需要可以点击Scan Setting后面的Customize进行自定义,例如可以选择将Disable alerts generated by crawler选择上禁止显示爬虫功能生成的警告,无效的连接这类低风险的问题都不会显示,你也可以在Scanning mode后面选择设置AWVS的扫描模式,如Quick快速的、Heuristic标准的、Extensive完整的,对于这些扫描设置的详细信息你可以点击后面的HeIp查看。
在下面你可以在Limit crawl recursion后面对爬虫的递归深度进行限定,默认情况下是5当你设置为0时就会关闭,也可以在Dont issue more than后面对相同的警告类型进行限定,默认情况下AWVS是不会发出超过500个相同类型的警告当你设置为0时就会关闭。
如果你想启用端口扫描可以将Enable port scanning勾选上,但是勾选了此选项扫描会很慢可以不用勾选使用其他的扫描器软件例如NMAP进行扫描,如果对于不常见的一些HTTP的请求状态如HTTP 500的状态码,如果你需要AWVS搜集可以将Collect uncommon HTTP requests勾选上,在一些情况下服务器可能会因为一些原因停止对你的响应一直卡在那,你可以将Abort scan if the server stops responding勾选上,并且在后面设置服务器对你发出请求停止响应多少次后终止扫描,在默认情况下是25次,如果你想要在扫描的过程中使用网站设定的COOKIE你可以将Use cookie set by the site during scanning勾选上。
如果你所扫描的目标上有连接到其他主机上的文件,而且这些网站的关系比较相近,例如http://www.baidu.com和http://fanyi.baidu.com,你可以在Hosts下面写入并点击Add Host添加或者选择已经添加的点击Remove Selected删除。
对于HTTP请求的头部和Cookies的操控,AWVS也可以进行定制,在默认的情况下只有带有参数的文件AWVS才会进行检测,你可以将Test cookies for all files 勾选上那么在访问所有的文件时候就都会使用cookie进行测试,访问不同的网站发出的HTTP请求都会不一样在这些HTTP请求里会有不同的头部,AWVS内置了几个HTTP的头部你可以点击Add Heads来定制HTTP的头部对目标进行扫描,同样你想要删除某些不需要的参数可以选中并点击Remove Selected删除。
有些参数不会对用户的会话产生影响,相对而言对我们的扫描测试也不会产生有效的结果,你可以在Parameter Exclusions中将这些参数进行添加,AWVS会在扫描的时候排除这些参数,注意:添加的时候名称应该是一个正则表达式,并选择好是哪种类型的请求点击Add Exclusion进行添加,或者选中列表中的参数点击Remove Selected进行删除。
AWVS在扫描目标的过程中会利用Google hacking技术在Google搜索引擎上对目标进行信息搜集,GHDB(Google hacking datebase)这个设置选项就是对Google hacking技术搜索语法的管理相当于一个数据库管理系统,在这个数据库内包含了16种不同类型的Google语法,下面我们来介绍这一部分的设置。
这16种不同类型的Google语法分别是,Files containing juicy info(包含有价值的信息)、Web server Detection(Web服务器检测)、Error Messages(错误信息)、Files containing usernames(包含用户名的文件)、Files containing passwords(包含密码的文件)、Sensitive Directories(敏感目录)、VuInerable Servers(容易受攻击的服务器)、Footholds(演示页面)、Advisories and Vulnerabilities(建议和漏洞)、Miscellaneous(其他)、Pages containing network or vulnerability data(包含网络或漏洞数据的页面)、Pages containing login portals(登陆页面)、Various Online Devices(各种在线设备)、Sensitive Online Shopping Info(敏感的网上购物信息)、Vulnerable Files(容易受攻击的文件)、TECHNOLOGY PROFILE(技术概况),这些语法一共1467个,例如Files containing juicy info类别下的phpinfo(),phpinfo是一个php函数可以显示php服务器的配置信息,这其中包括非常全面的系统版本信息、php的版本、php.ini存放的目录等等,你可以点击在下方查看有关于这条语法的介绍,在左边是AWVS在Google搜索引擎上查询的字符串,当然你也可以右键点击Copy query string
来复制这个语法在百度或者Google上手动搜索,我们可以看到一些由于配置不当而显现出的一些网站的phpinfo信息。
在这个设置中你可以定制你的Google Hacking方案,例如在Filter GHDB后面搜索关键字例如php选择Query string(查询字符串)在点击check only visible(仅检测明显的)。
注:Short description:简要描述、Query String 查询字符串、Full description:所有描述、Check visible:检测明显的、Unchek visible:不检测明显的、 Check only visible:检测仅明显的。
在Crawling options中可以为特定的场景自定义爬虫的行为
Start HTTP Sniffer for manual crawling at the end of process - 在爬行结束后启动HTTP嗅探器进行手动爬网,发现更多的链接。
Get first URL only- 启用这个选项AWVS会只扫描目标站点的索引或首页,不抓取任何的链接。
Do not fetch anyting above start folder - 启用这个选项,AWVS将不获取任何上级文件夹例如扫描的URL是http://www.baidu.com/baidu/那么AWVS就绝不会去扫描http://www.baidu.com。
Fetch files below base folder - 启用这个选项爬虫程序将会跟踪到指向其他目录外的位置,禁用了这个选项爬虫将不会从子目录中对任何对象爬网。
Fetch directory indexes even if not linked - 启用这个选项时,爬虫将尝试为每个发现的目录请求目录索引,即使目录索引不是直接从另一个源链接过来的。
Retrieve and process robots.txt, sitemap.xml - 启用这个选项爬虫将会抓取并分析网站下的robots.txt、sitemap.xml文件。
lgnore CASE differences in paths - 启用这个选项爬虫会忽略在网站上找到的链接中的所有大小写的差异,例如Baidu会被视为与baidu相同。
Fetch default index files (index.php、default.asp) - 启用这个选项爬虫尝试为每一个文件夹来获取默认索引文件,如index.php、default.asp,即便没有直接链接。
Try to prevent infinite derectory recursion - 有些网站的设计方式可能会导致AWVS在扫描的时候递归获取同一目录的时候进入循环(例:www.baidu.com/123/123/123/123),启用这个设置AWVS会尝试在递归的过程中标识重复的目录名来防止这种情况。
Crawl should request only linked files - 在爬行的过程中如果检测到URL重写,启用这个选项就可以让爬虫只爬取有关联的文件。
Ignore parameters on file extensions like .js .css…etc - 启用这个选项AWVS将会忽略文件扩展名上的参数,例如.js 、.css等上面的参数。
Disable auto custom 404 detection(application will use only user defined reles) - 启用这个选项AWVS将不会自动检测404错误页,需要手动配置404识别模式。
Consider http://www.domain.com and http://domain.com as the same host - 启用这一项AWVS会将http://www.domain.com和http://domain.com这样的域名视为同一主机。
Enable input limitaion heuristics - 启用输入启发式限制,在同一目录中的文件上检测到超过20个相同的输入方案,那么爬虫程序将只对前20个相同的输入方案进行爬网。
Optimize inputs for known applications - 启用这个选项将会优化对已知应用程序的输入。
在此设置下可以设置对文件扩展名的过滤(File extension filters)将一些类型的文件排除在爬行和扫描之外,也可以设置AWVS爬行和扫描的文件类型,如果你不想要AWVS爬行和扫描一种类型的文件你可以在Exclude下面的框中输入并且点击Add Filter添加或者点击Remove Selected删除,例如*.pdf值得注意的是这个*号它代表了所有文件名,只有这样配置AWVS才会不爬行扫描pdf类型的文件,如果你需要AWVS扫描一些文件则可以在Include下操作。
如果你有需要在扫描的过程中需要排除的目录或者文件,那么可以在这个设置下配置过滤器,AWVS默认给出了三个正则表达式来匹配目录和文件进行排除,值得注意的是如果你给出的是一个正则表达式来过滤你需要在新建的正则表达式后面双击将Regex这一列的值切换成YES即可,如果你需要过滤a字开头的目录或者文件,在a字后面添加*号就可以了。
你可以点击AddURL来添加需要排除的目录或者文件所在的目录,点击Add FiIter来添加目录或者文件名、通配符、正则表达式,在指定目录的时候,不要在目录名前添加反斜杠如果添加了那么就会只显示一个反斜杠,错了也没有关系选中错误的URL点击Remove Selected删除就可以了,AWVS会在目录后自动添加反斜杠,你所指定的目录或者文件目录不对相应的子目录所起效,如果恰巧你需要那么你就要手动为子目录设置如下图所示。
许多网站都使用了URL重写规则,AWVS需要理解这些重写规则,以便更好的理解网站的结构和其中的文件,以避免爬行不存在的对象,
单击
来新建一个URL重写规则
单击
来添加
在此设置下你可以让AWVS通过代理服务器来进行扫描,AWVS支持HTTP和SOCKS这二种代理服务器,在某些情况下你可能希望隐蔽的行事那么你可以选择,配置代理服务器来进行扫描,将Use an HTTP proxy server勾选上,配置好hostname(代理服务器主机IP)和Port(端口)以及账号(Username)、密码(Password)就可以了。
在此设置下你可以对深度扫描进行设置,AWVS的深度扫描技术是嵌入webKit的技术,为基于Javascript的网站提供全面的支持,如AJAX、HTML5和SPA(Single Page Applications),你可以将Enable DeepScan勾选上将深度扫描打开,如果你也希望AWVS扫描从外部引入的脚本中的漏洞Process scripts from external sites勾选上,同时你也可以在Session timeout in seconds:后面设置超时的时间,这里以秒/S为单位。
在AWVS里你可以自定义COOKIE,这个COOKIE是用于在爬行网站的过程中模拟用户的操作或者自动登陆到网站的某个部分。
单击Add Cookie新建一个空白的COOKIE,在新建的空白COOKIE的左侧单击直接输入URL,在右侧的Cookie String单击输入希望与cookie一起发送的自定义字符串COOKIE值,如果是需要输入COOKIE,例如COOKIE的名字是AWVS,COOKIE的值是123那么你就需要输入AWVS=123,你在不需要这个COOKIE的时候可以选中并点击Remove删除。
另外你需要选中 “Lock custom cookies during scanning and crawling” 在扫描和爬行期间锁定自定义cookie以避免重新获取的COOKIE来覆盖自定义的COOKIE。
许多网站包括web表单,可以捕获访问者数据,比如下载表单。AWVS可以自定义为在安全审计的抓取和扫描阶段自动向Web表单提交的随机数据或特定值。默认情况下,AWVS使用通用提交规则,该规则将向爬行或扫描过程中遇到的任何类型的Web表单进行提交。
点击Add New选择Add URL添加指定的URL,点击Add input field添加指定需要的提交的数据或特定值,在添加数据或者特定值的时候点击左侧输入表单名例如name,点击右侧输入对应这个表单名需要提交的数据或特定值,同样你不需要的时候可以点击Remove删除。
注意:
在表单名name前面加上*代表在name前面匹配任意数量的字符
在表单名name后面加上*代表在name后面匹配任意数量的字符
在表单名name前面加上?代表在name前面匹配一个字符
在表单名name前面加上?代表在name后面匹配一个字符
如果你需要更改这些字段的优先级可以通过选中字段单击Move Up(提升优先级)或者单击Move Down(降低优先级),在为必须将一组惟一的数据提交给不同的表单的情况下,则必须为每个表单分别创建一个新的规则集,注意:AWVS自带的规则集的URL部分的*代表为所有的表单都使用这个规则集进行提交。
如果你嫌麻烦的话也可以直接在这个输入框内直接添加一个你需要的URL并点击Parse from URL直接从URL中解析需要添加的字段并自动生成。
注意:记得点击OK保存
如果你想启用AWVS独特的Acunetix acussensor技术你可以在AcuSensor这个设置里将Enable AcuSensor Technology勾选上,那么这个Acunetix acussensor技术究竟是什么样的一个新技术呢?这个技术可以识别比传统Web应用程序扫描器更多的漏洞,以及更少的误报。此外,它还准确地指出代码中的漏洞所在,并报告调试信息。
我们通常的安全测试是基于黑盒环境,我们对目标结构和特性目标毫不知情,就像一个黑盒子,白盒测试相当于我们对目标的结构和特性已经知晓,目标相当于一个透明的盒子,而Acunetix acussensor技术是基于灰盒环境,这个技术将黑盒测试和放置在网页文件中的“传感器”的反馈相结合提高扫描精度获取更多的结果,对于已经编译好的.NET源码Acunetix acussensor技术也可以对其进行注入不需要安装编译器以及编译前的源代码,这对于使用其他第三方.NET的网页应用是一大优势。
你需要给Acunetix acussensor技术设置一个密码那么可以在Password后面的输入框内输入并点击OK来保存你的设置,同时你想关闭或者启用Request list of feiles(文件请求列表)和Enable server alerts(启用服务器警告)都可以进行设置,这二项设置的具体含义读者可以查看这一小节结尾处的Acunetix acussensor技术特性具体介绍表,这里先不做赘述了。
如果你想测试你是否正确的配置了Acunetix acussensor技术,你可以点击这个按钮输入网站的地址进行检测,如果你对Acunetix acussensor技术设置了密码,而你在对检测中需要输入的密码不进行填写,那么默认会使用上面设置的密码。
在主菜单也可以对Acunetix acussensor技术进行设置和生成Acussensor传感器文件,这包括了:
Password(密码,单击那个锁状的图标会随机生成密码,这会让密码更难以获取到)
Output folder(Acussensor传感器文件的生成路径)、
Generate PHP AcuSensor(生成php版本的AcuSensor)
Generate .NET AcuSensor(生成.NET版本的AcuSensor)
Also set password in currently selected settings template(在当前选定的设置模板中设置密码)
Generate AcuSensor Installation Files(生成Acussensor传感器文件)
(此处要补上Acunetix acussensor技术特性具体介绍表,切记!)
对于端口的扫描AWVS 也可以进行设置,这其中包括:
Number of sockets used for scanning(扫描线程数,扫描线程数越大扫描的速度就越快,同时这也会增大服务器的负担)Connet timeout (in milliseconds):(扫描超时时间,这里以毫秒为单位,如果在你设置的时间内没有连接上端口,那么它将被认为是关闭的。)AWVS内置了常见的端口和该端口运行的服务的配置,如果你有需要可以自定义,单击Add New Port新建一个或者选中需要删除的配置单击Remove Selected来删除。注:如果发现DNS服务器,AWVS则对该网络服务运行DNS 域传输和DNS递归查询等测试。
对404错误页面的自定义,404错误页面是在没有找到请求的页面时而出现的页面。在很多情况下,网站不会返回一个HTTP状态码“404 Not Found”,而是返回一个HTTP 200 Success的状态码,并显示一个页面,通知用户所请求的页面不存在。自定义的404错误页面不一定表示服务器404错误(页面未找到),因此AWVS必须能够自动识别这些页面,以检测不存在的URL和有效Web页面之间的差异。
在默认情况下,AWVS会自动检测自定义的404页面,不需要手动配置自定义404错误页面规则,如果你想手动指定那么就可以在这个设置下配置。
1.在URL to match on后面输入自定义404错误页面规则的URL
2.在Pattern后面指定一个正则表达式,用以匹配自定义404错误页面上的一些特定的文本
3.在Match on后面的下拉菜单中选择匹配的模式
这三种模式分别对应的是:
Location header(标头位置)—在自定义404错误页面的网页标头中可以找到特定的文本Result Body(主体位置)—在自定义404错误页面的网页主体中可以找到特定的文本Result(结果)—在自定义404错误页面的网页页眉和主体中可以找到特定的文本如果你嫌麻烦,也可以自动生成这样的模式:
1.在“Browse URL”后输入网站的URL,然后单击GO。浏览器将请求不存在的URL来触发自定义404错误页面。
2.选择自定义404错误页面中的唯一特定文本。
3.单击“ Generate pattern from selection”即可添加好正则表达式。
批量扫描目标
Advanced options扫描高级配置:
Scanning profile(扫描配置文件)Login sequence(扫描序列)Scan settings(扫描设置)Scan mode(扫描方式)Excluded hours(排除时间)Scan results and reports扫描结果及报告:
Save scan results to database(将扫描结果保存在数据库中)Save scan logs(保存扫描日志)Generate report(生成报告类型)Report format(选择报表格式)Report template(选择报告模板)Email address for notifications(扫描结束后通知的邮件地址)Site Crawler功能
Site Crawler也就是爬虫功能,想必读者很少没有听说过爬虫的吧,而AWVS的爬虫功能与众不同的是它支持AJAX和JavaScript,AJAX是什么样的技术呢,AJAX的全称是Asynchronous JavaScript and XML,中文的意思就是异步的 JavaScript 和 XML,它并不是一种新的编程语言,而是一种使用现有标准的新方法,AJAX是一种可以在无需重新加载整个网页的情况下更新部分网页的技术,而传统的网页如果需要更新内容,则需要重新加载整个网页页面,爬虫对网页的爬取无可厚非是寻找网页代码中的URL,对于应用了AJAX技术的网站而言并不能很好的获取我们想要的信息,相当于通过其他方式传递了信息给我们,而我们并不支持这种方式,AWVS对这个技术的支持可以更好的模拟客户端的动作对服务器端WEB的访问,在性能更好的同时获取尽可能多的URL地址和页面。
在爬取的结果中有个别目录显示为Not Found的状态,这是因为我们有些是因为需要登陆才可以获取到信息,也有些是因为网站所含的网页内的URL并不能访问而导致的。
Target Finder功能
Target Finde(目标探测)类似于我们使用的NMAP设置一个网段或者单个IP并指定端口进行一个扫描并识别服务的这样一个功能,在IP Range:后输入目标,在List of Ports:后输入端口后点击Start就可以开始进行扫描,如果你需要让AWVS进行多个端口扫描可以使用英文逗号进行隔开。
Subdomain Scanner功能
此功能就是我们在信息搜集阶段所接触的子域名发现,是一个被动信息搜集的功能,在对DNS服务器进行查询后AWVS也会会解析出IP和banner信息从而对后面所发起的攻击提供有效的信息。
在Domain:后输入你需要进行子域名发现的域名,默认情况下AWVS会使用本机所使用的DNS服务器进行子域名发现(Use DNS server from target),当然可以使用下拉选项框中的Use specifled DNS server去指定DNS服务器让AWVS去进行子域名发现例如谷歌的8.8.8.8,同样你可以在后面的Timeout设置超时的时间,单位是秒,这里(图1)演示的是用本机所使用的DNS服务器对http://360.cn进行一个子域名发现。
如果扫描的结果比较少,你可以试试使用其他的DNS服务器进行子域名发现,有时候DNS服务器的超时大于你所设置的10秒也是有这个可能的,为了确保信息搜集的完整性建议在使用此功能的时候尝试多次子域名查询,每次设置不一样的DNS服务器。
(图1)
(图2)
Blind SQL Injector功能
HTTP editor
HTTP sniffer
HTTP Fuzzer
身份认证测试(Authentication Tester)
结果比较(Compare Results)
AcuSensor灰盒测试
交互式应用程序安全性测试(IAST)
AcuSensor支持PHP、http://ASP.NET和Java Web
AcuSensor的优势:
拥有很低的误报和误报率
发现爬网功能难以找到复杂命名的文件和目录
可以注入已编译的.NET应用程序中不需要源码