O nmap documentação afirma o seguinte para NULL
FIN
e Xmas
scans:
Quando sistemas de digitalização compatível com RFC texto, qualquer pacote não contém SYN, RST ou ACK bits irá resultar em um ex-PRIMEIRO, se a porta está fechada e nenhuma resposta se a porta estiver aberta. Desde que nenhum desses três bits esteja incluído, qualquer combinação dos outros três (FIN, PSH e URG) está OK. Nmap explora isso com três tipos de varredura
como você pode ver, se a porta estiver aberta nenhuma resposta seria retornada. Isso pode funcionar em cenários ideais, mas você pode estar digitalizando através de uma firewall que pode estar bloqueando o acesso a certos serviços.
Por exemplo, você tiver um aplicativo da web na porta 80, que deve ser acessível para todos, mas você não quer que todos sejam capazes de aceder à sua porta ssh, então, configure o firewall para descartar pacotes com o SYN
sinalizador para a porta 22, se não é a partir de um IP autorizados e responder uma tag RST
neste exemplo, usando uma varredura com o SYN
bandeira de retorno de uma RST
o que significa que a porta está fechada. Em vez disso, vamos usar um NULL
scan por exemplo – que não tem o SYN
bandeira – não serão descartados pelo firewall e vai voltar RST
se a porta está fechada ou nada se abrir.
como é que eu decido quando usar XMAS ou scans de FIN quando ambos têm a mesma resposta e as mesmas limitações?
na maioria dos casos, essas varreduras devem funcionar da mesma forma, a única razão pela qual eu posso pensar em escolher um ao outro é para contornar certos filtros de firewall. No exemplo anterior, o firewall também pode deixar cair pacotes de umNULL
scan uma vez que não há bandeiras nele, portanto interpretando-o como pacote corrompido. Neste caso você deve usar um exame que tem algumas bandeiras, mas que não contém o SYN
bandeira, como FIN
ou Xmas
verifica
Note que você não será capaz de saber se a porta está aberta, na realidade se você não receber nenhuma resposta, como também é possível que o firewall gotas RST
resposta quando uma porta está fechada, portanto, interpretar erroneamente como abrir quando não é. Para este tipo de varreduras funcionar corretamente você deve ter algum conhecimento prévio de como o servidor responde a esses tipos de varreduras usando uma porta para a qual sabe o estado exato (em nosso exemplo pode ser a porta 80) e analisar as diferentes respostas para cada tipo de varredura