1. 嗅探器sniffer的工作原理
能捕获经过该网络设备的报文,通过分析网络流量,找出关键信息,解决网络问题。
不同于键盘捕获程序,如keylogger利用中断或钩子技术,Sniffer将网络接口置成适当的模式,如杂收。Sniffer通常位于局域网LAN或关键设备上,如路由器、网关等。根据网络协议分层模型,在链路层到物理层之间,数据转化为帧(frame)为单位发送,物理层包括网卡、网线等,到达目的机器后,再重组。
在局域网上,数据的发送和接受通常采用广播的形式 即位于同一个局域网上A和B通信时,若A将数据帧发送给B,通过集线器(Hub)或WIFI,所有的机器都可以收到,但由于数据帧头中含有源、目标机器的物理地址(即网卡的MAC),只有B机器的物理地址同A发送的数据帧中的目标物理地址一致,则这些数据帧可被B机器捕获,而其他机器则简单忽略。如果物理接口置成杂收模式(promiscuous mode),则到达该接口的数据帧都会被链路层的上层接收。Sniffer完成的工作就是通过特殊的驱动程序,将接口设置成杂收模式,捕获共享介质上的数据包。
2. sniffer的使用
by ipv4
按source.ip
by destination.ip
by protocol
- by tcp(dns uses tcp)
- by dns
- by udp(dns is performed by udp)
DNS uses both tcp&udp
DNS是一种域名解析服务,它同时使用TCP和UDP协议
- DNS在区域传输的时候使用TCP协议,因为这样可以保证数据的准确性和完整性。区域传输是指辅域名服务器和主域名服务器之间的数据同步。
- DNS在其他时候使用UDP协议,因为这样可以提高响应速度和降低服务器负载。UDP协议适合传输小于512字节的数据包。