课本第四章 网络嗅探与协议分布
网络嗅探
1.网络嗅探技术概述
- 网络嗅探技术定义
利用计算机网络接口截获目的地为其他计算机的数据报文
监听网络流中所包含的用户账户密码或私密信息等 - 网络嗅探器
实现嗅探的软件或硬件设备
嗅探获得数据→二进制格式数据报文
解析和理解二进制数据,获取各层协议字段和应用层传输数据→网络协议分析 - 网络嗅探的危害与作用
攻击者:所使用的内网渗透技术、窃取机密信息、为发起进一步攻击收集信息
防御者
管理员可以用来监听网络的流量情况,定位网络故障
为网络入侵检测系统提供底层数据来源基础
开发网络应用的程序员可以监视程序的网络情况 - 网络嗅探技术与工具分类
链路层嗅探分类
以太网嗅探
WiFi嗅探
目前一些著名嗅探器支持多种链路层网络嗅探,wireshark, Sniffer Pro…
实现形式分类
软件嗅探器:不同类型操作系统上的的应用软件
硬件嗅探器(协议分析仪): 专用设备, 速度快, 捕获数据全面,额外功能(如流量记录与重放等), 价格昂贵
2.网络嗅探的原理与实现 - 以太网工作原理
采用载波侦听/冲突检测(carrier sense multiple access with collision detection,CSMA/CD: 802.3)技术
载波侦听:是指在网络中的每个站点都具有同等的权利,在传输自己的数据时,首先监听信道是否空闲。如果空闲,就传输自己的数据;如果信道被占用,就等待信道空闲。而冲突检测则是为了防止发生两个站点同时监测到网络没有被使用时而产生冲突
以太网的CSMA/CD技术,采用广播机制,所有在同一媒介信道上连接的工作站都可以看到网络上传递的数据
-以太网工作模式
接口设备NIC,拥有一个MAC地址(48位)以太网帧头中包括源和目标的MAC地址
通过协议栈进行应用数据TCP/IP封包。
通过ARP来解析MAC与IP地址的转换
用ipconfig/ifconfig可以查看MAC地址
正常情况下,网卡应该只接收这样的包
MAC地址与自己相匹配的数据帧
广播包
网卡完成收发数据包的工作,两种接收模式
混杂模式:不管数据帧中的目的地址是否与自己的地址匹配,都接收下来
非混杂模式:只接收目的地址相匹配的数据帧,以及广播数据包(和组播数据包)
为了监听网络上的流量,必须设置为混杂模式 - 共享是网络与交换式网络中的嗅探
MAC地址洪泛攻击
向交换机发送大量虚构MAC地址和IP地址数据包
致使交换机“MAC地址-端口映射表”溢出
交换机切换入所谓的“打开失效”模式-“共享式”
MAC欺骗
假冒所要监听的主机网卡,将源MAC地址伪造成目标主机的MAC地址
交换机不断地更新它的“MAC地址-端口映射表”
交换机就会将本应发送给目标主机的数据包发送给攻击者
ARP欺骗
利用IP地址与MAC地址之间进行转换时的协议漏洞 - 类Unix网络嗅探技术实现
内核态: BPF(Berkeley Packet Filter)和用户态函数库(libpcap)抓包工具库实现
-Windows平台网络嗅探实现技术
通过驱动程序NPF(NetGroupPacket Filter)来抓取数据包
用户态函数库:winpcap
用户态嗅探程序:windump等
3 网络嗅探器软件
-类UNIX平台网络嗅探器软件:
libcap抓包开发库:用户态下的抓包库系统独立的接口,C语言接口。多种其他高级编程语言包装接口: Perl, Python, Ruby, Tcl, Java, …广泛应用于网络统计软件。入侵检测系统网络调试,支持过滤机制,BPF。
tepdump嗅探器软件:TCP/IP协议分析、支持过滤机制BPF
wireshark嗅探器:类UNIX下最好的基于图形界面的嗅探器软件
-Windows平台下的嗅探器软件
Windows内核本身没有提供标准的接口;通过增加一个驱动程序或者网络组件来访问内核网卡驱动提供的数据包。在Windows不同操作系统平台下有所不同。不同sniffer采用的技术不同。
tcpdump嗅探器软件:是通用命令行的网络嗅探数据包分析程序。
4 网络嗅探的检测与防范
-网络嗅探检测
网卡和操作系统对于是否处于混杂模式会有一些不同的行为,利用这些特征可以判断一个机器是否运行在混杂模式下
检测手段
根据操作系统的特征
Linux内核的特性:正常情况下,只处理本机MAC地址或者以太广播地址的包。在混杂模式下,许多版本的Linux内核只检查数据包中的IP地址以确定是否送到IP堆栈。因此,可以构造无效以太地址而IP地址有效的ICMP ECHO请求,看机器是否返回应答包(混杂模式),或忽略(非混杂模式)。
Windows 9x/NT:在混杂模式下,检查一个包是否为以太广播包时,只看MAC地址前八位是否为0xff。
根据网络和主机的性能
根据响应时间:向本地网络发送大量的伪造数据包,然后,看目标主机的响应时间,首先要测得一个响应时间基准和平均值
-网络嗅探防范措施
采用安全的网络拓扑。
用静态的ARP或者MAC端口映射表代替动态机制。
重视网络数据的传输的集中位置点的安全防范。
避免使用明文传输口令或敏感信息的网络协议。
网络协议分析
1 网络协议分析技术
- 网络协议分析技术原理
对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法
网络协议分析典型过程:原始数据在链路层传输二进制数据包;对以太网数据帧进行结构分析,定位出帧的头字段结构,确定网络层协议内容,提取帧中的网络层数据内容。进一步分析IP数据包。继续根据TCP或UDP的目标端口确定具体应用层协议;根据相应的应用层协议对数据进行整合恢复。 - 网络协议分析技术实践
解析以太网数据帧:
预处理:拆包前进行一些前期处理
拆包:将当前得到的包内存位置赋给Packet数据结构中相应的指针eh(EtherHdr)型的指针即可
解析上层协议:switch语句,根据ether_type分别调用相应的上层协议解析例程
解析IP数据包:
2 网络协议分析工具 - wireshark见解与发展历程
1998-2006: Ethereal
Gerald Combs, University of Missouri-Kansas City
2006-now: wireshark
Renamed from Ethereal due to trademark issues
eWEEKLabs named Wireshark one of "The Most Important Open-Source Apps of All Time“ - wireshark功能介绍
抓包(Capture)
Capture Filter: BPF过滤器
分析(Analyze)
自动协议解码: 支持数百种协议, 显示各层包头和内容字段
灵活选择协议对网络流进行解码Decode As…
统计(Statistics)
协议分类(Protocol Hierarchy)
会话列表(Conversations)
2层(以太网)/3层(IP)/4层(TCP,UDP)
会话终端(EndPoints)
I/O Graph: 随时间统计的流量曲线
会话重组(Follow TCP/UDP Stream)和会话图(Flow Graph) - wireshark的使用
总数据窗口逐行列出数据包,包括:编号、捕获时间、源和目标地址、数据包使用协议。
通过过滤器设置捕捉过滤,基本设置
[srcldst]host进厅制定主机为源地址
less|greater选择长度符合要求的包
[tcpludp][sre|dst]port过滤tcp、udp及端口号
expression调出。对于过滤使用得完表达式
kali视频学习
1)opoenvas漏洞分析的使用
首先登陆靶机,获取靶机地址
ifconfig
新建一个扫描目标
扫描详细信息
可以导出漏洞信息
2)漏洞分析扫描工具
WEB漏洞扫描器Golismero
golismero scan http://172.16.49.146/
利用各种插件进行扫描
缺点:扫描信息生成比较杂乱报告生成不够规范
Nikto.pl扫描器:可以对网页进行多种扫描
速度很快
扫描结果
可以对多个端口扫描。可以对数据库进行更新。
信息收集工具
lynis
3)漏洞分析之web爬行
对网站的扫描往往需要对网站路径,页面账户进行枚举,涉及到web安全中的爬行工具。
用户枚举脚本apache-users
apache-users -h 172.16.49.146 -l /usr/share/wordlist/dirbuster/
cutycapt网站截图工具
dirb强大的目录扫描工具
利用的字典
根目录信息,进入子目录进行递归扫描。支持指定后缀名进行扫描。
kali下图形扫描器Dirbuster
4)漏洞分析web漏洞扫描
WEB漏洞扫描工具:
Cadaver一个用来浏览和修改WebDAV共享的Unix命令行程序,使用了neon的HTTP库,可以以压缩方式上传和下载文件,也会校验属性、拷贝、移动、锁定和解锁文件
DAVTest测试对支持WebDAV的服务器上传文件等。
Deblaze 针对FLASH远程调用等的枚举
Fimap 文件包含漏洞利用工具
Grabber 一个WEB应用漏洞扫描器,可以指定扫描漏洞类型结合爬虫对网站进行安全扫描,其支持以下漏洞扫描:-Cross-Site Scripting -SQL Injection -File Inclusion -Backup files check -Simple AJAX check -Hybird 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 for next stats analysis
Joomal Scanner针对一个jms进行漏洞扫描,
Skip是通过HTTP处理协议占用较低的CPU资源。因此运行速度比较快
扫描方式
Skipfish -o /tmp/1.report http://url/
W3AF:是一个web应用程序攻击和检查框架,很容易使用和扩展。
webshag:集成调用框架,调用Nmap、UScan,信息收集,爬虫功能。
WebSploit:是一个开源项目,用于远程扫描系统漏洞,使他可以非常容易快速发现系统中问题。深入分析。