Mam uruchomione urządzenie asystujące Linux OS
. Mogę podłączyć to urządzenie za pośrednictwem sesji Telnet. W urządzeniu jest kilka plików, które chciałbym pobrać i przesłać z nowymi plikami. Jak mogę to zrobić? Mam bardzo niską wiedzę na temat systemu operacyjnego Linux. Czy mógłbyś pomóc?
16
busybox --help
ils -l /bin
ils -l /usr/bin
, proszę.Odpowiedzi:
Zależy to od tego, które narzędzia są zainstalowane na urządzeniu klienckim / obsługiwane przez jądro.
Możliwe metody przesyłania plików (nieuporządkowane):
netcat
lubsocat
lub zbash
i / dev / tcpwget
lubcurl
z serwera sieciowegoPrzeczytaj Proste przesyłanie plików i Jak pobrać plik do hosta, gdy wszystko, co masz, to konsola szeregowa? więcej możliwości.
Skopiuj
desktop.jpg
z urządzenia na komputer za pomocą metody netcat / nc:Na komputerze wyłącz tymczasowo (lub ponownie skonfiguruj, jeśli to możliwe) dowolną zaporę i uruchom ją
i na urządzeniu
gdzie musisz zastąpić ABCD adresem IP komputera. Gdy tylko transfer się powiedzie, proces netcat na twoim komputerze powinien zatrzymać się automatycznie. Jeśli nie, coś jest nie tak i można temu zapobiecCtrl+C
W przeciwnym kierunku wystarczy wymienić
<
i>
po obu stronach. Najpierw wykonaj kopię zapasową oryginałudesktop.jpg
(cp desktop.jpg desktop_orig.jpg
).źródło
sz
do wysłania plików przez terminal. Będziesz go potrzebował po obu stronach.Nie mam ssh ani ftp (lub etc) na urządzeniu.
Więc robię dalej:
telnet a.b.c.d | tee telnet.log
cat file.txt
telnet.log
z śmieciNarzędzie do pobierania / wysyłania plików przez telnet powinno być łatwe do napisania
źródło
Spróbuj z
rcp
poleceniem.Użyj,
man rcp
aby uzyskać więcej informacji, jeśli chcesz zautomatyzować przelewy.Nawiasem mówiąc, wiesz, że to jest bardzo niepewne , prawda?
źródło
Właśnie przesłałem plik oprogramowania sprzętowego o wielkości ~ 7 Kb do systemu Linux opartego na BusyBox przez port szeregowy.
Bez pracy w sieci, bez narzędzi do przesyłania plików; brak narzędzi Base64 lub cokolwiek zdalnie przydatnego na urządzeniu.
Na hoście w prosty sposób zakodowałem oprogramowanie wewnętrzne w następującym formacie; rodzaj zrzutu szesnastkowego składającego się z literałów powłoki połączonych z
printf
poleceniami:w zasadzie
printf
polecenia powłoki z interpretowanymi\x
sekwencjami ucieczkiprintf
. Na urządzeniu zrobiłem:następnie użył
minicom
pliku ASCII send ( Ctrl-AS), aby wysłać ten plik do hosta. Mogłem po prostu użyć funkcji kopiuj i wklej, ponieważ ilość danych jest niewielka.Następnie zaznaczył plik wykonywalny i uruchomił
printf
skrypt:Sprawdzono za pomocą BusyBox,
md5sum
czyfirmware.bin
suma kontrolna urządzenia odpowiada oryginalnemu obrazowi oprogramowania układowego na hoście.PS Składnia podwójnego cudzysłowu powłoki przechodzi przez
\x
dosłownie, ponieważ nie jest to rozpoznana sekwencja ucieczki; dlatego nie musimy podwajać ukośników odwrotnych.źródło
@jofel i wszyscy inni, bardzo dziękuję za miłą pomoc. Wydaje mi się, że w urządzeniu zainstalowano dostosowany system operacyjny, ponieważ rozpoznawał tylko niektóre określone polecenia systemu Linux. Netcat nie jest rozpoznawany przez urządzenie. Jednak dzisiaj udało mi się przesłać plik za pomocą polecenia tftp. Pomyślnie zastąpiłem plik desktop.jpg tym poleceniem. Zrobiłem to, stworzyłem serwer tftp w systemie Windows. zaloguj się przez telnet na urządzeniu i uruchom następujące polecenia:
pobierz plik tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
prześlij plik tftp -l desktop.jpg -g 192.168.0.249 69
źródło
Zrobiłem to teraz za pomocą następujących metod:
Utwórz serwer ftp (instalując solerwinds) w systemie Windows. zaloguj się przez telnet na urządzeniu i uruchom następujące polecenia:
Aby pobrać plik:
Przykład:
lub wgrać plik:
Przykład:
domyślna lokalizacja pliku tftp to
C:\TFTP-Root
źródło
Korzystam z następującej metody, aby pobrać małe pliki binarne przez telnet do mojego okna systemu Windows:
źródło