Bonjour,
J'utilise scapy depuis peu dans le but de faire un sniffeur pouvant filtrer un certain type de donné (ici http). J'ai réussis à faire le programme ayant pour but d’afficher les données voulu mais je n'arrive pas à extraire une partie d'une chaine affiché. Voici tout d’abord le programme en question :
Donc pour faire simple le programme sniff sur l'interface eth0 avec pour filtre le protocole tcp sur le port 80 ainsi je filtre par "Parse" les données à affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #!/usr/bin/env python from scapy.all import * def parse(pkt): if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw): pkt.show() pkt = sniff(iface="eth0", filter = "tcp and port(80)", prn=parse)
Le résultat arrive sous cette forme :
Le problème arrive maintenant j'aimerais pouvoir n'affichier simplement que ce qu'il se passe dans la partie Raw . J'ai pensé à plusieurs choses notamment transformé le résultat en chaine et tenter de recherche à partir de "###[ Raw ] ###" ainsi que d'afficher à partir de load = mais je doute que ça fonctionne . J'ai recherché s'il y avait un moyen pour extraire via une fonction dans scapy dans ce but sans aucune réponse pour le moment.
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 WARNING: No route found for IPv6 destination :: (no default route?) ###[ Ethernet ]### dst = mac src = mac type = 0x800 ###[ IP ]### version = 4L ihl = 5L tos = 0x0 len = 515 id = 57113 flags = DF frag = 0L ttl = 64 proto = tcp chksum = 0x13be src = 192.168.1.19 dst = 64.14.68.84 \options \ ###[ TCP ]### sport = 53944 dport = http seq = 1966110975 ack = 3984368862 dataofs = 8L reserved = 0L flags = PA window = 913 chksum = 0x4813 urgptr = 0 options = [('NOP', None), ('NOP', None), ('Timestamp', (43050, 1977702657))] ###[ Raw ]### load = 'GET /html/demo/hello.html HTTP/1.1\r\nHost: www.december.com\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 Iceweasel/10.0.12\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nIf-Modified-Since: Thu, 29 Jun 2006 17:05:33 GMT\r\nIf-None-Match: "299-4175ff09d1140"\r\nCache-Control: max-age=0\r\n\r\n' None
Si quelqu'un aurait une idée .
Merci d'avance.
Partager