主动出击查漏洞未雨绸缪防黑客

2020-11-13 05:10河南许红军
网络安全和信息化 2020年11期
关键词:安全漏洞关键字数据包

■ 河南 许红军

编者按:在很多网络入侵案例中,黑客之所以可以轻松得手,很大程度上是“得益”于各种漏洞的存在。因此,及时发现并修补各种安全漏洞,对于网络安全是极为重要的。这就需要对系统以及各种服务器软件进行有效的安全测试,来确定其是否存在潜在的漏洞。这里就从测试Web 服务器、FTP 服务器等角度,来分析进行安全测试的具体方法。

对Web 服务器进行快速安全测试

实际上,当我们使用各种网络软件访问远程主机时,双方会进行大量的数据交换操作。远程主机上的各种服务器软件正是利用这种数据交换来实现不同的服务功能。而使用Acunetix Web Vulnerability Scanner(AWVS)这款软件,就可以对数据包进行修改,之后将其发送给目标Web 服务器,来实现测试目的。

在该软件主界面左侧的“Tools Explorer”列表中,依次选择“Tools”→“HTTP Editor”项,在右侧窗口中的“URI”栏中输入目标Web 主机地址,点击“HTTPS”按钮,可以在HTTP 和HTTPS 之间进行切换,来测试不同类型的Web 主机。在“Protocol”列表中可以根据目标主机的不同,选择HTTP 1.0 或者HTTP 1.1 规范。在执行测试之前,必须准备好自定义数据包。

使用IE 对目标Web 主机进行访问,并使用WinSock Expert 拦截所需的数据包,之后根据需要对其进行修改。例如,在访问数据包中的第三行一般为“Accept-Language:”,其后面跟随的为“zh-cn”,表示其语言类型为中文。这里对其进行修改,将“zh-cn”删除,取代的是一行很长的杂乱的字符串。当然,您可以针对不同的关键字信息来进行修改。之后从修改行开始,将它和之后的数据包内容复制到剪切板上。在AWVS 的“HTTP Editor”界面中的“Request Headers”面板中的右键菜单上点击“Paster From Clipboard”项,将自定义数据包的内容粘贴进来。点击工具栏上的“Start”按钮,AWVS 就可以将该自定义数据包发送给目标Web 主机,在“Response Hdaders”面板中显示目标Web 主机回应该本机的数据。

如果返回信息正常,说明目标Web 主机可以很好处理这些数据包。如果返回信息异常或者根本没有返回信息,说明目标Web 服务器存在安全漏洞,导致在处理这些数据包时崩溃。

当然,在发送自定义数据包时,也可能引发目标Web服务器的其它安全漏洞,例如信息泄露等。在“Response Hdaders” “Response Data”“View page”等面板中可以查看数据包头信息、数据包中的数据信息和网页数据信息。对这信息进行分析,有助于发现目标主机潜在的其它安全漏洞。当然,还可以在目标服务器上运行OllyICE 这款调试工具,来实时监控服务器是否崩溃以及是否存在安全漏洞。

对Web 服务器进行深度安全监测

使用WebFuzz 安全工具,同样可以对目标Web服务器进行安全测试,来检测其可能存在的安全漏洞,而且其功能更加强大。

WebFuzz需要安装.Net FrameWork 组件。该工具的特点是可以利用自动化的Web 数据包,连续对远程Web 服务器进行安全检测。将Web Fuzz 解压后,运行其中的“binDebug”文件夹中的“WebFuzz.exe”程序,在其主界面顶部的“Host”栏中输入目标Web 服务器的IP或者网址,在“Port”栏中可以更改端口号,默认为80。在“Timeout”栏中输入超时时间,单位为ms,默认为5 s。当测试超过该值后,就执行下一次测试。

您可以根据需要,自定义测试所需的Web 数据包。在“Request Headers”栏中任一行上点击右键,在弹出菜单中点击“Add Header”项,在分支菜单中显示所有的Header 关键字。所谓Header,指的是Web 数据包是按照HTTP 规则组织的,在HTTP 规则中定义了很多关键字,在Web 数据包的每一行开始都会出现这些关键字,例如“Accept” “Referer”“Host”等,这些关键字就是Header。

在对目标主机进行测试时,需要其发送包含不同Hdader 关键字的数据包,测试服务器处理这些数据的情况,在上述菜单中选择选择需要测试的Header 关键字。仅选择了Header 关键字还不够,必须在其后跟对不同的数值,才可以执行有效测试,尤其是需要检测目标服务器在处理畸形Web数据包时会不会出现漏洞。

在上述菜单中点击“Add Fuzz Type”项,在弹出菜单中可以选择所需的数据类型,之后WebFuzz 会根据您的选择,在程序路径下选择与该项对应的文本文件。例如,先选择“SQL Injection”项,WebFuzz 就会在解压路径下寻找名为“sqlinjection.txt”的文件,当找到该文件后,Web Fuzz 就会将其内容添加到当前的Web 数据包中,如“Accept-Language:enus[Traversal]”等。每自动加入一行数据,就发送一次数据包,这样就可以实现连续不断的测试操作。

