永久链接
之前读了很多书籍,但是现在回顾的时候,很多内容仅仅是熟悉,而不是真正掌握。所以尝试一种新的方式,将读书时觉得比较重要的,或者是自己还不理解的东西记录下来。达到这本书我已经不需要再去翻,只要看笔记即可的效果。
1.数据包分析可以看到除了加密信息之外的所有信息
2.流行的数据包分析软件 tcpdump wireshark OmniPeek
3.数据包嗅探器的工作原理 将网卡设置为混杂模式从网络线缆上收集二进制数据并转换和分析
4.并非每个数据包都是从应用层产生的
5.集线器在半双工模式下运行,在所有的端口上转发
6.交换机用CAM 内容寻址寄存器 根据MAC地址来唯一确定设备
7.路由器 全双工
8.网络流量分为广播、多播、单播
9.多播的工作原理是将数据包接受者加入多播组的编制方案 #P16
本章目标:考虑网络中的设备,决定在哪里安置嗅探器
1.混杂模式是从网络线路上查看所有流量的模式,即使流量不是发给本机的。正常的情况可以收到arp协议发送的广播包。
2.在集线器连接的网络中嗅探可以看到所有的流量,但是同一时刻只有一个设备可以通信,现在不常见,经常会产生冲突。
3.在交换式网络中嗅探:(正常的可视范围是本机数据包和广播数据包)
工具:Cain&Abel
arp协议:
A想要和B通信,但是A不知道B的mac地址,于是在广播域内发送一个广播包(向mac层的广播地址发送一个数据包),问:“谁知道ip B的mac地址?” B发送一个arp request,A收到B的mac地址,并保存在自己的缓存表中,AB于是可以通信。
可以使用非对称路由的方式避免所有流量经过嗅探器,避免DOS
1.主界面:packet list、packet details、packet bytes
2.设置首选项:edit->preferences
3.着色规则:view->coloring rules 可以使用明显的颜色来标记关注的流量
1.保存和导出捕获的文件:从wireshark1.8以后的版本,都将Save As版本中的Packet Range功能移到File->Export Specified Packets菜单中去了。 来自喝小酒的网摘
2.合并捕获的文件:File->Merge with Caputre File
3.查找:ctrl+F (Ctrl+B/N 前后切换)
4.标记:Ctrl+M (Shift+Ctrl+B/N 前后切换)
5.打印:Ctrl+P
6.时间显示格式:Ctrl+Alt+1~7
7.设置相对时间参考:当时间显示格式为相对于捕获开始的时间时,可以设置*REF*
来设定参考值
8.设定捕获选项:Capture->options 可以设置先存储再捕获、存储的方式、捕获过滤器、停止捕获的条件、显示方式、名字解析等等。
9.过滤器:
本章目标:学习wireshark在分析的时候用到的特性
1.查看端点、会话信息 Statistics->endpoints/conversations
2.查看协议分布情况、占的比重 Statistics->Protocol Hierarchy
3.名字解析即一个用来将其地址转化成名字的协议,可能会失败,会带来额外的开销,额外的流量,每次打开一个捕获文件就要重新解析一次。
4.协议解析即将原始的比特流翻译成wireshark程序识别的协议并显示出来。比如员工用了443端口来传输ftp流量,wireshark会以ssl解析器来显示。这时,可以强制更换解析器:右键,decode as。可以查看解析器的源码来了解解析的过程,安装程序目录:epan/dissectors/。
5.跟踪TCP流可以将TCP流重组成易读的形式。
6.查看数据包的长度可以了解到是控制流量比较多还是上传下载的流量比较多。
7.图形显示:
8.专家信息:可以用来统计数据包中某些特定状态的警告。如:tcp重传输,重复ack等。
本章目标:学习TCP、UDP、IP的协议,并且分析其流量。
多种协议数据包结构
###1.arp协议###
1.1地址解析协议包含两个过程:arp请求和arp响应。
arp请求:操作码为1,源mac、源ip、目的mac(00.00.00.00.00.00表示未知)、目的ip。
请求时,以太网的dst位为ff.ff.ff.ff.ff.ff(表示广播),src位为源mac,type为arp。
arp响应:操作码为2,源mac(请求时未知的mac)、源ip、、目的mac、目的ip。
1.2无偿的(gratuitous)arp请求:未经请求的arp请求,用来更新别的主机arp缓存表,ip地址改变时会发,当操作系统重启时有可能会发,为了负载均衡的时候也会发。
以太网帧格式和arp请求时一致。
arp数据包格式中和arp请求不一样的地方在于:目的ip和源ip一致。
###2.ip###
1.ipv4地址由网络位和主机位构成,可以用掩码判断,也可以用CIDR判断。
2.Type of Service 被路由器用来进行流量优先排序。
3.经过一个繁忙的路由器,TTL有可能被减去不止1。TTL还可以防止路由器配置错误导致死循环。
4.ip分片的原因是若2层的协议是以太网,其MTU为1500字节。分片的数据包拥有相同的identification。分片时,flags中的more fragement set若不是最后一个分片,则要置1,offset也要被置数据,第二个偏移量有可能为1480(1500-20ip头)。
4.更多参考RFC791。
###3.tcp###
1.TCP有两类端口号:11023知名端口号,102465535临时端口号。通信时,源端口号由操作系统选取,目的端口号是标准的。wireshark会对端口号开启名字解析,可以关闭,也可以手动修改名字解析,在程序目录的services的文件中。通用端口号及其对应的服务
2.三次握手
3.四次握手
4.TCP重置。对未知的系统发起一个http请求时,若80端口未打开,则,目标回复一个RST/ACK包,RST表示对80端口通信无效,ACK为seq+1。
5.更多参考RFC793|TCP/IP详解 卷1:协议
###4.udp###
1.udp不关心数据传输的可靠性,使用udp的协议一般用应用层的协议来保证其可靠性。
###5.icmp###
1.type类型为3表示目标不可达,code类型为3,表示端口不可达。[更多参考](www.iana.org/assignment/icmp-parameters)
2.type为8,code为0表示是一个echo请求,type为0,code为0表示是一个echo响应。两者通过可变域中的DATA变量的字符串来匹配。
3.此处不理解p122
可以使用增加ping的数据填充,当检测小网络时,强制将数据包分片。这样有什么用?
icmp的echo请求中使用的随机文本会引起攻击者兴趣。可以用来推测设备使用的操作系统,还可以在这个域中放置数据位作为反向链接的手段。
4.windows中的tracert路由跟踪使用icmp,原理是设置逐步增加的ttl,使得在到达每一个路由器的时候ttl减为0,路由器回复一个type为11,code为0的响应,表示不可达。响应的icmp数据包被叫做双头包,结尾部分含有 第一次echo请求数据包的ip层头和icmp数据拷贝。(也就是请求时的ip层及以上的数据包被写在了响应中的可变域中,检修的时候很有用),这样就获得了途中的路由器信息。
###1.DHCP###
1.DHCP比Bootstrap Protocol更加复杂,已经取代后者。后者用来给设备分配ip地址,或者用来加载镜像启动等等。前者分配ip地址、dns地址、网关地址。DHCP服务器也支持bp的客户端请求,并分配一个不回收的ip地址给他。了解即可。boopstrap wikipedia
2.DHCP续租过程(DORA)
3.当在租约内续租的时候,只需要RA两步即可。
4.dhcp选项完整列表
###2.DNS###
1.递归查询即dns服务器之间查询,查询时,递归标志位会被置位。如果dns服务器不知道当前域名的ip地址,那么该服务器会变成dns客户端向上一级dns服务器查询。
2.区域传送一般发生在要对dns服务器做冗余备份的时候发生,防止dns服务器挂了,域名解析不成功。
分为:AXFR和IXFR 整个区域和部分区域两种。传送时使用TCP协议保证可靠性。
3.个人总结:所以DNS可以用TCP和UDP的53端口来实现通信,一般是UDP。
不做过多描述。
本章目标:分析一些常见的网络流量
1.不理解,twitter和facebook对比分析
2.访问网站时,HTTP流量可能需要应用别的站点的资源,这会带来DNS查询。2n个dns会话代表有n个查询。
可用此法,查看请求的页面总共指向了哪些域名。
3.新版本的wireshark不存在summary选项,可以点击左下角的笔记图标查看捕获文件的信息。
4.实际案例分析(个人思考为主)
可以访问内网资源,不可以访问internet
不能上网第二个案例 不能上google
谁都无法上google
打印机故障
分公司之困
生气的开发者
-总结:能正确分析出原因的基础是理解各个协议的通信过程,了解正确时数据包的样子。
本章目标:网络卡是什么原因?如何解决?学习TCP的错误恢复和流量控制,学习如何网络慢的根源,了解基线测试。
1.TCP协议允许我们执行回溯分析,不会产生额外的流量,ICMP会。
2.TCP的重传机制:TCP在发送一个数据包之后开始计时,第一次默认超过一个RTT就会重传。正常情况下,会根据之前发送的数据包的往返时间,计算出一个平均的RTO,如果超过RTO没有收到ACK,就会重传,再没有收到ACK,RTO则变成两倍。windows默认重传5次,linux默认重传15次,均是可变的。重传的各个数据包之间除了identification和checksum不一致之外其它均一致。
3.TCP的重复确认:当接收端收到一个非预期的sequenceNum,也就是传输的tcp序号乱序了,那么就会回复一个ack,ack的值为需要的数据包的sequencenum的值。发送方连续收到三个ack的时候,就会停止一切传输,发送一个快速重传。
4.选择性ack:若开启选择性ack,也就是在快速重传之前,发送的数据包可以被保留,不需要再次重传。现在的TCP/IP协议栈都支持。
5.滑动窗口协议:滑动窗口协议体现了TCP的前瞻性。接收方通过控制ack包的窗口大小来告诉发送方下次发的数据包的量的大小。当窗口大小为0时,暂停传输。这时,发送方可以发送保活数据包来询问接收方是否可以继续发送,而接收方可以继续回复一个ack,窗口大小为0表示继续暂停传输。或者更新窗口大小继续传输。
疑问是:为什么要发送保活数据包,直接等待接收方的ack不就可以了吗?暂时的解释:保活数据包是用来保证接收方的主机在线的,确保他处于一个繁忙的状态。
6.观察重传应该在客户端观察,服务端收不到数据包客户端才会重传。
7.可以把重复确认看作是重传的对立面,是从服务端的角度出发的,没有收到数据包就会重复确认发送ack,
8.出现零窗口,则可以确定是服务端出了问题。
9.如果没有明显的重传数据包或者是ACK数据包或者是零窗口数据包还可以根据时间来判断速度慢的原因:
10.网络基线是用来在出问题的时候,所有的努力都尝试过了,还可以和正常时候的流量做对照,防患于未然。
站点基线
主机基线
应用程序基线
其它
1.抓包分析,可实现端口扫描:利用tcp的三次握手,结合conversation窗口查看packet包的数量来查看主机开放了哪些端口。
2.识别操作系统
被动识别:根据数据包中的特相关域来判断(不通操作系统数据包某些位默认值不一样)
主动识别:主动发起特定的数据包,从响应中判断,不是隐蔽的,但是高效。
《nmap networking scanning》
3.识别极光行动的流量,其间提到在span标签内用一个iframe内联帧达到不被用户发现的效果。
4.arp欺骗原理(arppoison是在受害者上抓包的)。感染过程:
5.CyberEYE是土耳其的工具,一种远程访问木马:Remote-access Trojan RAT
6.守护网络安全的人往往靠各种IDS,如果流量出发了IDS的签名,就会产生警报。
7.显示每个会话的初始syn数据包:(tcp.flags.syn 1 ) && (tcp.flags.ack0) 可以给每个会话着色然后看会话之间的关系。结合各种图像显示,比如IO Graph。
8.跟踪TCP Stream还可以恢复出原始的图像,注意要用十六进制编辑器修改。可惜没成功。:(
1.wlan(无线局域网)遵循802.11标准,有11个信道可以用。一个无线ap一般工作在1 6 11 其中一个信道之上。若为其它的信道,在信道4上嗅探会获得5上的部分流量。如果想在多个信道上切换嗅探,可以使用Kisnet,每秒跳跃10个信道,实现高效嗅探。同样,也可以用metageek公司的Wi-SPY USB硬件设备嗅探整个802.11频谱上的干扰,并用图形化显示分析。
2.无线网卡的四个工作模式:
3.windows嗅探无线数据包的工具:airpcap
4.linux上嗅探无线数据包:启用网卡的监听模式即可。命令 iwconfig
5.每一个WAP都有自己独特的BSS ID(基础服务设备识别码),每一个ap在其信道上可能有十几个客户端的流量。
6.无线网络安全
介绍一些进一步的学习资源
1.另两种数据包分析工具:tcpdump 、windump(tcpdump的windows版本)
2.Cain&Abel
3.python的scapy可以实现创建和修改数据包
4.cloudhark 在线分享数据包的website
5.各种数据包的通信样例:pcapr,可以用来学习和分析不同的协议
6.tcpreplay 重传pacap里的数据包
7.数据包分析课程:SANS SEC 503: Instrusion Detection In-Depth
8.数据包相关的博客
9.wireshark大学
10.官方wiki
读完整本书最大一些收获:
若想进一步钻研,需要做到:
3/12/2016 12:42:51 PM