David Marec b8c8cd4fb0 Common hardening Makefile 7 months ago
..
obj d0132e1f94 Typo 8 months ago
.gitignore a91a686ac9 BPF samples 8 months ago
Makefile b8c8cd4fb0 Common hardening Makefile 7 months ago
README.md d0132e1f94 Typo 8 months ago
sockbpf.c ddb9a723f9 sockpbf: ioctl might fail 8 months ago

README.md

BPF / raw sockets samples

Adaptation sur FreeBSD sous bpf de codes écrits pour Linux qui utilisait les mécanismes raw sockets pour tester des boucles Ethernet.

sockbpf

Créez une interface de type epair:

ifconfig epair create
ifconfig epair0a 192.168.2.1/24
ifconfig epair0b 192.168.2.2/24

Surveillez le trafic:

tcpdump -vv -i epair0b

Envoyez des packets forgés par sockpvf, sur une extrémité de l'interface:

 sudo ./obj/sockbpf -i epair0a -m "04:04:04:08:08:08" -v
Mot de passe :
Prepare to send 10 packets to epair0a.
Packet #1 sent.
Packet #2 sent.
Packet #3 sent.
Packet #4 sent.
Packet #5 sent.
Packet #6 sent.
Packet #7 sent.
Packet #8 sent.
Packet #9 sent.
Packet #10 sent.
  • -i: interface où envoyer des trames;
  • -m: adresse MAC de destination;
  • -v: mode verbeux;
  • -p: nombre de trames à envoyer;
  • -t: interface de destination, supersedes -m.

Vous devriez voir les paquets entrer de l'autre coté:

tcpdump: listening on epair0b, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:28:07.619115 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) Null Supervisory, Receiver Ready, rcv seq 0, Flags [Final], length 64
19:28:07.619117 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) 802.1B I Information, send seq 1, rcv seq 1, Flags [Command], length 64
	0x0000:  0202 0202 0202 0202 0202 0202 0202 0202  ................
	0x0010:  0202 0202 0202 0202 0202 0202 0202 0202  ................
	0x0020:  0202 0202 0202 0202 0202 0202 0202 0202  ................
	0x0030:  0202 0202 0202 0202 0202 0202 0202 0202  ................
19:28:07.619118 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) 802.1B I Unnumbered, ui, Flags [Response], length 64
	0x0000:  0303 0303 0303 0303 0303 0303 0303 0303  ................
	0x0010:  0303 0303 0303 0303 0303 0303 0303 0303  ................
	0x0020:  0303 0303 0303 0303 0303 0303 0303 0303  ................
	0x0030:  0303 0303 0303 0303 0303 0303 0303 0303  ................
19:28:07.619118 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) SNA Information, send seq 2, rcv seq 2, Flags [Command], length 64
	0x0000:  0404 0404 0404 0404 0404 0404 0404 0404  ................
	0x0010:  0404 0404 0404 0404 0404 0404 0404 0404  ................
	0x0020:  0404 0404 0404 0404 0404 0404 0404 0404  ................
	0x0030:  0404 0404 0404 0404 0404 0404 0404 0404  ................
19:28:07.619118 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) SNA Supervisory, Receiver not Ready, rcv seq 2, Flags [Final], length 64
19:28:07.619120 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) IP Information, send seq 3, rcv seq 3, Flags [Command], length 64
	0x0000:  0606 0606 0606 0606 0606 0606 0606 0606  ................
	0x0010:  0606 0606 0606 0606 0606 0606 0606 0606  ................
	0x0020:  0606 0606 0606 0606 0606 0606 0606 0606  ................
	0x0030:  0606 0606 0606 0606 0606 0606 0606 0606  ................
19:28:07.619123 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) IP Unnumbered, 07, Flags [Response], length 64
	0x0000:  0707 0707 0707 0707 0707 0707 0707 0707  ................
	0x0010:  0707 0707 0707 0707 0707 0707 0707 0707  ................
	0x0020:  0707 0707 0707 0707 0707 0707 0707 0707  ................
	0x0030:  0707 0707 0707 0707 0707 0707 0707 0707  ................
19:28:07.619123 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) Unknown DSAP 0x08 Information, send seq 4, rcv seq 4, Flags [Command], length 64
	0x0000:  0808 0808 0808 0808 0808 0808 0808 0808  ................
	0x0010:  0808 0808 0808 0808 0808 0808 0808 0808  ................
	0x0020:  0808 0808 0808 0808 0808 0808 0808 0808  ................
	0x0030:  0808 0808 0808 0808 0808 0808 0808 0808  ................
19:28:07.619126 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) Unknown DSAP 0x08 Supervisory, Reject, rcv seq 4, Flags [Final], length 64
19:28:07.619126 02:a8:7b:88:0b:0a (oui Unknown) > 04:04:04:08:08:08 (oui Unknown) Unknown DSAP 0x0a Information, send seq 5, rcv seq 5, Flags [Command], length 64
	0x0000:  0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a  ................
	0x0010:  0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a  ................
	0x0020:  0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a  ................
	0x0030:  0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a 0a0a  ................

Il s'agit de trames sans protocole identifié: le code correspond à la taille du cargo (IEEE 802.3).