《网络攻防》第四周学习总结
目录
1、网络嗅探
- 1.1 网络嗅探技术概述
- 1.2 网络嗅探器的原理与实现
- 1.2.1 以太网卡工作模式
- 1.2.2 共享式网络与交换式网络中的嗅探
- 1.2.3 类UNIX平台的网络嗅探技术实现
- 1.2.4 Windows平台的网络嗅探实现技术
- 1.3 网络嗅探器软件
- 1.4 网络嗅探的检测
- 1.5 网络嗅探的防范措施
2、网络协议分析
- 2.1 网络协议分析技术
- 2.2 网络协议分析工具wireshark
- 4.1 web扫描工具Golismero
- 4.2 Nikto
- 4.3 Lynis
- 4.4 unix-privesc-check
- 5.1 Apache-users用户枚举
- 5.2 CutyCapt网站截图工具
- 5.3 dirb目录扫描工具
- 5.4 dirbuster图形化目录扫描器
- 5.5 Vega网站漏洞扫描
- 6.1 cadaver
- 6.2 davatest
- 6.3 deblaze
- 6.4 fimap:文件包含漏洞利用工具
- 6.5 Grabber web漏洞扫描器
- 6.6 skipfish:自动化网络安全扫描工具
- 6.7 uniscan-gui 一款图形化界面
- 6.8 W3af 应用程序攻击检查文件
- 6.9 Web漏洞检查工具 Wapiti
7、小结
1、网络嗅探
1.1 网络嗅探技术概述
- 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件。
- 编写嗅探器,捕获数据是前置功能,数据分析要建立在捕获的基础上。
- 以太网与WiFi是目前网络嗅探器主要监听对象
- 网络嗅探器按照实现形式可以分为软件嗅探器和硬件嗅探器
1.2 网络嗅探器的原理与实现
1.2.1 以太网卡工作模式
常用的以太网卡支持以下工作模式:广播模式、多播模式、直接模式和混杂模式。
- 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。它将会接收所有目的地址为广播地址的数据包,一般所有的网卡都会设置为这个模式。
- 多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
- 直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。只有当数据包的目的地址为网卡自己的地址时,网卡才接收它。
- 混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,网卡将接受同一网络内所有主机发送的数据包。
利用网卡混杂模式的特性,就可以到达对于网络信息监听捕获的目的。
1.2.2 共享式网络与交换式网络中的嗅探
- 共享式网络主要使用集线器连接,而交互式网络主要使用交换机组建
- 集线器的工作模式决定了其中任一主机都能够嗅探整个集线器上的全部网络流量
- 交换式网络中数据帧只转发到目标主机的特定端口,减少了网络数据被嗅探的风险
网络嗅探攻击常用技术手段有以下三种:
- MAC地址洪泛攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包,使交换机溢出,向所有端口广播数据包
- MAC欺骗:攻击者将自己的MAC地址未造成目标主机的MAC地址
- ARP欺骗:是目前交换式网络中最常用的一种嗅探技术
关于MAC地址欺骗,下面这篇博客通过举例讲解的非常清楚,可供参考。http://book.51cto.com/art/201003/191047.htm
1.2.3 类UNIX平台的网络嗅探技术实现
- 类UNIX平台的网络嗅探技术主要通过内核态的BPF和用户态的libpcap抓包工具库实现
- 类UNIX平台的BPF与libpcap所嗅探捕获的数据包将保存在pcap记录文件中,而pcap记录文件也成为了类UNIX平台上存储网络数据包的标准格式
1.2.4 Windows平台的网络嗅探实现技术
- 内核态的NPF和用户态的WinPcap
1.3 网络嗅探器软件
- 类UNIX平台网络嗅探器软件:libpcap抓包开发库、tcpdump、wireshark
- Windows平台网络嗅探器软件:winpcap、windump、wireshark
1.4 网络嗅探的检测
- 在linux平台中,可以构造MAC地址无效而IP地址有效的ICMP Echo请求,看目标主机是否返回应答包,如果目标主机返回应答包,说明目标主机未检查MAC地址,处于混杂模式,正在执行嗅探
- 在Windows平台下,在混杂模式下,检查一个包是否为以太网广播包时,只要看MAC地址的前八位是否为0xff,基于该项特性可以实现针对Windows平台上网络嗅探的检测
1.5 网络嗅探的防范措施
- 采用安全的网络拓扑
- 用静态ARP或者MAC-端口映射表代替动态机制
- 重视网络数据传输的集中位置点的安全防范
- 避免使用明文传输口令或敏感信息的网络协议
2、网络协议分析
2.1 网络协议分析技术
网络协议分析的典型过程包括以下几个步骤:
- 网络嗅探得到原始二进制数据
- 对以太网数据帧进行结构分析,确定网络层协议类型
- 进一步对IP数据包进行分析,确定是TCP或者UDP协议
- 根据TCP或者UDP端口确定应用层协议
- 根据应用层协议对数据进行恢复整合,得到世纪传输的数据
2.2 网络协议分析工具wireshark
这一部分见博客:http://www.cnblogs.com/1693wl/p/6613803.html
3、漏洞分析之openvas的使用
(1)获取靶机metasploitable的IP地址
(2)在openvas里面新建扫描目标
(3)新建任务
(4)开始扫描
(5)点击任务名可以查看详细信息
(6)漏洞扫描结果
(7)生成并导出报告
(8)查看漏洞详细信息
4、漏洞分析之扫描工具
4.1 web扫描工具Golismero
Golismero是一款开源的Web扫描器,可以把他看成一个框架,这个框架的目的就是结合了大量现有的网络安全工具(Openvas,Wfuzz, SQLMap, DNS recon等),以及自己的各种kit,将他们组装起来,完成自动化的安全测试和数据整理。整个框架用python写成,并集成了许多开源的安全工具,可以运行在Windows,Linux, BSD,OS X等系统上,几乎没有系统依赖性,唯一的要求就是python的版本不低于2.7。
Golismero采用了插件式的框架结构,提供了一系列的接口,用户只要继承并且实现这些接口,就可以自定义自己的插件。根据插件的功能,可分为四类:
- ImportPlugin(导入插件):导入插件主要是用来加载其他安全工具的扫描结果
- TestingPlugin(测试插件) :测试插件主要是用来测试或者渗透入侵的插件
- ReportPlugin(报表插件):报表插件主要是对测试结果生成报表。
- UIPlugin(界面插件):界面插件主要是用于和用户交互的,显示当前系统的运行情况。
使用命令:golismero scan IP
参考资料:http://www.cngrayhat.org/archives/274
http://blog.csdn.net/hujkay/article/details/11799145
4.2 Nikto
Nikto 是一款开放源代码的、功能强大的WEB扫描评估软件,能对web服务器多种安全项目进行测试的扫描软件,去寻找已知有名的漏洞,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题,它可以扫描指定主机的WEB类型、主机名、特定目录、COOKIE、特定CGI漏洞、返回主机允许的 http模式等等。它也使用LibWhiske库,但通常比Whisker更新的更为频繁。Nikto是网管安全人员必备的WEB审计工具之一。
使用命令:nikto -h IP
参考资料:http://blog.csdn.net/fly_heart_yuan/article/details/6799043/
4.3 Lynis
Lynis是针对Unix/Linux的安全检查工具,可以发现潜在的安全威胁。这个工具覆盖可疑文件监测、漏洞、恶意程序扫描、配置错误等。
检查项举例:
- 系统允许的登陆操作
- 失效的SSL证书
- 不需要密码的账户
- 未授权的文件
- 配置错误
使用命令:lynis --check-all -Q
参考资料:http://www.freebuf.com/sectool/8764.html
4.4 unix-privesc-check
在UNIX系统上检测权限提升向量的shell脚本。它可以在UNIX和Linux系统上运行。寻找那些错误的配置可以用来允许未授权用户提升对其他用户或者本地应用的权限。
它被编写为单个shell脚本所以可以很容易上传和执行。它可以被普通用户或者root用户执行。当它发现一个组可写(group-writable)的文件或目录时,它只标记一个问题如果这个组包含了超过一个的非root成员。
使用命令:unix-privesc-check standard
5、漏洞分析之web爬行
5.1 Apache-users用户枚举
kali中默认在/usr/share/wordlsts
中存放了字典,枚举时可直接调用
使用实例:apache-users -h 192.168.1.202 -l /usr/share/wordlists/metasploit/unix_users.txt -p 80 -s 0 -e 403 -t 10
结果返回字典中存在的用户名
5.2 CutyCapt网站截图工具
对新浪网截图使用如下命令cutycapt --url=http://www.sina.com --out=sina.png
5.3 dirb目录扫描工具
使用方法:dirb http://1.2.3.4
5.4 dirbuster图形化目录扫描器
5.5 Vega网站漏洞扫描
扫描电科院网站可以得到如下结果
6、漏洞分析之web漏洞扫描
6.1 cadaver
cadaver是一个用来浏览和修改webdav共享的Unix命令行程序,就像subversion客户端,它使用了neon的http库,不需要惊讶,neon和cadaver人作者是同一个人。cadaver是自由软件。使用cadaver就像使用命令行的FTP程序,因此他很适合基本的webdav调试。它可以以压缩的方式上传和下载文件,也会检验属性,拷贝,移动和锁定和检索文件。
使用方法:cadaver http://222.28.136.182/dav
6.2 davatest
davtest可以自动上传一个漏洞文件,一些木马文件
使用方法:davtetst -url http://222.28.136.182/dav
此时可以发现多了一个目录DavTestDir,里面有很多文件
6.3 deblaze
- xss或者web会用到,针对FLASH远程调用等枚举
6.4 fimap:文件包含漏洞利用工具
fimap 远程文件和本地的漏洞扫描文件,会检测一些远程和本地包含漏洞测试。
使用命令fimap -u "路径" --force-run
就可以检测到可以读取那些内容
如果get一个webshell
使用命令fimap -x --force-run
根据提示来进行操作,上传一个shell,然后在进行提权。
6.5 Grabber web漏洞扫描器
WEB漏洞应用扫描器,可指定扫描漏洞类型结合爬虫对网站进行安全扫描。
使用方法:grabber --spider 1 --sql --xss --url http://222.28.136.182
支持漏洞扫描的类型:
- Cross-Site Scripting
- SQL Injection (there is also a special Blind SQL Injection module)
- File Inclusion
- Backup files check
- Simple AJAX check (parse every JavaScript and get the URL and try to get the parameters)
- Hybrid analysis/Crystal ball testing for PHP application using PHP-SAT
- JavaScript source code analyzer: Evaluation of the quality/correctness of the JavaScript with JavaScript Lint
- Generation of a file [session_id, time(t)] for next stats analysis.
参考资料:http://rgaucher.info/beta/grabber/
6.6 skipfish:自动化网络安全扫描工具
skipfish通过http协议处理,占用较低cpu资源,运行速度快。
使用方法:skipfish -o ~/test http://www.163.com
扫描结束后会生成很多文件
打开其中的index.html文件可以查看详细信息
6.7 uniscan-gui 一款图形化界面
6.8 W3af 应用程序攻击检查文件
W3af支持许多插件,是web应用程序攻击和检查框架,包括检查网站爬虫、sql注入,跨站(xss)、本地文件包含、远程文件包含
6.9 Web漏洞检查工具 Wapiti
Wapiti是Web应用程序漏洞错误检查工具。它具有“暗箱操作”扫描,即它不关心Web应用程序的源代码,但它会扫描网页的部署,寻找使其能够注入数据的脚本和格式。它用于检测网页,看脚本是否脆弱的。
使用方法:wapiti http://www.163.com -v 2
7、小结
这周主要学习了openvas和wireshark的使用方法,以及web漏洞扫描的一些工具。
这周接触到的工具比上周更多,虽然都是关于web漏洞的工具,但工具种类很多,许多工具的功能也都大体相同。
那么问题来了,这些工具在实现上有什么不同,在网络攻防实践中到底应该使用哪一种工具,现在学的很多工具是不是都过时了?
我想对于一个网络安全的初学者来说,现阶段能做的就是把各种工具都尝试一下,先努力成为一个优秀的脚本小子,
等到对现有的工具都有一个大体的了解之后,再尝试编写自己的工具,成为一个真正意义上的黑客。