TcpDump 抓包工具
(很容易的,别有压力,朋友)
1.首先看一下它的作用:TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,
并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
2.举个例子
jason@jason-Inspiron-3542:~$ sudo tcpdump -i wlan0 -A host 192.168.0.140 and port 8080
(1) (2) (3) (4) (5)
(1)sudo :因为TcpDump的使用需要root权限,所以sudo一下,或者直接 sudo -s 后输入root密码,切换到root用户--> root@jason-Inspiron-3542:~$
(2)-i : -i (i 代表 interface) 指定tcpdump 需要监听的接口. 如果没有指定, tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口
(不包括 loopback 接口).一但找到第一个符合条件的接口, 搜寻马上结束.
-i eth0 : 只抓经过接口eth0的包
-i wlan0 : 只抓取经过接口wlan0的包
(这里-i 后面接什么要看具体情况,终端下输入ifconfig显示如下:
root@jason-Inspiron-3542:~# ifconfig
eth0 Link encap:以太网 硬件地址 74:e6:e2:08:89:32
UP BROADCAST MULTICAST MTU:1500 跃点数:1
......
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
......
wlan0 Link encap:以太网 硬件地址 4c:bb:58:1d:43:cf
inet 地址:192.168.0.140 广播:192.168.0.255 掩码:255.255.255.0
inet6 地址: fe80::4ebb:58ff:fe1d:43cf/64 Scope:Link
......
一共有三个eth0、lo、wlan0
-i lo :不可用
-i wlan0 :以太网,必须wlan0端口选项inet地址才是可用的,这里wlan0中是有inet地址的,所以可用
-i eth0 : 以太网,必须eth0端口选项inet地址才是可用的,这里eth0中是没有inet地址的,(所以我这里是不可用)
(3)-A 表示以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时,
可方便查看数据(nt: 即Handy for capturing web pages).
(4)host 可以是一个ip地址, 也可以是一个主机名.
(5)port 8080:监听8080端口的数据传输包
监听主机192.168.0.140数据传输包
sudo tcpdump -i wlan0 -t -A -s 0 host 192.168.0.140
sudo tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i :指定监听的网络接口。
-i eth1 : 只抓经过接口eth1的包
-i wlan0 : 只抓取经过接口wlan0的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : count
只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
异常:
1.tcpdump: WARNING: eth0: no IPv4 address assigned
没有给 eth0 分配 IPv4 地址,输入ifconfig 查看 eth0 端口 IPv4的inet地址为空,
则使用不了eth0端口,具体查看上文。
2.tcpdump: wlan0: You don't have permission to capture on that device
说明你不是root用户操作,没有权限,切换到root用户就ok了
(很容易的,别有压力,朋友)
1.首先看一下它的作用:TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,
并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
2.举个例子
jason@jason-Inspiron-3542:~$ sudo tcpdump -i wlan0 -A host 192.168.0.140 and port 8080
(1) (2) (3) (4) (5)
(1)sudo :因为TcpDump的使用需要root权限,所以sudo一下,或者直接 sudo -s 后输入root密码,切换到root用户--> root@jason-Inspiron-3542:~$
(2)-i : -i (i 代表 interface) 指定tcpdump 需要监听的接口. 如果没有指定, tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口
(不包括 loopback 接口).一但找到第一个符合条件的接口, 搜寻马上结束.
-i eth0 : 只抓经过接口eth0的包
-i wlan0 : 只抓取经过接口wlan0的包
(这里-i 后面接什么要看具体情况,终端下输入ifconfig显示如下:
root@jason-Inspiron-3542:~# ifconfig
eth0 Link encap:以太网 硬件地址 74:e6:e2:08:89:32
UP BROADCAST MULTICAST MTU:1500 跃点数:1
......
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
......
wlan0 Link encap:以太网 硬件地址 4c:bb:58:1d:43:cf
inet 地址:192.168.0.140 广播:192.168.0.255 掩码:255.255.255.0
inet6 地址: fe80::4ebb:58ff:fe1d:43cf/64 Scope:Link
......
一共有三个eth0、lo、wlan0
-i lo :不可用
-i wlan0 :以太网,必须wlan0端口选项inet地址才是可用的,这里wlan0中是有inet地址的,所以可用
-i eth0 : 以太网,必须eth0端口选项inet地址才是可用的,这里eth0中是没有inet地址的,(所以我这里是不可用)
(3)-A 表示以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时,
可方便查看数据(nt: 即Handy for capturing web pages).
(4)host 可以是一个ip地址, 也可以是一个主机名.
(5)port 8080:监听8080端口的数据传输包
监听主机192.168.0.140数据传输包
sudo tcpdump -i wlan0 -t -A -s 0 host 192.168.0.140
sudo tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i :指定监听的网络接口。
-i eth1 : 只抓经过接口eth1的包
-i wlan0 : 只抓取经过接口wlan0的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : count
只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
异常:
1.tcpdump: WARNING: eth0: no IPv4 address assigned
没有给 eth0 分配 IPv4 地址,输入ifconfig 查看 eth0 端口 IPv4的inet地址为空,
则使用不了eth0端口,具体查看上文。
2.tcpdump: wlan0: You don't have permission to capture on that device
说明你不是root用户操作,没有权限,切换到root用户就ok了