A proposito dell'autore

Technology Enthusiast. I’m a System Engineer and sometimes an independent Security Researcher. IEEE member.

Supponiamo di avere un router configurato per accettare il login via telnet utilizzando, per semplicità, al posto del radius il database utenti locale, come nella configurazione sottoriportata:

service timestamps log datetime
!
aaa new-model
aaa authentication login Python-Telnet local
!
username pippo password 7 105E00091518
!
line vty 0 4
login authentication Python-Telnet
!
end

Ed ecco un semplice script in Python che si collega al nostro router, lo interroga per vedere i log, chiude la connessione e stampa il risultato:

import telnetlib

username = "pippo"
password = "pippo"
router = "10.10.10.254"

tn = telnetlib.Telnet(router) # Inizializzo il telnet

tn.read_until("Username: ") # Attendo il prompt Username: inviatomi dal router
tn.write(username + "\r\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\r\n")
tn.write("terminal length 0" + "\r\n") # terminal length impostato a 0 per non avere interruzioni
tn.write("sh log"+ "\r\n") # Mostrami i log please...
tn.write("q" + "\r\n") # Chiudo
log = tn.read_all()
tn.close() # Chiudo il telnet
print log

Ovviamente il bello è che usando altri strumenti messi a disposizione di Python, come le regex, si possono fare cose molto più interessanti.

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: