月度归档:2018年12月

Tshark & TCPdump 学习笔记

Tshark & TCPdump
1. tshark -D 列出网卡(Windows中)
tshark -i ens33 捕获ens33网卡,在Linux中,ifconfig查看网卡代号 在windows中,tshark -D 查看网卡数字代号
tshark -w packets.pcap 捕获,并写入到当前目录的 packets.pcap 文件中,注意:需要对当前目录进行读写权限修改chmod -R
tshark -r 从文件中回读数据包
-c10 -c 限制在屏幕上显示的数据包数量,如-c10,只显示在捕获文件最开始的10个包
-V -v -V Tshark中显示冗余(包中的更多信息) -v Tcpdump中显示冗余(包中的更多信息)可以用多个v,增加显示层级,最多到3层,即
-vvv
-x -X -x Tshark中查看包的十六进制或Ascii形式 -X 为Tcpdump;Tcpdump 中也可以使用 -x(小写)只查看十六进制,-A 只查看Ascii
建议 在命令行用最少的信息显示最关心的内容,建议从默认的输出格式开始,当有特别的包需要深入分析时,再使用更详细的输出选项

  1. 名称解析
    ○ 定义:名称解析即是把(mac)地址和端口号转化为名称
    ○ -n 禁用Tshark的名称解析;Tcpdump中 -n 禁用IP名称解析
    -nn 禁用端口服务解析
    -N 禁用所有的名称解析功能,除非明确指明一些功能的启用
    Ex. sudo tshark -i 1 -Nt t:传输层(端口服务名称)解析,此命令,仅启用传输层解析

名称解析服务参考:
m MAC地址解析
n 网络地址解析
t 传输层(端口服务名称)解析
N 使用外网解析服务
C 使用当前DNS解析

  1. 应用(捕获+显示)过滤器
    Tshark
    -f 捕获过滤器 sudo tshark -ni ens33 -w packets.pcap -f “tcp port 80”
    -Y 显示过滤器 sudo tshark -ni 1 -w packets.pcap -Y “tcp.dstport == 80”

Tcpdump
‘ ‘ tcpdump 单引号构造,并附到命令最后,捕获、显示过滤器均如此 sudo tcpdump -r packets.pcap ‘tcp port 80’
-F 指定包含一系列过滤器的BPF文件 sudo tcpdump -nni ens33 -F dns_servers.bpf

技巧:
○ tcpdump可切将很大的捕获文件切小,然后再放到wireshark中分析
将一个包含大量各种类型的数据包,过滤需要的数据包出来另存为一个文件
Ex.
sudo tcpdump -r packets.pcap ‘tcp dst port 80’ -w http_packets.pcap

○ BPF文件中直接加注释是非法的,可以同时使用两份BPF文件,一份不包含任何注释,可载入到tcpdump中;另一份含有注释以供参考。

  1. 时间显示(仅Tshark)
    Tshark 默认显示相对(相对开始捕获时)时间戳
    -t -t 后加时间戳的值 Ex. -t ad 显示绝对时间

可用的时间显示格式
a 包被捕获的绝对时间(当前时区)
ad 包被捕获的绝对时间,带日期(当前时区)
d 自之前捕获的数据包以来的增量(时差)
dd 之前显示的数据包
e 亿元时间(1970年 1 月 1 日以来的秒数)
r 第一个数据包和当前数据包之间的运行时间
u 捕获数据包的绝对时间(UTC)
ud 带日期的捕获数据包的绝对时间(UTC)

  1. Tshark 中的总结统计
    ○ 使用 -z 参数,加上输出的名字即可生成统计信息
    ○ -z help 查看所有可用的统计
    ○ Ex.
    -z conv,ip 端点和会话
    -z http,tree 以表的形式分解HTTP请求和返回数据包
    -z follow,tcp,ascii,0 跟踪0号TCP流(会话统计最左列的序号表示一段流)
    -z follow,udp,ascii,192.168.1.5:23429 提供地址细节来知名要查看的数据流,如整个命令为 获取一个指明端点和端口的 UDP流

