PDA

View Full Version : script python telnet


Maniscalco
05-05-2011, 11:34
Salve ragazzi
ho un problemino, non riesco a far funzionare questo script in .py
Vi spiego meglio, io devo connetermi tramite telnet ad una Sun, poi da li devo andare su un router, fino alla Sun ci arrivo e riesco a pingare il router, ma quando provo ad effettuare il secondo telnet non riesco ad entrare nel router.
Posto di seguito lo script


import sys
import telnetlib

HOST = "host" #indirizzo Sun (centro di gestione)
user = "user"
password = "password"
user2 = "user2"
password2 = "password2"
loop = "loop" #indirizzo Router

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")

tn.write("ping ")
tn.write(loop + "\n")

tn = telnetlib.Telnet(loop)

tn.read_until("Username: ")
tn.write(user2 + "\n")
if password2:
tn.read_until("Password: ")
tn.write(password2 + "\n")


tn.write("exit\n")
print tn.read_all()



Grazie in anticipo

marco.r
05-05-2011, 14:36
due osservazioni:

1 - Usi un telnet con password in chiaro ? Non e' il massimo dal punto di vista della sicurezza...
2 - Cosi' non puo' funzionare perche' cerchi di fare entrambe le connessioni dalla stessa macchina. Devi mandare i comandi per effettuare la connessione al router nello stesso modo in cui inserisci login e password, ovvero scrivi sulla sessione telnet un comando tipo "telnet router" , e poi da li' dalla sessione originale riesci a leggere i dati del router.

Maniscalco
05-05-2011, 16:28
ok grazie, per il telnet router sembra funzionare, anche se non so perchè non sempre funziona, mi da problemi sull'autenticazione del router.
Uso password in chiaro perche accedo direttamente dalla rete interna, non dall'esterno.

Come posso effettuare una sorta di debug, cioè per vedere dove lo script si ferma?

Grazie

marco.r
05-05-2011, 16:44
cerco di essere piu' chiaro. Il problema e' nella seguente riga:


tn = telnetlib.Telnet(loop)

Questo fa una chiamata telnet (o meglio, tenta) dalla tua macchina al router, non dalla macchina sun. Devi eseguire il collegamento dalla macchina sun.
Un modo per farlo potrebbe essere quello di effettuare un telnet dalla riga di comando della shell remota che hai ottenuto, qualcosa del tipo

tn.write("telnet " + loop + "\n")

e poi procedi come prima. In questo modo chiami l'eseguibile telnet presente sulla macchina remota per fare il secondo collegamento.

Come posso effettuare una sorta di debug, cioè per vedere dove lo script si ferma?

Lo script si ferma dove l'hai lasciato, ovvero dopo il collegamento alla macchina Sun :p

Maniscalco
06-05-2011, 09:40
ok con la stringa da te indicatami ora funziona :D
per ora funziona l'accesso, ora devo vedere come inviare dei comandi e far salvare il risultato in un file di testo