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

Réseau/Web Python Discussion :

besoin d'aide pour un projet de classe


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 6
    Points
    6
    Par défaut besoin d'aide pour un projet de classe
    Bonjour tout le monde, je viens en quete d'aide, voila l'intitulé du projet est le suivant,



    le truc c'est que je suis perdu, je ne connais que les bases de python, je sais créer des sockets, mais je ne vois pas comment faire ce qu'on me demande, mon prof m'a dit que je pouvais commencer par utiliser Snort, ce que j'ai fait, mais je ne vois pas apres comment créer mon propre IDS,

    il m'a aussi dit que je pouvais écrire un script qui imiterait le comportement d'un virus (j'entends par la que il en aura seulement l'apparence, il devra juste pouvoir écouter le reseau en quete de cibles, je ne veux pas que mon sujet soit fermé parce qu'on m'a mal compris =) ) mais là encore je ne vois pas, a part lui faire écouter le réseau, comment lui demander de scanner et de se déplacer.

    Voila je suis en quete de tout et n'importe quoi qui pourrait m'aider, merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut thaiexpat,

    Bonjour tout le monde, je viens en quete d'aide, voila l'intitulé du projet est le suivant,
    Je crois qu'il manque un bout dans ta phrase.

    Sinon, sur le comportement d'un "pseudo virus", je peux te conseiller de faire des recherches supplémentaires sur les sockets. Voici en somme ce que je ferais:
    • Une function envoyant un message bidon sur un port donné d'une adresse donnée et récupérant le message de retour (servant à determiner la nature de ce qui se trouve derrière ce port)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # Une function don't le b
    def scan_connection(target_host, target_port):
        try:
            #Create a socket
            #Connect to the socket
            #Send a message
            #Gather the received answer
            #Display answer
            #Close socket
       except:
            #Print that the target port is closed
    Il te faut remplacer les lignes commentées par du code. Cette function s'utiliserais comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scan_connection('192.168.1.37', 22)
    Le port 22 de l'adresse 192.168.1.37 est scanné. Tu peux ensuite scanner plusieurs ports à la suite, en somme il "écoute le réseau".

    Pour ce qui est de se déplacer, je ne sais pas. Il y a des personnes plus compétentes que moi qui pourront completer (ou decrier) ce que j'ai déjà dit.


    Julien

    PS: Désolé pour l'orthographe approximatif, correcteur automatique anglais.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Rebonjour, alors j'ai avancé mais je bute de nouveau, voila mon code

    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
    import os
    import re
    import socket
     
    os.popen("ssh -l root 172.16.15.1")
     
    fichier=os.popen("route -n", "r")
     
    sortie = fichier.read()
    fichier.close()
     
    print sortie
     
     
    def DecodeRoute(sortie):
        fields =sortie.split(' ')
        if len(fields)>1:
            if re.match(r'[0-9]{1,3}(\.[0-9]{1,3}){3}', fields[0]):
                dest=fields[0]
                print dest

    en fait je travaille avec un reseau mesh, et le probleme est que quand je lance ce script, je n'obtient pas le meme résultat que lorsque je le fait depuis le shell directement,

    je veux dire que quand je passe par le shell, je suis d'abord en root mode, puis je me connecte au routeur, et ca passe en mode routeur, ce que python ne fait pas, du coup quand je lance mon script python, cela revient au meme que lorsque je tape 'route -n' depuis le shell sans etre connecté au routeur.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    Je suis pas trop en forme aujourd'hui, corrige moi si je me trompe: tu voudrais te connecter à "172.16.15.1" et récupérer les données se trouvant dans le fichier "route -n" (si c'est ça drôle de nom)?

    Si c'est le cas, tu trouveras différentes methodes sur ce fil:
    http://stackoverflow.com/questions/1...h-using-python

    Tu peux utiliser le module "paramiko":

    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
    import paramiko
    import os
     
     
    class MySSHClient(object):
        """ Custom SSH client using paramiko """
     
        def __init__(self, server, usr, pwd):
            self.server = server
            self.username = usr
            self.password = pwd
            self.client = None
     
        def connect(self):
            self.client = paramiko.SSHClient()
            self.client.load_system_host_keys()
            self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            self.client.connect(self.server, username=self.username, \
            password=self.password)
     
        def getdata(self,filename):
            sftp = self.client.open_sftp()
            file_object = sftp.file(filename,'r')
            # Ici ton process
            print file_object.read()
     
        def close(self):
            self.client.close()
    Dans le bout de code que je t'ai fourni (non testé) j'ai créé un nouvel object en me basant sur l'object SSHClient du module paramiko. Je n'ai pas opté pour de l'héritage, mais c'est possible aussi. Le but ici étant de permettre "d'étendre" et de "personaliser" les fonctionnalités de "SSHClient". J'ai donc à titre d'exemple créé deux methodes: connect et getdata. La première créée un client ssh et se connecte, tandis que la suivante récupère le contenu d'un fichier (chemin absolu) sur le client.

    Attention, ce sont deux fonctionnalités déjà presentes avec paramiko sans avoir besoin de créer ton proper objet. Le veritable intérêt c'est que tu peux ensuite customiser ton objet en étoffant la methode getdata, en créant de nouvelles methodes (lancer des commandes dans ton client par exemple), etc

    Cela s'utiliserait comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    server = '172.16.15.1'
    usr = 'John'
    pwd = 'john the king'
    ssh_client = MySSHclient(server, usr, pwd)
    ssh_client.connect()
    ssh.client.getdata('/chemin/absolu/du/fichier.txt')
    Bon si ça marche tel quel tu peux lancer un processus de beatification de ma personne parce que ce serait un miracle!


    ju

  5. #5
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Petites precisions (ouais il est midi passé, je suis enfin reveillé):

    Admettons que ton script soit fonctionnel. Tu peux le lancer via un shell en mode administrateur comme ceci:
    sudo python monscript.py
    Tu peux envisager de passer des argurments lors de l'appel de ton script sous une forme proche de celle ci:
    sudo python monscript.py -s <'server'> -u <'user'> -p <'password'> -f <'filename'>
    Cela se fait très bien avec le module optparse


    Ju

Discussions similaires

  1. Besoin d'aide pour un projet graphique de concentration
    Par chacha2007 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 21/11/2007, 20h18
  2. besoin d'aide pour un projet en C
    Par chahine59 dans le forum C
    Réponses: 8
    Dernier message: 05/01/2007, 23h23
  3. Besoin d'aide pour un projet en vb6
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/01/2006, 05h25
  4. Besoin d'aide pour un projet
    Par ZiMo dans le forum Linux
    Réponses: 9
    Dernier message: 24/10/2005, 00h28
  5. Besoin d'aide pour un projet de jeu en ligne
    Par FLEO dans le forum Projets
    Réponses: 1
    Dernier message: 21/10/2005, 08h55

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