Download e upload de arquivos via sessão telnet

11

Eu tenho um dispositivo de atendimento executando Linux OS . Eu posso conectar este dispositivo via sessão telnet. Existem alguns arquivos no dispositivo que eu gostaria de baixar e carregar com novos arquivos. Como eu posso fazer isso? Eu tenho muito pouco conhecimento sobre o sistema operacional Linux. Você poderia por favor ajudar!

    
por PRdeep Kumawat 04.12.2014 / 13:37

7 respostas

11

Isso depende de quais ferramentas estão instaladas no dispositivo cliente / suportadas pelo kernel.

Possíveis métodos para transferência de arquivos (não-ordenados):

  • ssh / sftp
  • codificando arquivos binários em formato exibível com base64 / uuencode e copiando de / para sua janela de terminal de telnet.
  • por meio de uma conexão tcp simples com netcat ou socat ou com bash e / dev / tcp
  • upload / download com wget ou curl de um servidor da web
  • servidor ftp com um cliente ftp da linha de comando
  • samba ou nfs mount

Leia Transferência simples de arquivos e Como obter o arquivo para um host quando tudo o que você tem é um console serial? para mais possibilidades.

Copie desktop.jpg do dispositivo para o seu pc com o método netcat / nc:

No seu PC, desative temporariamente (ou reconfigure, se possível) qualquer firewall e correr

netcat -l -p 10000 > desktop.jpg

e no dispositivo

busybox nc A.B.C.D -p 10000 < desktop.jpg

onde você precisa substituir o A.B.C.D pelo endereço IP do seu pc. Assim que a transferência foi bem sucedida, o processo netcat no seu pc deve parar automaticamente. Se não, algo está errado e você pode pará-lo com Ctrl + C

Para outra direção, apenas troque < e > dos dois lados. Faça primeiro um backup do original desktop.jpg ( cp desktop.jpg desktop_orig.jpg ).

    
por 04.12.2014 / 13:45
5

Eu não tenho ssh ou ftp (ou etc) no dispositivo.

Então, eu faço em seguida:

  1. telnet a.b.c.d | tee telnet.log
  2. faça o login e vá para o arquivo
  3. cat file.txt
  4. fechar a sessão (eu fecho o painel tmux)
  5. desmarque telnet.log do lixo

Deve ser fácil escrever um utilitário para fazer o download / upload do arquivo pelo telnet

    
por 25.02.2015 / 08:58
1

Tente com o comando rcp .

Use man rcp para mais informações, caso você queira automatizar as transferências.

A propósito, você sabe que isso é muito inseguro , certo?

    
por 25.02.2015 / 09:48
0

@jofel e todos os outros, muito obrigado pela sua gentil ajuda. Eu acho que o dispositivo tem um sistema operacional personalizado instalado, pois reconheceu apenas alguns comandos específicos do Linux. O netcat não é reconhecido pelo dispositivo. No entanto hoje consegui transferir o arquivo usando o comando tftp. Eu substituí com sucesso o arquivo desktop.jpg com este comando. O que eu fiz foi criar o servidor tftp no sistema de janelas. faça o login via telnet no dispositivo e execute estes comandos:

arquivo de download tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

carregar arquivo tftp -l desktop.jpg -g 192.168.0.249 69

    
por 06.12.2014 / 06:28
0

Eu fiz isso agora por esses métodos:

Crie um servidor ftp (instalando solerwinds) no sistema de janelas. faça o login via telnet no dispositivo e execute estes comandos:

Para baixar um arquivo:

tftp -l <FileName> -p <TFTP Server IP> <Port No of TFTP>

Exemplo:

tftp -l desktop.jpg -p 192.168.0.249 69

ou para fazer o upload do arquivo:

tftp -l <FileName> -g <TFTP Server IP> <Port No of TFTP>

Exemplo:

tftp -l desktop.jpg -g 192.168.0.249 69

a localização padrão do arquivo tftp é C:\TFTP-Root

    
por 27.02.2015 / 05:36
0

Acabei de enviar um arquivo de firmware de ~ 7 Kb para um sistema embarcado baseado no Linux da BusyBox através da porta serial.

Sem rede, sem utilitários de transferência de arquivos; sem utilitários Base64 ou qualquer coisa remotamente útil no dispositivo.

No host, codifiquei um firmware trivialmente no seguinte formato; um tipo de dump hexadecimal que consiste em literais de shell combinados com comandos printf :

printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"

basicamente comandos shell printf com \x sequências de escape que printf interpreta. No dispositivo que fiz:

device $ cat > firmware.sh

então usou o arquivo ASCII de minicom ( Ctrl-A S ) para enviar este arquivo para o host. Eu poderia ter usado o copy and paste, já que a quantidade de dados é pequena.

Em seguida, marquei o executável e executei o script printf :

device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin

Verificada usando md5sum do BusyBox que a soma de verificação firmware.bin no dispositivo corresponde à imagem original do firmware no host.

P.S. A sintaxe de aspas duplas do shell passa por \x verbatim porque não é uma sequência de escape reconhecida; daqui não temos que dobrar as barras invertidas.

    
por 18.01.2018 / 01:51
-1

Eu uso o seguinte método para baixar pequenos arquivos binários via telnet na minha caixa de janelas:

  1. executar hexdump -v -e '16 / 1 "% 02x" 'myfile.bin
  2. copia o despejo hexadecimal da tela
  3. cole o despejo hexadecimal nessa ferramenta on-line para criar um arquivo binário: link
por 15.09.2018 / 10:04