Affichage de chaine extraite.
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 :
Code:
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) |
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é.
Le résultat arrive sous cette forme :
Code:
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 |
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.
Si quelqu'un aurait une idée .
Merci d'avance.