ncat no protocolo UDP (RH 7)

1

Estou retomando a discussão " Verifique se o host / porta remota está aberto - Não é possível usar o GNU Netcat nem o NMap - RHEL 7 ".
Não consigo obter o resultado correto porque nas minhas versões rh (5.6 e 7.1) não existe o caminho / dev / tcp nem / dev / udp.

Aqui link é explicado que pode ser resolvido usando

echo | nc -w1  $host $port >/dev/null 2>&1  ;echo $? 

e é executado apenas com o protocolo TCP, mas não com o UDP:

echo | nc -w1 -u $host $port >/dev/null 2>&1  ;echo $? 

Na verdade, verificar um serviço inexistente termina com 0. Usando o mesmo ip e porta no RH 5.6 com a opção antiga -z

nc -zu $host $port and it ends with 1, correctly.

Você tem uma ideia para resolvê-lo?

Obrigado

    
por intore 08.08.2017 / 15:39

1 resposta

1

there isn't the path /dev/tcp nor /dev/udp

Isso está correto. Aqueles não estão presentes no seu sistema de arquivos como diretórios, mas quando você inclui tanto um hostname / ip-address ee o número da porta E usá-los em um redirecionamento bash vai fazer alguma mágica. Como formulado no manual:

Bash handles several filenames specially when they are used in redirections, as described in the following table:

  • /dev/fd/fd
    If fd is a valid integer, file descriptor fd is duplicated.
  • /dev/stdin
    File descriptor 0 is duplicated.
  • /dev/stdout
    File descriptor 1 is duplicated.
  • /dev/stderr
    File descriptor 2 is duplicated.
  • /dev/tcp/host/port
    If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open a TCP connection to the corresponding socket.
  • /dev/udp/host/port
    If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open a UDP connection to the corresponding socket.

Em vez de, por exemplo:

$ ls -l /dev/tcp/serverfault.com/80  
ls: cannot access /dev/tcp/serverfault.com/80: No such file or directory

tente um redirecionamento com > ou <

$ echo "" > /dev/tcp/serverfault.com/80
$ echo " " > /dev/tcp/serverfault.com/81
-bash: connect: Connection refused
    
por 08.08.2017 / 16:06