如何通过 bash 连接到 telnet 服务?

如何通过 bash 连接到 telnet 服务?

我想做的是通过 telnet 连接并下载数据库,但我找不到方法,我用 python 尝试过,但它只关闭连接,所以我想知道是否有办法使用 bash 脚本来完成

当然,发生的情况是它是一个条目检查器,连接到它的唯一方法是通过 telnet,我知道它不是最好的,但它就是这样。

我设法通过期望解释器建立连接,现在我只需在设备上移动即可执行此命令

这是我的代码

#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd  "solokey"

spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"

答案1

我知道 telnet 不是传输服务,但它是能够访问数据的唯一选择,我保留了代码,以防它对某人有用,这样通过 telnet 访问生物识别检查器,我们下载了它的数据库

#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd  "solokey"

spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"

已经只在客户端,我们执行

nc 192.168.1.169 6666 <ZKDB.db.bak

答案2

Telnet 是远程命令执行器,不适合作为 FTP 客户端。

你能做的就是让网猫侦听本地端口,然后 telnet 到远程主机,并使用 netcat 在本地端口上传输远程文件,并将输出重定向到本地文件。

在您的本地主机上:

nc -l -p <port> > <output_file>

在远程计算机上,使用 telnet 执行以下命令:

nc -w 3 <local_host_ip> <port>  < <input_file>

另外,由于您无法使用 ssh、ftp,因此您可以公开 http 服务器(如果已安装,则使用 python SimpleHTTPServer)或远程服务器上的任何 http 服务器,然后使用 wget 下载文件。

在远程主机上:

cd <to_the_directory_to_expose>
python -m SimpleHTTPServer

在本地机器上:

wget http://<remote_host_ip>:8000/<filename>

相关内容