2.2.8. Verificando Quais Portas Estão Escutando
Depois de configurar serviços de rede, é importante prestar atenção a quais portas estão na realidade escutando nas interfaces de rede do sistema. Quaisquer portas abertas podem ser evidências de uma invasão.
Existem duas abordagens básicas para listar as portas que estão escutando na rede. A abordagem menos confiável é solicitar a pilha de rede usando comandos como
netstat -an ou lsof -i. Este método é menos confiável desde que estes programas não se conectam à máquina a partir da rede, mas é melhor verificar para ver o que está rodando no sistema. Por esta razão, estas aplicações são alvos frequentes de substituições por invasores. Crackers tentam cobrir seus rastros se eles abrirem portas de rede não autorizadas substituindo o netstat e o lsof com suas próprias, versões modificadas.
Uma maneira mais confiável de checar quais portas estão escutando na rede é usar um escaner de porta como o
nmap.
O seguinte comando emitido a partir do console determina quais portas estão escutando pelas conexões TCP da rede:
nmap -sT -O localhost
O resultado deste comando aparece como a seguir:
Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1711 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
113/tcp open auth
631/tcp open ipp
834/tcp open unknown
2601/tcp open zebra
32774/tcp open sometimes-rpc11
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.17 - 2.6.24
Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009)
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds
Este resultado mostra que o sistema está rodando o
portmap por causa da presença do serviço sunrpc . Entretanto, há também um serviço misterioso na porta 834. Para checar se a porta é associada com o a lista oficial de serviços conhecidos, digite:
cat /etc/services | grep 834
Este comando retorna nenhum resultado para a porta 834. Devido ao formato do comando, o resultado para outras portas (1834, 2834, and 3834) serão mostrados. Isto indica que enquanto a porta 834 está na variação reservada (significando 0 até 1023) e requer o acesso root para abrir, ele não é associado com um serviço conhecido.
Depois, verifique por informações sobre a porta usando o
netstat ou lsof. Para verificar pela porta 834 usando o netstat, use o seguinte comando:
netstat -anp | grep 834
O comando retorna o seguinte resultado:
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
A presença da porta aberta no
netstat é animadora por causa que se um cracker abrir uma porta clandestinamente em um sistema hackeado, não é susceptível de permitir que esta seja revelada através deste comando. Também, a opção [p] revela o ID do processo (PID) do serviço que abriu a porta. Neste caso, a porta aberta pertence ao ypbind (NIS), que é um serviço RPC manuseado em conjunto com o serviço portmap.
O comando
lsof revela informações similares ao netstat já que ele é também capaz de ligar portas abertas à serviços:
lsof -i | grep 834
A porção relevante do resultado deste comando é:
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
Estas ferramentas revelam uma grande parte sobre o estado dos serviços rodando na máquina. Estas ferramentas são flexíveis e podem fornecer uma riqueza de informações sobre os serviços de rede e configuração. Consulte as páginas man do
lsof, netstat, nmap, e services para mais informações.