UTC505 26-09-24
Shéma TCP IP :
[Applicatif] FTP/SSH/DNS/HTTP [Transport] TCP/UDP/ICMP [Resau] IPv4/IPv6/IPsec [Accès_reseau] Ethernet
Les couches communiquent entre elles en montant et en decendant.
1 octet -> 8bits 1 octet -> 2 symbole hexadecimal
Maximun d'une tram 1518 et minumu 64 octets
Exemple d'une trame :
00: 0800 2018 ba40 aa00 0400 1fc8 0800 4500 16: 0028 a3fc 4000 3f06 af63 a3ad 2041 a3ad 32: 80d4 0558 0017 088d de7e ba77 66c9 5010 48: 7d78 3c30 0000 0000 0000 0000 0000 0000
0800 2018 ba40 -> adresse mac dst 6 octets aa00 0400 1fc8 -> adresse mac src 6 octets 0800 -> types 2 octets
4500 0028 a3fc 4000 3f06
a3ad 2041 -> adresse IP dst 4 octets a3ad 80d4 -> adresse IP src 4 octets 0558 -> port dst 0017 -> port src
088d de7e ba77 66c9 5010 7d78 3c30
0000 0000 0000 0000 0000 0000 -> bourage d'octets
Il faut 64 octet minimum donc utilisation des Bit de bourage pour complêter la tram (représenté par 0000)
Petit exemple d'un scapy :
from scapy.all import IP, ICMP
Create an IP packet with the correct parameters
packet = IP(version=4, ihl=None, tos=0x00, id=1, flags=0, ttl=64, proto='icmp', src="192.168.10.10", dst="192.168.10.100")
Display the packet details
packet.show()
nk@debian:~/Documents/UTEC/UTC505/UTC505-26-09-24$ scapy INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().
aSPY//YASa
apyyyyCY//////////YCa |
sY//////YSpcs scpCY//Pp | Welcome to Scapy
ayp ayyyyyyySCP//Pp syY//C | Version 2.5.0
AYAsAYYYYYYYY///Ps cY//S |
pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy
SPPPP///a pP///AC//Y |
A//A cyP////C | Have fun!
p///Ac sC///a |
P////YCpc A//A | What is dead may never die!
scccccp///pSP///p p//Y | -- Python 2
sY/////////y caa S//P |
cayCyayP//Ya pY/Ya
sY/PsY////YCc aC//Yp
sc sccaCY//PCypaapyCP//YSs
spCPY//////YPSps
ccaacs
using IPython 8.5.0
a = IP(version=4, ihl=None, tos=0x00, id=1, flags=0, ttl=64, proto='icmp', src="192.168.10.10", dst="192.168.10.100") a.show() ###[ IP ]### version = 4 ihl = None tos = 0x0 len = None id = 1 flags = frag = 0 ttl = 64 proto = icmp chksum = None src = 192.168.10.10 dst = 192.168.10.100 \options \
mon_ping = (Ether() / IP(dst="192.168.0.129")) /ICMP()dns my_ping = (Ether(dst="14:18:c3:63:6a:14")) /IP(dst="192.168.0.129")) / ICMP()