20189320《网络攻防》第四周作业
一、Kali视频学习总结
(一)漏洞分析之OpenVAS使用
以对Linux靶机Metasploitable_ubuntu的扫描为例,介绍OpenVAS漏洞扫描器在实际中的应用与具体操作。
1.首先打开Metasploitable_ubuntu虚拟机,查看其IP地址
2.在Kali中检查是否能ping通Metasploitable_ubuntu虚拟机
由上图可以看出,在Kali中可以正常ping通Metasploitable_ubuntu虚拟机。
3.访问本地http://localhost:9392/,登录OpenVAS的WEB管理界面
4.创建扫描目标Target,作为要扫描的目标
5.创建扫描任务Task
6.点击Actions-Start
图标开始任务
此时,点击Actions-Task Details
图标可以查看任务的详细信息,如当前扫描进度、扫描结果等。
7.查看扫描状态细节
8.查看扫描状态结果,包括漏洞详细信息,亦可导出扫描报告的PDF文件
9.导出扫描结果报告文件
10.也可以使用Quick Start
进行快速扫描
填入目标IP地址,点击Start Scan
即可开始扫描。
(二)漏洞分析之扫描工具
除了综合漏洞扫描器OpenVAS,Kali中还有许多漏洞分析扫描工具,包括WEB漏洞扫描器Golismero与Nikto,以及系统信息扫描收集工具Lynis与unix-privesc-check。
1.WEB扫描工具Golismero
Golismero是一款开源的Web扫描器,它不但自带许多安全测试工具,而且还可导入分析市面流行的扫描工具的结果,如OpenVAS、Wfuzz、SQLMap、DNS RECON等,并自动分析。Golismero采用插件形式的框架结构,由纯python编写,并集成了许多开源的安全工具,可以运行在Windows、Linux、BSD、OS X等系统上,几乎没有系统依赖性。
在Golismero插件形式的框架结构下,Golismero还提供一系列的接口,用户只要继承并且实现这些接口,就可以自定义自己的插件。根据插件的功能,可以分为四类:
(1)ImportPlugin(导入插件):主要用来加载其他安全工具。
(2)TestingPlugin(测试插件):主要用来测试或者渗透入侵的软件。
(3)ReportPlugin(报表插件):主要是对测试结果生成报表。
(4)UIPlugin(界面插件):主要用于和用户交互,显示当前系统的运行情况。
每个类别的插件的接口都不同,所以在编写自定义插件时,注意选择好相应的插件类型。
查看插件列表:
$ golismero plugins
扫描器进行扫描:
$ golismero scan 目标主机ip地址
对Linux靶机进行扫描,扫描结果如下图所示:
该扫描器存在一个缺点:此扫描器扫描过于杂乱,对扫描报告的生成也不够规范与友好。但是它为我们编写扫描器提供了一个很好的思路,亦可由其代码进行改写。
2.漏洞扫描器Nikto
Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包括超过3000多种有潜在危险的文件CGIs;超过625种服务器版本;超过230种特定服务器问题。
(1)简单扫描:目标基本WEB基本配置信息,服务器,PHP解析器等版本信息。
$ nikto -h {target-IP}
对Linux靶机进行扫描,扫描结果如下图所示:
可以看出,该扫描器的扫描信息整理得比较整齐。
(2)对多个端口进行扫描:
$ nikto -h {target-IP} -p 端口号
(3)更新插件和数据库:
$ nikto -update
3.Lynis系统信息收集整理工具
对Linux操作系统详细配置等信息进行枚举收集,生成易懂的报告文件。
使用-Q参数避免交互
$ lynis --check-all -Q
4.unix-privesc-check信息收集工具
unix-privesc-check与Lynis类似,使用命令:
(1)以标准模式进行信息收集:
$ unix-privesc-check standard
(2)进行信息收集后重定向到一个文件:
$ unix-privesc-check >log.txt
(三)漏洞分析之WEB爬行
Kali将所有字典(包括目录字典)均存放在/usr/share/wordlists目录下,便于调用。
针对web网站的扫描,往往需要对网站路径&页面&账户进行枚举,这涉及到WEB安全中的爬行工具。Kali下的WEB爬行工具有:
1.Apache-users用户枚举脚本
$ apache-users [-h 1.2.3.4] [-l names] [-p 80] [-s (SSL Support 1=true 0=false)] [-e 403 (http code)] [-t threads]
2.CutyCapt:网站截图工具
$ cutycapt --url=http://www.baidu.com/ --out=baidu.png
3.DIRB:强大的目录扫描工具
$ dirb 目标主机ip地址
对Linux靶机进行扫描,扫描结果如下图所示:
4.Dirbuster:Kali下的图形化目录扫描器,拥有直观的扫描结果
$ dirbuster
可以对扫描进行设置,点击Start
开始扫描。
对Linux靶机进行扫描,扫描结果如下图所示:
可以看出,在Results-Tree View
标签下以树的形式列出扫描结果,非常直观。同时,页面还会显示扫描的当前速度与平均速度等信息。
5.Vega:Kali下的WVS,使用简单易懂
打开Vega,点击Scan-Start New Scan
,创建一个需要扫描的地址,点击Finish
开始扫描。
6.WebSlayer:由Wfuzz发展出来的WEB爆破工具
(四)漏洞分析之WEB漏洞扫描
与WEB路径爬行密切相关的是WEB漏洞扫描工具。Kali下的WEB漏洞扫描工具有:
1.Cadaver
Cadaver是一个用来浏览和修改WebDAV共享的Unix命令行程序,它使用了neon的HTTP库。使用Cadaver就像使用命令行的FTP程序,因此它很适合基本的WebDAV调试。它可以以压缩方式上传和下载文件,也会检验属性、拷贝、移动、锁定和解锁文件。
2.DAVTest
测试对支持WebDAV的服务器上传文件等。
$ davtest -url 目标主机IP地址
3.Deblaze
针对FLASH远程调用等的枚举。
4.Fimap
Fimap是远程和本地文件包含的扫描器以及文件包含漏洞利用工具。
$ fimap -u 目标主机IP地址 --force-run
5.Grabber
Grabber是一个WEB应用漏洞扫描器,可以指定扫描漏洞类型结合爬虫对网站进行安全扫描。Grabber非常迅速,而且适应性强。
6.Joomla Scanner
Joomla Scanner与Wpscan的扫描器类似,是针对特定CMS(Joomla)的漏洞扫描工具。
7.Skipfish
Skipfish是由Google出品的一款自动化的网络安全扫描工具。它通过HTTP协议处理且占用较低的CPU资源,因此它的运行速度比较快,可以每秒钟轻松处理2000个请求。
$ skipfish -o 生成文件目录 扫描网址
对网易进行扫描,扫描结果如下图所示:
可以看到,report123文件夹下产生了许多文件。使用浏览器打开index.html
文件就可以查看生成的扫描报告。
8.Uniscan WVS:简单易用的综合Web漏洞扫描器
输入uniscan-gui
打开扫描器,勾选扫描选项,点击Start scan
开始扫描。这里对Linux靶机进行扫描:
点击Open log file
即可查看扫描结果。
9.W3AF
W3AF是一个Web应用程序攻击和检查框架,该项目已超过130个插件,其中包括检查网站爬虫、SQL注入(SQL Injection)、跨站(XSS)、本地文件包含(LFI)、远程文件包含(RFI)等。该项目的目标是要建立一个框架,以寻找和开发Web应用安全漏洞,所以很容易使用和扩展。
10.Wapiti
Wapiti的工作方式与Nikto类似,也采用黑盒的方式主动对被测Web应用进行扫描,寻找其中潜在的安全缺陷;不过与Nikto提供测试用例库不同,它实现了内置的匹配算法。Wapiti是由python语言开发的,因此支持的平台很广泛。
$ wapiti 扫描网址 -v 2
对Linux靶机进行扫描,扫描结果如下图所示:
11.webshag:集成调用框架
webshag调用Nmap、UScan、信息收集、爬虫等功能,使扫描过程更容易。
12.WebSploit
WebSploit 是一个开源项目,主要用于远程扫描和分析系统漏洞。使用它可以很容易和快速发现系统中存在的问题,并用于深入分析。
二、教材学习总结
(一)网络嗅探
网络嗅探(Sniff)利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。实现网络嗅探的工具称为网络嗅探器(Sniffer),嗅探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的网络数据,这样才能恢复出TCP/IP协议栈上各层网络协议的内容,以及实际发送的应用层信息。
1.网络嗅探技术与工具分类
网络嗅探技术可以按照所监听的链路层网络进行分类。以太网与Wi-Fi是目前有线局域网与无线局域网最流行的链路层协议,也是目前的网络嗅探器的主要监听对象。这两大类嗅探器在对数据包实际进行破解和分析的时候完全没有区别。它们之间的唯一区别是无线嗅探器可以读取和分析符合如IEEE 802.11等无线传输协议的数据包。
网络嗅探器也可以按照实现形式分为软件嗅探器和硬件嗅探器两种。
(1)硬件嗅探器
通常也称为协议分析仪,通过专用硬件对网络数据进行捕获和分析。它的优点是速度快,而且往往被放置在网络中的关键位置,因此捕获网络数据也比较全面;但硬件嗅探器的成本较高,价格昂贵。
(2)软件嗅探器
软件嗅探器一般实现为不同类型操作系统上的应用软件,通过对网卡编程实现,价格便宜或者免费,易于使用;但是速度慢,往往无法抓取网络上所有的传输数据(比如碎片包),也就可能无法全面了解网络的故障和运行情况。
2.网络嗅探的实现
(1)共享式网络与交换式网络中的嗅探
利用以太网在实际部署有线局域网时,根据其部署方式不同分为共享式网络与交换式网络两种。共享式网络主要使用集线器连接,其网络拓扑结构是基于总线方式,物理上是广播的。而交换式网络则主要使用交换机组建,所以数据帧都通过交换机进行数据转发。
在交换式网络中,采用如下技术手段使得本不应到达的数据包到达本地,就能实现嗅探。
①MAC地址洪泛攻击:指向交换机发送大量含有虚构MAC地址和IP地址的数据包,致使交换机的“MAC地址-端口映射表”溢出无法处理,使得交换机进入所谓的“打开失效”模式。
②MAC欺骗:攻击者通过将源MAC地址伪造成目标地址的源MAC地址,并将这样的数据包通过交换机发送出去,使得交换机不断地更新它的“MAC地址-端口映射表”,从而让交换机相信攻击者主机的MAC地址就是目标主机的MAC地址。
③ARP欺骗(最常用):利用IP地址和MAC地址之间进行转换时的协议漏洞,达到MAC地址欺骗。
(2)类Unix平台的网络嗅探实现技术
类Unix平台的网络嗅探技术主要通过内核态的BPF和用户态的libpcap抓包工具库实现。类Unix平台的的BPF和libpcap是类Unix平台下的网络嗅探标准接口支持,将所嗅探捕获的数据包将保存在pcap记录文件中,而pcap记录文件也成为了类Unix平台上存储网络数据包的标准格式。
(3)Windows平台的网络嗅探实现技术
Windows平台的网络嗅探技术主要通过NPF和WinPcap实现。
3.网络嗅探软件
(1)类Unix平台网络嗅探器软件
类Unix平台网络嗅探器软件一般都是基于标准接口BPF与libpcap,最常用的包括libpcap抓包开发库、tcpdump以及wireshark嗅探器软件。此外还有著名的开源网络入侵检测系统Snort、dsniff等嗅探器软件。
(2)Windows平台网络嗅探器软件
Windows平台上也有非常多的网络嗅探器软件,包括NPF、winpcap、windump、wireshark等嗅探器软件。此外还有更多商业的网络嗅探器软件,如著名的SniffPro、NetMon等嗅探器软件。
4.网络嗅探器的防范
采用如下的防范措施,可以减少和消除网络嗅探对网络数据所造成的安全威胁。
(1)采用安全的网络拓扑,尽量将共享式网络升级为交换式网络,并通过在交换机上设置VLAN等技术手段,对网络进行合理的分段。
(2)用静态ARP或者MAC-端口映射表代替动态机制。
(3)重视网络数据传输的集中位置点的安全防范,如网关、路由器和交换机等。
(4)避免使用明文传输口令或敏感信息的网络协议,而使用加密及安全增强的网络协议进行替代。
(二)网络协议分析
网络协议分析是网络嗅探器进一步解析与理解捕获数据包必需的技术手段。网络协议分析是指对网络上传输的二进制数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
1.网络协议分析的典型过程
网络协议分析的典型过程包括以下几个步骤:
(1)首先网络嗅探得到的原始数据是在链路层传输的二进制数据包,大多数情况下是以太网数据帧。
(2)对以太网数据帧进行结构分析,定位出帧头各字段结构,根据帧头的Type字段确定网络层协议类型,大多数情况下是IP协议(0800),并提取数据帧中包含的网络层数据内容。
(3)进一步对IP数据包进行分析,如果设置了分片位,则进行IP分片重组,根据协议头中的Protocol字段,确定传输层协议类型,通常情况下是TCP(6)或UDP(17),并提取IP数据包中的传输层数据内容。
(4)继续根据TCP或UDP的目标端口确定具体的应用层协议,如http、ftp、telent等协议数据包,并对TCP或者UDP数据包进行拼接重组,得到应用层特定协议的应用交互内容。
(5)依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。
2.网络协议分析工具Snort
Snort是基于网络嗅探开发库libpcap,使用C语言开发的开源网络入侵检测系统。目前,Snort已经成为一个多平台的网络入侵检测/防御系统,它支持基本的网络数据嗅探与协议分析功能特性。Snort源代码包中实现网络协议分析的主要文件是decode.c和decode.h。
3.网络协议分析工具Wireshark
wireshark(前称为ethereal),是一款开源数据包分析工具,其主要作用是捕获网络数据包,对于数据包进行协议分析以尽可能显示详细的情况,并以更容易理解的格式呈现给用户。它可以被用于解决网络故障,进行系统管理和安全管理,学习网络协议等多个方面。
Wireshark主窗口包含菜单栏、快速工具栏、过滤器栏、总览窗口(逐行列出数据包)、协议树窗口(提供在总览窗口选中的数据包的详细信息)、数据查看窗口(提供在总览窗口选中的数据包的原始数据)、状态栏。其中,菜单栏、快速工具栏提供了对Wireshark的操作,如捕获数据包、打开文件、保存监听结果、设置监听规则等。