• Publicidad

Net::Telnet::Cisco, solo password

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: NET::TELNET::CISCO solo password

Notapor knightman » 2009-09-22 17:39 @777

Gracias explorer, intentaré con la expresión regular que me sugirió, y le comento, muchas gracias
Última edición por explorer el 2009-09-22 18:14 @801, editado 1 vez en total
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

Publicidad

Re: NET::TELNET::CISCO solo password

Notapor knightman » 2009-09-28 15:44 @697

Hola. Qué pena seguir con lo mismo. He estado ensayando lo que me dijo y observé que esa expresión regular se encuentra en la librería de Telnet::Cisco. La apliqué como ud. me dijo pero no me arroja error; intenté colocando sólo esta parte para detectar si no tiene problema la expresión regular:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ip="10.52.1.1";
  2. my $session = Net::Telnet::Cisco->new(Host => $ip,Input_log=>"input.log"); #192.168.88.3
  3. my $username  = '';
  4. my $password  = 'BSR64K$';
  5. $session->login('', 'BSR64K$');
  6. my $reg_prompt = qr/^[\w.:-]+\s?(?:\(config[^\)]*\))?\s?[\$#>]\s?(?:\(enable\))?\s*$/x;
  7. my $prompt = 'BUGA_MOTOROLA:7A>';
  8. if ($prompt =~ $reg_prompt){
  9.     $session->cmd("terminal length 0");
  10.     $session->enable("cabem")
  11. }
  12. $session->close;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

O ¿cómo haría para probar que sí está adoptando bien el cambio de prompt?

¡¡Muchas gracias!!
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

Re: NET::TELNET::CISCO solo password

Notapor explorer » 2009-09-28 17:52 @786

No, no... tienes que hacer lo que te he dicho en el mensaje anterior.

La expresión regular se la tienes que pasar a la opción Prompt en el momento de crear el objeto Net::Telnet::Cisco.

Tienes un ejemplo en la sinopsis de Net::Telnet.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: NET::TELNET::CISCO solo password

Notapor knightman » 2009-09-29 17:02 @751

explorer, sé que soy muy molestón con lo mismo, pero he leído el perldoc/perlboot; He mirado la sinopsis del Telnet como me dice, encontré esto
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
=item B<cmd> - send a command
    $ok = $obj->cmd($string);
    $ok = $obj->cmd(String   => $string,
                    [Output  => $ref,]
                    [Prompt  => $match,]
                    [Timeout => $secs,]
                    [Cmd_remove_mode => $mode,]);
    @output = $obj->cmd($string);
    @output = $obj->cmd(String   => $string,
                        [Output  => $ref,]
                        [Prompt  => $match,]
                        [Timeout => $secs,]
                        [Cmd_remove_mode => $mode,]
                        [Normalize_cmd => $boolean,]);
Normalize_cmd has been added to the default Net::Telnet args. It
lets you temporarily change whether backspace, delete, and kill
characters are parsed in the command output.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Agregué esta línea de código
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $reg_prompt->$prompt;
  2. if ($prompt =~ $reg_$prompt){.....}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

¡¡¡pero aun no entiendo bien el concepto!!!

Muchas gracias por la gran colaboración.
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

Re: Net::Telnet::Cisco, solo password

Notapor explorer » 2009-09-29 18:57 @831

Quizás con algo así (no probado):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $session = Net::Telnet::Cisco->new(
    Host   => $ip[$cm-1],
    Prompt => '/^[\w.:-]+\s?(?:\(config[^\)]*\))?\s?[\$#>]\s?(?:\(enable\))?\s*$/',
);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Te dije que visitaras la sinopsis de Net::Telnet. Allí aparece este ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    use Net::Telnet ();
    $t = new Net::Telnet (Timeout => 10,
                          Prompt  => '/bash\$ $/',
    );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Como ves, se trata de indicar, en el momento de la creación del objeto, cómo será el Prompt del aparato. Y para ello indicamos una expresión regular. En tu caso, la expresión regular es idéntica a la usada, por defecto en el módulo Net::Telnet::Cisco (mira la documentación de Net::Telnet::Cisco, en la parte de la función prompt()), solo que además agregamos el carácter ':'. Todo lo demás ya te lo expliqué en el mensaje anterior.

P.D. Estábamos en el foro Avanzado ;)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Net::Telnet::Cisco, solo password

