Linux OS
ผมมีอุปกรณ์การเข้าร่วมทำงาน ฉันสามารถเชื่อมต่ออุปกรณ์นี้ผ่านเซสชัน telnet มีบางไฟล์ในอุปกรณ์ที่ฉันต้องการดาวน์โหลดและอัพโหลดด้วยไฟล์ใหม่ ฉันจะทำสิ่งนั้นได้อย่างไร ฉันมีความรู้ต่ำมากใน Linux OS คุณช่วยได้ไหม!
Linux OS
ผมมีอุปกรณ์การเข้าร่วมทำงาน ฉันสามารถเชื่อมต่ออุปกรณ์นี้ผ่านเซสชัน telnet มีบางไฟล์ในอุปกรณ์ที่ฉันต้องการดาวน์โหลดและอัพโหลดด้วยไฟล์ใหม่ ฉันจะทำสิ่งนั้นได้อย่างไร ฉันมีความรู้ต่ำมากใน Linux OS คุณช่วยได้ไหม!
คำตอบ:
ขึ้นอยู่กับว่าเครื่องมือใดที่ติดตั้งบนอุปกรณ์ไคลเอนต์ / สนับสนุนโดยเคอร์เนล
วิธีการที่เป็นไปได้สำหรับการถ่ายโอนไฟล์ (ไม่ได้เรียงลำดับ):
netcat
หรือsocat
หรือbash
และและ / dev / tcpwget
หรือcurl
จากเว็บเซิร์ฟเวอร์อ่านการถ่ายโอนไฟล์อย่างง่ายและวิธีรับไฟล์ไปยังโฮสต์เมื่อสิ่งที่คุณมีคือซีเรียลคอนโซล สำหรับความเป็นไปได้มากขึ้น
desktop.jpg
จากอุปกรณ์ไปยังพีซีของคุณด้วยวิธี netcat / nc:บนพีซีของคุณปิดการใช้งานชั่วคราว (หรือกำหนดค่าใหม่ถ้าเป็นไปได้) ไฟร์วอลล์ใด ๆ และเรียกใช้
netcat -l -p 10000 > desktop.jpg
และบนอุปกรณ์
busybox nc A.B.C.D -p 10000 < desktop.jpg
ที่คุณต้องการแทนที่ ABCD ด้วยที่อยู่ IP ของพีซีของคุณ ทันทีที่การถ่ายโอนสำเร็จกระบวนการ netcat บนพีซีของคุณควรหยุดโดยอัตโนมัติ ถ้าไม่เป็นอย่างนั้นคุณก็สามารถหยุดมันได้Ctrl+C
สำหรับทิศทางอื่นเพียงแค่แลกเปลี่ยน<
และ>
ทั้งสองด้าน ทำสำเนาสำรองของต้นฉบับก่อนdesktop.jpg
( cp desktop.jpg desktop_orig.jpg
)
sz
เพื่อส่งไฟล์ผ่านเทอร์มินัล คุณจะต้องใช้ทั้งสองด้าน
ฉันไม่มี ssh หรือ ftp (หรืออื่น ๆ ) บนอุปกรณ์
ดังนั้นฉันทำต่อไป:
telnet a.b.c.d | tee telnet.log
cat file.txt
telnet.log
จากถังขยะควรเขียนยูทิลิตี้เพื่อดาวน์โหลด / อัพโหลดไฟล์ทาง telnet
ลองด้วยrcp
คำสั่ง
ใช้man rcp
สำหรับข้อมูลเพิ่มเติมในกรณีที่คุณต้องการโอนเงินอัตโนมัติ
โดยวิธีการที่คุณรู้ว่านี้ไม่ปลอดภัยมากใช่มั้ย
ฉันเพิ่งอัปโหลดไฟล์เฟิร์มแวร์ ~ 7 Kb ไปยังระบบฝังตัวบน Linux BusyBox ผ่านพอร์ตอนุกรม
ไม่มีเครือข่ายไม่มีการถ่ายโอนไฟล์ ไม่มี Base64 utils หรือสิ่งใดที่เป็นประโยชน์ในระยะไกลบนอุปกรณ์
ในโฮสต์ฉันเข้ารหัสเฟิร์มแวร์ในรูปแบบดังต่อไปนี้ ชนิดของ hex-dump ที่ประกอบด้วยเชลล์ตัวอักษรรวมกับprintf
คำสั่ง:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
โดยทั่วไปแล้วprintf
คำสั่งเชลล์ที่มี\x
ลำดับเอสเคปที่printf
ตีความ บนอุปกรณ์ที่ฉันทำ:
device $ cat > firmware.sh
จากนั้นใช้minicom
ไฟล์ ASCII ของ send ( Ctrl-AS) เพื่อส่งไฟล์นี้ไปยังโฮสต์ ฉันสามารถใช้การคัดลอกและวางได้เนื่องจากปริมาณข้อมูลมีน้อย
จากนั้นทำเครื่องหมายปฏิบัติการและเรียกใช้printf
สคริปต์:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
ตรวจสอบโดยใช้ BusyBox md5sum
ว่าการfirmware.bin
ตรวจสอบบนอุปกรณ์ตรงกับภาพเฟิร์มแวร์เดิมบนโฮสต์
PS รูปแบบเชลล์อัญประกาศคู่ส่งผ่าน\x
คำต่อคำเพราะมันไม่ใช่ลำดับ escape ที่รู้จัก ดังนั้นเราไม่ต้องเพิ่มแบ็กสแลชเป็นสองเท่า
@jofel และคนอื่น ๆ ขอบคุณมากสำหรับความช่วยเหลือของคุณ ฉันคิดว่าอุปกรณ์มีการติดตั้งระบบปฏิบัติการที่กำหนดเองเพราะมันรู้จักบางคำสั่ง linux เฉพาะ อุปกรณ์ไม่รู้จัก netcat อย่างไรก็ตามวันนี้ฉันประสบความสำเร็จในการถ่ายโอนไฟล์โดยใช้คำสั่ง tftp ฉันแทนที่ไฟล์ desktop.jpg ได้สำเร็จด้วยคำสั่งนี้ สิ่งที่ฉันทำคือสร้างเซิร์ฟเวอร์ tftp บนระบบหน้าต่าง เข้าสู่ระบบผ่าน telnet บนอุปกรณ์และเรียกใช้คำสั่งเหล่านี้:
ดาวน์โหลดไฟล์ tftp -l -p tftp -l desktop.jpg - 192.168.0.249 69
อัปโหลดไฟล์ tftp -l desktop.jpg -g 192.168.0.249 69
ฉันได้ทำตอนนี้โดยวิธีการเหล่านี้:
สร้างเซิร์ฟเวอร์ ftp (โดยการติดตั้ง solerwinds) บนระบบหน้าต่าง เข้าสู่ระบบผ่าน telnet บนอุปกรณ์และเรียกใช้คำสั่งเหล่านี้:
วิธีดาวน์โหลดไฟล์:
tftp -l <FileName> -p <TFTP Server IP> <Port No of TFTP>
ตัวอย่าง:
tftp -l desktop.jpg -p 192.168.0.249 69
หรือเพื่ออัพโหลดไฟล์:
tftp -l <FileName> -g <TFTP Server IP> <Port No of TFTP>
ตัวอย่าง:
tftp -l desktop.jpg -g 192.168.0.249 69
ตำแหน่งเริ่มต้นของไฟล์ tftp คือ C:\TFTP-Root
ฉันใช้วิธีการต่อไปนี้เพื่อดาวน์โหลดไฟล์ไบนารีขนาดเล็กผ่าน telnet ลงในกล่อง windows ของฉัน:
busybox --help
และls -l /bin
และls -l /usr/bin
ได้โปรด