tcpdump是linux系统下强大的数据包分析工具,通过将网卡设置为混杂模式来截取经过网口的每一个分组进行分析,(作用类似windows平台下wireshark等抓包工具)
www.tcpdump.org
dsniff一款非常流行的网络嗅探器软件包“www.monkey.org/~dugsong/dsniff”
功能:判断数据是否经过设备,内网是否有arp欺骗,分析数据走向,分析tcp建立状态,分析端口映射数据走向及分析应用层协议等内容
格式 tcpdump + 参数 + 表达式
tcpdump (-adeflnNOpqStvx) [-c 数量][-F 文件名][-i 网络接口][-r 文件名][-s naplen][-T 类型][-w 文件名][表达式]
-i 指定监听的网络接口
-e 在输出行打印出数据链路层的头部信息
-c 截取指定数目的数据包
-n 不把网络地址转换成名字(不做dns域名解析)
-nn 不把端口和网络地址转换成名称(端口以数字显示)
-x 将截取的数据包内容以十六进制打印出来
-X 将截取的数据包内容以ASCII文本形式打印出来
-s 截取指定大小的数据包,s0表示完整数据包
-W 将抓包内容保存到指定的文件并不打印出来
-a 将网络地址和广播地址转变成名字
-t 在输出的每一行不打印时间戳
-v 输出一个稍微详细的信息
-vv 输出详细的报文信息
-F 从指定的文件中读取表达式,忽略其他的表达式
-r 从指定的文件中读取包(这些包一般通过-w选项产生)
tcpdump -i eth2 dst 10.1.1.1 抓取去往目的主机为10.1.1.1的数据包(对应src)
tcpdump -i eth2 arp -nn (ip、tcp、udp、icmp、802.1Q等)缺省监听所有协议
tcpdump -i eth2 host 1.1.1.1 and icmp nn 抓取网卡eth2上去往目标地址为1.1.1.1的数据包(not !非运算)(and &&与运算)(or || 或运算)
抓取特殊报文
tcpdump -i eth0 ether[42:4]=0xc0a864c7 or ether[46:4]=0xc0a864c7