Tengo un dispositivo de asistencia funcionando Linux OS
. Puedo conectar este dispositivo a través de la sesión de telnet. Hay algunos archivos en el dispositivo que me gustaría descargar y cargar con nuevos archivos. ¿Cómo puedo hacer eso? Tengo muy poco conocimiento sobre el sistema operativo Linux. ¿Podrías ayudarme?
15
busybox --help
yls -l /bin
, yls -l /usr/bin
, por favor.Respuestas:
Esto depende de qué herramientas estén instaladas en el dispositivo cliente / admitidas por el núcleo.
Posibles métodos para la transferencia de archivos (sin ordenar):
netcat
osocat
o conbash
y / dev / tcpwget
ocurl
desde un servidor webLea Transferencia de archivos simple y ¿Cómo llevar el archivo a un host cuando todo lo que tiene es una consola en serie? para más posibilidades
Copie
desktop.jpg
desde el dispositivo a su PC con el método netcat / nc:En su PC, desactive temporalmente (o reconfigure si es posible) cualquier firewall y ejecute
y en el dispositivo
donde necesita reemplazar ABCD con la dirección IP de su PC. Tan pronto como la transferencia haya sido exitosa, el proceso de netcat en su PC debería detenerse automáticamente. Si no, algo está mal y puedes detenerlo conCtrl+C
Para la otra dirección, solo intercambie
<
y>
en ambos lados. Primero haga una copia de seguridad del originaldesktop.jpg
(cp desktop.jpg desktop_orig.jpg
).fuente
sz
para enviar los archivos a través del terminal. Lo necesitará en ambos lados.No tengo ssh o ftp (o etc.) en el dispositivo.
Entonces, hago lo siguiente:
telnet a.b.c.d | tee telnet.log
cat file.txt
telnet.log
de la basuraDebería ser fácil escribir una utilidad para descargar / cargar archivos a través de telnet
fuente
Prueba con el
rcp
comando.Úselo
man rcp
para obtener más información en caso de que desee automatizar las transferencias.Por cierto, sabes que esto es muy inseguro , ¿verdad?
fuente
Acabo de cargar un archivo de firmware de ~ 7 Kb en un sistema embebido Linux basado en BusyBox a través del puerto serie.
Sin redes, sin utilidades de transferencia de archivos; sin utilidades Base64 ni nada remotamente útil en el dispositivo.
En el host, codifiqué trivialmente un firmware en el siguiente formato; un tipo de volcado hexadecimal que consiste en literales de shell combinados con
printf
comandos:básicamente
printf
comandos de shell con\x
secuencias de escape queprintf
interpreta. En el dispositivo que hice:luego usó el
minicom
envío de archivos ASCII de (Ctrl-AS ) para enviar este archivo al host. Podría haber usado copiar y pegar, ya que la cantidad de datos es pequeña.Luego, marcó el ejecutable y ejecutó el
printf
script:Se comprobó mediante BusyBox
md5sum
que lafirmware.bin
suma de comprobación en el dispositivo coincide con la imagen de firmware original en el host.PD La sintaxis de comillas dobles de shell pasa
\x
literalmente porque no es una secuencia de escape reconocida; Por lo tanto, no tenemos que duplicar las barras invertidas.fuente
@jofel y todos los demás, muchas gracias por su amable asistencia. Creo que el dispositivo tiene un sistema operativo personalizado instalado, ya que reconoce solo algunos comandos específicos de Linux. netcat no es reconocido por el dispositivo. Sin embargo, hoy tuve éxito al transferir el archivo usando el comando tftp. Reemplacé con éxito el archivo desktop.jpg con este comando. Lo que hice fue crear un servidor tftp en un sistema de ventanas. inicie sesión a través de telnet en el dispositivo y ejecute estos comandos:
descargar archivo tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
subir archivo tftp -l desktop.jpg -g 192.168.0.249 69
fuente
He hecho esto ahora por estos métodos:
Cree un servidor ftp (instalando solerwinds) en el sistema de ventanas. inicie sesión a través de telnet en el dispositivo y ejecute estos comandos:
Para descargar un archivo:
Ejemplo:
o para cargar el archivo:
Ejemplo:
la ubicación predeterminada del archivo tftp es
C:\TFTP-Root
fuente
Utilizo el siguiente método para descargar pequeños archivos binarios a través de telnet en mi ventana de Windows:
fuente