Annonce

Réduire
Aucune annonce.

Packet sniffer en Python

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • News Packet sniffer en Python


    Bonjour ,

    Je viens partager avec vous un nouvel exercice auquel j'ai du répondre.


    Voici l’énoncé:

    # Create a packet sniffer using raw sockets which can parse TCP packets
    # - parse individual fields


    Voici le script du packet sniffer

    Code:
    #!/usr/bin/python
    
    # Create a packet sniffer using raw sockets which can parse TCP packets
    #               - parse individual fields
    
    import socket
    import struct
    import binascii
    
    
    def ethernetPacket(ethernetHeader):
    
            # Ethernet header = 14 first bytes
            # !6s6s2
            # Ethernet destination address 
            # Ethernet source address 
            # Ethernet type
            
            eth_hdr = struct.unpack("!6s6s2s", ethernetHeader)
            print "\nEthernet Packet Header Information:"
            print "Destination MAC: {}".format(binascii.hexlify(eth_hdr[0]))
            print "Source MAC: {}".format(binascii.hexlify(eth_hdr[1]))
            print "Protocol: {}".format(binascii.hexlify(eth_hdr[2]))
    
    def ipPacket(ipHeader):
    
            # IP header = 20 next bytes   
            # !1s1s1H1H2s1B1B2s4s4s
            # Version
            # Service length
            # Total length
            # Identification
            # Fragmentation /Flag
            # TTL
            # Protocol
            # Checksum
            # Source address
            # Destination address
            
            print "\nIP Header Information:"
            ip_header = struct.unpack("!1s1s1H1H2s1B1B2s4s4s", ipHeader)
    
            verHeadLength = binascii.hexlify(ip_header[0])
            serviceField = binascii.hexlify(ip_header[1])
            totalLength = str(ip_header[2])
            ident = str(ip_header[3])
            flagFrag = binascii.hexlify(ip_header[4])
            ttl = str(ip_header[5])
            protocol = str(ip_header[6])
            checkSum = binascii.hexlify(ip_header[7])
            srcIp = socket.inet_ntoa(ip_header[8])
            dstIp = socket.inet_ntoa(ip_header[9])
    
            print "Version:{}".format(verHeadLength)
            print "Service Length:{}".format(serviceField)
            print "Total Length:{}".format(totalLength)
            print "Identification:{}".format(ident)
            print "Fragmentation/Flag offset:{}".format(flagFrag)
            print "TTL:{}".format(ttl)
            print "Protocol:{}".format(protocol)
            print "Checksum:{}".format(checkSum)
            print "Source IP:{}".format(srcIp)
            print "Destination IP:{}".format(dstIp)
    
    def tcpPacket(tcpHeader):
    
            # TCP header = 20 next bytes    
            # !HHII2sH2sH
            # Source port
            # Destination port
            # Sequence Number
            # Acknowledgement
            # TCP header length
            # Window Size
            # Checksum
            # Urgent Pointer
            
            print "\nTCP Header Information"
    	tcp_header = struct.unpack("!HHII2sH2sH", tcpHeader)
            destPort = str(tcp_header[0])
            srcPort = str(tcp_header[1])
            seqNo = str(tcp_header[2])
            ackNo = str(tcp_header[3])
            headerLength = binascii.hexlify(tcp_header[4])
            windowSize = str(tcp_header[5])
            checkSum = binascii.hexlify(tcp_header[6])
            urgentPointer = str(tcp_header[7])
            
            print "Source Port:{}".format(srcPort)
            print "Dest Port:{}".format(destPort)
            print "Sequence Number:{}".format(seqNo)
            print "Acknowledgement:{}".format(ackNo)
            print "TCP header length:{}".format(headerLength)
            print "Window Size:{}".format(windowSize)
            print "Checksum:{}".format(checkSum)
            print "Urgent Pointer:{}".format(urgentPointer)
    
    
    # Starting the stuff
    # sudo ifconfig eth0 promisc up
    # sudo python2 script_name.py
    
    # 0x0800 is internet protocol packet , see IF_ETHER.H in /usr/include/linux
    
    rawSocket=socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0800))
    maxBuffer = 65535
    
    while True:
            pkt = rawSocket.recvfrom(maxBuffer)
            print "\nRAW PACKET:\n{}".format(pkt)        
            ethernetPacket(ethernetHeader = pkt[0][0:14])
            ipPacket(ipHeader=pkt[0][14:34])
            tcpPacket(tcpHeader=pkt[0][34:54])
    Le résultat dans le terminal



    RAW PACKET:
    ('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00E\x00\x01\xd4\xf7\[email protected]\[email protected]\x11D\x0b\x7f\x 00\x00\x01\x7f\x00\x00\x01\x82\xb6\x82\xb6\x01\xc0\xff\xd3\x02\x00\x00\x00\xb8\x01\x00\x00\x00\x00\x 00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\xee\x04\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x 00\x00\x00\x00\x00p\n\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x0 0\x00\x00\x00o\n\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00 \x00\x00\x95\x0b\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00 \x00\x00', ('lo', 2048, 0, 772, '\x00\x00\x00\x00\x00\x00'))

    Ethernet Packet Header Information:
    Destination MAC: 000000000000
    Source MAC: 000000000000
    Protocol: 0800

    IP Header Information:
    Version :45
    Service Length: 00
    Total Length: 468
    Identification: 63243
    Fragmentation/Flag offset: 4000
    TTL: 64
    Protocol: 17
    Checksum: 440b
    Source IP: 127.0.0.1
    Destination IP: 127.0.0.1

    TCP Header Information
    Source Port : 33462
    Dest Port : 33462
    Sequence Number : 29425619
    Acknowledgement : 33554432
    TCP header length : b801
    Window Size: 0
    Checksum: 0000
    Urgent Pointer: 0
    Ceci est un premier test, je n'ai d’ailleurs mis les mains dans les packets que depuis hier matin, ce qui explique sûrement qu'il y ait quelques erreurs. Je n'ai pas encore modifié les constantes pour les mettre en majuscules et les adresses MAC ne sont pas affichées dans ce packet, mais testez le chez vous, ce script fonctionne.
    Je vous demanderais donc comme d'habitude d’être indulgent, de tester le script par vous même , et de me faire un retour pour savoir que ça ne va pas, voire pas du tout, ou le contraire.

    ATTENTION:
    pour rester dans la légalité , je vous invite a lire le document "Les aspects juridiques du scan et des tests intrusifs - OSSIR" a la partie "Légalité du sniffing" : www.ossir.org/jssi/jssi2010/2A.pdf
    Dernière modification par blend, 15 août 2015, 15h37.

  • #2
    Hello,

    J'ai un problème concernant mon analyseur de packets. j'ai ajouté un bout de code pour choisir quel packets analyser, et afficher les données http (pour le port 80 c'est ce qui est demandé pour la suite de l'exercice). Alors les données affichées dans le terminal semblent .... encodées. je cherche sur Google, mais pour l'instant je n'ai pas encore trouvé de solution. Par la suite toutes les informations sont encodées elles aussi. Si quelqu'un avait une idée.


    Le bout de code:


    Code:
    rawSocket=socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0800))
    maxBuffer = 65535
    
    port = int(raw_input("Port to sniff: "))
    
    while True:
            pkt = rawSocket.recvfrom(maxBuffer)
            tcpHeader=pkt[0][34:54]
            data = pkt[0][54:]        
            tcp_header = struct.unpack("!HHII2sH2sH",tcpHeader)
            destPort = str(tcp_header[0])
            if destPort == "80":
                print "\nRAW PACKET:\n{}".format(pkt)        
                ethernetPacket(ethernetHeader=pkt[0][0:14])
                ipPacket(ipHeader=pkt[0][14:34])
                tcpPacket(tcpHeader=pkt[0][34:54])            
                print "\nData:\n{}".format(data)
    Le résultat(au début au moins les informations sont en clair ):
    RAW PACKET:
    ('\xc7\xc f\xd0\xd5^\xb52j\xd1[\xa37\xd8\xe0\xe8h+\x994\xaa\x185\xdb\x99\x0e;\xfbR)}\xc3\xb1\xcbe,^S\x0e\x81]\xe6\xdd\x023\x1c\xe7\x85\xe3\xcau\xa3\xccm\x1c\x1b\xc5\xd2\x08/)\xe1f)\r,\xfa\xc2\xe60_w_\x8aW\xa9^,\x84\xf9\xf4\x0b\xd0t0\xc6\x1a\xb5I3\x15\xd0wv\x83\r\xab"\xd0\x 1b\x15\xe1\x9c\xcd\xb6`\x99\xfes\xca\x0f\xe4\x8d\xd7f\xaaj\xc7\xad\x87y\x03\xa2\xc1F"\x1b\x97\xa1\x0 f\xa7\x1c\xf7\x13*=CgLH\xa1\xf6\xc7\x1e\xa9\xa6\x92\xfd\xdf\xd6E\xb2\x06m\xb0\xb1>\x04m\xa3t\[email protected]\ xda/\x9d\xb2\xe0*F\xf3\xafW\x1eB\xdcH\xb0\x1d\xf7\x87\x98iH\xf1\xf2\\+9O)s\xd0\xad\xd2U\x94\xe0i`4\x16[7\xc8\x1a\xe0\xc1\xc6\xfd\xb0I\xc2\r\xe9\x84\xf5\x7f\x00\x00\x00\xff\xff\r\n', ('eth0', 2048, 0, 1, '\x00\x07\xcb0~\xef'))

    Ethernet Packet Header Information:
    Destination MAC: 54fe402c777b
    Source MAC: 1117mp589xyf
    Protocol: 0800

    IP Header Information:
    Version:45
    Service Length:00
    Total Length:962
    Identification:36642
    Fragmentation/Flag offset:4000
    TTL:55
    Protocol:6
    Checksum:c8e3
    Source IP:255.255.255.227
    Destination IP:192.168.0.10

    TCP Header Information
    Source Port:54528
    Dest Port:80
    Sequence Number:769619942
    Acknowledgement:1870834903
    TCP header length:8018
    Window Size:518
    Checksum:a40a
    Urgent Pointer:0

    Data:
    
    ����
    ;��0���7W����W0|��� ����\\a�o�:Y(^8������l��֕��Z_oͨ�/���уҳ[��(�,�<���>M�-�}�|x�(?OA'H�7b%|�h�R+��� ��G�%�[email protected]
    Le résultat(encodé au bout d'un moment):

    RAW PACKET:
    ('\│94\│␍␊\│80≠\│83\│1▒\│00\│07\│␌␉0·\│␊°\│08\│00E\│00\│00<\│00\│[email protected]\│007\│06[\│8␌\│␌3\│9▒␌\│␊3\│␌0\│▒8\│00\┼\│00P\│␍5\│05\│99°\│1␉\│19\│9▒#\│▒2\│▒0\│▒0\│128\│90\│␉▒\│°␌\│00\ │00\ │02\│04\│05\│␉4\│04\│02\│08\┼\│▒7\│␊2\│°0_\│00\│14\⎼E\│01\│03\│03\│05', ('␊├␤0', 2048, 0, 1, '\│00\│07\│␌␉0·\│␊°'))

    E├␤␊⎼┼␊├ P▒␌┐␊├ H␊▒␍␊⎼ I┼°⎺⎼└▒├␋⎺┼:
    D␊⎽├␋┼▒├␋⎺┼ MAC: 78␍␊625␌100▒
    S⎺┤⎼␌␊ MAC: 724␌␉555␊␊°
    P⎼⎺├⎺␌⎺┌: 0800

    IP H␊▒␍␊⎼ I┼°⎺⎼└▒├␋⎺┼:
    V␊⎼⎽␋⎺┼:45
    S␊⎼┴␋␌␊ L␊┼±├␤:00
    T⎺├▒┌ L␊┼±├␤:60
    I␍␊┼├␋°␋␌▒├␋⎺┼:0
    F⎼▒±└␊┼├▒├␋⎺┼/F┌▒± ⎺°°⎽␊├:4000
    TTL:55
    P⎼⎺├⎺␌⎺┌:6
    C␤␊␌┐⎽┤└:5␉8␌
    S⎺┤⎼␌␊ IP:255.255.255.227
    D␊⎽├␋┼▒├␋⎺┼ IP:192.168.0.10

    TCP H␊▒␍␊⎼ I┼°⎺⎼└▒├␋⎺┼
    S⎺┤⎼␌␊ P⎺⎼├:54533
    D␊⎽├ P⎺⎼├:80
    S␊─┤␊┼␌␊ N┤└␉␊⎼:2573605657
    A␌┐┼⎺┬┌␊␍±␊└␊┼├:2586026656
    TCP ␤␊▒␍␊⎼ ┌␊┼±├␤:▒012
    W␋┼␍⎺┬ S␋≥␊:14480
    C␤␊␌┐⎽┤└:␉▒°␌
    U⎼±␊┼├ P⎺␋┼├␊⎼:0

    Commentaire


    • #3
      Ce que je vais dire est très certainement incorrect mais ne serais tu pas occupé à snifer une connexion en HTTPS (et donc cryptée) ?

      Commentaire


      • #4
        Hello Anonyme77,

        Non je scanne les packets du port 80 pour ce script. Ce que je trouves bizarre, c'est que quand j’affiche le paquet en raw je voit les informations en clair. La j'ai testé sur un nouveau packet, ça fonctionne pendant un moment et après c'est de nouveau comme encodé. J'ai essayé avec python3 pour vérifier si ce n'est pas un problème avec python2, mais c'est pareil.


        RAW PACKET
        (\x00E\x00\x01\xc5\xc0}@\x007\x06\x99\x85\xc3\x9ac\xe3\xc0\xa8\x00\n\x00P\xe5}Ht,\xf4\x9d\xcb\xbf\x9 d\x80\x18\x02\x1f\xc7\xec\x00\x00\x01\x01\x08\n\xa7\xfc\xec\xcb\x00.\toHTTP/1.1 200 OK\r\nDate: Sun, 16 Aug 2015 16:53:25 GMT\r\nServer: Apache\r\nCache-Control: private\r\nPragma: private\r\nX-Powered-By: PleskLin\r\nMS-Author-Via: DAV\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 75\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/xml; charset=windows-1252\r\n\r\n\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xb3\xb1\xaf\xc8\xcdQ(K-*\xce\xcc\xcf\xb3U2\xd43PRH\xcdK\xceO\xc9\xccK\xb7U*\xcf\xccK\xc9//\xd65425R\xb2\xb7\xe3\xb2\xc9\xcf\xb63\xb4\xd1\x07\x92\\\x00\x1d\xa0[\x849\x00\x00\x00', ('eth0', 2048, 0, 1, '\x00\x07\xcb0~\xef'))
        PS: Ce que j'ai oublie de signaler c'est que une fois que c'est encodé, même après avoir stoppé le script avec ctrl-Z, le terminal reste en mode crypté et je suis obligé d'en ouvrir un nouveau pour que je retrouves un affichage en clair pendant un moment.

        Terminal en clair:
        [email protected]:~/Bureau/packet_s$
        Terminal en codé:
        ┌▒␉⎺°│@┌▒␉⎺°│-T⎺-:·/B┤⎼␊▒┤/⎻▒␌┐␊├_⎽$
        Dernière modification par blend, 16 août 2015, 18h26.

        Commentaire


        • #5
          Et peux tu me dire ce qui passe pas ton port 80 ? As tu un site web ou que sais je ? Est ce que quelqu'un ne serait pas occupé à télécharger un fichier binaire une image ou quelque chose ?

          Pour restaurer l'encodage de ta console la commande reset devrait fonctionner si mes souvenirs sont bons.

          Commentaire


          • #6
            Ben en fait la j'analyse tout les packets entrants sur mon pc par le port 80, dont environ 20 onglets en http sur firefox. Merci pour la commande reset qui fonctionne bien.

            Commentaire


            • #7
              Je ne suis pas certain de te suivre la.

              Le port 80 est généralement utilisé par les serveurs Web pas par les instances de Firefox. Celles ci devraient prendre des ports beaucoup plus haut. Au minimum > 1024.

              Sous quel os fonctionne tu ? As tu un serveur web qui tourne ?

              Commentaire


              • #8
                Il me semble que le port 80 est bien le port utilisé par HTTP , comme le port 443 qui est utilisé pour le HTTPS. Après le problème est pourquoi mon terminal est chiffré avec tout ce qui est affiché un bout d'un instant ^^ .Je tournes sous ubuntu.

                Selon Wikipedia:
                HTTP est un protocole de la couche application. Il peut fonctionner sur n'importe quelle connexion fiable, dans les faits on utilise le protocole TCP comme couche de transport. Un serveur HTTP utilise alors par défaut le port 80 (443 pour HTTPS).Les clients HTTP les plus connus sont les navigateurs Web permettant à un utilisateur d'accéder à un serveur contenant les données

                Tiens regarder par ici aussi: https://fr.wikipedia.org/wiki/Hypert...%AAte_HTTP.png , c'est bien le port 80 qui est utilisé

                Je te fait une copie d'un scan de ports pour google:

                Starting Nmap 6.00 ( http://nmap.org ) at 2015-08-16 21:34 EEST
                Initiating Ping Scan at 21:34
                Scanning google.fr (216.58.210.3) [4 ports]
                Completed Ping Scan at 21:34, 0.06s elapsed (1 total hosts)
                Initiating SYN Stealth Scan at 21:34
                Scanning google.fr (216.58.210.3) [100 ports]
                Discovered open port 443/tcp on 216.58.210.3
                Discovered open port 80/tcp on 216.58.210.3
                Completed SYN Stealth Scan at 21:34, 1.83s elapsed (100 total ports)

                [+] Nmap scan report for google.fr (216.58.210.3)
                Host is up (0.00095s latency).
                Not shown: 98 filtered ports

                PORT STATE SERVICE
                80/tcp open http
                443/tcp open https
                Dernière modification par blend, 16 août 2015, 19h35.

                Commentaire


                • #9
                  Le port 80 est bien utilisé pour le protocole HTTP mais pour les serveurs Web.
                  Les clients ne sont pas sur ce port. Crois moi.

                  En plus en scannant Google tu scannes bien la partie serveur du protocole. Pas la partie client.

                  Que se passe t'il si tu ouvres un Firefox et que tu vas sur l'adresse localhost ?

                  Je pense vraiment que tu snife des paquets qui contiennent des données en binaire. Puis que tu les affiche et que cela pose des problèmes à ton terminal.
                  Le résultat sera le même si tu essayes de faire un cat d'un exécutable.

                  Commentaire


                  • #10
                    J'ai en partie réglé mon problème ou mon terminal semblait crypté après l'utilisation de mon packet sniffer, en modifiant légèrement mon script, mais ça me plaît pas encore puisque en partie les données affichées ne sont pas encore claires.

                    La partie du code modifiée:

                    Code:
                    while True:
                            donn = ""
                            pkt = rawSocket.recvfrom(maxBuffer)
                            tcpHeader = pkt[0][34:54]
                            data = pkt[0][54:]
                            #data = binascii.hexlify(data)
                            #data = data.decode("UTF-8")
                            tcp_header = struct.unpack("!HHII2sH2sH",tcpHeader)
                            destPort = str(tcp_header[0])
                            if destPort == "80":
                                print ("\nRAW PACKET:\n{}").format(pkt)        
                                ethernetPacket(ethernetHeader = pkt[0][0:14])
                                ipPacket(ipHeader = pkt[0][14:34])
                                tcpPacket(tcpHeader = pkt[0][34:54])
                                for elements in data:
                                    if ord(elements) <= 126:
                                        donn = donn + elements
                                print ("\nData:\n{}").format(donn),
                                #.decode('ascii'))

                    Qui me donne en partie un résultat en clair, mais l'autre partie reste illisible


                    Ethernet Packet Header Information:
                    Destination MAC: xxxxxxxxxxxx
                    Source MAC: xxxxxxxxxxxx
                    Protocol: 0800

                    IP Header Information:
                    Version:45
                    Service Length:00
                    Total Length:1500
                    Identification:34950
                    Fragmentation/Flag offset:4000
                    TTL:55
                    Protocol:6
                    Checksum:cd65
                    Source IP:195.154.99.227
                    Destination IP:192.168.0.10

                    TCP Header Information
                    Source Port:47622
                    Dest Port:80
                    Sequence Number:2029614150
                    Acknowledgement:3665134666
                    TCP header length:8010
                    Window Size:505
                    Checksum:ee7a
                    Urgent Pointer:0


                    DATA:
                    Server: Apache
                    Cache-Control: private
                    Pragma: private
                    X-Powered-By: PleskLin
                    MS-Author-Via: DAV
                    Vary: Accept-Encoding
                    Content-Encoding: gzip
                    Keep-Alive: timeout=5, max=100
                    Connection: Keep-Alive
                    Transfer-Encoding: chunked
                    Content-Type: text/html; charset=ISO-8859-1

                    175d
                    ]r[+>N"I]m7eGT
                    0-9U>fcUX9_5?7hsk3
                    Oh#Opkr>dky);|yhF5bw$|C"~<XK)v#9NPI4*IixO"HE
                    *sIwrf3:Pc5ORcMif}/QFRMz]#=rC/t8~wWu[c7&Q)fgeSgoY{cik $o8Ze$wS?as06[M96ylk{9RCA~-B Tp*(S/K
                    9I6d`%3{QK[%'urIfRy"aViCY[
                    0a
                    NEa:0HxQ.'DU^:^%^KPG t
                    yNe*j/5e7`\[email protected]#<63,4rb&8B6yhRY$,_1N^K"t'1ekN45JMloo)^,2,0h^lX2x<?
                    w)'Z1%E VF

                    tz&KclV)
                    KjRwfb&/`1.b\cz#dL7
                    W [email protected] FlbPQ\ekl&"

                    Je suis sur qu'il existe une autre solution , mais tous les autres scripts que j'ai regardés sur google ne s'occupent pas de ce problème et affichent simplement les données [0][54:]. Je vais continuer mes recherches , parce que pour l'instant nous n'avons pas encore le droit d'utiliser scapy pour ces exercices.
                    Dernière modification par blend, 17 août 2015, 09h16.

                    Commentaire


                    • #11
                      Si tu regardes les headers de ta requête illisible, tu peux voir ceci :
                      Content-Encoding: gzip
                      Ce qui signifie que la partie data de la page a été compressée avant envoi. Les données sont dans un pseudo format binaire comme je te le disais.
                      Elles doivent probablement être décompressées pour apparaitre en clair.

                      Est ce que quelqu'un d'autres peut confirmer ou infirmer cette théorie ?

                      Commentaire


                      • #12
                        Il y a possibilité de vérifier cela, voir ce lien... C'est en python 2.x, mais en 3.x on fait la même chose avec le module urllib.request

                        @Anonyme, bien vu

                        P.S Autre solution, ce lien, où il faut recevoir le texte est décompresser avec zlib

                        Commentaire


                        • #13
                          Oui j'ai tenté avec zlib mais pour le moment je n'y arrives simplement pas ....malgré plusieurs essais (je vais me faire un petit cours avec zlib sur google videos), ce qui n'est pas vraiment grave (pour le moment). je reviendrais la dessus ultérieurement, après avoir refait le même exercice avec scapy cette fois ci.

                          j'ai donc pris la solution de facilité en utilisant:
                          Code:
                          pkt = rawSocket.recvfrom(maxBuffer) 
                          datload = pkt[0][54:]
                          data1 = binascii.b2a_qp(datload,quotetabs=False,istext=True)
                          print "\nData:\n{}\n\n".format(data1),


                          binascii.b2a_qp(data[, quotetabs, istext, header])

                          Convert binary data to a line(s) of ASCII characters in quoted-printable encoding. The return value is the converted line(s). If the optional argument quotetabs is present and true, all tabs and spaces will be encoded. If the optional argument istext is present and true, newlines are not encoded but trailing whitespace will be encoded. If the optional argument header is present and true, spaces will be encoded as underscores per RFC1522. If the optional argument header is present and false, newline characters will be encoded as well; otherwise linefeed conversion might corrupt the binary data stream.

                          qui me donnes un résultat qui me convient pour le moment:
                          RAW PACKET:
                          ('\x11\x11\x11|\x11\x22\x22\x22\xc22~\x22\x08\x00E\x00\x05\xdc;\[email protected]\x007\x06\x1a\x05\xc3\x9ac\xe3\x c0\xa8\x00\n\x00P\xdc%\xf4\x8a\xd5Qi]\xf7\x85\x80\x10\x02\x03\xc4+\x00\x00\x01\x01\x08\n\xa9\x04\xf1\xdb\[email protected]\xf2\xceHTTP/1.1 200 OK\r\nDate: Mon, 17 Aug 2015 12:06:53 GMT\r\nServer: Apache\r\nCache-Control: private\r\nPragma: private\r\nX-Powered-By: PleskLin\r\nMS-Author-Via: DAV\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n16bd\r\n\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec]\xebr\x1b7\xb2\xfe\x9d\xad\xdaw\x80\x99Z\x1f\'\x11\xef\xa2\xae\xb6\xe2\x9b\xb2\x8e#\xc5J\xecdk7\x95\ xa8\xc0!\xc4\x81<\x03\x8cq\xa1d\xbf\xe1y\x0b\xff\x8byN\xd5\xf9\xb5\x0fp\xba\x81\x99!%[\xf2l\xd5:%p\x91\xcdF\x145\x03\x0e\x1b_\x03\xdd\xfd5\xba\xff\xfc\xa7\xcf\xee\x1aE\xb4y\x9d\xb1{\xad\ x19S\x86\'4k\xd3\x8cO\xc5\x8e\x91\xc5nk\xef\xcf\x7f\xfa\x0c\xae\x99\\qM\xce\'\x93\x8c\xed\x9e\xf1\x8 9Iw\xfa\x7f)\xaf\xff\xec\xae.\xa8\xa8n\xc9\xa9\x9ar\xb1\xd3+\xcew\xcfRnX\x1b\xfe\x98\xb0\x1d!\xcf\x1 4-vO\xa40m\xcd\xdf\xb0\x9d\xea\xe6\xf2\xee$\xa3Z\xdfk\xe9\x94NX\xeb\xfd\xb1Z{w)I\x15;\xb9\xd7J\x8d)v\x ba\xdd\x94&/\xe1\xda\x9c\'\xbas\xa2\xba9\xd7I\xa7H\x8b\xaf\x93d\x9c\xc9\xe4\xdez\xaf\xdf\xaf\xc71\xec\xdc\xb4\', \x91\x8a\x1a.\x05<\x8c`\xbb-b\xb8\xc1\xbf\x1eH\xf8\x86\\3E\x12Fr\xa65\x9d22\xa1B\x93\x8ciBU\x92\xf2\x19\xd3\xf0\x04<\x9fV\xcf\xc 9E\xc6\x05\x837\xe03T\x02\xbf\xe7p\x93\xee\xe6\xcc(\xd9\x1dg\x96u\xb5\xa1\xc6j\x9eH\xd1-\xa46\xc7\x82\x9du\n\x01\xd7\xd3\xcc\xdck}/\xed\x8cQ\xdb"c\xa9&L\xddk\xf5Z\xa4\xbbG\xeev\xe9\x1e\xf9\xa5\xbf\x9e\xf6\x06\xbf\xde\xed\xa2`\xf6n\ x8b\xb1.v\xebo\x9f\xb3|\xcc\x94\xfb\xa6\xf6\xdeh\xa37j\xed\x1d\xd2\x94\x0f\xf0\xce\x8fJ\xb2\xad\xf84 5;\x9b(\xcf\x9dr|?\x83\x8b\xd7\x0e\x01]3\xb9\x0c\x85\xa5\x99\xbb\x84\x8a\xb14F\xe65\x18\xf0B\x92\xc8L\xc2\xb7\xfa|\xc8\xf0\x7f\xad\xbd\xe74 \xb3\x86\x18iQ\xa8$\x97b\xc2n\xdd\xed\xe2\xa5{\x17>\x10\xfe\x0f\xaf\x15\xbe\xfeO\x82j\xefFAUf\x93\xc 6P\x1d\xa4\xfd\x8d&P\xdd\x18l\x0c[{\x0f\xb9\xd4\xa9L^\xdep\xb4>aY&I\x04h\r\xd0\xdev\xb0\x00\xed\xa7\xc3F\x00\xdd\xdc\x1a\[email protected]\xf7\xb5a ?\xb3\x7f\x1c\xdfp\x80\x82\xc0\xecy\x84g\r\xcf\xad`\xe1\xd9K\x07\x8d\xb6\xfaA\x7f\xb0\xde\xda{\x00_\ xe7u\xce67o8>\x1fJq*\xad"o\xdd\x96\xdf\x89H\xad\x91\xba\x19*R{\xdb\xe9\xfaf#\xa4\x82\xb5\xf7\xe0\xbb \x07?>\xfb\xf9\x86\x83T\xb1"\xe3l\xd2\xe9Fx\xd6\xf0\xdc\x08\x19\x9e\x8d\xf6y\\F\x8f\xd7o\xe8\x02\xfa 0\x83\x19j\xed\xdd\xd7/gd\x87H\xcb#4kh\x8e\x82\x85\xe6V\xba>\\\x15hz\xd7h\x9c11\x89\xd8\xac\xb1\xb9\x1e06\x87[M\xb09\x1c\x8c6Z{\xe5\xbc\xdfD|.lO\xce\x049`\x04lPr\x08\x93 \xc8o\xbfE\xa8\xd6P\x1d\x86\n\xd5\xc1 ]__\x95e\x14\xf0)\xfc\x97%\x85\x9c$T\x1b2a\xe4{y\xc0sn\x9e\xb3\xc4\x92\x19\xc0\xd8\xbd\xa9%\x8c\xad\x c8\xc4\x92\x13p\xa9\xd6\xc0\xa7\x9aIM\xe6\x89\xb4\x86Y\xa5\xc1N\xb8\x0c\x82\xb3\xb3\xb3\x8e\x90\x19\ x0e\xa5a(\x04\xc2\x14\x84\x9d\xa8\xd7\x85\xe9\xc2\x04\xc37g \xed\xe3qF\x05<K\x93\xbb\x9c0\xa3\x12UJ4\x08V\x89\xfa\xe9h{U\x94\x08Vx-A50*B\x98!\x8b\xe8r\x04j\t\xd4\x9b\xc5\x81\xfd\x87\x035\xe2\xb2\xc6e\xb0\x84\x17\xe0\xb2\xb7z\x84\x1 7\xda\xca4\xcb\xd8\x1br\x8ab&8\x1fB\xb0\xc4\xb0\x0ey\x00\xbf\xe5\x14\xcch\x03\x16G\xcd\xde\x12\'\xf1 e\xf9\xea\x9cg\x1c~\x8e\xf9t\xaa\xb8\xf0\x02]\x12\xa1\x93m=\xb1\x0f\xf9\x94\xfc\x15.k}`\xd6\xba\xd1\xd4(5e\xb8\xbd\x1d,\xf3\x86\x9a2Z9MyA\xe1\xcd \x82\xeb\x88\xff?\x08\xff\xc1R{\x88\xff\xa0\xa9\xbd_<\xf6\xcdX\x9e\x1f\xfb\x97\xbf>\x05\xb7\x95\x91\ xec\xf6\xe7\xc3\xed]\xcaIA5\xb8\xa7\x98\xd3C\tn\x11\x9d_\xba\xee\xc2_#p\xb7\xb7\x83e\xfa\x06\xbdt\xb4z&\xce\x0b\x05\xd2\ x1ccl\xb0\x90V)\nK\xb8\xb1\xe4\xd4j\x03Rw\x80fb&_\xc34\x80\x89c\\\xf0\x05\xae=<"_\xc7\xc5\xb8\xc6t\x b0\xf4 b\xbaY\xf00\xa0\xc5\xb8Z\x86g\x96\xdc\xaf\xb4\xb0C`\x8d6\xfe/\xa7\x18"\x04\xa4\x97\x06|\\\x9d\x97\x90\x1c,\x9b\x88Hn\xc4&', ('eth0', 2048, 0, 1, '\x00\x07\xcb0~\xef'))

                          Ethernet Packet Header Information:
                          Destination MAC: xxxxxxxxx
                          Source MAC: xxxxxxxxx
                          Protocol: 0800

                          IP Header Information:
                          Version:45
                          Service Length:00
                          Total Length:1500
                          Identification:15335
                          Fragmentation/Flag offset:4000
                          TTL:55
                          Protocol:6
                          Checksum:1a05
                          Source IP:xxx.xxx.xx.xxx
                          Destination IP:192.168.0.10

                          TCP Header Information
                          Source Port:56357
                          Dest Port:80
                          Sequence Number:4102739281
                          Acknowledgement:1767765893
                          TCP header length:8010
                          Window Size:515
                          Checksum:c42b
                          Urgent Pointer:0

                          Data:
                          =01=01=08
                          [email protected]=F2=CEHTTP/1.1 200 OK
                          Date: Mon, 17 Aug 2015 12:06:53 GMT
                          Server: Apache
                          Cache-Control: private
                          Pragma: private
                          X-Powered-By: PleskLin
                          MS-Author-Via: DAV
                          Vary: Accept-Encoding
                          Content-Encoding: gzip
                          Keep-Alive: timeout=3D5, max=3D100
                          Connection: Keep-Alive
                          Transfer-Encoding: chunked
                          Content-Type: text/html; charset=3DISO-8859-1

                          16bd
                          =1F=8B=08=00=00=00=00=00=00=03=EC]=EBr=1B7=B2=FE=9D=AD=DAw=80=99Z=1F'=11=EF=
                          =A2=AE=B6=E2=9B=B2=8E#=C5J=ECdk7=95=A8=C0!=C4=81<=03=8Cq=A1d=BF=E1y=0B=FF=
                          =8ByN=D5=F9=B5=0Fp=BA=81=99!%[=F2l=D5:%p=91=CDF=145=03=0E=1B_=03=DD=FD5=BA=
                          =FF=FC=A7=CF=EE=1AE=B4y=9D=B1{=AD=19S=86'4k=D3=8CO=C5=8E=91=C5nk=EF=CF=7F=
                          =FA=0C=AE=99\qM=CE'=93=8C=ED=9E=F1=89Iw=FA=7F)=AF=FF=EC=AE.=A8=A8n=C9=A9=9A=
                          r=B1=D3+=CEw=CFRnX=1B=FE=98=B0=1D!=CF=14-vO=A40m=CD=DF=B0=9D=EA=E6=F2=EE$=
                          =A3Z=DFk=E9=94NX=EB=FD=B1Z{w)I=15;=B9=D7J=8D)v=BA=DD=94&/=E1=DA=9C'=BAs=A2=
                          =BA9=D7I=A7H=8B=AF=93d=9C=C9=E4=DEz=AF=DF=AF=C71=EC=DC=B4',=91=8A=1A.=05<=
                          =8C`=BB-b=B8=C1=BF=1EH=F8=86\3E=12Fr=A65=9D22=A1B=93=8CiBU=92=F2=19=D3=F0=
                          =04<=9FV=CF=C9E=C6=05=837=E03T=02=BF=E7p=93=EE=E6=CC(=D9=1Dg=96u=B5=A1=C6j=
                          =9EH=D1-=A46=C7=82=9Du
                          =01=D7=D3=CC=DCk}/=ED=8CQ=DB"c=A9&L=DDk=F5Z=A4=BBG=EEv=E9=1E=F9=A5=BF=9E=F6=
                          =06=BF=DE=ED=A2`=F6n=8B=B1.v=EBo=9F=B3|=CC=94=FB=A6=F6=DEh=A37j=ED=1D=D2=94=
                          =0F=F0=CE=8FJ=B2=AD=F845;=9B(=CF=9Dr|?=83=8B=D7=0E=01]3=B9=0C=85=A5=99=BB=
                          =84=8A=B14F=E65=18=F0B=92=C8L=C2=B7=FA|=C8=F0=7F=AD=BD=E74=B3=86=18iQ=A8$=
                          =97b=C2n=DD=ED=E2=A5{=17>=10=FE=0F=AF=15=BE=FEO=82j=EFFAUf=93=C6P=1D=A4=FD=
                          =D0=DEv=B0=00=ED=A7=C3F=00=A9L^=DEp=B4>aY&I=04h
                          =CF=AD`=E1=D9K=07=8D=B6==7F=1C=DFp=80=82=C0=ECy=84g
                          =FAA=7F=B0=DE=DA{=00_=E7u=CE67o8>=1FJq*=AD"o=DD=96=DF=89H=AD=91=BA=19*R{=DB=
                          =E9=FAf#=A4=82=B5=F7=E0=BB=07?>=FB=F9=86=83T=B1"=E3l=D2=E9Fx=D6=F0=DC=08=19=
                          =9E=8D=F6y\F=8F=D7o=E8=02=FA0=83=19j=ED=DD=D7/gd=87H=CB#4kh=8E=82=85=E6V=BA=
                          >\=15hz=D7h=9C11=89=D8=AC=B1=B9=1E06=87[M=B09=1C=8C6Z{=E5=BC=DFD|.lO=CE=049=
                          `=04lPr=08=93 =C8o=BFE=A8=D6P=1D=86
                          =D5=C1 ]__=95e=14=F0)=FC=97%=85=9C$T=1B2a=E4{y=C0sn=9E=B3=C4=92=19=C0=D8=BD=
                          =A9%=8C=AD=C8=C4=92=13p=A9=D6=C0=A7=9AIM=E6=89=B4=86Y=A5=C1N=B8=0C=82=B3=B3=
                          =B3=8E=90=19=0E=A5a(=04=C2=14=84=9D=A8=D7=85=E9=C2=04=C37g =ED=E3qF=05<K=93=
                          =BB=9C0=A3=12UJ4=08V=89=FA=E9h{U=94=08Vx-A50*B=98!=8B=E8r=04j =D4=9B=C5=81=
                          =FD=87=035=E2=B2=C6e=B0=84=17=E0=B2=B7z=84=17=DA=CA4=CB=D8=1Br=8Ab&8=1FB=B0=
                          =C4=B0=0Ey=00=BF=E5=14=CCh=03=16G=CD=DE=12'=F1e=F9=EA=9Cg=1C~=8E=F9t=AA=B8=
                          =F0=02]=12=A1=93m=3D=B1=0F=F9=94=FC=15.k}`=D6=BA=D1=D4(5e=B8=BD=1D,=F3=86=
                          =9A2Z9MyA=E1=CD=82=EB=88=FF?=08=FF=C1R{=88=FF=A0=A9=BD_<=F6=CDX=9E=1F=FB=97=
                          =BF>=05=B7=95=91=EC=F6=E7=C3=ED]=CAIA5=B8=A7=98=D3C n=11=9D_=BA=EE=C2_#p=B7=
                          =B7=83e=FA=06=BDt=B4z&=CE=0B=05=D2=1Ccl=B0=90V)
                          K=B8=B1=E4=D4j=03Rw=80fb&_=C34=80=89c\=F0=05=AE=3D<"_=C7=C5=B8=C6t=B0=F4 b=
                          =BAY=F00=A0=C5=B8Z=86g=96=DC=AF=B4=B0C`=8D6=FE/=A7=18"=04=A4=97=06|\=9D=97=
                          =90=1C,=9B=88Hn=C4&
                          Vais faire une petite pause et boire un bon thé a la menthe, et prendre l'ai car j'ai un léger mal de crane.Peut être je me complique un peu trop la tache.
                          Dernière modification par blend, 17 août 2015, 16h19.

                          Commentaire


                          • #14
                            Bonjour,

                            Voici une adaptation du script "Packet sniffer" que j'ai du faire pour un exercice, qui me demandait d'utiliser le framework scapy. Selon https://fr.wikipedia.org/wiki/Scapy, Scapy est un logiciel libre de manipulation de paquets réseau écrit en python. Il est capable, entre autres, d'intercepter le trafic sur un segment réseau, de générer des paquets dans un nombre important de protocoles, de réaliser une prise d'empreinte de la pile TCP/IP, de faire un traceroute, d'analyser le réseau informatique.



                            voici l’énoncé de exercice:
                            Create a packet sniffer with scapy for HTTP protocol, and print out
                            - the HTTP header
                            - data in GET/POST
                            J'ai volontairement ajouté quelques options.
                            Voici le script:
                            Code:
                            from scapy.all import *
                            
                            print "--------- SCAPY PORT 80 PACKET SNIFFER ---------\n"
                            
                            port80 = sniff(iface = "eth0", filter="tcp and port 80", count = 10)
                            packetN = 1
                            for packet in port80:
                            	if (packet.haslayer(Raw)):            
                            	    data = str(packet.getlayer(Raw))
                            	    if "\r\n\r\n" in data:
                                            print "--------- HEXDUMP OF PACKET NUMBER {} ---------\n".format(packetN)
                                            hexdump([packet])
                                            print "\n--------- SHOW PACKET ---------\n"
                                            packet.show()
                            		print "\n----------HTTP HEADER----------\n{}\n".format(data[0:data.find("\r\n\r\n")] + "\n")
                            		if "GET /" in data:
                            		    print "\n----------GET-DATA----------\n{}\n".format(data.split("\n")[0] + "\n")
                                            elif "POST /" in data:
                            		    print "\n----------POST DATA----------\n{}\n".format(data.split("\n")[0] + "\n")
                            		    print data[data.find("\r\n\r\n"):len(data)] + "\n\n\n\n\n"
                            	packetN = packetN + 1
                            Pour démarrer ce script:
                            sudo python2 nom_du_script.py

                            Le résultat:
                            --------- HEXDUMP OF PACKET NUMBER 56 ---------


                            0040 3C 49 50 20 20 76 65 72 73 69 6F 6E 3D 34 4C 20 <IP version=4L
                            0050 69 68 6C 3D 35 4C 20 74 6F 73 3D 30 78 30 20 6C ihl=5L tos=0x0 l
                            0060 65 6E 3D 35 33 30 20 69 64 3D 32 32 38 37 35 20 en=530 id=22875
                            0070 66 6C 61 67 73 3D 44 46 20 66 72 61 67 3D 30 4C flags=DF frag=0L
                            0080 20 74 74 6C 3D 36 34 20 70 72 6F 74 6F 3D 74 63 ttl=64 proto=tc
                            0090 70 20 63 68 6B 73 75 6D 3D 30 78 37 31 33 20 73 p chksum=0x713 s
                            00a0 72 63 3D 31 39 32 2E 31 36 38 2E 30 2E 31 30 20 rc=192.168.0.10
                            00b0 64 73 74 3D 32 31 32 2E 39 35 2E 36 37 2E 31 30 dst=111.11.11.10
                            00c0 32 20 6F 70 74 69 6F 6E 73 3D 5B 5D 20 7C 3C 54 2 options=[] |<T
                            00d0 43 50 20 20 73 70 6F 72 74 3D 33 34 34 36 32 20 CP sport=34462
                            00e0 64 70 6F 72 74 3D 68 74 74 70 20 73 65 71 3D 32 dport=http seq=2
                            00f0 39 31 34 37 34 39 37 30 32 4C 20 61 63 6B 3D 33 914749702L ack=3
                            0100 38 35 37 30 37 30 35 32 34 4C 20 64 61 74 61 6F 857070524L datao
                            0110 66 73 3D 38 4C 20 72 65 73 65 72 76 65 64 3D 30 fs=8L reserved=0
                            0120 4C 20 66 6C 61 67 73 3D 50 41 20 77 69 6E 64 6F L flags=PA windo
                            0130 77 3D 32 32 39 20 63 68 6B 73 75 6D 3D 30 78 61 w=229 chksum=0xa
                            0140 38 38 32 20 75 72 67 70 74 72 3D 30 20 6F 70 74 882 urgptr=0 opt
                            0150 69 6F 6E 73 3D 5B 28 27 4E 4F 50 27 2C 20 4E 6F ions=[('NOP', No
                            0160 6E 65 29 2C 20 28 27 4E 4F 50 27 2C 20 4E 6F 6E ne), ('NOP', Non
                            0170 65 29 2C 20 28 27 54 69 6D 65 73 74 61 6D 70 27 e), ('Timestamp'
                            0180 2C 20 28 34 39 37 39 36 32 30 37 2C 20 32 33 32 , (49796207, 232
                            0190 34 32 33 33 31 35 35 4C 29 29 5D 20 7C 3C 52 61 4233155L))] |<Ra
                            01a0 77 20 20 6C 6F 61 64 3D 27 47 45 54 20 2F 78 74 w load='GET /xt
                            01b0 63 6F 72 65 2E 6A 73 20 48 54 54 50 2F 31 2E 31 core.js HTTP/1.1
                            01c0 5C 72 5C 6E 48 6F 73 74 3A 20 77 77 77 2E 6C 65 \r\nHost: www.le

                            0260 71 3D 30 2E 38 2C 65 6E 2D 55 53 3B 71 3D 30 2E q=0.8,en-US;q=0.
                            0270 35 2C 65 6E 3B 71 3D 30 2E 33 5C 72 5C 6E 41 63 5,en;q=0.3\r\nAc
                            0280 63 65 70 74 2D 45 6E 63 6F 64 69 6E 67 3A 20 67 cept-Encoding: g
                            0290 7A 69 70 2C 20 64 65 66 6C 61 74 65 5C 72 5C 6E zip, deflate\r\n
                            02a0 44 4E 54 3A 20 31 5C 72 5C 6E 52 65 66 65 72 65 DNT: 1\r\nRefere
                            02b0 72 3A 20 68 74 74 70 3A 2F 2F 77 77 77 2E 6C 65 r: http://www.le
                            02c0 73 65 63 68 6F 73 2E 66 72 2F 70 6F 6C 69 74 69 sechos.fr/politi
                            02d0 71 75 65 2D 73 6F 63 69 65 74 65 2F 73 6F 63 69 que-societe/soci
                            02e0 65 74 65 2F 30 32 31 32 37 35 34 30 38 30 33 30 ete/021275408030
                            02f0 2D 65 6E 2D 64 69 72 65 63 74 2D 61 74 74 61 71 -en-direct-attaq
                            0300 75 65 2D 64 61 6E 73 2D 75 6E 2D 74 68 61 6C 79 ue-dans-un-thaly
                            0310 73 2D 6C 65 2D 70 61 72 71 75 65 74 2D 66 65 64 s-le-parquet-fed
                            0320 65 72 61 6C 2D 62 65 6C 67 65 2D 6F 75 76 72 65 eral-belge-ouvre
                            0330 2D 75 6E 65 2D 65 6E 71 75 65 74 65 2D 31 31 34 -une-enquete-114
                            0340 36 39 32 30 2E 70 68 70 5C 72 5C 6E 43 6F 6F 6B 6920.php\r\nCook
                            0350 69 65 3A 20 6C 61 73 74 70 61 67 65 3D 25 32 46 ie: lastpage=%2F
                            0360 70 6F 6C 69 74 69 71 75 65 2D 73 6F 63 69 65 74 politique-societ
                            0370 65 25 32 46 73 6F 63 69 65 74 65 5C 72 5C 6E 43 e%2Fsociete\r\nC
                            0380 6F 6E 6E 65 63 74 69 6F 6E 3A 20 6B 65 65 70 2D onnection: keep-
                            0390 61 6C 69 76 65 5C 72 5C 6E 5C 72 5C 6E 27 20 7C alive\r\n\r\n' |
                            03a0 3E 3E 3E 3E 5D >>>>]

                            --------- SHOW PACKET ---------

                            ###[ Ethernet ]###
                            dst =
                            src =
                            type = IPv4
                            ###[ IP ]###
                            version = 4L
                            ihl = 5L
                            tos = 0x0
                            len = 530
                            id = 22875
                            flags = DF
                            frag = 0L
                            ttl = 64
                            proto = tcp
                            chksum = 0x713
                            src =
                            dst =
                            \options \
                            ###[ TCP ]###
                            sport = 34462
                            dport = http
                            seq = 2914749702L
                            ack = 3857070524L
                            dataofs = 8L
                            reserved = 0L
                            flags = PA
                            window = 229
                            chksum = 0xa882
                            urgptr = 0
                            options = [('NOP', None), ('NOP', None), ('Timestamp', (49796207, 2324233155L))]
                            ###[ Raw ]###
                            load = 'GET /xtcore.js HTTP/1.1\r\nHost: www.lesechos.fr\r\nUser-Agent: ***************/*\r\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\nDNT: 1\r\nReferer: http://www.lesechos.fr/politique-soc...php\r\nCookie: lastpage=%2Fpolitique-societe%2Fsociete\r\nConnection: keep-alive\r\n\r\n'

                            ----------HTTP HEADER----------
                            GET /xtcore.js HTTP/1.1
                            Host: www.lesechos.fr
                            User-Agent: *********************************
                            Accept: */*
                            Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
                            Accept-Encoding: gzip, deflate
                            DNT: 1
                            Referer: http://www.lesechos.fr/politique-soc...te-1146920.php
                            Cookie: lastpage=%2Fpolitique-societe%2Fsociete
                            Connection: keep-alive



                            ----------GET-DATA----------
                            GET /xtcore.js HTTP/1.1


                            Je vous invite a tester ce script par vous même pour vous faire une idée , et biens sur me donner votre avis.
                            Dernière modification par blend, 22 août 2015, 13h39.

                            Commentaire

                            Chargement...
                            X