Nella prima parte abbiamo visto e analizzato il codice per generare tutte le possibili combinazioni di password data una lista di caratteri. Ecco la seconda parte della guida su come creare un bruteforce in Python.
Ora non ci tocca che provare ad effettuare un accesso testando ogni singola combinazione di password. Modifichiamo la funzione testaPassword() che per ora stampa solo la stringa che gli passiamo come parametro.
Cosa dovrà fare la funzione testaPassword()? Ipotizziamo che vogliamo tentare l'accesso ad un server via FTP (ad esempio ftp.sitodiprova.it) conoscendo l'username di login (ad esempio admin). Ferma, ferma! Cos'è l'accesso via FTP? Non è altro che l'accesso ad un sito in modo che possiamo scaricare da esso le pagine del sito stesso (ed esempio vogliamo scaricare la pagina sitodiprova.it/registrazione.php), oppure possiamo aggiungere noi pagine al sito. Per accedere via FTP abbiamo bisogno di un username (spesso è admin) e una password (che andremo a scoprire). Per capire meglio il concetto di FTP consiglio di documentarsi su internet e scaricare programmi come FileZilla.
Il codice finale sarà il seguente: BruteForce.py - Esempio 02. Come si può notare viene tentato l'accesso provando ogni singola combinazione di password, se la password non è quella esatta allora il programma va avanti generando la prossima, se la password è esatta allora viene stampato un messaggio che avvisa l'utente che è stato trovata la password corretta, il programma terminata una volta che l'ha trovata.
Complimenti anche per questo articolo
RispondiEliminaMi è sorta una domanda , ovvero per trovare la password di un meccanismo elettronico che libreria si deve utilizzare ?
RispondiEliminaDipende dal meccanismo in question. In questo articolo è stato preso in considerazione l'esempio del login FTP ed è stata utilizzata una libreria apposita.
EliminaPer trovare la password di un wifi che libreria devo utilizzare ?
RispondiEliminaSe stai utilizzando Linux dai un'occhiata su questo sito: http://pythonwifi.wikispot.org/
EliminaSe invece utilizzi Windows allora puoi usare il comando netsh, se mastichi un po' di inglese leggi qui: http://stackoverflow.com/questions/14077835/associating-my-windows-computer-to-a-wifi-ap-with-python
Spero di esserti stato di aiuto.
Grazie per la risposta, però non ho capito come dovrei utilizzare il comando "netsh"
EliminaDa codice Python devi avviare il comando "netsh" del cmd di Windows.
EliminaSe volessi fare un programma con Python che trova la password di 3 caratteri da "a" a "z" collegandosi ad un sito dove dovrei modificare la funzione?
RispondiEliminap.s bellissimo articolo
Ti ringrazio per il commento. Per quanto riguarda provare il bruteforce di una password su un sito web la questione è un po' complicata, cercherò di fare un articolo a riguardo.
Eliminaimport urllib.request
Eliminadef risultato(userID,passwd):
passwd=str(passwd)
uri="http://www.dis.uniroma1.it/~santucci/PY/sfida_1.php?param="
sock = urllib.request.urlopen(uri+passwd+"&name="+userID)
htmlSource = str(sock.read())
sock.close()
return "Giusto!" in htmlSource
#esempio di chiamata print(risultato("1000","aaa")) #La vostra soluzione:
Io so l'ID e devo trovare una password di tre lettere "a" a "z" non si può utilizzare il tuo metodo ?
Se si, come richiamo la prima funzione?
Studia invece di chiedere la soluzione del tuo esercizio, ecco perchè i nuovi ingegneri in informatica e automatica della Sapienza sono dei fessacchiotti che non sanno far nulla quando li convochiamo ai colloqui aziendali. Vergognati profondamente!
EliminaSto studiando , infatti ho trovato poco fa la password , era solo per avere delle informazioni visto che avevo già visto quest'articolo tempo fa, e comunque l'ho risolto diversamente , non avevo intenzione di fare il furbetto ;)
EliminaAnonimo il metodo mostrato in questa serie di post può essere anche utilizzato per il problema da te descritto.
EliminaComunque mi fa piacere che già hai risolto il problema. In fondo, l'hacking è questo: trovare soluzioni a problemi che apparentemente sembrano insormontabili.
Leonardo da Vinci era un hacker, voleva volare ed ha progettato la prima macchina volante teoricamente funzionante.
sto cercando un sito dove scaricare un phppennyaction di buona qualità .. sapete dove??
RispondiEliminaMi dispiace, no so proprio come aiutarti.
EliminaDove posso trovare una libreria python HTTP ?
RispondiEliminaLa libreria HTTP è già presente quando scarichi l'interprete Python, eccone la documentazione ufficiale: http://docs.python.org/2/library/httplib.html
Eliminama questo metedo puo essere usato anche per mail o facebook?
RispondiEliminaSì, il metodo sì. Solo che in queste guida viene utilizzato il bruteforce per un login FTP.
Eliminapotresti spiegarmi come si fa per esempio per hotmail?
RispondiEliminadriverfury hai una mail sul quale posso contattatrti?
RispondiEliminadiventarehackerblog@gmail.com
EliminaComplimenti!! Il tuo è un sito fantastico e ricco di guide. Come vedi sto fino a notte inoltrata a leggere ahah Se puoi e se vuoi, potresti mettere una guida dettagliata sulla steganografia? Ne ho lette alcune in alcuni siti, ma i metodi descritti, a parte 2 o 3, sono troppo semplici da scoprire.. Ti sarei profondamente grato per una tua guida a riguardo. Grazie.
RispondiEliminaGrazie per l'idea, probabilmente arriverà una guida.
EliminaCiao, bell'articolo, ma questo metodo funziona solo per entrare come amministratore in un sito o, per esempio, anche per un login Facebook di cui si sa la email?
RispondiEliminail problema è che bisogna conoscere sia l'id del proprietario del sito sia la lunghezza della password, non sono proprio due informazioni facili da trovare in giro, quali altri metodi si possono provare che non hanno bisogno delle due nozioni appena citate? grazie in anticipo
RispondiEliminaSe volessi accedere con user e password ad un sito su http mi basterebbe fare la stessa cosa cambiando le istruzioni ftp in quelle per libreria http o dovrei cambiare anche la sintassi (www.sitodiprova.it,"admin",password)
RispondiEliminaLe istruzione http sono diverse da quelle ftp ed anche il modo di procedere è diverso perchè devi operare sui form e sulla risposta html della pagina di login.
Eliminacome faccio ad avviare il bruteforce? cioè lo avvio, però non mi cerca nessuna password e non so come fare ad impostare quale password deve trovare.
RispondiEliminaCiao Giacomo, innanzitutto mi scuso per il ritardo della risposta, sono molto impegnato ultimamente.
EliminaPrima di capire come funziona il bruteforce descritto in questa guida ti consiglio di studiare il protocollo FTP e la relativa libreria Python cioè ftplib. Tuttavia, questa serie di articoli hanno come scopo principale quello di illustrare la tecnica di bruteforcing ma in questo articolo specifico viene trattato l'attacco bruteforce su protocollo FTP, quindi se vuoi comprenderlo appieno devi prima sapere cosa sia tale protocollo.
Ma non bisognerebbe le parentesi tonde quando si vuole stampare qualcosa....
RispondiEliminacomunque bella guida
In Python 2.7.x è possibile anche non inserire le parentesi tonde. Comunque, grazie per il commento, sono contento del fatto che la guida stia piacendo.
EliminaÈ possibile creare un bruteforce in una versione android di python che ho trovato nell'app store? Se si si potrebbe fare un articolo a riguardo? Bell'articolo comunque ;)
RispondiEliminama se il nome utente per accedere non fosse admin e noi mettiamo lo stesso admin come utente.... la password potrebbe cambiare e quindi essere giusta o sbagliata a seconda del nome dell'utente?
RispondiEliminaMi da errore a exit() dice inconsistent use of tabs and spaces in identation... come si può risolvere?
RispondiEliminaAnche a me
RispondiEliminaScrivi il codice manualmente con l'editor di Python. Non copincollare il codice.
EliminaCiao a tutti, riscontro un problema quando il programma arriva all'istruzione exit() . Il programma, quando viene eseguito da IDLE si ferma. Ma appena lo faccio partire dal terminale "ignora" l'istruzione e prosegue. Come posso risolvere?
RispondiEliminaLamer,hai mai sentito parlare di multi-threading???
RispondiEliminaIo sì, ma la maggior parte degli utenti che leggono queste guide basilari non sono esperti programmatori e quindi devo scrivere articoli che riescano ad essere compresi anche a chi si è appena avvicinato alla programmazione e all'hacking.
EliminaCredi che nell'articolo sul bruteforce HTTP avrei usato quel codice o avrei sfruttato 12 Thread che inviano richieste in contemporanea?
In ogni caso, arriveranno anche guide più "avanzate".