
Viper è un cracker di password a forza bruta.
Frank4DD, @ Maggio 2000
Viper è un cracker di password in stile UNIX tramite forza bruta per password crittografate con crypt. È stato sviluppato dal programma Perl viper 1.4 di Hale. Sebbene esistano altri programmi di cracking più potenti, questo riguarda lo studio della sicurezza delle password mentre la velocità hardware aumenta drasticamente. Se ricordo bene, ho letto che su un PDP-11 la generazione delle password richiedeva 30 secondi. Ora possiamo fare più di 230.000 generazioni al secondo su un singolo core CPU di un singolo sistema, aumentando la velocità di un fattore di diversi milioni. Tuttavia, c'è ancora del tempo per una password di 8 caratteri su tutto lo spazio delle chiavi, vedi keyspace.txt.
Originariamente, l'implementazione ufc-crypt sembrava essere la funzione crypt più veloce in circolazione, usarla ha reso facile il porting del programma su diverse piattaforme.
Viper funziona su Linux, Solaris, HPUX e DOS/Windows.
L'originale, viper.pl di Hale (Perl):
| Anno | Sistema | CPU | OS | Versione | CPS rate |
|---|---|---|---|---|---|
| 2000 | SparcStation | SUN U-Sparc 400Mhz | Solaris | 2.6 | 700 |
| 2000 | PC Desktop | Pentium III 650Mhz | Linux | 2.2.13 | 16,000 |
Viper modificato (C):
Viper v1.6 (Hale 05/12/2000) - C version by Frank4DD (05/05/2014)
Wiltered Fire - www.wilter.com/wf, incl. bugfixes by David C. Rankin
-f File to load password from (required unless using lsf)
-u Username to load from file (required unless using lsf)
-lsf Load saved file from previous session
-pf Save progress to file at update interval
-rf # Amount of time in hours to run for (default infinite)
-c # Character set from charset.ini to use (default 1)
-pws # Minimum password length (starting value, default 1)
-pwl # Maximum password length (default 8 - maximum 16)
-ui # Console update interval (in minutes - default 10)
-v Verbose outputsusie112:/home/me/viper-1.6/src # ./viper -f passwd -u root -ui 1 -v Viper v1.6 (Hale 05/12/2000) - C version by Frank4DD (05/05/2014) Wiltered Fire - www.wilter.com/wf, incl. bugfixes by David C. Rankin Found: user root pw:reUJbHrFWYCQk Found: Charset 0 in charset.ini ...command line parameters loaded. Character set is 93 chars long Starting crack on: Sun Oct 3 23:04:44 2009 Cracking for pass length 1 (93 possibilities) Cracking for pass length 2 (8649 possibilities) Cracking for pass length 3 (804357 possibilities) Cracking for pass length 4 (7.48052e+07 possibilities) [ Length: | Last: | CPS: | Time Spent: | Time Remaining: | Done: ] ------------------------------------------------------------------------------- [ 4 | kq2r | 150000 | 000d:00h:01m:00s | 000d:00h:07m:18s | 12.03% ] The password has been located. Username : root Password : test Started : Sun Oct 3 23:04:44 2009 Finished : Sun Oct 3 23:06:30 2009 Duration : 000d:00h:01m:00s Viper exiting...
La versione 1.5 di Viper è stata aggiornata per utilizzare le routine DES di OpenSSL per la crittografia. La libreria UFC è stata abbandonata in quanto obsoleta e che generava segfault su alcuni sistemi. C'è un guadagno di prestazioni di circa il 25% derivante dalle librerie OpenSSL. Oltre alle librerie, le intestazioni OpenSSL (pacchetto di sviluppo) devono essere installate per poter compilare Viper.
La versione 1.6 di Viper ha ricevuto correzioni di bug grazie a David C. Rankin.
Vedi anche http://fm4dd.com/sw/viper/
| Anno | Sistema | CPU | OS | Versione | Compilatore | CPS rate |
|---|
| 2000 | HP 9000-B180L | PA-7300LC 180Mhz | HPUX | 10.20 | gcc | 7000 |
| 2000 | SparcStation | SUN U-Sparc 400Mhz | Solaris | 2.6 | gcc | 25,000 |
| 2000 | PC Desktop | Pentium III 650Mhz | Linux | 2.2.13 | gcc | 40,000 |
| 2000 | PC Desktop | Pentium III 650Mhz | Windows | Win98 | gcc | 50,000 |
| 2000 | PC Desktop | Pentium III 650Mhz | DOS | 7.0 | djgpp | 50,000 |
| 2004 | Laptop HP | 1x 1.7 GHz AMD64 | Windows | WinXP | gcc | 120,000 |
| 2011 | Server Cloud | vCPU (sconosciuto) | Linux | 2.6.31 | gcc | 150,000 |
| 2016 | Server Cloud | Xeon E5-2680 2.5GHz | Linux | 4.4.0 | gcc | 250,000 |