网络安全之tcpdump工具

引言

wireshark使用一款非常不错的抓包软件,在图形化界面占绝对统治地位;尽管其在字符界面下有些许选项可供使用,但终究不太方便,下面我再介绍一款NB的终端抓包工具 tcpdump

1、混杂模式

linux的网卡有混杂模式一说,当开启混杂模式后,网卡可以抓取所有的数据包,不管这个包是不是发给自己或自己发出的。由于随意截取别人的数据包存在一定安全问题,因此linux对于网卡默认是关闭混杂模式的,切只有root用户能够开启网卡混杂模式,开启方式:

ifconfig ethX promisc

2、常用选项

参数 参数说明 样例
-D 查看可通过哪些网卡抓包
-i name 指定通过该name网卡抓包
tcpdump -i eth0

tcpdump -i any

-w file 将抓取的包存入file文件中(该文件可被wireshark使用),默认打印到终端 tcpdump -i eth0 -w packet.pcap
-r file 读取前面抓取的包,将其作为输入 tcpdump -r file
-s length 抓取数据包的长度,默认68个字节;设置为0,表示抓取全部数据
-c count 抓取的数据包个数
-t  不显示时间戳
-S 打印绝对的sequence number
-x/-xx 按HEX打印每个包的头信息/包含链路信息
-n 不要将ip转换为主机名
-nn 不要转换ip与端口为对应的名字 tcpdump -nnSs 0 tcp port ! 22
-e 显示链路层信息,默认不显示
-F file 过滤条件从file文件内容获取,命令行内容忽略
-X/-XX 按HEX与ASCII打印每个包的头部信息/包含链路信息

3、过滤器

3.1、host

指定主机或网络抓取,可用ip或域名或网段

tcpdump host 192.168.12.1
tcpdump net 192.168.12.0/24

也可以设置源或则目的端

tcpdump [src|dst] host 192.168.12.1

指定抓取多个ip的包,不能加方向,如src或dst

tcpdump host 10.27.82.223 and \(10.27.82.222 or 10.27.82.221\)

排除方式指定目标

tcpdump ip net 192.168.12.0/24 and ! 192.168.12.3

3.2、port / portrange

指定端口/端口范围(0-1024)与主机,可同时指定方向

tcpdump tcp [src|dst] port 23 and [src|dst] host 192.168.12.1

排除某个端口的数据包

tcpdump tcp port ! 22

4、高级特性

4.1、指定数据包标志位

tcpdump ‘tcp[tcpflags] & (tcp-syn|tcp-fin) != 0‘ #获取开始或则结束的数据包
tcpdump ‘tcp[tcpflags] & (tcp-fin) != 0‘            #获取连接结束的数据包
tcpdump ‘tcp[tcpflags] & (tcp-syn) != 0‘            #获取连接开始的数据包

tcpdump -AXtnni eth0 ‘src host 192.168.12.1 and dst port 9876 and tcp[((tcp[12:1] & 0xf0) >> 2):4]=0x47455420‘      #获取GET请求数据

5、输出结果

打印格式:

系统时间              来源主机.端口            > 目标主机.端口      数据包参数

eg:20:09:53.584715 IP 100.109.225.128.30207 >  10.27.82.228.443: Flags [R.], seq 241841040, ack 631822021, win 58, options [nop,nop,TS val 144058912 ecr 3829113521], length 0

时间: 2024-10-13 23:28:20

网络安全之tcpdump工具的相关文章

mac平台使用adb、tcpdump工具抓取android手机网络包

在开发手机app的时候我们想看下自己app发出的网络请求,这个时候我们需要tcpdump工具进行抓包.要实现tcpdump抓包,需要以下几步: 这里以android 手机华为 P6为例子 1. 手机ROOT 要使用tcpdump工具,必需先获得手机的root权限,试过好几种root工具,最后发现360的一键ROOT工具可对P6这台机器root 下载PC版的360一键root工具,下载地址 , 然后用usb线将手机链接到电脑,同时打开USB调试(设置->开发人员选项->USB调试) 然后按照他的

《自拍教程53》Python_adb运行tcpdump工具

本篇文章与上一篇:Python_adb运行shell脚本类似, 上一篇主要的技术点是讲shell等文本文件,"隐藏"在Python代码里; 本篇文章主要是讲,如何将tcpdump这类二进制可执行文件, "隐藏"到Python代码里去. ::: story Android手机具备在线功能的应用程序,如果出现App无法连接网络, 或者网络异常等问题,开发一般需要测试同学抓包; 还有比如Android手机 流媒体协议(HTTP,HTTP Live, RTSP)测试等,开发

linux --- TCPdump 工具

一.TCPdump TCPdump[dump the traffic on a network],根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助去掉无用的信息. tcpdump使用参数指定要监视数据包的类型.地址.端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的. 二.TCPdump 用法 普通

tcpdump工具的使用

简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 实用命令实例 默认启动 tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监视指定网络接口的数据包 tcpdump -i

举例讲解Linux中tcpdump工具的应用

先来看一个比较基本的用法: tcpdump -i eth0 其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦. tcpdump的具体参数及意义: -i:指定tcpdump监听的网络接口 -s:指定要监听数据包的长度 -c:指定要监听的数据包数量,达到指定数量后自动停止抓包 -w:指定将监听到的数据包写入文件中保存 -A:指定将每个监听到的数据包以ACSII可见字符打印 -n:指定将每个监听到数据包中的域名转换成IP地址后显示 -nn:指定将每个监听到的数据包中的域名转换成IP.端口从

运维工程师必会工具(Nmap和TCPdump)

1.NMap工具 主要功能:探测主机是否在线.扫描主机开放端口和嗅探网络服务,用于网络探测和安全扫描. NMap支持很多扫描技术,例如:UDP.TCPconnect().TCPSYN(半开扫描).ftp代理(bounce攻击).反向标志.ICMP.FIN.ACK扫描.SYN扫描和null扫描. 命令格式:Nmap [ 扫描类型 ] [ 通用选项 ] { 扫描目标说明 } 扫描类型: 通用选项: 扫描目标: 端口的三种状态: Open:意味着目标主机能够在这个端口使用accept()系统调用接受连

Linux系统安全工具之tcpdump

1.安装系统自带的tcpdump工具 yum install tcpdump -y 2.监视主机的数据包 [[email protected] ~]# tcpdump  -i  eth0     --监控本机的eth0网卡 [[email protected] ~]# tcpdump host 192.168.1.250  and \(192.168.1.251  or 192.168.1.252 \)  --截获多个IP的数据包 [[email protected] ~]# tcpdump -

开发与测试分析工具集锦(网络摘要)不断更新

一.测试工具 (一)软件测试工具 (二)网络分析工具 1.TcpDump工具(网络安全分析工具 ):抓包分析                     tcpdump 是一个运行在命令行下的嗅探工具.它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包.tcpdump 是一个在BSD许可证下发布的自由软件.                     tcpdump是非常强大的网络安全分析工具,可以将网络上截获的数据包保存到文件以备分析.可以定义过滤规则,只截获感兴趣的数据包,

【转载】linux环境下tcpdump源代码分析

linux环境下tcpdump源代码分析 原文时间 2013-10-11 13:13:02   原文链接   主题 Tcpdump 作者:韩大卫 @ 吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分核心代码. Tcpdump 的使用目的就是打印出指定条件的报文,即使有再多的正则表达式作为过滤条件.所以只要懂得tcpdump -nXXi eth0 的实现原理即可. 进入main之前,先看一些头文件 n