linux系统下使用tcpdump进行抓包方法

我先看下实例代码:

1.常见参数

tcpdump -i eth0 -nn -s0 -v port 80

-i 选择监控的网卡

-nn 不解析主机名和端口号,捕获大量数据,名称解析会降低解析速度

-s0 捕获长度无限制

-v 增加输出中显示的详细信息量

port 80 端口过滤器,只捕获80端口的流量,通常是HTTP

2.

tcpdump -A -s0 port 80

-A 输出ASCII数据

-X 输出十六进制数据和ASCII数据

3.

tcpdump -i eth0 udp

udp 过滤器,只捕获udp数据

proto 17 协议17等效于udp

proto 6 等效于tcp

4.

tcpdump -i eth0 host 10.10.1.1

host 过滤器,基于IP地址过滤

5.

tcpdump -i eth0 dst 10.105.38.204

dst 过滤器,根据目的IP过滤

src 过滤器,根据来源IP过滤

6.

tcpdump -i eth0 -s0 -w test.pcap

-w 写入一个文件,可以在Wireshark中分析

7.

tcpdump -i eth0 -s0 -l port 80 | grep 'Server:'

-l 配合一些管道命令的时候例如grep

8.

组合过滤

and or &&

or or ||

not or !

9.

快速提取HTTP UA

tcpdump -nn -A -s1500 -l | grep "User-Agent:"

使用egrep 匹配 UA和Host

tcpdump -nn -A -s1500 -l | egrep -i 'User-Agent:|Host:'

10.

匹配GET的数据包

tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

匹配POST包,POST的数据可能不在包里

tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

11.

匹配HTTP请求头

tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"

匹配一些POST的数据

tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:"

匹配一些cookie信息

tcpdump -nn -A -s0 -l | egrep -i 'Set-Cookie|Host:|Cookie:'

12.

捕获DNS请求和响应

tcpdump -i eth0 -s0 port 53

13.

使用tcpdump捕获并在Wireshark中查看

使用ssh远程连接服务器执行tcpdump命令,并在本地的wireshark分析

ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i -

ssh ubuntu@115.159.28.111 'sudo tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i -

14.

配合shell获取最高的IP数

tcpdump -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20

15.捕获DHCP的请求和响应

tcpdump -v -n port 67 or 68

(0)

