IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Détecter des équipements configurés en telnet


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Par défaut Détecter des équipements configurés en telnet
    Bonjour,

    J'aimerais connaitre mes équipements qui serait configurés avec le protocole telnet.
    Pour cela j'ai conçu un script qui va se connecter sur tous mes équipements et qui va passer une commande.
    Le script fonctionne parfaitement, mais je rencontre un soucis avec les équipements qui justement ne sont pas configurés avec le protocole telnet ; sinon ssh.

    J'aimerais insérer une condition à savoir si la connexion telnet n'est pas établit alors on passe à l'équipement suivant.
    Je pense que cela peut-etre fait avec un if, mais je ne sais pas comment le mettre en place.

    Voici pour ce qui est du script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #!/usr/bin/expect -f
     
        #Option session
        set force_conservative 1 ;
        match_max 1000000000
        set timeout 5
     
        #Edit for User
        set user admin
     
        #Edit for Password
        set password XXXXXXXXX
     
        #Edit for prompt
        set prompt "#"
     
        #Get IP List from hosts.txt
        set f [open "/tmp/hosts.txt"]
        set data [read $f]
        close $f
     
     
            foreach line [split $data \n] {
                if {$line eq {}} continue
                spawn telnet $line
                    sleep 2
     
                    expect "Username:"
                    send "$user\r"
                    expect "assword:"
                    send "$password\r"
                    expect "$prompt"
                    send "terminal length 0\r"
                    expect "$prompt"
                    set timeout 120;
                    send "show run | i ssh\r"
     
                         expect "$prompt"
                            set output $expect_out(buffer)
                            if {[regexp { } $output matched sub1 sub2]} {
                                                            set SSH [open /tmp/confirm.list a+]
                                                            puts $SSH "$line : Connexion Telnet:"
                                                            close $SSH
                                                    } else {
                                                            set SSH [open /tmp/confirm.list a+]
                                                            puts $SSH "$line : OK"
                                                            close $SSH
                                                            }
                                                    send "exit\r"
                                                    continue
     
    }
    Sachant qu'une connexion telnet est repérée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Trying X.X.X.X...
    Connected to X.X.X.X.
    Escape character is '^]'.
    et le refus est repéré par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet: connect to address X.X.X.X: Connection refused

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    Bonjour,

    pourquoi ne pas tenter de savoir, avant de s'y connecter, de quels services dispose la machine cible avec nmap ?
    ou tester uniquement le port telnet avec nc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nc -z <ip Machine Cible> telnet && echo "connexion telnet dispo" || echo "on passe"
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Par défaut
    Bonjour,

    Ah oui effectivement, cela n'est pas bête

    Du coup j'ai trouvé une réponse à ma question en passant par une double condition expect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
            foreach line [split $data \n] {
                if {$line eq {}} continue
                spawn telnet $line
                sleep 2
                    expect {
                                    "Connected" {
                                            send "$user\r"
                                            expect "assword:"
                                            send "$password\r"
                                            expect "$prompt"
                                            send "terminal length 0\r"
                                            expect "$prompt"
                                            set timeout 120;
                                            send "show run | i telnet\r"
                                            expect "$prompt"
     
                                            set telnet $expect_out(buffer)
                                            if {[regexp {telnet} $telnet matched sub1 sub2]} {
                                                    set SSH [open /tmp/test.list a+]
                                                    puts $SSH "$line : Connexion Telnet"
                                                    close $SSH
                                            } else {
     
                                                   }
                                            send "exit\r"
                                            continue
                                                            }
     
     
                                    "telnet:" {
                                            continue
                                            send "exit\r"
                                                    }
    }}
    Par contre j'aimerais savoir s'il est possible de récupérer le retour de ma commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send "show run | i telnet\r
    en complément de ma ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     send "show run | i telnet\r"

Discussions similaires

  1. détecter des colonnes par leur classe
    Par destructive dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/05/2007, 17h28
  2. Détecter des écrans en java
    Par sandytarit dans le forum Multimédia
    Réponses: 3
    Dernier message: 01/02/2007, 21h54
  3. [C#] interagir avec des équipements telecom
    Par Abydos Business Group dans le forum C#
    Réponses: 2
    Dernier message: 09/01/2007, 13h58
  4. [C#] Comment détecter des contrôles HTML ?
    Par Landolsi dans le forum ASP.NET
    Réponses: 14
    Dernier message: 23/01/2006, 12h13
  5. [Configuration] Détecter des paramètres du navigateur client...
    Par Olish dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/10/2005, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo