最近在渗透靶场的时候使用到一个命令echo " " | nc -v -n -w1 192.168.80.135 70-100,其中nc用于扫描端口开放情况并输出banner,好奇其中echo起到了什么作用,于是做了以下几种尝试。
1. 原命令 echo " " | nc -v -n -w1 192.168.80.135 70-100, 执行命令后输出为
80端口开放,因此其信息被成功输出出来。
2. 将echo引号中的空格删除。echo "" | nc -v -n -w1 192.168.80.135 70-100 输出结果如下
可以看到,开放的80端口被成功检测出来,但是并没有继续输出banner信息。
3. 删除echo,直接运行后面的命令。nc -v -n -w1 192.168.80.135 70-100 输出信息如下
发现输出卡在80端口处很久之后才继续运行,且并没有输出banner。
查了一下管道符的作用是将前一个命令的输出作为后一个命令的输入,但是依然不太能够理解为什么出现以上的现象。记录一下方便后边解决,也希望如果有大佬明白的话解释一下,万分感谢。