Téléchargement et téléchargement de fichiers via une session Telnet

15

J'ai un appareil d'assistance en marche Linux OS. Je peux connecter cet appareil via une session telnet. Il y a des fichiers dans l'appareil que je voudrais télécharger et télécharger avec de nouveaux fichiers. Comment puis je faire ça? J'ai très peu de connaissances sur Linux OS. Pourriez-vous s'il vous plaît aider!

entrez la description de l'image ici

PRdeep Kumawat
la source
Combien de fichiers souhaitez-vous transférer? Pouvez-vous coller quelque part la sortie de busybox --helpet ls -l /binet ls -l /usr/bin, s'il vous plaît.
jofel
en fait, je veux changer l'arrière-plan du bureau de cet appareil de présence et je veux y télécharger le logo de notre entreprise dans l'appareil. Ces options ne sont pas disponibles dans le menu de l'appareil (j'ai déjà demandé cette option au fournisseur). Je l'ai donc connecté via une session telnet et j'ai trouvé desktop.jpg et d'autres fichiers image dans l'appareil. Maintenant, je veux obtenir ces fichiers sur mon système local. et après avoir vérifié la même chose, je téléchargerai mes images souhaitées dans l'appareil. Il mettra donc à jour l'image de l'appareil en fonction de mes images souhaitables. Je veux changer au moins l'image de bureau qui est disponible dans l'appareil à / mnt / mtdblock / image
PRdeep Kumawat
Si vous souhaitez ajouter des informations la prochaine fois, veuillez modifier votre question au lieu d'ajouter des commentaires.
jofel

Réponses:

12

Cela dépend des outils installés sur le périphérique client / pris en charge par le noyau.

Méthodes possibles de transfert de fichiers (non ordonnées):

  • ssh / sftp
  • encoder des fichiers binaires dans un format affichable avec base64 / uuencode, puis copier depuis / dans la fenêtre de votre terminal telnet.
  • via une simple connexion tcp avec netcatou socatou avec bashet / dev / tcp
  • upload / download avec wgetou curldepuis un serveur web
  • serveur ftp avec un client ftp en ligne de commande
  • montage samba ou nfs

Lisez Transfert de fichiers simple et Comment obtenir un fichier sur un hôte alors que vous n'avez qu'une console série? pour plus de possibilités.


Copiez desktop.jpgde l'appareil sur votre PC avec la méthode netcat / nc:

Sur votre PC, désactivez temporairement (ou reconfigurez si possible) tout pare-feu et exécutez

netcat -l -p 10000 > desktop.jpg

et sur l'appareil

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

où vous devez remplacer ABCD par l'adresse IP de votre PC. Dès que le transfert a réussi, le processus netcat sur votre PC devrait s'arrêter automatiquement. Sinon, quelque chose ne va pas et vous pouvez l'arrêter avecCtrl+C

Pour l'autre sens, il suffit d'échanger <et des >deux côtés. Faites d'abord une sauvegarde de l'original desktop.jpg( cp desktop.jpg desktop_orig.jpg).

jofel
la source
J'ai essayé l'utilitaire WinSCP et essayé de connecter l'appareil en utilisant le protocole ftp / sftp / scp. mais il ne se connecte pas. Je suis capable de connecter l'appareil via la commande telnet et de voir les fichiers que je veux récupérer et télécharger à nouveau sur l'appareil.
PRdeep Kumawat
Votre appareil n'a probablement pas de serveur ssh ou ftp en cours d'exécution.
jofel
Eh bien, je ne sais pas .. Y a-t-il un autre moyen d'obtenir / télécharger des fichiers à partir de cet appareil?
PRdeep Kumawat
Vous pouvez également utiliser szpour envoyer les fichiers via le terminal. Vous en aurez besoin des deux côtés.
slm
@PRdeepKumawat J'ai étendu la réponse avec un exemple.
jofel
6

Je n'ai aucun ssh ou ftp (ou etc) sur l'appareil.

