
Atualmente estou usandoNmappara mapear redes locais em parte do meu programa, e eu queria saber quanto tempo levaria para realizar diferentes varreduras de portas em todas as portas?
Qual é o tempo limite e o tamanho médio do pacote enviado para verificar se a porta está aberta (se os pacotes são enviados para verificação) e há alguma correlação com o tempo necessário para verificar com base nesses e em quaisquer outros fatores?
Eu adoraria poder representá-los em um gráfico e possivelmente testar esses resultados também.
Eu sei que, em geral, as varreduras de portas UDP demoram mais que o TCP porque não há conexão e há muito mais recursos usados.
Responder1
Pode haver muitos fatores envolvidos, incluindo velocidade do link, duplex, tamanho mínimo do pacote, tempo de ida e volta, latência do host alvo, se um sistema de detecção/prevenção de intrusão está envolvido ou não e quantas viagens de ida e volta a verificação específica tipo requer, quão ocupado o link está, etc.
Então, vamos supor que a máquina do scanner e o alvo estejam na mesma Ethernet gigabit e estimaremos o tempo mínimo teórico que uma varredura de 65.536 portas pode levar. GigE é sempre full-duplex, tem um tamanho mínimo de quadro de 64 bytes e, após calcular os intervalos obrigatórios entre quadros, tem uma taxa de quadros máxima de 1.488.000 quadros de tamanho mínimo por segundo. TCP Syns, Syn-Acks, (vazio) Acks, Fins e Rsts são todos quadros de tamanho mínimo. No GigE em que estou agora, o RTT é de 0,3 ms (300 µseg), então vamos supor que o host de destino responda a Syns com Syn-Ack ou Rst dentro da mesma latência de 0,3 ms. Vamos supor ainda que ele responderá com um ou outro; que não haverá portas "filtradas" para as quais teremos apenas que esperar por algum tempo limite arbitrário.
Portanto, o tempo que leva para enviar TCP Syns para todas as portas é: 65.536/1.488.000 = 44ms
Como o GigE é full duplex, as primeiras respostas começariam a chegar à medida que os Syns posteriores saíssem, mas teríamos que esperar 1 RTT entre o último Syn enviado e a última resposta, então adicione 1 RTT que é 0,3ms, para um total de44,3ms.
Mesmo se você fizesse uma varredura que precisasse fazer duas viagens de ida e volta, todo o tráfego da rede ainda poderia ser feito em menos de um segundo.
Observe que se o host de destino não responder ao Syns para algumas portas, você deverá fazer sua própria escolha de quanto tempo definirá o tempo limite de "sem resposta", em seu próprio algoritmo. Mas você pode pensar nisso como o RTT. Digamos que você queira usar um tempo limite de 10 segundos. Você ainda pode enviar todos os seus Syns em 44 ms, mas pode ter que esperar 10 segundos desde o último Syn enviado para determinar se provavelmente não receberá uma resposta dessa porta. Portanto, mesmo no caso de todas as 2 ^ 16 portas não responderem e um tempo limite de 10 segundos, seu tempo total seria de 44 ms + 10 segundos = 10,044 segundos.