original in es Danilo
Lujambio
es to en Iván Rojas
Aguilar
es to en Javier
Palacios
en to en:Lorne Bailey
en to pt:Bruno Sousa
Porque s�o os scanners t�o importantes para a seguran�a das redes ? Basicamente, porque s�o utilit�rios essenciais para aqueles que querem atacar um sistema. A prepara��o de um ataque podia assemelhar-se a algo do g�nero :
Para um administrador de sistema preocupado com a seguran�a do sistema � importante fazer um scan � sua pr�pria rede, procurar vulnerab�lidades antes que outros o fa�am e n�o com t�o boas inten��es.
Existem v�rios utilit�rios de scan para este fim, mas o artigo s� focar� o nmap. O nmap � entre todos o scanner e utilit�rio de seguran�a mais completo.
O Nmap permite ao administrador de sistema fazer um scan �s redes para saber quais os servidores activos e os servi�os que ofere�em. Para este fim, o nmap oferece v�rias t�cnicas de scan. O artigo focar� um n�mero limitado delas, revendo (talvez ensinando ?) alguns aspectos do protocolo TCP.
A estrat�gia deste artigo ser� a de mostrar como utilizar o nmap, como habitualmente � utilizado, para obter informa��o acerca de sistemas e em paralelo, como encontrar rastos de scan no lado do alvo.
O nmap pode ser obtido a partir de www.insecure.org. Ap�s o download fa�a :
tar zxvf nmap-2.30BETA17.tgz cd ...../nmap-2.30BETA17/ ./configure make make installe est� instalado.
O output do nmap �, habitualmente, uma lista "interessante" de portos (activos) na m�quina de destino, scanada. Estas portas fornecem o nome dos servi�os, o seu estado e o protocolo.
A forma mais simples de fazer scan com o nmap � feia com a op��o -sT. � baseada no m�todo de estabelecimento de uma liga��o no protocolo TCP, conhecida como o aperto de m�o. A sequ�ncia [1] � descrita em baixo
Este modo de scan tem duas vantagens:
Seguiremos o procedimento utilizado pela op��o do nmap -sT, correndo o tcpdump na m�quina de destino, o nmap � executado na m�quina 192.168.255.50 e aponta na direc��o da m�quina house2.xxx.xxx.xxx atrav�s de uma rede Ethernet.
1) 08:24:18.393108
192.168.255.20.1024 house2.xxx.xxx.xxx.653: S
2632227152:2632227152(0) win 16060 < mss
1460,sackOK,timestamp 232602[|tcp] (DF) 2) 08:24:18.393167 house2.xxx.xxx.xxx.653 192.168.255.20.1024: R 0:0(0) ack 2632227153 win 0 3) 08:24:18.393227 192.168.255.20.1025 house2.xxx.xxx.xxx.6141: S 2644226118:2644226118(0) win 16060 < mss 1460,sackOK,timestamp 232602[|tcp] (DF) 4) 08:24:18.393258 house2.xxx.xxx.xxx.6141 192.168.255.20.1025: R 0:0(0) ack 2644226119 win 0 5) 08:24:18.453343 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: S 2640612362:2640612362(0) win 16060 < mss 1460,sackOK,timestamp 232608[|tcp] (DF) 6) 08:24:18.453542 house2.xxx.xxx.xxx.pop3 192.168.255.20.1298: S 1658259980:1658259980(0) ack 2640612363 win 16060 < mss 1460,sackOK,timestamp 243353[|tcp] (DF) 7) 08:24:18.458667 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3:. ack 1 win16060<nop,nop,timestamp 232609 243353 (DF) 8) 08:24:18.461280 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: F 1:1(0) ack 1 win 16060 < nop,nop,timestamp 232609 243353 (DF) |
Esta execu��o permitiu ao nmap detectar o porto 110(pop3) da m�quina house2 est� activo naquela m�quina.
Como referido anteriormente, este modo de scan � f�cil de detectar, usando as impress�es deixadas no ficheiro /var/log/messages (contudo isto depende do modo como o syslog.conf foi configurado) a liga��o vista nas linhas 5 e 8 produziu:
May 6 08:24:01 house2 in.pop3d[205]: connect from [email protected]
Este tipo de scan � feito pelo nmap atrav�s da op��o -sS. A t�cnica � utilizada para abrir uma "meia liga��o": enviamos um segmento SYN e se � recebido um ACK ent�o detect�mos uma porta activa na m�quina de destino e enviamos um RESET para fechar a liga��o devidamente. Se recebermos um RST em vez de um ACK, ent�o a porta scanada n�o est� activa. Este modo de scan tem o sen�o que s�o requeridos privil�gios root para ser executado. Mas a vantagem � que � dif�cil de detectar na m�quina � qual se faz o scan.
Fa�amos uma an�lise das ac��es feitas pelo nmap com esta op��o, analisando-o com o tcpdump (com numera��o de linhas, para facilitar a descri��o).
1) 22:25:45.856936 192.168.255.20.40175
house2.tau.org.ar.946: S 1292785825:1292785825(0) win
3072 |
3) 22:25:45.970365
192.168.255.20.40175 house2.tau.org.ar.pop3: S
1292785825:1292785825(0) win 3072 4) 22:25:45.976022 house2.tau.org.ar.pop3 192.168.255.20.40175: S 185944428:185944428(0) ack 1292785826 win 16080 < mss 536 (DF) 5) 22:25:45.979578 192.168.255.20.40175 house2.tau.org.ar.pop3: R 1292785826:1292785826(0) win 0 |
Este scan na m�quina host2 n�o deixou nenhum rasto no ficheiro /var/log/messages, como mencionado anteriormente.
Este tipo de scan � baseado no facto de que portas inactivas na m�quina de destino respondem a um pacote FIN com um pacote RST. Por outro lado, portas activas, simplesmente, ignora este pacote. Assim, a lista de portas interessantes � obtida observando-se as quais n�o responderam. M�quinas correndo sistemas operativos Window$ n�o podem ser "scanadas" com este m�todo, visto n�o terem implementa��es standard do protocolo TCP.
Existem tr�s formas de operar com o nmap em situa��es semelhantes. com as op��es -sF, -sX e -sN. Analisaremos depois o comportamento da op��o -sF, efectuando uma an�lise semelhante �s sec��es anteriores.
1) 06:50:45.643718 192.168.255.20.35600
casahouse.tau.org.ar.864: F 0:0(0) win 2048 |
Nas linhas 1 e 2 os segmentos FIN entregues (note no F depois do 864 na linha 1) � observado na m�quina de destino que responde com um pacote RST (note no R na linha 2 depois do 35600). O nmap conclui que a porta 864 na house2 n�o est� activa.
3) 06:50:47.933227 192.168.255.20.35600 >
house2.tau.org.ar.pop3: F 0:0(0) win 2048 |
As linhas 3 e 4 tomam o pop3 como exemplo. Na linha 3, vemos um segmento FIN enviado, o qual n�o obt�m resposta da house2. A linha 4 foi uma surpresa, sendo provavelmente uma medida tomada pelo nmap para verificar o estado daquele porta, enviando outro segmento FIN, para assegurar que a porta n�o est� a responder. Em ambos os casos, a house2 ignorou os pacotes, mostrando ao nmap que a porta pop3 est� activa.
Na sec��o acerca do "scan de aperto de m�o", vimos que as rastos que um scan pode deixar atr�s, e nas �ltimas sec��es vimos que as op��es de scan -sS e -sF n�o deixam impress�es digitais. Podemos utilizar o tcpdump para detectar este tipo de scan numa m�quina conectada a uma rede suscept�vel a ataques. O contra do tcpdump � que gera um enorme monte de informa��o e levanta dificuldades com o seu arquivo e an�lise. Algumas express�es s�o mostradas aqui e reagem como filtros para que a informa��o seja mais pequena e simples de analisar.
Para tornar as express�es de f�cil compreens�o, mostramos em baixo o formato de um pacote TCP [2].
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgement Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Offset | Reserver |U|A|P|R|S|F| Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Vimos que o 13.� byte � onde as flags que identificam o tipo de
pacote (SYN, FIN, etc) residem. Com este conhecimento e com o operador (&)
podem construir-se m�scaras para detectar os bits activos, construindo
express�es do tipo :
tcpdump ' tcp[13] & 7 != 0 and dst 192.168.255.20 ' >
/tmp/out7
que filtram os pacotes de entrada com os bits R,S ou F activos a
m�scara (a m�scara � 00000111) com 192.168.255.20 como m�quina destino
(obviamente que este endere�o IP ser� pesquisado pela m�quina).
Usando
tcpdump ' tcp[13] & 1 != 0 and dst 192.168.255.20 ' >
/tmp/out1
Obteremos os pacotes com o bit activo F (a m�scara � 00000001). Podia
ser �til para detectar a op��o de scan do nmap -sF e com
tcpdump ' tcp[13] & 2 != 0 and dst 192.168.255.20 ' >
/tmp/out2
obteremos somente os pacotes com o bit SYN activo, sendo �til para
detectar scan com a op��o -sS.
Para o �ltimo tipo descrito (com a op��o -sS) existem programas espec�ficos para o detectar [3].
Programas como o nmap s�o muito �teis para melhorar a seguran�a do sistema ao olhar para as redes atrav�s dos olhos de um poss�vel pirata. Mostramos as opera��es de uma pequena parte das op��es, mas espero que o ajude a compreender um pouco mais a ideia de um scanner de rede.
[1] W. Richard Stevens Unix Network Programming Volume 1
[2] RFC 793
[3] ver documenta��o do nmap