Donc, je fais ensuite:

  1. telnet a.b.c.d | tee telnet.log
  2. connectez-vous et accédez au fichier
  3. cat file.txt
  4. fermer la session (je ferme le volet tmux)
  5. clair telnet.logde poubelle

Il devrait être facile d'écrire un utilitaire pour télécharger / télécharger un fichier sur telnet

user104415
la source
1

Essayez avec la rcpcommande.

Utilisez man rcppour plus d'informations si vous souhaitez automatiser les transferts.

Au fait, vous savez que c'est très précaire , non?

YoMismo
la source
1

Je viens de télécharger un fichier de firmware de ~ 7 Ko sur un système embarqué Linux basé sur BusyBox via le port série.

Aucun réseau, aucun utilitaire de transfert de fichiers; pas d'utilitaires Base64 ou quoi que ce soit d'utile à distance sur l'appareil.

Sur l'hôte, j'ai encodé trivialement un firmware au format suivant; une sorte de vidage hexadécimal composé de littéraux shell combinés avec des printfcommandes:

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

shell essentiellement des printfcommandes avec des \xséquences d'échappement qui printfinterprète. Sur l'appareil, j'ai fait:

device $ cat > firmware.sh

puis utilisé le minicomfichier ASCII send ( Ctrl-AS) pour envoyer ce fichier à l'hôte. J'aurais pu simplement utiliser le copier-coller, car la quantité de données est petite.

Ensuite, marqué exécutable et exécuté le printfscript:

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

Vérifié à l'aide de BusyBox md5sumque la firmware.binsomme de contrôle sur le périphérique correspond à l'image du firmware d'origine sur l'hôte.

PS La syntaxe de guillemet double du shell passe \xin extenso car ce n'est pas une séquence d'échappement reconnue; nous n'avons donc pas à doubler les barres obliques inverses.

Kaz
la source
0

@jofel et tous les autres, Merci beaucoup pour votre aimable assistance. Je pense que l'appareil a un système d'exploitation personnalisé installé car il ne reconnaît que certaines commandes Linux spécifiques. netcat n'est pas reconnu par l'appareil. Cependant, aujourd'hui, j'ai réussi à transférer le fichier à l'aide de la commande tftp. J'ai réussi à remplacer le fichier desktop.jpg par cette commande. Ce que j'ai fait, c'est créer un serveur tftp sur un système de fenêtres. connectez-vous via telnet sur l'appareil et exécutez ces commandes:

télécharger le fichier tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69

télécharger le fichier tftp -l desktop.jpg -g 192.168.0.249 69

PRdeep Kumawat
la source
0

Je l'ai fait maintenant par ces méthodes:

Créez un serveur ftp (en installant solerwinds) sur le système de fenêtres. connectez-vous via telnet sur l'appareil et exécutez ces commandes:

Pour télécharger un fichier:

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

Exemple:

tftp -l desktop.jpg -p 192.168.0.249 69

ou pour télécharger un fichier:

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

Exemple:

tftp -l desktop.jpg -g 192.168.0.249 69

l'emplacement par défaut du fichier tftp est C:\TFTP-Root

prdeepkumawat
la source
-1

J'utilise la méthode suivante pour télécharger de petits fichiers binaires via telnet dans ma boîte Windows:

  1. exécuter hexdump -v -e '16 / 1 "% 02x" 'monfichier.bin
  2. copier le vidage hexadécimal de l'écran
  3. collez le vidage hexadécimal dans cet outil en ligne pour créer un fichier binaire: http://tomeko.net/online_tools/hex_to_file.php?lang=en
Igor Zelaya
la source
Pas sûr de votre lien dans # 3!
3
@Goro Le lien dans ce cas n'est pas une explication qui peut être citée, c'est un outil en ligne qui est essentiel pour la réponse. Il serait préférable d'avoir un programme local pour cette tâche.
RalfFriedl
Merci @RalfFriedl. J'ai modifié ma réponse pour clarification.
Igor Zelaya