数据帧和数据包
数据帧
工作在数据链路层
目标mac地址
源mac地址
类型:使用了网络层的哪种协议。如:0800H表示IP协议
帧校验序列:校验数据完整性
数据包
网络层。在局域网中数据包封装在数据帧中
TCP,DNS等数据包
主机通信方式
单播:单台计算机对单台计算机。MAC地址与自己相匹配的数据帧
组播:单台计算机向所选定的一组主机发送数据包
广播:单台计算机向网络中所有计算机发送数据包
以太网卡工作状态
混杂模式:不管数据帧的目的MAC地址是否与自己的地址匹配,都接收
非混杂模式:只接收目的地址与自己地址相匹配的数据包,广播数据包和组播数据包也接收
wireshark ![](https://img-blog.csdnimg.cn/f2f4393add39474ba526088e835a0ee8.png)
统计工具 ![](https://img-blog.csdnimg.cn/b5c7b5bd3df54fb6ae708412fcf67647.png)
过滤器规则
过滤IP
例子:
ip.src eq 192.168.1.107 //显示来源IP
ip.dst eq 192.168.1.107 //显示目标IP
ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 // 来源IP和目标IP都显示
ip.addr eq 192.168.1.107 // 来源IP和目标IP都显示
ip.src eq 192.168.0.196 and not ip.dst eq 139.224.214.226 //显示来源IP地址为192.168.0.196,但目的地不是139.224.214.226的封包。
ip.src eq 192.168.0.0/24 //显示192.168.0.0/24网段
过滤端口
例子:
tcp.port eq 80 // 不管端口是来源的还是目标的都显示
udp.port eq 15000
tcp.port eq 80 or udp.port eq 80
tcp.srcport == 80 // 只显示tcp协议的来源端口80
tcp.dstport == 80 // 只显示tcp协议的目标端口80
过滤端口范围
tcp.port >= 1 and tcp.port <= 80
过滤协议
例子:
tcp,udp,arp,icmp,http,smtp,ftp,dns,msnms,ip,ssl,oicq,bootp等等
tcp or udp
排除arp包,如!arp 或者 not arp
过滤MAC(太以网头过滤)
eth.dst == A0:00:00:04:C5:84 // 显示目标mac
eth.dst==A0-00-00-04-C5-84
eth.src eq A0:00:00:04:C5:84 // 显示来源mac
eth.addr eq A0:00:00:04:C5:84 // 显示来源MAC和目标MAC都等于A0:00:00:04:C5:84的
过滤HTTP
http.host eq xxx.com
http.response.code==302 //显示http响应状态码为302的数据包
http.response==1 //显示所有的http响应包
http.request==1 //显示所有的http请求
http.request.method==POST //显示请求方式为POST的http请求包,注意POST为大写
http.request.uri==”/online/setpoint” //显示请求的uri,取值是域名后的部分
http.request.full_uri==” http://task.browser.360.cn/online/setpoint” //显示含域名的整个url
http.server contains “nginx” //显示http头中server字段含有nginx字符的数据包
http.server //显示http头中含有server字段的数据包
http.content_type == “text/html” //根据文件类型过滤http数据包
http.transfer_encoding == “chunked” //根据transfer_encoding过滤
http.request.version == “HTTP/1.1″ //显示HTTP/1.1版本的http包,包括请求和响应
支持逻辑运算,比较运算符
not:具有最高优先权
and
or
例:
显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。
(ip.src eq 10.4.1.12 or ip.src eq 10.6.0.0/16) and tcp.dstport > 200 and tcp.dstport < 1000 and ip.dst eq 10.0.0.0/8
跟踪流
tshark
通过tshark提取自己想要的数据
tshark -r XXX.pcap -T fields -e 数据的字段名 | egrep -vi "0$" | tr "/n"
-r:文件名及路径
-T:文本输出格式。(默认text)
fields:字段集合
-e:当 -T fields 时可以用于打印多个字段
取出数据流的紧急指针
tshark -r stego.pcap -T fields -e tcp.urgent_pointer | egrep -vi "0$" | tr '\n' ','
输出的紧急指针
67,84,70,123,65,110
使用python解析:
a=[67,84,70,123,65,110]
print("".join([chr(x)for x in a]))
TCPDUMP
在内网渗透时,拿到了服务器的webshell,但找不到提权漏洞等
攻击者进入服务器的shell
识别网卡列表:tcpdump -D
监视经过指定网卡的数据包:tcpdump -i 指定网卡 -w 保存为数据包(xx.pcap)
监视经过指定网卡,指定主机的telnet数据包:tcpdump -i 指定网卡 tcp port 23 192.168.1.1 -w 666.pcap
服务器进了了一些操作经过了我们监视的指定网卡-->服务器的流量被保存为流量包
攻击机将数据包保存到自己的电脑,然后使用wireshark等工具进行流量分析