○ 常用的统计选项
ip_hosts,tree 在一段捕获中显示每个IP地址,并统计每个IP地址在所占流量的比例
io,phs 分层级统计在捕获文件中找到的所有协议
http,tree 显示关于HTTP请求和回应的统计
http_req,tree 显示每个HTTP请求和统计
smb,srt 显示关于Windows会话的SMB命令统计
endpoints,wlan 显示无线端点
expert 从捕获中显示专家信息(对话,错误等)

WireShark 学习笔记

  1. 主界面
    ○ 数据包列表
    ○ 数据包细节
    ○ 数据包字节
  2. 数据包高亮
    ○ View – Coloring Rules
  3. 偏好设置 Preference
    ○ Ctrl + Shift + P
  4. 配置方案
    ○ Edit – Configuration Profiles Ctrl + Shift + A

  5. 导出不同格式
    ○ Export Specified Packets 包含更多粒度控制

  6. 合并
    ○ File – Merge..

  7. 查找数据包
    ○ Ctrl + F
    选项
    § Display filter
    输入表达式进行筛选
    § Hex Value
    输入十六进制数进行搜索
    § String
    输入字符串进行搜索,可设置其它格式

Ctrl + N 查找下一个匹配的
Ctrl + B 查找上一个匹配的
8. 标记数据包
○ Ctrl + M 或 右键数据包
○ Shift + Ctrl + N
○ Shift + Ctrl +B

  1. 时间显示格式
    View – Time Display Format
    ○ 格式选项
    ○ 精度选项
    多个设备中比较包数据,要确认设备间时间时同步的,特别是做取证分析和检查问题时,可使用 网络时间协议(NTP)来确保网络设备的时间时同步的。

当包数据来自不同的时区的设备时间,可采用统一的UTC时间来避免干扰

  1. 捕获选项
    Capture – Options Ctrl + K
    ○ Input
    § Capture Filter 设置捕获过滤器

○ Output
§ 文件集合 – 捕获输出为多个文件的集合
Create a new file automatically after

○ Option
§ 设置触发条件停止捕获 Stop capture automatically after

  1. BPF(Berkeley Packet Filter)语法
    ○ expression(表达式)组成
    § primitives (原语)
    § qualifiers(限定词)
    § 操作符 && || !

  2. Capture Filters 捕获过滤器
    a. 主机名和地址过滤器
    § host + ip 或 主机名 捕获所有和那台主机相关的流量
    ether host + MAC地址 ether = Ethernet以太网 对MAC地址进行过滤
    src host + ip 来自某ip的流量
    dst host + ip dst = dispatch 发往某ip的流量

b. 端口过滤器
§ port
§ !port
§ dst port

c. 协议过滤器
icmp 只看 ICMP 流量
!ip6 不看 IPv6 流量

i. 协议域过滤器
BPF语法可以 通过检查协议头中的每一个字节来创建基于那些数据的特殊过滤器
Ex. 想要创建基于 ICMP 过滤器的类型域 来进行过滤,而类型域位于数据包的最开头,也就是偏移量为 0 的位置,可以通过在协议协定符后输入由方括号引起的字节偏移量 icmp[0],
进一步地,如只想得到代表目标不可达(类型3)信息的ICMP数据包,则令其等于3 icmp[0]==3,
可以在方括号中的偏移量后面 以冒号分隔加上一个字节长度 来指定希望返回给过滤器表达式的数据长度 icmp[0:2]==0x0301
可以在当前原语中加入 一个单一的 & 符号,来 指定希望在 这个字节中检查的比特位置
tcp[13]&4==4 带有 RST 标志的 TCP 数据包
tcp[13]&8==8 被设置 PSH 标志的 TCP 数据包

  1. Display Filters 显示过滤器
    ○ 方法一:
    使用 Fiter Expression 对话框,在 Capture 对话框右侧

○ 方法二:
使用过滤表达式语法,

  1. 保存过滤器规则
    Capture – Capture Filters 加号

  2. 在工具栏增加 显示过滤器
    在 Filters工具栏右侧 ➕


高级特性

  1. 端点 endpoint
    ○ 查看端点(Endpoint)统计
    Statistics – Endpoints

