This is an old revision of the document!
Connexion à un serveur TCP/IP avec Scapy (Bonus)
Le but de cet exercice est d'ouvrir une connexion TCP/IP vers un serveur SSH (port 22) en effectuant la traditionnelle poignée de main avec Scapy. Pour établir la connexion TCP/IP avec Scapy vers le serveur SSH, il faut réaliser la traditionnelle poignée de main TCP en trois étapes (envoi de SYN → réception de SYN-ACK → envoi de ACK). Toutes les machines du réseau virtuel dispose d'un serveur SSH.
- Sur une machine cliente, par exemple immortal :
- utilisez cette commande :
iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
- puis lancez Scapy.
- Complétez le programme ci-dessous en respectant les étapes suivantes :
- envoi du paquet SYN avec notamment les champs TCP sport=7777, dport=22, flags=“S” et seq=0.
- réception du paquet SYNACK…
- envoi du paquet ACK avec les champs TCP flags=“A”, seq=SYNACK.ack, ack=SYNACK.seq+1, …
- réception du message MSG envoyé par le serveur, qui doit contenir du texte indiquant la version du serveur OpenSSH, enfin si tout marche bien !
SYN = IP(???)/TCP(???) SYNACK = sr1(SYN) ACK = IP(???)/TCP(???) MSG = sr1(ACK) print MSG.load
Attention : Il faut effectuer ces commandes rapidement pour éviter un “timeout” du serveur (sinon, le mieux serait d'utiliser une fonction Python) ! De plus, pour effectuer plusieurs tests consécutifs, il faut changer à chaque fois le numéro du port source TCP (sport=5467,…) car on ne ferme pas les connexions correctement !