Je n'ai pas accès à netcat
ou nmap
alors j'essaie d'utiliser bash
et les /dev/udp/
fichiers spéciaux pour tester les ports.
Je pourrais faire quelque chose comme:
echo "" > /dev/udp/example.com/8000
Mais $?
c'est toujours 0
lorsque vous utilisez UDP. Je suppose que c'est parce que c'est la valeur de retour de la echo ""
commande correcte?
J'essaie essentiellement de reproduire ce que je suis capable de faire nmap
et netcat
:
nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open'
nc -z -u example.com 8000 && echo 'open'
Comment pourrais-je faire cela /dev/udp
?
bash
networking
devices
Belmin Fernandez
la source
la source
Réponses:
Pour TCP, il suffit de vérifier
$?
. Si la connexion a échoué,$?
ne sera pas0
:Il faudra du temps pour
bash
réaliser que la connexion a échoué. Vous pouvez utiliser le délai d' expiration pour déclencherbash
:Le test du port udp est plus complexe.
À strictement parler, il n'y a pas d' état ouvert (bien sûr, udp est un protocole sans état ) avec udp. Il n'y a que deux états avec udp, en écoute ou non . Si l'état ne l' est pas , vous obtiendrez une destination ICMP inaccessible .
Malheureusement, le pare-feu ou le routeur supprime souvent ces paquets ICMP, vous ne serez donc pas sûr de l'état du port udp.
la source
En général, vous ne pouvez pas.
Contrairement à TCP, UDP est sans connexion. Vous ne pouvez pas détecter qu'un port est ouvert simplement en établissant une connexion sans connexion avec lui comme vous pouvez le faire avec TCP. Au lieu de cela, vous devez envoyer des données au port et voir ce qui se passe, et les détails d'UDP mis en œuvre dans le monde réel rendent l'interprétation des résultats difficile. Même des outils sophistiqués au niveau des paquets comme
nmap
ne peuvent pas dire avec certitude s'il existe un programme écoutant un port UDP donné.nmap
classe les ports UDP en trois groupes:nmap
n'a tout simplement pas compris comment obtenir une réponse; peut-être que l'utilisateur n'a pas eu de chance et que tous les paquets ont été perdus en transit.la source
nmap
. Merci, cela clarifie beaucoup de confusion.