嵌入式技术
有时也许想看一下某个网卡上都有哪些数据包,尤其是当你初步判定服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些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 5314.2.2 wireshark工具
# 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"
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !