Falaremos então sobre nmap. Nmap como muitos de vcs jí devem saber é um dos escanners mais
completos que se pode achar ...Mas que diabos é um scanner?
Bom o scanner eh o programa responsavel pela varredura das portas do servidor alvo
(ou computadorremoto) em busca de possiveis brexas.
Pois sem escaniar as falhas do servidor digamos que vc nunca conseguiria fazer um deface ou
tirar quaisquer informação sobre o servidor.
Como é um pouco complicado ler o manual do nmap(em ingles) resolvi dar a minha colaboração
mostrando as infinidades de opções que esse scanner oferece:
modo de usar: apos instalar digite a string no console do linux -
$./nmap -[tipo(s) de scan] -[opção] host_alvo
TIPOS DE SCAN
-sT TCP connect() scan: Esta é a mais bísica forma de
TCP scanning. A chamada de sistema, connect(),
provida pelo seu sistema operacional é usada para
abrir uma conexão para toda porta interessante na
míquina. Se a porta estí no estado listening, con*
nect() irí ter sucesso, por outro lado a porta não
serí alcançada. Uma grande vantagem desta técnica é
que você não precisa de nenhum privilégio especial.
Qualquer usuírio em UNIX estí livre para usar esta
chamada.
Este tipo de scan é facilmente detectível pelo log
do host alvo, o qual mostrarí o grupo de conexões e
mensagens de erro para os serviços os quais
aceitam, accept(), a conexão somente para tê-la
imediatamente desligada.
-sS TCP SYN scan: Esta técnica é muito conhecida como
"half-open" scanning, porque não abre uma conexão
TCP completa. É enviado um pacote com o flag SYN
setado, como se fosse abrir uma conexão real e é
esperado pela resposta. Uma resposta SYN/ACK indica
que a porta estí no estado listening. O flag RST é
uma indicação de estado não listening. Se o flag
SYN/ACK é recebido, o flag RST é imediatamente
enviado para encerrar a conexão (atualmente o
núcleo do SO faz isso por nós). A principal van*
tagem desta técnica de scanning é que poucos sites
irão registra-lí no arquivo de log. Desafortunada*
mente é necessírio privilégios de super usuírio
(root) para construir estes pacotes SYN customiza*
dos.
-sF -sX -sN
Modos Stealth FIN, Xmas Tree, ou Null scan: Algumas
vezes nem mesmo a técnica SYN scanning é clandes*
tina suficiente. Vírios firewalls e filtros de
pacotes observam por SYNs para portas restritas, e
programas como Synlogger e Courtney estão
disponàveis para detectar este tipo de scan. Por
outro lado, scans avançados (stealth FIN, Xmas
Tree, ou Null scan), podem ser capazes de passar
através destes filtros sem serem molestados.
A idéia é que portas fechadas são exigidas por
responder aos pacotes de teste com um RST, enquanto
portas abertas precisam ignorar os pacotes em
questão (veja RFC 793 pp 64). A técnica de scan FIN
utiliza o limitado pacote FIN como teste, enquanto
a técnica de scan Xmas Tree seta os flags FIN, URG
e PUSH. A técnica de scan Null não seta nenhum
flag. Desafortunadamente a Microsoft (como usual)
decidiu completamente ignorar o padrão e faz as
coisas do seu próprio jeito. Então este tipo de
scan não funcionarí contra sistemas executando Win*
dows95/NT. Do lado positivo, estí é uma ótima
maneira de distinguir entre duas plataformas. Se o
scan encontrar portas abertas, é possàvel saber que
a míquina não utiliza o Windows. Se as técnicas de
scan -sF, -sX ou -sN mostram todas as portas
fechadas, mesmo assim a técnica de scan SYN (-sS)
mostra portas sendo abertas, você poderí estar
olhando para uma míquina Windows. Esta é a maneira
menos usada pelo nmap para testar a detecção do SO.
Exitem, também, alguns outros sistemas que são
descobertos da mesma maneira que descobrimos o win*
dows. Estes incluem Cisco, BSDI, HP/UX, MVS, and
IRIX. Todos acima enviam resets (RST) de portas
abertas quando estes devem, somente, descartar o
pacote.
-sP Ping scanning: Algumas vezes você somente quer
saber quais os hosts da rede estão ativos. O Nmap
pode fazer isso enviando um pacote de requisição
ICMP (ICMP echo request) para todo endereço IP
especificado da rede. Os hosts que respondem estão
vivos. Desafortunadamente, vírios sites, como a
microsoft.com, bloqueiam pacotes de requisição ICMP
(echo request). Então, o nmap pode, também, enviar
um pacote ACK TCP para (por definição) a porta 80.
Se nós pegarmos o flag RST novamente, a míquina
esta viva. A terceira técnica envolve o envio de
pacotes SYN e a espera pelo pacote com o flag RST
ou os flags SYN/ACK. O método connect() é usado por
usuírios comuns (não root).
Por definição (para super usuírios), o nmap usa
tanto as técnicas do ICMP e a do flag ACK em par*
alelo. Você pode mudar as -P opções descritas mais
a frente.
Note que o ping, por definição, é feito de qualquer
forma, e somente os hosts que respondem são scan*
neados. Somente use esta opção se você desejar vas*
culhar sem fazer qualquer scan real de portas.
-sU UDP scans: Este método é usado para determinar
quais portas UDP (User Datagram Protocol, RFC 768)
estão abertas no host. A técnica implica em enviar
0 bytes de dados de pacotes UDP para cada porta da
míquina alvo. Se nós recebermos uma mensagem de
ICMP port unreachable (porta ICMP não alcançada),
então a porta estí fechada. Por outro lado nós
assumimos que a porta estí aberta.
Vírias pessoas pensam que a técnica UDP scanning é
supérfluo. Eu, usualmente, lembro desta como uma
recente falha no rpcbind do Solaris. O Rpcbind pode
ser encontrado escondido em uma porta UDP não docu*
mentada em algum lugar acima de 32770. Então não
importa que a porta 111 esteja bloqueada por um
firewall. Porém, você pode encontrar quais as por*
tas altas, maiores de 30.000, que estão no estado
listening? Com o scanner UDP você pode! Existe,
também, o programa cDc Back Orifice backdoor o qual
se oculta em uma porta UDP configurível em míquinas
Windows. Alguns serviços comumente vulneríveis que
utilizam o UDP são: snmp, tftp, NFS, etc.
Desafortunadamente UDP scanning é algumas vezes,
dolorosamente, vagarosa desde que a maioria dos
hosts implementam a sugestão da RFC 1812 (seção
4.3.2. de limitar a taxa de mensagens de erro
ICMP. Por exemplo, o núcleo do Linux (em
net/ipv4/icmp.h) limita a geração de mensagens de
destination unreachable para 80 por 4 segundos, com
1/4 segundos de penalidade se esta for excedida. O
Solaris tem um limite muito mais restrito (mais ou
menos 2 mensagens por segundo) e assim gasta um
tempo maior para realizar o scan. Nmap detecta
esta taxa limitante e reduz conformemente, por
outro lado inunda a rede com pacotes sem uso que
irão ser ignorados pela míquina alvo.
Como é tàpico, a Microsoft ignorou a sugestão da
RFC e não parece ter feito nenhuma taxa limitante
por completo no Win95 e no NT. Então é possàvel
scannear, rapidamente , todas as portas de 64K das
míquinas windows. Beleza!
-sO Scan do Protocolo IP: Este método é usado para
determinar quais protocolos IPs são usados no host.
A técnica consiste em enviar pacotes IP raw sem
promover nenhum cabeçalho para cada protocolo
especàfico na míquina alvo. Se nós recebermos uma
mensagem do protocolo ICMP unreachable, então o
protocolo não estí sendo usado. Por outro lado nós
assumimos que estí aberto. Note que vírios hosts
(AIX, HP-UX, Digital UNIX) e firewalls podem não
enviar mensagens de protocolo unreachable. Assim
faz parecer que todos os protocolos estão "aber*
tos".
Isso porque a técnica implementada é muito similar
ao scanning da porta UDP, onde a taxa limite de
ICMP pode ser aplicada também. Porém o campo do
protocolo IP tem somente 8 bits, então no míximo
256 protocolos podem ser testados, os quais devem
ser possàveis de serem testados em tempo razoível.
-sA ACK scan: Este método avançado é usualmente usado
para mapear o conjunto de regras de um firewall. Em
particular, esta pode ajudar a determinar quando um
firewall é stateful ou somente um filtro de pacotes
simples que bloqueia pacotes SYN de chegada.
Este tipo de scan envia pacotes com o flag ACK
setado para uma porta especàfica. Se um RST voltar,
a porta é classificada como "não filtrada". Se não
voltar nada ou um ICMP unreachable voltar, a porta
é classificada como "filtrada". Note que o nmap
usualmente não imprime portas "não filtradas",
obtendo, assim, nenhuma porta mostrada na saàda é
usualmente um sinal que todos os testes foram
suscedidos (e retornado RSTs). Esta técnica de scan
nunca irí, obviamente, mostrar portas no estado
"aberto".
-sW Window scan: Este scan avançado é muito similar ao
ACK scan, exceto que as vezes pode ser possàvel
detectar portas abertas mesmo sendo filtradas, isso
devido a anomalia do tamanho da janela TCP repor*
tado por vírios sistemas operacionais. Sistemas
vulneríveis para isso incluem no mànimo vírias
versões do AIX, Amiga, BeOS, BSDI, Cray, Tru64
UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX,
OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX,
Rhapsody, SunOS 4.X, Ultrix, VAX, and VxWorks.
Vejam no arquivo, na lista de discussão nmap-hack*
ers, a lista completa.
-sR RPC scan. Este método trabalha em combinação com
vírias técnicas de scan de portas do Nmap. Ele pega
todas as portas TCP/UDP encontradas abertas e
inunda elas com comandos NULL de programas SunRPC
numa tentativa de determinar quando elas são portas
RPC, e se são, qual programa e versão dos serviços.
Com este método você pode efetivamente obter a
mesma informação como se usasse 'rpcinfo -p' mesmo
se o portmapper alvo estiver atrís de um firewall
(ou protegido pelo TCP wrappers). Decoy não tra*
balha correntemente com RPC scan, em algum ponto eu
posso adicionar o suporte decoy para UDP RPC scans.
-b <ftp relay host>
FTP bounce attack: Uma interessante "carac*
teràstica" do protocolo ftp (RFC 959) é sustentada
para conexões ftp "proxy". Em outras palavras, eu
devo ser capaz de conectar do evil.com para um
servidor FTP, target.com, e requerer que o servidor
envie um arquivo para qualquer lugar na internet!
Isto pode ter sido explorado bem em 1985 quando a
RFC foi escrita. Porém na internet hoje, nós não
podemos ter pessoas hijacking servidores ftp e req*
uisitando que os dados sejam jogados para
arbitrírios pontos na internet. Como *Hobbit*
escreveu em 1995, este protocolo torna inútil "pode
ser usado para portar virtualmente não deter*
miníveis emails ou news, forjando em servidores
vírios sites, preenchendo discos, tentando saltar
firewalls, e geralmente sendo aborrecido, ficando,
assim, difàcil seguir a pista ao mesmo tempo." O
que nós iremos explorar disto é o scan de portas
TCP do servidor "proxy" de ftp. Então você pode
conectar a um servidor ftp atrís do firewall, e
então scannear portas que estão mais provívelmente
bloqueadas (139 é uma boa). Se o servidor ftp per*
mitir ler de e escrever para algum diretório (como
/incoming), você pode enviar dados arbitrírios para
portas que você achar abertas (nmap não faz isso
por você).
Os argumentos passados para a opção 'b' é o host
que você quer usar como proxy, na notação de padrão
URL. O formato é: usernameassword@serverort.
Tudo, menos o server é opcional. Para determinar
quais servidores são vulneríveis para este ataque,
você pode ver meu artigo em Phrack 51. A versão
atualizada estí disponàvel em nmap URL
(Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...).
OPÇÕES GERAIS
Nenhuma destas são requeridas, porém algumas podem
ser absolutamente proveitosas.
-P0 Pinga os hosts antes de scanneí-los. Isto permite
scannear as redes que não permitem ICMP echo
requests (ou responses) através dos seus firewalls.
microsoft.com é um exemplo desta rede, e então você
deve sempre usar -P0 ou -PT80 quando portscanning
microsoft.com.
-PT Use TCP "ping" para determinar quais hosts estão
ativos. Ao invez de enviar pacotes ICMP echo
request e esperar pelas respostas, nós enviamos
pacotes TCP ACK por toda parte na rede alvo (ou
para uma simples míquina) e então esperamos por
respostas. Hosts que estão ativos devem responder
com um RST. Esta opção preserva a eficiência de
somente scannear hosts que estão ativos, enquanto
ainda permite scannear redes/hosts que bloquearam
pacotes ping. Para usuírios não root, é usado o
connect(). Para setar a porta destino dos pacotes
de teste usem -PT<número da porta>. A porta default
é 80, desde que estí porta é muitas vezes não fil*
trada.
-PS Estí opção usa pacotes com SYN (connection request)
ao invez de pacotes com ACK para usuírios root.
Hosts que estão ativos devem responder com RST (ou,
raramente, um SYN|ACK).
-PI Estí opção usa um pacote ping verdadeiro (ICMP echo
request). Esta encontra os hosts que estão ativos e
também procura por um endereço de broadcast para a
subrede da sua rede. Estes são endereços IPs que
são externamente alcançíveis e traduzidos para
broadcast de pacotes IP de chegada para uma subrede
de computadores. Estes devem ser eliminados se
encontrado, como ele permitem por numerosos ataques
de negação de serviço (DoS) (Smurf é o mais comum).
-PB Este é o tipo de ping default. Ele usa tanto
pacotes com ACK ( -PT ) e pacotes ICMP ( -PI )
sweeps em paralelo. Desta maneira você pode obter
os firewalls que filtram cada uma (porém não
ambas).
-O Esta opção ativa a identificação de hosts remotos
via TCP/IP fingerprinting. Em outras palavras, ela
usa uma grande quantidade de técnicas para detectar
sutilezas na pilha de rede do sistema operacional
do computador que você estí scanneando. Ele usa
estas informações para criar a 'fingerprint' a qual
é comparada com sua base de dados de conhecidos
fingerprints de SOs (o arquivo nmap-os-finger*
prints) para decidir qual o tipo de sistema que
você está escanneando.
Comment