使用shell来发tcp包的方法

所属分类: 脚本专栏 / linux shell 阅读数: 1779
收藏 0 赞 0 分享

经常用tcpdump抓包来倒腾和学习,但怎么触发tcp包呢?写一个客户端程序,然后朝server上发包,肯定可以,但还有更简单的方法:

exec 8<>/dev/tcp/10.100.70.139/19006
echo -e "stats" >&8

用tcpdump抓包的结果为:

xxxxxx$ sudo tcpdump -iany port 19006 -Xnlps0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:56:54.177781 IP 10.100.70.139.34209 > 10.100.70.139.19006: Flags [S], seq 2048518213, win 43690, options [mss 65495,sackOK,TS val 1173337789 ecr 0,nop,wscale 8], length 0
    0x0000: 4500 003c 5ef8 4000 4006 39e6 0a64 468b E..<^.@.@.9..dF.
    0x0010: 0a64 468b 85a1 4a3e 7a19 e845 0000 0000 .dF...J>z..E....
    0x0020: a002 aaaa a20c 0000 0204 ffd7 0402 080a ................
    0x0030: 45ef b6bd 0000 0000 0103 0308 0000 0000 E...............
    0x0040: 0000 0000 0000 0000 0000 0000      ............
23:56:54.177794 IP 10.100.70.139.19006 > 10.100.70.139.34209: Flags [S.], seq 480321333, ack 2048518214, win 43690, options [mss 65495,sackOK,TS val 1173337789 ecr 1173337789,nop,wscale 8], length 0
    0x0000: 4500 003c 0000 4000 4006 98de 0a64 468b E..<..@.@....dF.
    0x0010: 0a64 468b 4a3e 85a1 1ca1 1f35 7a19 e846 .dF.J>.....5z..F
    0x0020: a012 aaaa a20c 0000 0204 ffd7 0402 080a ................
    0x0030: 45ef b6bd 45ef b6bd 0103 0308 0000 0000 E...E...........
    0x0040: 0000 0000 0000 0000 0000 0000      ............
23:56:54.177802 IP 10.100.70.139.34209 > 10.100.70.139.19006: Flags [.], ack 1, win 171, options [nop,nop,TS val 1173337789 ecr 1173337789], length 0
    0x0000: 4500 0034 5ef9 4000 4006 39ed 0a64 468b E..4^.@.@.9..dF.
    0x0010: 0a64 468b 85a1 4a3e 7a19 e846 1ca1 1f36 .dF...J>z..F...6
    0x0020: 8010 00ab a204 0000 0101 080a 45ef b6bd ............E...
    0x0030: 45ef b6bd 0000 0000 0000 0000 0000 0000 E...............
    0x0040: 0000 0000                ....
23:57:05.744655 IP 10.100.70.139.34209 > 10.100.70.139.19006: Flags [P.], seq 1:7, ack 1, win 171, options [nop,nop,TS val 1173340681 ecr 1173337789], length 6
    0x0000: 4500 003a 5efa 4000 4006 39e6 0a64 468b E..:^.@.@.9..dF.
    0x0010: 0a64 468b 85a1 4a3e 7a19 e846 1ca1 1f36 .dF...J>z..F...6
    0x0020: 8018 00ab a20a 0000 0101 080a 45ef c209 ............E...
    0x0030: 45ef b6bd 6865 6c6c 6f0a 0000 0000 0000 E...hello.......
    0x0040: 0000 0000 0000 0000 0000         ..........
23:57:05.744679 IP 10.100.70.139.19006 > 10.100.70.139.34209: Flags [.], ack 7, win 171, options [nop,nop,TS val 1173340681 ecr 1173340681], length 0
    0x0000: 4500 0034 a98b 4000 4006 ef5a 0a64 468b E..4..@.@..Z.dF.
    0x0010: 0a64 468b 4a3e 85a1 1ca1 1f36 7a19 e84c .dF.J>.....6z..L
    0x0020: 8010 00ab a204 0000 0101 080a 45ef c209 ............E...
    0x0030: 45ef c209 0000 0000 0000 0000 0000 0000 E...............
    0x0040: 0000 0000                ....
23:57:05.744830 IP 10.100.70.139.19006 > 10.100.70.139.34209: Flags [F.], seq 1, ack 7, win 171, options [nop,nop,TS val 1173340681 ecr 1173340681], length 0
    0x0000: 4500 0034 a98c 4000 4006 ef59 0a64 468b E..4..@.@..Y.dF.
    0x0010: 0a64 468b 4a3e 85a1 1ca1 1f36 7a19 e84c .dF.J>.....6z..L
    0x0020: 8011 00ab a204 0000 0101 080a 45ef c209 ............E...
    0x0030: 45ef c209 0000 0000 0000 0000 0000 0000 E...............
    0x0040: 0000 0000                ....
23:57:05.748555 IP 10.100.70.139.34209 > 10.100.70.139.19006: Flags [.], ack 2, win 171, options [nop,nop,TS val 1173340682 ecr 1173340681], length 0
    0x0000: 4500 0034 5efb 4000 4006 39eb 0a64 468b E..4^.@.@.9..dF.
    0x0010: 0a64 468b 85a1 4a3e 7a19 e84c 1ca1 1f37 .dF...J>z..L...7
    0x0020: 8010 00ab a204 0000 0101 080a 45ef c20a ............E...
    0x0030: 45ef c209 0000 0000 0000 0000 0000 0000 E...............
    0x0040: 0000 0000                ....

真的是爽歪歪。 能用shell搞定的事, 绝不用C/C++.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

更多精彩内容其他人还在看

shell脚本编程之循环语句学习笔记

这篇文章主要介绍了shell脚本编程之循环语句学习笔记,本文内容较简单,可以作为shell循环语句的备忘录,忘记怎么写时来看看吧~需要的朋友可以参考下
收藏 0 赞 0 分享

shell脚本编程之case语句学习笔记

这篇文章主要介绍了shell脚本编程之case语句学习笔记,本文代码中包含注释来说明case语句的使用,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本实现的阳历转农历代码分享

这篇文章主要介绍了Shell脚本实现的阳历转农历代码分享,本文是作者一个星期的工作成果,得来不易,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本实现复制文件到多台服务器的代码分享

这篇文章主要介绍了Shell脚本实现复制文件到多台服务器的代码分享,用在多机集群环境中非常方便,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本实现批量下载网络图片代码分享

这篇文章主要介绍了Shell脚本实现批量下载网络图片代码分享,本文基于下载Yahoo天气图标而写,图片地址需有一定的规则,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本实现检测文件是否被修改过代码分享

这篇文章主要介绍了Shell脚本实现的检测文件是否被修改代码分享,其实了解了原理就可以做很多事了,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本数组用法小结

这篇文章主要介绍了Shell脚本数组用法小结,本文讲解了数组声明、数组遍历、获取数组长度、删除数组元素、数组切片等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本批量重命名文件后缀的3种实现

这篇文章主要介绍了Shell脚本批量重命名文件后缀的3种实现,本文分别使用find + xargs +sed、for循环、rename等3种方法实现重命名文件后缀,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现的ls命令源码分享

这篇文章主要介绍了C语言实现的ls命令源码分享,本文是学习apue的练手之作,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下查找后门程序 CentOS 查后门程序的shell脚本

这篇文章主要介绍了Linux下查找后门程序 CentOS 查后门程序的shell脚本,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多