相关推荐

  • 在 Linux 命令行中使用 tcpdump 抓包的一些功能

    tcpdump 是一款灵活.功能强大的抓包工具,能有效地帮助排查网络故障问题. 以我作为管理员的经验,在网络连接中经常遇到十分难以排查的故障问题.对于这类情况, tcpdump 便能派上用场. tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛.由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析.它可以在后台启动

  • Linux基础学习之利用tcpdump抓包实例代码

    简介 很多时候我们的系统部署在Linux系统上面,在一些情况下定位问题就需要查看各个系统之间发送数据报文是否正常,下面我就简单讲解一下如何使用tcpdump抓包 网络数据包截获分析工具.支持针对网络层.协议.主机.网络或端口的过滤.并提供and.or.not等逻辑语句帮助去除无用的信息. tcpdump - dump traffic on a network tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些自己常用的参数

  • linux系统下使用tcpdump进行抓包方法

    我先看下实例代码: 1.常见参数 tcpdump -i eth0 -nn -s0 -v port 80 -i 选择监控的网卡 -nn 不解析主机名和端口号,捕获大量数据,名称解析会降低解析速度 -s0 捕获长度无限制 -v 增加输出中显示的详细信息量 port 80 端口过滤器,只捕获80端口的流量,通常是HTTP 2. tcpdump -A -s0 port 80 -A 输出ASCII数据 -X 输出十六进制数据和ASCII数据 3. tcpdump -i eth0 udp udp 过滤器,只

  • linux系统下的ssh登录和配置方法

    一 ssh的两种登录方式 1密码登录: [root@westos Desktop]# ssh root@192.168.122.26 Address 192.168.122.26 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! root@192.168.122.26's password: Last login: Tue Jan 17 13:27:29 2017 from

  • linux系统下定时执行php脚本的方法

    前言 在windows服务端定时执行某个程序代码还是比较简单的,只要在系统中做定时任务就可以了,目前刚刚接触到linux下的定时任务,这在好多公司的面试中都会提到的,而对于linux小白的我来说,是个不小的挑战,听单位的同事说,linux定时执行PHP脚本也是很简单的,linux系统实现计划任务一般采用crontab工具,好了,目前分享一个可以执行成功的php脚本,供大家参考了. 1. 在需要定时执行的PHP文件的第一行加 view plain copy #! /bin/local/php -q

  • Linux系统下Tomcat使用80端口的方法

    应用场景 很多情况下,我们在linux服务器上安装了tomcat或者nginx之类的软件. 当我们想用80端口的时候,如果不用root用户启动就会报错. 这是因为,对于linux系统而言,1024以下的端口,普通用户是无法使用的. 网上关于这方面的解决方案有两种,一种呢就是什么给文件root权限. 还有一种就是做端口的跳转.我觉得可能端口跳转可能比较安全吧.就着重介绍一下怎么配置. IPTABLES 在这里我们主要做的是本机的端口跳转,我主要说下如何设置以及删除. 关于iptables的详细信息

  • Linux系统下Nginx支持ipv6配置的方法

    一.查看现有nginx是否支持ipv6 需要执行以下命令,查看现有nginx是否支持ipv6,如果参数中具有--with-ipv6,则支持,如 果没有,则不支持,需要重新编译nginx. # 此处的nginx路径以您实际的nginx启动文件路径为准 /usr/local/nginx-1.14.0/sbin/nginx -V 二. 重新编译nginx支持ipv6 1.下载相对应的nginx安装包: 2.解压nginx的安装包: 3.进入nginx解压后的安装文件中,先执行 ./configure

  • linux系统下pip升级报错的解决方法

    Pip 安装 1.在python中提供了一个get-pip.py;下面是地址 https://bootstrap.pypa.io/get-pip.py 2.在Linux下执行curl https://bootstrap.pypa.io/get-pip.py | python 进行下载安装 这样很方便了  想装什么包就装什么包 Pip install xxx 注意:升级完python版本注意,可能你的yum命令不能使用,因为yum命令使用python写的 # vi /usr/bin/yum #打开

  • 在linux系统下安装python librtmp包的实现方法

    安装librtmp包需要依赖环境较多,机器上已经安装了python2.7版本,安装librtmp包之前需要先安装依赖环境. 1.安装gcc和依赖包 yum install gcc* python-devel libffi-dev* -y 2.安装librtmp 从git上下载源码: git clone git://git.ffmpeg.org/rtmpdump cd rtmpdump/librtmp/ make && make install 3.安装setuptools wget -S

  • Oracle VM VirtualBox 在linux系统下安装增强插件实现访问主机的共享文档方法

    一.安装增强插件 1 选择"设备"--"安装增强功能",然后可以看到在虚拟机的光驱中自动加载了增强iso的文件(VBoxGuestAdditions.iso) 2在linux 中挂载光驱 mount /dev/cdrom /mnt 3在将/mnt文件中的所有文件拷在/tmp目录下 cp -r /mnt/* /tmp 4在安装增强文件之前安装相应的包,安装后重启 yum install kernel yum install kernel-headers kernel-

  • 最新Linux系统下安装MySql 5.7.17全过程及注意事项

    1.cd /usr/local/ ##进入local目录 2.cp /home/soft/MySQL-5.7.15-Linux-glibc2.5-x86_64.tar.gz /usr/local/ ##拷贝mysql压缩到local目录 3.cd /usr/local/ ##进入local目录 4.tar -xzvf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz ##解压mysql压缩包 5.mv mysql-5.7.15-linux-glibc2.5-x8

  • Linux系统下使用rpm方式安装最新mysql5.7.17完整步骤

    1.下载以及前面的rpm安装步骤请参照 Linux 使用rpm方式安装最新mysql(5.7.16)步骤以及常见问题解决 2.四个rpm包安装完成后执行mysqld --initialize --user=mysql 如果提示目的文件夹内有文件: 直接将/var/lib/mysql/ 文件夹下的文件删除干净再次执行. 完成后 进入日志文件查找初始化生成的密码vi /var/log/mysqld.log 3.登录修改密码 mysql -u root -p 第一次更改密码前所有的操作都是禁止的,依次

随机推荐