
Viper — это брутфорс-инструмент для подбора паролей.
Frank4DD, @ Май 2000
Viper — это брутфорс UNIX-подобная программа для взлома паролей, зашифрованных с помощью crypt. Она была разработана на основе Perl-программы Hale's viper 1.4. Хотя существуют и другие, более мощные программы взлома, эта создана для изучения безопасности паролей на фоне резкого увеличения скорости аппаратного обеспечения. Если я правильно помню, на PDP-11 генерация пароля занимала 30 секунд. Теперь мы можем выполнять более 230 000 генераций в секунду на одном ядре CPU одной системы, что увеличивает скорость в несколько миллионов раз. Тем не менее, для 8-символьного пароля на полном ключевом пространстве ещё есть время работы, см. keyspace.txt.
Изначально реализация ufc-crypt казалась самой быстрой функцией crypt, и её использование упрощало портирование программы на разные платформы.
Viper работает под Linux, Solaris, HPUX и DOS/Windows.
Оригинальный viper.pl (Perl) от Hale:
| Год | Система | CPU | ОС | Версия | CPS rate |
|---|---|---|---|---|---|
| 2000 | SparcStation | SUN U-Sparc 400Mhz | Solaris | 2.6 | 700 |
| 2000 | Desktop PC | Pentium III 650Mhz | Linux | 2.2.13 | 16,000 |
Модифицированный viper (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...
Viper версии 1.5 обновлён для использования процедур OpenSSL DES для шифрования. Библиотека UFC была удалена как устаревшая и даже вызывающая ошибки сегментации на некоторых системах. Производительность увеличилась примерно на 25% благодаря библиотекам OpenSSL. В дополнение к библиотекам необходимо установить заголовочные файлы OpenSSL (dev-пакет) для компиляции Viper.
Viper версии 1.6 получил исправления ошибок благодаря David C. Rankin.
См. также http://fm4dd.com/sw/viper/
| Год | Система | CPU | ОС | Версия | Компилятор | 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 | Desktop PC | Pentium III 650Mhz | Linux | 2.2.13 | gcc | 40,000 |
| 2000 | Desktop PC | Pentium III 650Mhz | Windows | Win98 | gcc | 50,000 |
| 2000 | Desktop PC | Pentium III 650Mhz | DOS | 7.0 | djgpp | 50,000 |
| 2004 | HP Laptop | 1x 1.7 GHz AMD64 | Windows | WinXP | gcc | 120,000 |
| 2011 | Cloud Server | vCPU (unknown) | Linux | 2.6.31 | gcc | 150,000 |
| 2016 | Cloud Server | Xeon E5-2680 2.5GHz | Linux | 4.4.0 | gcc | 250,000 |