Notapor knightman » 2009-10-02 16:59 @749

Hola. Les cuento que por fin logré que avanzara el programa hasta el punto de motorola:7A#; adicioné el parámetro
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
Prompt => "/$hostname/",
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y funcionó perfecto, pero tengo otro gran inconveniente: no me imprime en pantalla, teniendo este condicional, ¿o qué se debe tener en cuenta cuando se coloca el prompt?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "<pre style='margin:0px; padding:6px; border:1px inset; width:98%; height:440px; overflow:auto;'>";
  2. if ($session->enable("cabemttv19") ) {
  3.     @output = $session->cmd(Prompt   => $com[$cmd],   Timeout => 240);
  4.     $FILE="BUGA.txt";
  5.     open(archivconf,">>".$FILE);
  6.     foreach(@output) {
  7.         $cadena=$_;
  8.         print archivconf ($cadena);
  9.     }
  10.     close(archivconf);
  11.     print "@output";
  12. }
  13. else {
  14.     warn "Can't enable: " . $session->errmsg;
  15. }
  16. print "</pre>";
  17. $session->close;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

El log me muestra que llega bien hasta el punto
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
BUGA:7A#
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

pero no entra al if().

Muchas gracias.
Última edición por explorer el 2009-10-02 17:06 @754, editado 1 vez en total
Razón: Ortografía, indentación del código
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

Re: Net::Telnet::Cisco, solo password

Notapor explorer » 2009-10-02 17:22 @765

Pues según el código, si falla el if(), es que falla el $session->enable("cabemttv19").

Según la documentación, cambia al modo privilegiado, con esa contraseña.

Habrá que consultar el log para que averigües por qué no acepta esa contraseña.

Hay un warn() que debería mostrar el mensaje de error en pantalla o en el STDERR.

