
Viper는 무차별 대입 방식의 비밀번호 크래커입니다.
Frank4DD, 2000년 5월
Viper는 crypt로 암호화된 비밀번호를 위한 무차별 대입 UNIX 스타일 비밀번호 크래커입니다. Hale의 viper 1.4 Perl 프로그램에서 개발되었습니다. 더 강력한 크랙 프로그램이 존재하지만, 이 프로그램은 하드웨어 속도가 급격히 증가하는 상황에서 비밀번호의 안전성을 연구하는 데 사용됩니다. 기억이 맞다면, PDP-11에서 비밀번호 생성에 30초가 걸렸다는 글을 읽었습니다. 이제는 단일 시스템의 단일 CPU 코어에서 초당 230,000회 이상의 생성을 수행할 수 있어, 속도가 수백만 배 증가했습니다. 그럼에도 불구하고 전체 키스페이스에서 8자리 비밀번호를 크래킹하려면 여전히 시간이 필요합니다. keyspace.txt 파일을 참조하십시오.
원래 ufc-crypt 구현은 가장 빠른 crypt 함수로 여겨졌으며, 이를 사용하면 프로그램을 다양한 플랫폼으로 이식하기 쉬웠습니다.
Viper는 Linux, Solaris, HPUX 및 DOS/Windows에서 실행됩니다.
원본, Hale의 viper.pl (Perl):
| 연도 | 시스템 | CPU | OS | 버전 | CPS 속도 |
|---|---|---|---|---|---|
| 2000 | SparcStation | SUN U-Sparc 400Mhz | Solaris | 2.6 | 700 |
| 2000 | 데스크탑 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 라이브러리는 구식이 되었고 일부 시스템에서 세그폴트를 발생시키기도 하여 제거되었습니다. OpenSSL 라이브러리 덕분에 약 25%의 성능 향상이 있습니다. 라이브러리 외에도 Viper를 컴파일하려면 OpenSSL 헤더(dev 패키지)를 설치해야 합니다.
Viper 버전 1.6은 David C. Rankin의 기여로 버그 수정이 이루어졌습니다.
| 연도 | 시스템 | CPU | OS | 버전 | 컴파일러 | CPS 속도 |
|---|
| 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 | Pentium III 650Mhz | Linux | 2.2.13 | gcc | 40,000 |
| 2000 | 데스크탑 PC | Pentium III 650Mhz | Windows | Win98 | gcc | 50,000 |
| 2000 | 데스크탑 PC | Pentium III 650Mhz | DOS | 7.0 | djgpp | 50,000 |
| 2004 | HP 노트북 | 1x 1.7 GHz AMD64 | Windows | WinXP | gcc | 120,000 |
| 2011 | 클라우드 서버 | vCPU (알 수 없음) | Linux | 2.6.31 | gcc | 150,000 |
| 2016 | 클라우드 서버 | Xeon E5-2680 2.5GHz | Linux | 4.4.0 | gcc | 250,000 |