CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
SCANNER DE REDE
O Nmap é um portscan de uso geral, que pode ser usado, sempre que
você precisar verificar rapidamente as portas abertas em
determinado host, seja na sua rede local, seja na Internet.
O Nmap é um pacote muito utilizado e por isso está disponível em
todas as principais distribuições. Você pode instalá-lo usando o yast
(SuSE), yum (Fedora), urpmi (Mandriva), ou outro gerenciador de
pacotes disponível. Nas distribuições derivadas do Debian, você pode
instalá-lo via apt-get:
# apt-get install nmap
Para usar todos os recursos do Nmap, você deve executá-lo como
root. O uso mais simples é escanear diretamente uma máquina da
rede, como em:
# nmap 10.41.0.1Starting nmap 3.81 ( http://www.insecure.org/nmap/ )Interesting ports on 10.41.0.1:(The 1661 ports scanned but not shown below are in state:closed)PORT STATE SERVICE68/tcp open dhcpclient631/tcp open ippMAC Address: 00:0F:B0:55:EE:16 (Compal Electronics)Nmap finished: 1 IP address (1 host up) scanned in 0.339seconds
1
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Neste exemplo, o teste foi disparado contra uma máquina Linux,
rodando uma instalação personalizada do Debian Sarge.
Foram encontradas 2 portas abertas:
Cliente DHCP (é normal que a porta 68 fique aberta em clientes
configurados via DHCP); servidor Cups, que escuta na porta 631;
O Cups mantém esta porta aberta sempre que é ativado (você precisa
dele para imprimir, tanto em compartilhamentos da rede, quanto em
impressoras locais). Por padrão, ele permite apenas que o localhost
imprima e acesse a interface de administração, mas é possível
configurá-lo para compartilhar as impressoras com a rede de forma
bem simples através do arquivo "/etc/cups/cupsd.conf".
Nem o cliente DHCP nem o Cups permitem acesso via shell, por isso,
salvo eventuais graves brechas de segurança, os ataques mais graves
que poderiam ser lançados neste caso seriam tentar modificar a
configuração de rede, tentando responder ao cliente DHCP no lugar
do servidor DHCP da rede, ou tentar usar impressoras compartilhadas
no Cups.
O simples fato de uma determinada porta estar aberta,
não significa que a máquina está vulnerável, mas apenas que
existem serviços ativos e as portas não estão sendo
bloqueadas por nenhum firewall.
Você pode obter mais informações sobre as portas abertas, incluindo
a versão de cada serviço ativo usando a opção "-sV", como em:
2
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
# nmap -sV 10.41.50.51
Foram encontradas 2 portas abertas:
root@crbveiga-Infoway-SM-3330:~# nmap -sV xxx.xxx.xxx.xxx
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-19 14:19AMTNmap scan report for xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)Host is up (0.0031s latency).rDNS record for 10.82.0.206: prevnet-urms.prevnetNot shown: 981 closed portsPORT STATE SERVICE VERSION21/tcp open ftp ProFTPD 1.3.122/tcp open ssh OpenSSH 5.1p1 Debian 5 (protocol2.0)25/tcp open smtp Postfix smtpd53/tcp open domain ISC BIND 9.6-ESV-R180/tcp open http Apache httpd 2.2.9 ((Debian))
MAC Address: 00:A1:B0:00:9C:99 (Unknown)Service detection performed. Please report any incorrectresults at http://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 16.89seconds
É possível também escanear de uma vez toda uma faixa de
endereços, como em:
# nmap 10.41.0.1-254
3
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Outro parâmetro interessante é a opção "-O", que faz com que
o Nmap tente identificar qual é o sistema operacional
usado em cada máquina. Esta identificação permite
diferenciar máquinas rodando diferentes versões do Windows
de máquinas rodando Linux ou MacOS, por exemplo, mas não é
muito eficiente em identificar diferentes distribuições Linux,
nem em identificar a versão do Windows usada. Veja um
exemplo:
# nmap -O 10.41.50.51Starting nmap 3.81 ( http://www.insecure.org/nmap/ )Interesting ports on 192.168.1.35:(The 1658 ports scanned but not shown below are in state: closed)PORT STATE SERVICE135/tcp open msrpc139/tcp open netbios-ssn445/tcp open microsoft-ds1025/tcp open NFS-or-IIS5000/tcp open UPnPMAC Address: 02:0F:B0:55:EE:16 (Unknown)Device type: general purposeRunning: Microsoft Windows 95/98/ME|NT/2K/XPOS details: Microsoft Windows Millennium Edition (Me),Windows 2000 Pro or Advanced Server, or Windows XPNmap finished: 1 IP address (1 host up) scanned in 1.145seconds
Neste caso temos uma instalação limpa do Windows XP, sem o
firewall ativo. Note que a identificação do sistema não é exata, o
Nmap indicou corretamente que é uma máquina Windows, mas não
soube identificar precisamente a versão.
4
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Para o próximo Comando é necessário entender o estabelecimento de
conexão entre um cliente e um servidor via TCP, abaixo está uma
figura que mostra os passos para a sincronização entre 2
computadores:
ACK = Acknowledgement (Reconhecimento)
SYN = Synchronize (Sincronizar)
Estabelecimento de conexões
1. O cliente envia um pacote com a flag SYN ativa;
2. O servidor responde com um pacote com as flags SYN + ACK;
5
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
3. O cliente responde com um pacote ACK
Continuando, os scans do Nmap podem ser facilmente
detectados caso alguma das máquinas-alvo esteja com o Snort,
ou outro detector de intrusões ativo, o que vai lhe render no
mínimo um puxão de orelha do administrador da rede. Para
dificultar isso, o Nmap oferece a opção de fazer um half-open
scan, especificando a opção "-sS", como em:
# nmap -sS 10.41.0.1
Operando neste modo, o Nmap apenas envia um pacote SYN para
cada porta alvo e espera para ver se recebe um pacote ACK de
confirmação sem, entretanto, responder com o segundo pacote
ACK, que abriria a conexão.
Isso permite burlar muitos programas de detecção de
intrusão, que monitoram e logam apenas conexões efetivamente
estabelecidas.
6
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Portas UDP
Escanear as portas UDP é uma forma alternativa de detectar
serviços abertos em uma máquina, mesmo que todas as portas TCP
estejam fechadas no firewall. Existem também casos de backdoors
acessíveis via UDP, como o Back Orifice (no Windows) e até
mesmo (raras) brechas de segurança em serviços do Linux ou outros
sistemas Unix, como uma brecha em certas versões do rpcbind do
Solaris, que podia ser explorada através de uma porta UDP alta, a
partir da 32770 (variando de acordo com a versão).
Os scans de UDP são rápidos se direcionados a máquinas Windows,
mas são absurdamente lentos se feitos contra máquinas Linux ou
BSD, onde o sistema limita o número de erros de ICMP (dos quais o
scan do Nmap depende) a uma taxa de aproximadamente 20 por
segundo. No Windows não existe limite.
Para usar o scan UDP, usamos a opção "-sU", como em:
# nmap -sU 10.41.50.51
Por padrão, o Nmap escaneia apenas um conjunto de 1661 portas,
que incluem as usadas pelos serviços mais comuns. Uma media de
segurança comum é esconder serviços como o SSH em portas altas,
de forma que eles sejam mais difíceis de detectar. Nesses casos, você
pode fazer um scan completo, incluindo todas as portas TCP (ou UDP)
usando a opção "-p 0-65535", como em:
# nmap -sS -p 0-65535 10.41.50.51
7
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
A opção "-p" pode ser usada para escanear apenas uma porta
específica, ou uma faixa de portas em que esteja interessado. Se
executado via rede local, o scan é sempre relativamente rápido (a
menos que a máquina-alvo esteja com um firewall ativo, configurado
em modo "DROP"), mas, via Internet, as coisas tornam-se bem mais
demoradas. Ao tentar localizar vulnerabilidades em uma determinada
faixa de endereços IP, você começaria lançando o teste rápido contra
toda a faixa, reservando as opções mais demoradas para algumas
máquinas específicas.
A opção "-sS", combinada com a "-p 0-65535", permite
localizar serviços escondidos em portas altas, mas não é capaz
de dizer muito sobre eles. Ele sempre retorna algo como:
22543/tcp open unknown
Você pode escanear esta porta específica usando a opção "-sV" para
descobrir mais sobre ela, como em:
# nmap -sV -p 22543 10.41.50.51PORT STATE SERVICE VERSION22543/tcp open ssh OpenSSH 3.8.1p1 Debian-8.sarge.4(protocol 1.99)Nmap finished: 1 IP address (1 host up) scanned in 0.284seconds
Tudo é muito simples quando a máquina alvo não possui nenhum
firewall ativo.
8
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
O scan é rápido e você pode lançar toda sorte de ataques sobre os
serviços ativos. Mas, com um firewall ativo, as coisas tornam-se um
pouco mais complicadas e demoradas. Um firewall configurado para
descartar (DROP) todos os pacotes recebidos, faz com que o scan
torne-se extremamente lento.
Sniffer de Rede
Sniffing, em rede de computadores, é o procedimento realizado por
uma ferramenta conhecida como Sniffer (também conhecido como
Packet Sniffer, Analisador de Rede, Analisador de Protocolo,
Ethernet Sniffer em redes do padrão Ethernet ou ainda Wireless
Sniffer em redes wireless). Esta ferramenta, constituída de um
software ou hardware, é capaz de interceptar e registrar o tráfego de
dados em uma rede de computadores. Conforme o fluxo de dados
trafega na rede, o sniffer captura cada pacote e eventualmente
decodifica e analisa o seu conteúdo de acordo com o protocolo
definido em um RFC ou uma outra especificação.
O sniffing pode ser utilizado com propósitos maliciosos por invasores
que tentam capturar o tráfego da rede com diversos objetivos, dentre
os quais podem ser citados, obter cópias de arquivos importantes
durante sua transmissão, e obter senhas que permitam estender o
seu raio de penetração em um ambiente invadido ou ver as
conversações em tempo real.
Pacotes Necessários para os testes a serem realizados a
seguir:
9
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Instalar o Servidor Apache para a criação de um Servidor
Web
#apt-get install apache2 php5 ssh
Criar o diretório /var/www/ site_invadido/
#mkdir /var/www/site_invadido/#cd /var/www/
Dar permissão ao Usuário www-data
#chown www-data. site_invadido/ -R Criar duas páginas HTTP
A primeira de chamando índex.php
#cd /var/www/site_invadido/
#vim index.html
<i> para inserir os dados...
<form name="form1" method="post" action="form.php"> <p><strong>Formulario Simples </strong><br> <strong>Nome:</strong> <input name="nome" type="text" id="nome"> <br> <strong>Email:</strong> <input name="email" type="text" id="email"> <br>
10
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
<strong>Senha:</strong> <input name="senha" type="password" id="senha"> <br> <strong>Avaliacao do site </strong><br> <input name="avaliacao" type="checkbox" id="avaliacao" value="Péssimo"> Pessimo <input name="avaliacao" type="checkbox" id="avaliacao" value="Ruim"> Ruim <input name="avaliacao" type="checkbox" id="avaliacao" value="Normal"> Normal <input name="avaliacao" type="checkbox" id="avaliacao" value="Bom"> Bom <input name="avaliacao" type="checkbox" id="avaliacao" value="Otimo"> Otimo<br> <strong>Mensagem</strong><br> <textarea name="msg" cols="25" rows="5" id="msg"></textarea> <br> <input type="submit" name="Submit" value="Enviar"> <input type="reset" name="Submit2" value="Limpar"> <br> </p> </form>
<esc> sai do modo de edição
:wq salva o arquivo e sai
11
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
A Segunda de chamando form.php.
#vim form.php
<i> para inserir os dados...
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$avaliacao = $_POST['avaliacao'];
$msg = $_POST ['msg'];
$mensagem = "Avaliacao do site por $nome"."<br>";
$mensagem .= "Nome: $nome". "<br>";
$mensagem .= "E-mail: $email"."<br>";
$mensagem .= "$nome avaliou o site como: $avaliacao"."<br>" ;
$mensagem .= "Mensagem deixada por $nome"."<br>"."$msg"."<br>";
echo $mensagem;
12
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
echo '<h3> Obrigado pela avaliacao</h3>';
?>
<esc> sai do modo de edição
:wq salva o arquivo e sai
Ngrep
O Ngrep é um poderoso sniffer que pode capturar pacotes de
descobrir senhas
Para descobrir uma senha de um servidor FTP é necessário executar o
comando abaixo:
#apt-get install ngrep
#ngrep port 21 –W byline
Imagem do Cliente acessado um servidor de FTP:
13
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Imagem do Servidor recebendo as requisições FTP:
Notem que o ngrep capturou o usuário e senha do usuário:
14
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Para descobrir os dados sendo trafegados pelo protocolo HTTP
utilize o seguinte comando:
#ngrep redesunaes port 80 –W byline
Resultado do Sniffer no Protocolo HTTP:
Teste sem a diretiva byline
# ngrep redesunaes port 80
15
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
16
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
TCPDUMP
O tcpdump é uma ferramenta utilizada para monitorar os pacotes
trafegados numa rede de computadores. Ela mostra os cabeçalhos
dos pacotes que passam pela interface de rede.
As principais opções de filtro no tcpdump são:
-n: Não faz a resolução dos nomes, mantendoorigem, destino eporta como números.
Host : Define um host específico, pode ser um ip ou um nome.
Src : Define o host origem, pode ser ip ou nome.
Dst : Define o host destino, pode ser ip ou nome.
-w: Escreve a saída em um arquivo, o nome do arquivo deve serfornecido.
-r: Lê o tráfego que foi armazenado em um arquivo, nesse caso não énecessário ser root.
-s: Define, em bytes, o tamanho máximo dos pacotes que serãocapturados. O padrão são 68 bytes que são suficientes para algunsprotocolo, mas pode truncar (não capturar completamente) umpacote. Um bom número para ser definido é 1000.
17
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Exemplo de comando tcpdump para mostrar quais as ligações de umdeterminado endereço tcp-ip à porta 80 do seu servidor: tcpdump-ni eth0 src "numero ip" and dst port 80
tcpdump -i eth0
Conexões de origem podem ser monitoradas utilizando o parâmetrosrc host, um exemplo simples seria monitorarmos o tráfego que vemde 192.168.0.9 para nosso computador, com o ip 192.168.0.2. A linhade comando ficaria da seguinte forma:
tcpdump -i eth0 src host 192.168.0.9
Se quisermos monitorar as conexões especificando um host dedestino, poderíamos fazê-lo com o parâmetro dst host, o exemploabaixo mostra todo o tráfego do host 192.168.0.2 com 192.168.0.1,no caso, 192.168.0.1 é nosso gateway.
tcpdump -i eth0 dst host 192.168.0.1
Com tcpdump também podemos especificar exceções com oparâmetro not host, por exemplo, em nosso servidor queremos vertodo o tráfego que se passa em sua interface, exceto o de192.168.0.8, faríamos da seguinte forma:
tcpdump -i eth0 not host 192.168.0.9
18
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
No tcpdump podemos também especificar portas de origem e destinocom os comandos src port e dst port, um exemplo seria monitorarmoso tráfego destinado à porta 80 (http), para isso utilizaríamos a linhade comandos abaixo e navegaríamos em um site qualquer:
tcpdump -i eth0 dst port 80
Para verificarmos o tráfego da porta de origem 32881 por exemplo,faríamos da seguinte forma:
tcpdump -i eth0 src port 32881
# tcpdump -i eth0 -n host 192.168.1.1
Captura todos os pacotes destinados ou com origem em 192.168.1.1sem resolver nomes.
# tcpdump -i eth0 -s 1000 src 192.168.1.1
Captura todos os pacotes com origem em 192.168.1.1 resolvendonomes e gravando até 1000 bytes de cada pacote.
# tcpdump -i eth0 -w trafego.cap
Captura todo o tráfego na eth0 e escreve a saída no arquivotrafego.cap
$ tcpdump -r trafego.cap
19
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Wireshark
O wireshark é um poderoso sniffer de rede, é o mais conhecido e tem
uma interface bastante amigável, para capturar os dados é
necessário verificar qual é a interface de que será alterada para modo
promíscuo:
Expressões, o Wireshark, trabalha com expressões, na qual você pode
filtrar as informações que serão analisadas posteriormente, Abaixo
estão alguns exemplos de uso:
Adicionar as regras criadas no Combo abaixo:
Mostrar pacotes SMTP ou icmp
tcp.port eq 25 or icmp
20
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Mostrar somente a conversação da LAN
ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16
Mostrar somente a conversação para o IP 192.168.1.16
para o protocolo HTTP
ip.dst==192.168.1.16 and http
Mostrar somente a conversação para o IP 192.168.1.16
para o protocolo HTTP
ip.addr==192.168.1.16 and http
Expressões
21
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Sniffer capturando a senha
Mais Expressões
22
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
23
CENTRO UNIVERSITÁRIO DE CAMPO GRANDETECNOLOGIA EM REDES DE COMPUTADORES
Segurança em redes
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Capturando senhas via HTTP
utilize o filtro “http matches POST”
REFERÊNCIAS
http://www.mentebinaria.com.br/artigos/0x05/0x05-wireshark.html
http://www.guiadohardware.net/dicas/usando-nmap.html
http://pt.wikipedia.org/wiki/Sniffing
http://forum.imasters.com.br/topic/127878-formulario-simples/
http://ezinearticles.com/?Ngrep---A-Network-Analysis-Tool&id=306082
http://andreysmith.wordpress.com/2011/01/02/three-way-handshake/
http://www.wireshark.org/docs/wsug_html_chunked/ChWorkBuildDispl
ayFilterSection.html
24
Top Related