Linux下抓包命令行tcpdump与发包命令行curl详细讲解

一、Linux下抓包工具tcpdump详细介绍

(一)简介

​ Tcpdump是Linux平台下一个以命令行方式运行的网络流量监测工具,它能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。


(二)使用场景

​ 在win系统上,我们可以利用wireshark工具来抓包,可是在没有界面的Linux系统终端,我们需要进行抓包分析,就需要用到Tcpdump。

​ 栗子:在复现Metasploit类型的poc,当我们想分析其生成的数据包,这个时候在没有wireshark工具下,我们就可以使用tcpdump来抓包分析。


(三)参数

[外链图片转存失败(img-bdcZolbI-1565613361490)(assets/1565177024854.png)]

1.常见参数:-i

​ 功能:指定要抓取数据包的网卡名称

​ 栗子:

tcpdump -i eth0 # 只抓取eth0网卡的数据包,可以通过ifconfig命令来查看有什么网卡
2.常见参数:-c

​ 功能:指定抓取包的个数

​ 栗子:

tcpdump -i eth0 -c 10 # 只抓取eth0网卡下10个数据包
3.常见参数:-w

​ 功能:保存抓好的数据包到xxx.pcap

​ 栗子:

tcpdump -i eth0 -c 10 -w packets.pcap # 只抓取eth0网卡下10个数据包并保存到packes.pcap文件下
4.数据过滤参数
  1. 过滤主机

    tcpdump -i eth0 host 192.168.1.1 # 只抓取源ip和目的ip是192.168.1.1的数据包
    tcpdump -i eth0 src host 192.168.1.1 # 只抓取源ip是192.168.1.1的数据包
    tcpdump -i eth0 dst host 192.168.1.1 # 只抓取目的ip是192.168.1.1的数据包
    
  2. 过滤端口

    tcpdump -i eth0 port 25 # 只抓取源端口和目的端口是25的数据包
    tcpdump -i eth0 src port 25 # 只抓取源端口是25的数据包
    tcpdump -i eth0 dst port 25 # 只抓取目的端口是25的数据包
    
  3. 过滤协议

    tcpdump -i eth0 arp # 只抓取arp协议
    tcpdump -i eth0 ip	# 只抓取ip协议
    tcpdump -i eth0 tcp	# 只抓取tcp协议
    tcpdump -i eth0 udp	# 只抓取udp协议
    tcpdump -i eth0 icmp # 只抓取icmp协议
    
  4. 栗子

    # 抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数据包
    tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'
    

二、linux下发包工具curl详细介绍

(一)简介

​ curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。


(二)使用场景

​ 在无界面的linux终端系统中,如果我们需要发送http数据包,没有浏览器工具情况下,我们就可以用到curl命令行工具,自定义发送http请求包,功能同python中使用requests模块来自定义发送数据包。


(三)参数

1. 查看网页源码
curl www.sina.com # 直接在 curl 命令后加上网址,就可以看到请求返回来的网页源码
curl -o sina.html www.sina.com # 如果要把这个网页保存下来,可以使用-o参数
2.自动跳转
# 使用-L参数,curl就会跳转到新的网址
curl -L www.sina.com
# 输入上面的命令,结果自动跳转为www.sina.com.cn,如果不加-L,会显示302状态码
3. 请求头与相应头信息
# curl的-v查看请求响应头部信息 
curl -v www.sina.com
# -i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的头信息。
# curl -i www.sina.com
4.显示通信过程
# -v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。
curl -v www.sina.com
#  如果觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程。
curl --trace output.txt www.sina.com
curl --trace-ascii output.txt www.sina.com
# 运行后,打开 output.txt 文件查看。
5.发送表单
# GET请求
curl www.sina.com/form.cgi?data=ls
# POST请求
# curl就要用到--data或者-d参数
curl -X POST --data "data=xxx" www.sina.com/form.cgi
# 如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode
curl -X POST --data-urlencode "data=xx" www.sina.com/form.cgi
6. HTTP动词
# curl 默认的 HTTP 动词是 GET,使用 -X 参数可以支持其他动词。
curl -X POST www.sina.com
curl -X DELETE www.sina.com

7. User-Agent字段
# 这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页
curl --user-agent "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36" www.sina.com

8. 增加头信息
# 使用--cookie参数,可以让curl发送cookie
curl --cookie "name=xxx" www.sina.com

9. 增加头信息
# 有时需要在 http request 之中,自行增加一个头信息。--header 参数就可以起到这个作用。
curl --header "Content-Type:application/json www.sina.com

10. HTTP认证
# 有些网域需要 HTTP 认证,这时 curl 需要用到 --user 或者 -u 参数。
curl --user name:password www.sina.com

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值