加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash中侦听返回的UDP数据包

发布时间:2020-12-15 21:10:46 所属栏目:安全 来源:网络整理
导读:我为了学习目的而使用bash(4.0.33)网络支持,并尝试在bash中创建端口扫描程序.对于TCP,我打开了一个TCP / IP套接字 exec 3 /dev/tcp/192.0.2.1/80 如果连接被拒绝或连接系统调用超时,则采取适当的措施.但是,使用UDP,我很容易发送数据包 echo /dev/udp/192.0.2
我为了学习目的而使用bash(4.0.33)网络支持,并尝试在bash中创建端口扫描程序.对于TCP,我打开了一个TCP / IP套接字

exec 3<> /dev/tcp/192.0.2.1/80

如果连接被拒绝或连接系统调用超时,则采取适当的措施.但是,使用UDP,我很容易发送数据包

echo> /dev/udp/192.0.2.1/53

但如何从正确的套接字读取返回的数据包?我的意思是发送到192.0.2.1的UDP数据报具有来自临时端口范围的源端口,因此我不知道应该读取/dev/udp/192.0.2.1/目录中的哪个套接字.或者,如果没有像tcpdump这样的外部工具,这不是可行的吗?

解决方法

Bash的UDP支持不是很好,并且是在许多发行版(Debian / Ubuntu及其衍生产品)上编译出来的.推荐的工具是netcat:

nc -u 192.0.2.1 53

注意:使用coproc或命名管道从同一netcat进程读取和写入.不要先发送数据包并尝试捕获回复netcat.

尽管如此,Bash确实是错误的语言.考虑使用Python,它可以更好地处理UDP和二进制数据,只需要几行代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读