Bonjour,
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est
basé sur PCAP et la libdnet. Il a été testé sur NetBSD, GNU/Linux
et Windows XP et devrait normalement aussi fonctionner sur d'autres
plate-formes (FreeBSD, OpenBSD, Mac OS X ou les Unix propriétaires).
Le but est d'avoir une implémentation minimale, portable et efficace
des concepts de Scapy (écrit en Python) avec un code commenté et
documenté.
C'est la première version publique, peu de dissectors et de champs ont
été implémentés pour l'instant.
Ceux que ça intéresse peuvent allez jeter un oeil à
http://sylvainsarmejeanne.free.fr/projects/scaperl pour plus d'infos et
pour la doc.
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question) -- Kevin
Le 06-11-2006, Sylvain SARMEJEANNE <sylvain.sarmejeanne.ml@gmail.com> a écrit :
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal?
(C'est une vraie question)
--
Kevin
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question) -- Kevin
Damien \zaide\ Desmarets
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Un outil de fuzzing rapide à développer ? PS: j'ai pas regardé la lib ;) je dis ca au filling
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal?
(C'est une vraie question)
Un outil de fuzzing rapide à développer ?
PS: j'ai pas regardé la lib ;) je dis ca au filling
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Un outil de fuzzing rapide à développer ? PS: j'ai pas regardé la lib ;) je dis ca au filling
Vincent Bernat
OoO En ce début d'après-midi ensoleillé du mardi 07 novembre 2006, vers 15:26, Kevin Denis disait:
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Le fait de scripter en Python (ou en Perl) est beaucoup plus pratique. hping sait aussi générer des paquets arbitraires, mais avec Scapy, tu peux facilement manipuler le payload (faire de l'IP dans de l'IP dans de l'UDP, dans de l'IP dans de l'Ethernet). Regarde la page de Scapy, elle fourmille d'exemples sur les trucs que tu peux faire. -- BOFH excuse #338: old inkjet cartridges emanate barium-based fumes
OoO En ce début d'après-midi ensoleillé du mardi 07 novembre 2006,
vers 15:26, Kevin Denis <kevin@nowhere.invalid> disait:
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal?
(C'est une vraie question)
Le fait de scripter en Python (ou en Perl) est beaucoup plus
pratique. hping sait aussi générer des paquets arbitraires, mais avec
Scapy, tu peux facilement manipuler le payload (faire de l'IP dans de
l'IP dans de l'UDP, dans de l'IP dans de l'Ethernet). Regarde la page
de Scapy, elle fourmille d'exemples sur les trucs que tu peux faire.
--
BOFH excuse #338:
old inkjet cartridges emanate barium-based fumes
OoO En ce début d'après-midi ensoleillé du mardi 07 novembre 2006, vers 15:26, Kevin Denis disait:
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Le fait de scripter en Python (ou en Perl) est beaucoup plus pratique. hping sait aussi générer des paquets arbitraires, mais avec Scapy, tu peux facilement manipuler le payload (faire de l'IP dans de l'IP dans de l'UDP, dans de l'IP dans de l'Ethernet). Regarde la page de Scapy, elle fourmille d'exemples sur les trucs que tu peux faire. -- BOFH excuse #338: old inkjet cartridges emanate barium-based fumes
Sylvain SARMEJEANNE
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question) -- Kevin
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy different from most other networking tools" :
http://www.secdev.org/projects/scapy/
Sylvain SARMEJEANNE
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal?
(C'est une vraie question)
--
Kevin
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy
different from most other networking tools" :
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question) -- Kevin
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy different from most other networking tools" :
http://www.secdev.org/projects/scapy/
Sylvain SARMEJEANNE
Nicob
On Mon, 06 Nov 2006 12:34:15 +0000, Sylvain SARMEJEANNE wrote:
Le but est d'avoir une implémentation minimale, portable et efficace des concepts de Scapy (écrit en Python) avec un code commenté et documenté.
Commenté et documenté ? Yeah, ce serait un grand pas par rapport à l'original, qui est excellent mais pour le moins peu documenté.
Et ce qui m'a fait rire en voyant ce post, c'est que certains avaient déjà envisagé l'existence d'un port Ruby, mais pas Perl ;-)) Perl rulez !
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy different from most other networking tools" :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine. Avec hping, si. Tout les champs sont modifiable, padding compris. -Second, they usually confuse decoding and interpreting: avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux. -Third, even programs which only decode do not give you all the information they received: ethereal affiche le paquet dans son integralite.
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ? -- Kevin
Le 08-11-2006, Sylvain SARMEJEANNE a écrit :
Scaperl est un outil permettant de créer des paquets réseaux à la
main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en
Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal?
(C'est une vraie question)
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy
different from most other networking tools" :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine.
Avec hping, si. Tout les champs sont modifiable, padding compris.
-Second, they usually confuse decoding and interpreting:
avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos
yeux.
-Third, even programs which only decode do not give you all the
information they received:
ethereal affiche le paquet dans son integralite.
Par contre est il possible de scenariser scaperl?
Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type,
j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la
reponse, etc.. ?
--
Kevin
Scaperl est un outil permettant de créer des paquets réseaux à la main, de les envoyer, ainsi que d'écouter sur une interface. Ecrit en Perl, il est basé sur PCAP et la libdnet.
Que peut faire sca[py|perl] que ne peut pas faire hping + ethereal? (C'est une vraie question)
Je te renvoie à la page de Scapy, au paragraphe "What makes scapy different from most other networking tools" :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine. Avec hping, si. Tout les champs sont modifiable, padding compris. -Second, they usually confuse decoding and interpreting: avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux. -Third, even programs which only decode do not give you all the information they received: ethereal affiche le paquet dans son integralite.
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ? -- Kevin
Eric Razny
Le Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis a écrit :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine.
Et ça ne va pas non? :) Si je te copie la "vrai" phrase c'est :
"First, *with most other tools*, you won't build someting the author did not imagine."
Ce qu'il y a entre les deux virgules n'est pas pour faire joli!
-Second, they usually confuse decoding and interpreting: avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux.
Rien ne t'empêche d'utiliser wireshark -ethereal n'est plus- (ou un simple tcpdump et différer l'analyse) en sus des autres outils. C'est d'ailleurs ce que tu sufférais avec hping.
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ?
Ben c'est l'interêt d'un langage de prog associé à un outil...
Le Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis a écrit :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine.
Et ça ne va pas non? :)
Si je te copie la "vrai" phrase c'est :
"First, *with most other tools*, you won't build someting the author did
not imagine."
Ce qu'il y a entre les deux virgules n'est pas pour faire joli!
-Second, they usually confuse decoding and interpreting:
avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos
yeux.
Rien ne t'empêche d'utiliser wireshark -ethereal n'est plus- (ou un
simple tcpdump et différer l'analyse) en sus des autres outils. C'est
d'ailleurs ce que tu sufférais avec hping.
Par contre est il possible de scenariser scaperl?
Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type,
j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la
reponse, etc.. ?
Ben c'est l'interêt d'un langage de prog associé à un outil...
Le Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis a écrit :
http://www.secdev.org/projects/scapy/
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine.
Et ça ne va pas non? :) Si je te copie la "vrai" phrase c'est :
"First, *with most other tools*, you won't build someting the author did not imagine."
Ce qu'il y a entre les deux virgules n'est pas pour faire joli!
-Second, they usually confuse decoding and interpreting: avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux.
Rien ne t'empêche d'utiliser wireshark -ethereal n'est plus- (ou un simple tcpdump et différer l'analyse) en sus des autres outils. C'est d'ailleurs ce que tu sufférais avec hping.
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ?
Ben c'est l'interêt d'un langage de prog associé à un outil...
Nicob
On Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis wrote:
avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux.
Hum, Wireshark (ex-Ethereal) interprète énormément. C'est d'ailleurs toute sa force (extrêmement pratique pour analyser un paquet) et sa faiblesse (grande surface d'attaque et nombreuses failles de sécurité) vis à vis de tcpdump.
Nicob
On Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis wrote:
avec ethereal, aucune interpretation n'est faite.
Le paquet est sous nos yeux.
Hum, Wireshark (ex-Ethereal) interprète énormément. C'est d'ailleurs
toute sa force (extrêmement pratique pour analyser un paquet) et sa
faiblesse (grande surface d'attaque et nombreuses failles de sécurité)
vis à vis de tcpdump.
On Fri, 10 Nov 2006 10:52:05 +0000, Kevin Denis wrote:
avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux.
Hum, Wireshark (ex-Ethereal) interprète énormément. C'est d'ailleurs toute sa force (extrêmement pratique pour analyser un paquet) et sa faiblesse (grande surface d'attaque et nombreuses failles de sécurité) vis à vis de tcpdump.
Nicob
Sylvain SARMEJEANNE
C'est justement ce qui me fait m'interroger: -First you won't build someting the author did not imagine. Avec hping, si. Tout les champs sont modifiable, padding compris.
A ma connaissance, hping ne gère que IP, ICMP, TCP et UDP avec une charge utile. L'intérêt de Scap{y,erl} est de pouvoir construire très facilement des dissecteurs pour d'autres protocoles, typiquement les protocoles "applicatifs", en utilisant différents champs (octet, entier, entier long, ou des champs spécialisés comme "adresse IP" ou "nom NetBIOS").
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ?
Tout à fait, voir la section "Scripting Scaperl" dans la documentation où je donne un exemple d'utilisation de Scaperl dans un script Perl externe.
Sylvain SARMEJEANNE
C'est justement ce qui me fait m'interroger:
-First you won't build someting the author did not imagine.
Avec hping, si. Tout les champs sont modifiable, padding compris.
A ma connaissance, hping ne gère que IP, ICMP, TCP et UDP avec une
charge utile. L'intérêt de Scap{y,erl} est de pouvoir construire
très facilement des dissecteurs pour d'autres protocoles, typiquement
les protocoles "applicatifs", en utilisant différents champs (octet,
entier, entier long, ou des champs spécialisés comme "adresse IP" ou
"nom NetBIOS").
Par contre est il possible de scenariser scaperl?
Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type,
j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la
reponse, etc.. ?
Tout à fait, voir la section "Scripting Scaperl" dans la documentation
où je donne un exemple d'utilisation de Scaperl dans un script Perl
externe.
C'est justement ce qui me fait m'interroger: -First you won't build someting the author did not imagine. Avec hping, si. Tout les champs sont modifiable, padding compris.
A ma connaissance, hping ne gère que IP, ICMP, TCP et UDP avec une charge utile. L'intérêt de Scap{y,erl} est de pouvoir construire très facilement des dissecteurs pour d'autres protocoles, typiquement les protocoles "applicatifs", en utilisant différents champs (octet, entier, entier long, ou des champs spécialisés comme "adresse IP" ou "nom NetBIOS").
Par contre est il possible de scenariser scaperl? Par exemple j'envoie le paquet A, si j'obtiens une reponse de tel type, j'envoie le paquet B, sinon le paquet B'. Puis en fonction de la reponse, etc.. ?
Tout à fait, voir la section "Scripting Scaperl" dans la documentation où je donne un exemple d'utilisation de Scaperl dans un script Perl externe.
Sylvain SARMEJEANNE
Kevin Denis
Le 12-11-2006, Nicob a écrit :
avec ethereal, aucune interpretation n'est faite. Le paquet est sous nos yeux.
Il y a une fenetre avec l'interpretateur, qui a ses defauts (par exemple des flux afs montres comme RUDP ou cisco protocol), mais il y a aussi le dump hexa du paquet. Et en cas de doute, celui ci fera foi.
C'est d'ailleurs toute sa force (extrêmement pratique pour analyser un paquet) et sa faiblesse (grande surface d'attaque et nombreuses failles de sécurité) vis à vis de tcpdump.
Il faudrait quand meme etre sacrement vicieux lors d'une attaque
reseau pour envoyer au milieu des paquets faisant crasher wireshark.
-- Kevin
Le 12-11-2006, Nicob <nicob@I.hate.spammers.com> a écrit :
avec ethereal, aucune interpretation n'est faite.
Le paquet est sous nos yeux.
Il y a une fenetre avec l'interpretateur, qui a ses defauts (par exemple
des flux afs montres comme RUDP ou cisco protocol), mais il y a aussi le
dump hexa du paquet. Et en cas de doute, celui ci fera foi.
C'est d'ailleurs
toute sa force (extrêmement pratique pour analyser un paquet) et sa
faiblesse (grande surface d'attaque et nombreuses failles de sécurité)
vis à vis de tcpdump.
Il faudrait quand meme etre sacrement vicieux lors d'une attaque
reseau pour envoyer au milieu des paquets faisant crasher wireshark.
Il y a une fenetre avec l'interpretateur, qui a ses defauts (par exemple des flux afs montres comme RUDP ou cisco protocol), mais il y a aussi le dump hexa du paquet. Et en cas de doute, celui ci fera foi.
C'est d'ailleurs toute sa force (extrêmement pratique pour analyser un paquet) et sa faiblesse (grande surface d'attaque et nombreuses failles de sécurité) vis à vis de tcpdump.
Il faudrait quand meme etre sacrement vicieux lors d'une attaque
reseau pour envoyer au milieu des paquets faisant crasher wireshark.