打开程序目录下的对应文件,在其中添加所需的测试数据。例如,可以通过打开“dirtraversal.txt”文件,加入数量不等的字符等。准备好Web 数据包后,点击窗口右上角的“Request”按钮,开始对目标Web 服务器执行测试动作。在测试期间,在窗口中部的“Responses”栏中显示接收目标Web 服务器返回的数据包信息,如果在测试没有结束的情况下,在“Responses”栏已经无法显示无法接收到返回数据包信息,就说明目标服务器存在安全漏洞,无法完美的处理发送的测试Web 数据包。根据自定义Web 数据包的组成数据进行分析,就可以找到目标Web 服务器可能存在的安全漏洞。

对FTP 服务器进行安全测试

在Internet 上,FTP 服务器的使用极为广泛,利用FTP 服务,可以很方便的传输文件。但如果您使用的FTP服务器存在安全漏洞,那么黑客就可以借助此漏洞侵入FTP 服务器甚至是内网之中。使用FTPFuzz、beSTORM 等软件,可以对目标FTP 服务器进行安全监测。

这里以beSTORM 为例进行说明,先在服务器端运行beSTORM Monitor 程序,在其主界面左侧的进程列表中显示服务器上的所有进程,从中选择FTP 服务进程,在“Host”栏中输服务器IP,点击“ATTACH”按钮,激活beSTORM Monitor 监控功能。

在客户机上安装其客户端软件beSTORM Client,在服务器端安装监控程序beSTORM Monitor。在客户端运行beSTORM Client 程序,在向导界面中点击“Create New Project”项,新建一个测试项目,在下一步窗口中输入项目名称,存储路径,选择测试模式,默认为“Simple”简单测试模式,也可以选择“Advancesd”高级测试模式。点击“Next”按钮,在Basic Configuation 窗口选择“Choose from beSTORM predefined modules”,选择预设的测试网络模块类型,包括DHCP、DNS、DNS Server、FTP 及HTTP 等。例如,选择“FTP”项,表示对FTP 服务器进行安全测试。

在Target Host Settings面板中输入目标FTP 地址、连接端口及协议类型(如TCP 等),点击“Next”,在下一步窗口的参数列表中的“Username for FTP login”栏中输入FTP 账户名,然后在“Password for FTP login”栏中输入登录密码。在下一步窗口中设置每次测试的时间(默认为3 s),并在“Hostname or IP address”栏中输入目标服务器的IP。点击“Next”按钮,在下一步窗口中选择“Auto-start beSTORM scan now”项,然后执行自动测试操作。点击“Finish”按钮,开始对目标FTP 主机执行连续测试操作。

如果发现目标FTP 服务器出现了安全漏洞,beSTORM Client 程序程序会弹出提示窗口,显示详细的漏洞信息。这对于查找目标FTP 的安全漏洞很有参考价值。

上面谈到的安全测试,针对的都是明文数据包格式而言的,不管是HTTP 或者是FTP 数据包来说,都没有进行加密处理。但是,对于采取加密格式的数据包来说,处理起来就比较复杂了。

例如,使用Sniffer 监听工具,对SSH 加密通道进行数据拦截监听时,就会发现拦截到只是一堆杂乱的十六进制代码,根本无法了解其具体内容。当对这种类型的服务程序(例如SSH、VPN 服务程序等)进行安全测试时,因为处理的是加密数据包,按照常规方式处理起来就比较棘手。

利用beSTORM 自建测试网络数据模块功能,就可以轻松解决以上问题。例如,在beSTORM 中新建一个测试项目,在Basic Configuration 窗口中选择“Build a Network Module”项,点击“LEARN”按钮,在Auto Learn 窗口左上角的的“Act As”栏中选择“Manin -the Middle”项,可以让beSTORM 接收所有发给目标主机的数据包,然后由其转发给目标主机。选择“HTTP Proxy”项,使用HTTP 代理功能,选择“Network Sniffer”项,直接拦截数据包。

例如,选择最后一种方式,在“Device”列表中选择所需的网卡设备,在“To Address(IP)”栏中输入目标主机的IP,在“To Port”栏中设置对应的端口。点击“LISTEN”按钮,可以拦截到所需的数据包。

之后在数据包编辑栏中对其内容进行适当的修改,便于对目标主机进行安全测试。

其实,点击“GENERATE”按钮,beSTORM 就可以自动对其进行分析操作。然后在弹出窗口中选择测试的数据包类型,点击“USE”按钮,完成数据包的拦截和生成操作。之后就可以利用这些数据包对目标主机进行安全测试了。

利用beSTORM 提供的自动拦截、分析和生成数据包功能,不管目标服务器使用的是明文或者加密数据包,以及正常或者非正常网络协议,都可以快速高效的对其执行深入全面的安全测试。这对于及时发现潜在的安全漏洞,并及时对其进行封堵是非常重要的。

猜你喜欢
安全漏洞关键字数据包
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
二维隐蔽时间信道构建的研究*
刍议计算机软件中的安全漏洞检测技术
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
网络安全加固工作的分析与探讨
成功避开“关键字”
试论安全漏洞检测技术在软件工程中的应用
智能设备安全漏洞知多少
C#串口高效可靠的接收方案设计
智能垃圾箱