내가 하고 싶은 것은 텔넷을 통해 연결하고 데이터베이스를 다운로드하는 것인데 방법을 찾을 수 없습니다. Python으로 시도했지만 연결이 닫히기만 해서 bash 스크립트를 사용하여 수행할 수 있는 방법이 있는지 궁금합니다.
물론, 무슨 일이 일어나는지는 그것이 입력 검사기이고 그것에 연결하는 유일한 방법은 텔넷을 통해서라는 것입니다. 제가 알고 있는 그것이 최고는 아니지만 그것이 최선입니다.
통역사를 예상하여 연결을 설정했으며 이제 장치 주위를 이동하여 이 명령을 실행할 수 있습니다.
이게 내 코드야
#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd "solokey"
spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"
답변1
텔넷이 전송 서비스는 아니지만 데이터에 액세스할 수 있는 유일한 옵션이라는 것을 알고 있습니다. 누군가에게 유용할 경우를 대비해 코드를 보관했습니다. 이 방법으로 텔넷을 통해 생체 인식 검사기에 액세스하려면 데이터베이스를 다운로드했습니다.
#!/usr/bin/expect
set timeout 20
set name 192.168.1.169
set user "root"
set passwd "solokey"
spawn telnet $name
expect "ZMM100 login: "
send "$user\r"
expect "Password: "
send "$passwd\r"
expect "#"
send "cd /mnt/mtdblock/data/ \r"
expect "#"
send "rm -rf ZKDB.db.bak \r"
expect "#"
send "cp ZKDB.db ZKDB.db.bak \r"
expect "#"
send "cat ZKDB.db.bak | nc -l -p 6666 \r"
expect "#"
이미 우리가 실행하는 클라이언트 측에서만
nc 192.168.1.169 6666 <ZKDB.db.bak
답변2
Telnet은 원격 명령 실행기이므로 FTP 클라이언트로 적합하지 않습니다.
당신이 할 수 있는 건 그냥 놔두는 것뿐이에요인터넷 고양이로컬 포트에서 수신 대기한 다음 원격 호스트에 텔넷으로 연결하고 netcat을 사용하여 로컬 포트에서 원격 파일을 전송하고 출력을 로컬 파일로 리디렉션합니다.
로컬 호스트에서:
nc -l -p <port> > <output_file>
원격 컴퓨터에서 텔넷을 사용하여 다음 명령을 실행합니다.
nc -w 3 <local_host_ip> <port> < <input_file>
또한 ssh, ftp를 사용할 수 없으므로 http 서버(설치된 경우 Python SimpleHTTPServer 사용) 또는 원격 서버의 모든 http 서버를 노출한 다음 wget을 사용하여 파일을 다운로드할 수 있습니다.
원격 호스트에서:
cd <to_the_directory_to_expose>
python -m SimpleHTTPServer
로컬 머신에서:
wget http://<remote_host_ip>:8000/<filename>