Linux系统里的抓包工具

嵌入式技术

1368人已加入

描述

有时也许想看一下某个网卡上都有哪些数据包,尤其是当你初步判定服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些IP在攻击了。

14.2.1 tcpdump工具

具体用法如下:

# tcpdump -nn -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
0946.647812 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 3649233742:3649233954, ack 443629343, win 251, length 212
0946.647976 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 212, win 253, length 0
0946.648337 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 212:504, ack 1, win 251, length 292
0946.648493 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 504:668, ack 1, win 251, length 164
0946.648562 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 668, win 252, length 0
0946.648651 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 668:928, ack 1, win 251, length 260
0946.648744 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 928:1092, ack 1, win 251, length 164
0946.648800 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1092, win 256, length 0
0946.648875 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1092:1368, ack 1, win 251, length 276
0946.648978 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1368:1532, ack 1, win 251, length 164
0946.649035 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1532, win 254, length 0
0946.649128 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1532:1808, ack 1, win 251, length 276
0946.649206 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1808:1972, ack 1, win 251, length 164
0946.649297 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1972, win 253, length 0
0946.649433 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1972:2248, ack 1, win 251, length 276
0946.649531 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2248:2412, ack 1, win 251, length 164
0946.649591 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2412, win 251, length 0
0946.649675 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2412:2688, ack 1, win 251, length 276
0946.649760 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2688:2852, ack 1, win 251, length 164
0946.649809 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2852, win 256, length 0
回车后会出现密密麻麻的一堆字符串,在按Ctrl+C之前,这些字符串一直在刷屏,刷屏越快说明网卡上的数据包越多。如果没有tcpdump命令,需要使用如下命令安装:
# dnf install -y tcpdump
  上例中,我们只需要关注第3列和第4列,它们显示的信息为哪一个IP+端口号在连接哪一个IP+端口号。后面的信息是该数据包的相关信息,如果不懂也没有关系。 其中-i选项后面跟设备名称,如果想抓取其他网卡的数据包,后面则要跟其他网卡的名字。-nn选项的作用是让第3列和第4列显示成“IP+端口号”的形式,如果不加-nn选项则显示 “主机名+服务名称”。 阿铭在shell脚本中也经常会用到tcpdump工具。你可能会问,shell脚本是自动执行的,那我们如何按快捷键Ctrl+C结束抓包呢?tcpdump还有其他的选项可以使用。
# tcpdump -nn -i ens33 -c 100
上例中,-c的作用是指定抓包数量,抓够了自动退出,不用我们人为取消。阿铭再给大家列几个常用的示例:

 

只抓22端口的包

 

# tcpdump -nn -i ens33 port 22

 

指定抓tcp的包,但是不要22端口的

 

# tcpdump –nn –i ens33 tcp and not port 22

 

只抓22和53端口的包

 

# tcpdump –nn –i ens33 port 22 and port 53
  14.2.2 wireshark工具

也许你在Windows下使用过wireshark这个抓包工具,它的功能非常强大。在Linux平台我们同样也可以使用它,只不过是以命令行的形式。wireshark的具体选项阿铭不再详细介绍,在日常工作中,tcpdump其实就已经够我们使用了。下面的用法是阿铭在工作中使用比较多的,希望你能掌握这些用法。
# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
我们要执行的命令是tshark,你的Linux默认是没有这个命令的,请使用如下命令安装:
# dnf install -y wireshark
然后再看看上面的抓包命令tshark,这条命令用于Web服务器,可以显示如下信息:
Jun 26, 2022 0944.017592529 CST" 116.179.32.105 ask.apelearn.com
GET  /question/96924473532
这类似于Web访问日志。若服务器没有配置访问日志,可以临时使用该命令查看一下当前服务器上的Web请求。在这里要注意的是,如果你的机器上没有开启Web服务,是不会显示任何内容的。
# tshark -n -i eth1 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"
上面的命令会抓取eth1网卡mysql的查询都有哪些,不过这种方法仅仅适用于mysql的端口为3306的情况,如果不是3306,请使用下面的方法:
# tshark -i eth1 port 3307 -d tcp.port==3307,mysql -z "proto,colinfo,mysql.query,mysql.query"  
 

 

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分