martedì, Dicembre 24, 2024

Cisco: show log con il Python

Gianluca Lini
Gianluca Linihttp://www.gianlucalini.it
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.

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie