bonjour voila mon projet est de pouvoir envoyer un packet avec scapy avec un port de destination tres special (genre 80 ou 22 ou 161 ou 123 ...)
et si l'ip repond au packet envoyer c'est bon cela veux dire que le port est ouvert


bon voila je sais comment envoyer le packet
dans l'exemple j'ai choisis le protocole UDP (port 161) lié au service SNMP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#!/usr/bin/env python
from scapy.all import *
import socket
import subprocess
import sys
from datetime import datetime


subprocess.call('clear', shell=True)


adresseIP    = raw_input("Adresse IP : ")

data ="\x14"
packet = IP(dst=adresseIP)/UDP(dport=161)/Raw(load=data) 
send(packet)
Bon voila la j'ai envoyer le packet mais comment obtenir la reponse et savoir si on recoit quelque chose ou pas pour savoir si le port est ouvert ou fermer


j'ai penser a cette fonction sr1()

en codant ce code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
import socket
import subprocess
import sys
from scapy.all import *
from datetime import datetime

subprocess.call('clear', shell=True)

adresseIP    = raw_input("Adresse IP : ")

pingr = IP(dst=adresseIP)/UDP(dport=161)
sr1(pingr)
La aussi le probleme est que meme sur des machines ou j'ai installer snmp et activer via un service snmpd restart et où le port 161 est open (test via nmap) je got aucun packet

mais genre si je tape www.google.com je recois quelque chose


Des idée pour m'aider a recevoir la reponse d'un packet envoyer sur le port 161 ?


Merci d'avance