○ 查看网络会话(Conversation)
Statistics – Conversation
□ 可右键一个会话,创建过滤器
□ Address A :源端点 Address B :目的端点
□ 窗口顶部选项条切换 查看其它协议类型的会话0

  1. 协议分层结构 Protocol Hierarchy
    Statistic – Protocol Hierarchy
    查看 TCP IP DHCP等所占的百分比

  2. 名称解析 Name Resolution
    View – Name Resolution –
    Preference – Name Resolution
    潜在危险:对 DNS名称解析的依赖会产生额外的数据包,如捕获文件中含有恶意IP地址,试图解析它们会生成对攻击者控制的基础架构的查询,这样攻击者就可能知道你的动作,甚至把自己变成靶子。 可 Ctrl + Shift + P 关闭 Use an external network name resolver
    Ex.利用 LLMNR 名称解析缺陷劫持内网指定主机会话

  3. 使用自定义host文件

协议解析
20. 更换解析器
右键数据包 – Decode as..
可查看解析器源代码 Wireshark Develop

流跟踪
packet transcript:把来自不同包的数据重组成统一易读的形式
TCP: Ex. http FTP ctrl + alt + shift + T
UDP: Ex. DNS ctrl + alt + shift + U
SSL: Ex. https 需要密钥解密流量 ctrl + alt + shift + S
HTTP: 使用TCP流跟踪但没有完全解码 HTTP 数据时 ctrl + alt + shift + H

  1. 跟踪TCP、UDP流
    ○ 快捷键,如上
    ○ 右键数据包 – Follw –
  2. 跟踪 SSL 流

SSL = Secure Socket Layer Protocol 安全接口层协议,需要密钥解密流量

Preference – Protocol – SSL – Browse – ➕
以下同上
23. 数据包长度
○ Statistic – Packet Lengths
○ 可用于鸟瞰数据包,大致判断是否有明显的数据传输(存在很多较大的数据包) 或 协议控制(绝大多数数据包都很小)

图形展示
24. I/O图
○ Statistic – I/O Graph
○ 分析时,并排查看多个数据包的 I/O图,有助于发现他们之间的关系

  1. 双向时间图
    ○ 双向时间(round-trip time RRT):接受并确认数据包的时间,即包括你数据包抵达目的地 以及 确认接受到的数据包 所需的时间之和
    ○ 常用来寻找通讯中的慢点或者瓶颈,以确认是否存在延迟
    ○ Statistic – TCP Stream Graphs – Round Trip Time,如未显示,点击Switch Direction
    ○ 高延迟点在图中用多个高 Y 值的点表示,一个点就是一个数据包

  2. 数据流图
    ○ Statistic – Flow Graph
    ○ 可视化了解两个设备间的通讯
    ○ 有助于了解不熟悉的协议之间如何正常交互

  3. 专家信息
    ○ 存在于每个协议的解析器中,用于提醒你该协议的数据包中的特定状态
    ○ 4 类状态:
    § Chat 关于通信的基本信息
    § Note 正常通信中的异常数据包
    § Warning 非正常通信中的异常数据包
    § Error 数据包中的错误,或者解析器解析时的错误
    ○ Analysis – Expert information

安全学习(不定时更新)

2018年12月4日,开始系统学习网络安全知识

原则

  • 理论与实战结合,前期注重理论知识的扎实积累,实战部分,注意时间安排,勿占用全部时间

  • 写总结和记录,归纳总结再提升

  • 紧跟前沿,关注行业走向,向食物链顶端靠拢

  • 比赛是实践的实施方式之一,在前沿比赛中发现有价值的知识点,及时了解消化

  • 断、舍、离,不要在看似有价值,但成效甚微的比赛、事情上浪费过多精力,懂得取舍和价值评估

  • 持之以恒,切记一知半解。

路径

  • 《网络安全基础 – 应用与评估 5th》通过本书,系统路径学习网络安全基础,由于精力有限,不要求细致入微,但应有整体的了解,但重点学习的部分应有完全的理解和把握,切忌一知半解。
  • 结合书中的练习http://williamstallings.com/NetworkSecurity/styled-8/
  • 每半个月,满状态打一次比赛,事后必须复盘总结,但要有选择性选择比赛
  • 丰富履历和实战经验,争取大二下暑假去实习
  • 学习漏洞挖掘、自动化漏洞挖掘,AI 与 安全