Otra cosa, en el código pones
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach(@output) {
  2.     $cadena=$_;
  3.     print archivconf ($cadena);
  4. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y más tarde:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "@output";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

¡¡Es lo mismo!!
Puedes reescribirlo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print archivconf "@output";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pon la opción Dump_Log en la creación de la sesión y nos enseñas qué es lo que sale.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Net::Telnet::Cisco, solo password

Notapor knightman » 2009-10-05 07:18 @346

Gracias, explorer, esta es la salida dump:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
< 0x00000: ff fb 01                                            ÿû.
> 0x00000: ff fd 01                                            ÿý.

< 0x00000: 0a 0d 0a 0d  0a 0d 45 71  75 69 70 6f  20 70 72 6f  ......Equipo pro
< 0x00010: 70 69 65 64  61 64 20 50  72 69 76 61  64 61 0a 0d  piedad Privada..
< 0x00020: 50 72 6f 68  69 62 69 64  6f 20 65 6c  20 61 63 63  Prohibido el acc
< 0x00030: 65 73 6f 20  6e 6f 20 61  75 74 6f 72  69 7a 61 64  eso no autorizad
< 0x00040: 6f 0a 0d 45  6c 20 61 63  63 65 73 6f  20 6e 6f 20  o..El acceso no
< 0x00050: 61 75 74 6f  72 69 7a 61  64 6f 20 70  75 65 64 65  autorizado puede
< 0x00060: 20 73 65 72  20 63 61 75  73 61 20 64  65 20 61 63   ser causa de ac
< 0x00070: 63 69 6f 6e  65 73 20 70  65 6e 61 6c  65 73 0a 0d  ciones penales..
< 0x00080: 4c 61 73 20  61 63 63 69  6f 6e 65 73  20 73 6f 62  Las acciones sob
< 0x00090: 72 65 20 65  73 74 61 20  6d 61 71 75  69 6e 61 20  re esta maquina
< 0x000a0: 73 6f 6e 20  6d 6f 6e 69  74 6f 72 65  61 64 61 73  son monitoreadas
< 0x000b0: 20 79 20 67  75 61 72 64  61 64 61 73  20 70 61 72   y guardadas par
< 0x000c0: 61 0a 0d 73  75 20 63 6f  6e 74 72 6f  6c 0a 0d 0a  a..su control...
< 0x000d0: 0d 55 73 65  72 20 41 63  63 65 73 73  20 56 65 72  .User Access Ver
< 0x000e0: 69 66 69 63  61 74 69 6f  6e 0a 0d 50  61 73 73 77  ification..Passw
< 0x000f0: 6f 72 64 3a  20                                     ord:

> 0x00000: 42 53 52 36  34 4b 42 75  67 61 24 0d  0a           BSR64KBuga$..

< 0x00000: 0a 0d 0a 0d  42 55 47 41  5f 4d 4f 54  4f 52 4f 4c  ....BUGA_MOTOROL
< 0x00010: 41 3a 37 41  3e                                     A:7A>

> 0x00000: 65 6e 61 62  6c 65 20 0d  0a                        enable ..

< 0x00000: 65 6e 61 62  6c 65 20 0a  0d 50 61 73  73 77 6f 72  enable ..Passwor
< 0x00010: 64 3a 20                                            d:

> 0x00000: 63 61 62 65  6d 74 74 76  31 39 0d 0a               cabe..

< 0x00000: 0a 0d 42 55  47 41 5f 4d  4f 54 4f 52  4f 4c 41 3a  ..BUGA_MOTOROLA:
< 0x00010: 37 41 23                                            7A#
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Es decir, sí entra al if(), pero no continúa cuando se le envían los comandos y los imprima en pantalla.

Muchas gracias
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

Re: Net::Telnet::Cisco, solo password

Notapor explorer » 2009-10-05 07:44 @364

De acuerdo: sí que acepta la contraseña porque el prompt ha cambiado: pasa de ser BUGA_MOTOROLA:7A> a BUGA_MOTOROLA:7A#.

Lo que sigue después es esta línea:

$session->cmd(Prompt => $com[$cmd], Timeout => 240);

que es la ejecución del comando.

En ella, estás definiendo un nuevo Prompt y un Timeout de la respuesta... pero... ¿dónde están los comandos que quieres que ejecute?

Según la documentación, cmd() es así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
    @output = $obj->cmd(String   => $string,
                        [Output  => $ref,]
                        [Prompt  => $match,]
                        [Timeout => $secs,]
                        [Cmd_remove_mode => $mode,]
                        [Normalize_cmd => $boolean,]);
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

siendo $string el comando a ejecutar. Eso es lo que te falta: indicar una clave String junto con el valor del comando a ejecutar.

Recordarte también que existe el módulo Net::Telnet::Wrapper, que es una envoltura sobre los módulos Net::Telnet y Net::Telnet::Cisco, que facilita algunas operaciones, como el reintento de entrada o la captura de la salida de múltiples comandos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Net::Telnet::Cisco, solo password

Notapor knightman » 2009-10-05 09:43 @447

Gracias explorer. resulta que se me fue mal un parámetro. Es así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
@output = $session->cmd(String   => $com[$cmd], Timeout => 120);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y antes tengo definido
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$cmd = $cgi->param("cmd");
$cm = $cgi->param("cmts");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
donde puedo colocar $com[0]="scm"; y es ahí donde ingreso el comando a utilizar, esto con el fin de crear un select y para que el usuario pueda escoger qué comando desea enviar, pero de igual manera no me imprime en pantalla.
knightman
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2009-06-04 11:34 @523

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados