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

shell – 使用netcat将命令发送到套接字

发布时间:2020-12-15 21:17:40 所属栏目:安全 来源:网络整理
导读:我正在向自定义协议TCP服务器发送文本命令.在下面的示例中,我发送2个命令并接收回写的响应.它在telnet和netcat中按预期工作: $nc 192.168.1.186 9760command1command2theresponse 我批量试用时不工作: @echo offcd..cd C:ncnc 192.168.1.186 976000LI002L
我正在向自定义协议TCP服务器发送文本命令.在下面的示例中,我发送2个命令并接收回写的响应.它在telnet和netcat中按预期工作:

$nc 192.168.1.186 9760
command1
command2
theresponse

我批量试用时不工作:

@echo off
cd..
cd C:nc
nc 192.168.1.186 9760
00LI002LE99
end

请帮帮我.

解决方法

当您以交互方式运行nc时,它会从标准输入(您的终端)获取输入,因此您可以与它进行交互并发送命令.

在批处理脚本中运行它时,需要将命令提供给nc的标准输入流 – 只需将命令放在以下行中就不会这样做;它会尝试将它们作为完全独立的批处理命令运行.

您需要将命令放入文件,然后将文件重定向到nc:

nc 192.168.1.186 9760 < commands.txt

在Linux上,您可以使用“here document”将命令嵌入脚本中.

nc 192.168.1.186 9760 <<END
command1
command2
END

但我还没有找到Windows批处理脚本的等价物.它有点难看,但您可以将命令回显给临时文件,然后将其重定向到nc:

echo command1^

command2 > commands.txt

nc 192.168.1.186 9760 < commands.txt

使用^ escape字符可以将文字换行符放入脚本中.将换行符添加到echo命令的另一种方法(从this question开始):

echo command1 & echo.command2 > commands.txt

理想情况下,我们只是直接管道到nc(这对我来说不太合适,但我现在无法用nc尝试它):

echo command1 & echo.command2 | nc 192.168.1.186 9760

(编辑:李大同)

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

    推荐文章
      热点阅读