Artigos
today Nov 30
Nikto - Scanner de Vulnerabilidades em Servidores WEB

Nikto é uma ferramenta Open Source que realiza testes abrangentes contra servidores web para vários itens, incluindo mais de 6700 arquivos potencialmente perigosos/programas, verifica a existência de versões desatualizadas e problemas específicos de versão. Ele também verifica itens de configuração do servidor, tais como a presença de vários arquivos de índice, opções de servidor HTTP, e tentará identificar servidores web.

O Nikto não é uma ferramenta furtiva. Ele irá testar um servidor web podendo ser detectado por um IPS/IDS. No entanto, não há suporte para métodos de IDS em caso de você querer experimentá-lo (ou testar seu sistema IDS).

Características

Aqui estão algumas das principais características do Nikto:

– Log para Metasploit

– Escaneamento de portas em um servidor ou vários servidores (incluindo a saída NMAP)

– Salvar os relatórios em texto puro, XML, HTML, CSV ou NBE

– Verifica a existência de componentes do servidor desatualizados

– Suporte a proxy HTTP

– Perl

– Suporte SSL

Testes

Primeiro podemos executar o teste básico, mas que já lhe mostrará a leitura da porta 80 do servidor verificado trazendo para você a versão do Web Server e possivelmente o Sistema Operacional utilizado.

# nikto –h IP

Outro exemplo agora em um servidor com IIS

Além dessas detecções, também é realizado uma análise de vulnerabilidades, mostrando a falta de alguns módulos de segurança e também algumas vulnerabilidades encontradas.

Nesse Scan realizado, podemos observar que nos é mostrado algumas vulnerabilidades encontradas como a falta de uma ferramenta de proteção a clickjacking, proteção contra XSS e ainda vulnerabilidades encontradas como a OSVDB-3233, que é uma vulnerabilidade sobre os módulos do PHP instalados no servidor que apresentam informações do sistema publicamente e a OSVDB-5292 que permite SQL-Injection.

Você também pode executar o teste em portas específicas:

# nikto –h IP –p 80,88,443

O Nikto é uma ferramenta simples, mas muito útil para checar seu servidor web.

Bons testes!

 

Humberto Forsan

Especialista em Segurança da Informação

today Nov 30
Protegendo Apache contra DDOS

No artigo passado, mostramos uma vulnerabilidade do Apache 1 e 2 que nos permite indisponibilizar o acesso a praticamente qualquer servidor Apache usando o Slowloris. Realizando um ataque de DDoS.

Caso você não tenha acompanhado, acesse o link:

http://www.suporteredes.com/apache-slowloris

 

Agora, chegou o momento de proteger esse nosso servidor, para isso vamos instalar e habilitar o módulo Mod Evasive do Apache.

Lembro que isso é uma maneira de proteger o seu servidor com um recurso do próprio Apache. Caso você utilize ainda outras maneiras, deixe ai nos nossos comentários!

Mod Evasive

O Mod Evasive é um módulo para o Apache que consegue detectar atividades de DDoS, considerando o número de requisições que um IP realiza ao servidor, caso detecte um número de acessos superior ao que você definiu, automaticamente esse IP é bloqueado. Evitando o DDoS.

O processo de detecção é realizado através da criação de uma tabela dinâmica interna de endereços IP e URIs, negando qualquer endereço IP a partir das ações:

 

– Solicitando a mesma página mais do que algumas vezes por segundo

– Fazendo mais de X solicitações simultâneas no mesmo server

– Fazendo todos os pedidos, enquanto está na lista negra

Instalando o Mod Evasive

# apt-get install libapache2-mod-evasive

Logo após a instalação, crie o diretório para os logs desse modo, também configure as permissões:

# mkdir -p /var/log/apache2/evasive  
# chown -R www-data:root /var/log/apache2/evasive

Por último, vamos editar o arquivo evasive.conf localizado dentro do diretório /etc/apache2/mods-available.

OBS: Na imagem segue o arquivo comentado, esses são os valores padrões e aceitáveis pelo Apache. Lembre-se que você pode trocar os valores para atender a sua necessidade.

Evitar um ataque de DDoS sempre é muito difícil, mas com esse módulo, você consegue mitigar algumas tentativas.

Seu servidor está seguro? Faça seus testes.

Humberto Forsan

Especialista em Segurança da Informação.

today Nov 30
Ataque de DDoS - Servidores Apache com Slowloris

A negação de serviço distribuída (Distributed Denial of Service – DDoS) é uma tentativa de indisponibilizar um serviço online por sobrecarregá-lo com o tráfego a partir de múltiplas fontes. Eles têm como alvo qualquer sistema que esteja de frente a internet ou em sua rede local. Tornando um grande desafio para administradores de redes e especialistas em segurança da informação.

Realizar esse tipo de ataque dentro de sua rede é uma ótima maneira para testar as vulnerabilidades do seu ambiente.

OBS: Tome cuidado ao realizar, lembre-se que pode causar indisponibilidade em seu ambiente.

Os ataques do tipo DDoS mais comuns podem ser feitos devido algumas características do protocolo TCP. Uma forma de ataque por exemplo, é a SYN Flooding, onde um computador tenta estabelecer uma conexão com um servidor e acaba “inundando” esse Servidor que agora não é capaz de atender novas solicitações, gerando a indisponibilidade.

Realizando o Ataque

Para o laboratório desse ataque, vamos utilizar duas máquinas virtuais, ambas com o Debian 8 instaladas, mas você pode utilizar a distribuição que mais lhe agradar, em uma está instalada o serviço do Apache, realizamos a instalação default e isso é importante deixar claro, instalamos a última versão, mas apenas o Apache e o suporte ao PHP, essa é a instalação padrão que a maioria dos profissionais fazem, e por isso vamos mostrar o quanto é vulnerável, em um segundo artigo, iremos então mostrar como proteger o seu servidor contra DDoS.

O segundo computador também está sendo executado com o Debian 8, esse apenas tem o Slowloris instalado, que será a ferramenta para a execução do DDoS.

Slowloris

Slowloris é um programa para ataque de negação de serviço inventado por Robert “RSnake” Hansen que permite que uma única máquina derrube um servidor web, com efeitos mínimos de largura de banda. Slowloris tenta manter muitas conexões com o servidor de destino da web aberta e mantê-las abrir o maior tempo possível. Ele faz isso através da abertura de conexões para o servidor web de destino e enviar um pedido parcial, nunca completando.

Servidores afetados irão manter essas conexões abertas, enchendo ao máximo seu pool de conexões simultâneas.

Para a execução do programa no Linux, algumas bibliotecas são necessárias, o perl, líbio-socket-ssl-perl. No Debian 8 esses pacotes já vem com o sistema, mas lembre-se de verificar.

Faça o download do programa no link:

https://mega.nz/#!FgJziAKK!CyIf1XR_vqbw1C6vs1vxvfjZO7OE8AoLSwsN5XXEWPk

Navegue até o diretório criado e execute o comando:

# perl slowloris.pl –dns IP

Observe que agora começa o envio dos pacotes.

Abra o navegador em um outro equipamento da sua rede e chame o seu servidor Apache.

Note que o site foi aberto, deixe o Slowloris em execução e atualize o navegador.

Explore também mais opções do Slowloris, você pode direcionar o ataque a uma porta específica:

perl slowloris.pl -dns www.example.com -port 80

Você pode especificar o número de sockets:

perl slowloris.pl -dns www.example.com -port 80 –num 500

E realizar o ataque também em uma página HTTPS:

perl slowloris.pl -dns www.example.com -port 443 -timeout 30 -num 500 –https

Faça seus testes, e acompanhe o SuporteRedes, nos próximos artigos vamos ensinar como defender o seu servidor!

Humberto F. Forsan

Especialista em Segurança da Informação

today Nov 30
Hackeando Android - Executando Arp Spoofing

Este artigo visa demonstrar um ataque de Arp Spoofing. Esse tipo de ataque pode ser efetuado em um Switch, um roteador Wireless e até em um celular com Android ou IOS.

Esse artigo também tem como objetivo mostrar que existe algumas vulnerabilidades que permitem enganar o dispositivo, fazendo que ele redirecione os acessos de um equipamento para o seu.

Sendo assim possível monitorar e capturar os pacotes de outros equipamentos conectados a sua rede.

Também queremos demonstrar que não é seguro conectar em uma rede wireless ou cabeada em que você não conheça, uma vez que seus dados podem estar sendo monitorados por outros usuários.

Em um próximo artigo iremos mostrar como nos defender, mas primeiro vamos aprender a atacar.

Para esse exemplo, vamos utilizar a seguinte estrutura:

1 Celular Samsung S5 com Android 5.0 (como roteador wireless)

2 Notebooks executando Windows

3 O Software Cain & Abel para executar o ataque.

OBS: Existem vários softwares para a realização do seu ataque, escolhemos o Cain & Abel, pois é fácil a sua execução, permitindo que todos possam realizar seus testes. Quanto mais sofisticado for o equipamento “alvo”, pode se usar ferramentas com mais recursos.

Topologia de Rede:

Envenenamento do Cache ARP (ARP Spoofing)

Quando um computador precisa enviar dados para outro, ele envia um ARP pedindo ao o switch onde está ligado.

O switch envia um pacote broadcast ARP para todos os computadores conectados a ele, pedindo que cada computador cheque o seu o endereço IP.

Quando o computador de destino vê este pacote, ele se identifica com o endereço IP e envia o seu endereço MAC.

O switch tem agora uma rota estabelecida até computador de destino, e qualquer dispositivo que desejar se comunicar com este computador de destino pode utilizar essa rota.

Estas informações recém obtidas são armazenadas no cache ARP do switch, evitando assim o novo envio de um pacote broadcast ARP, cada vez que precisar enviar dados para esse computador.

O envenenamento de cache ARP é uma forma mais avançada de farejar (Sniffer) uma rede.

É comumente utilizado por hackers para enviar falsamente pacotes endereçados aos sistemas do cliente, a fim de interceptar os tráfegos da negação de serviço (DoS), mas o envenenamento de cache ARP pode ainda servir como uma forma legítima de capturar os pacotes de uma máquina de destino em uma rede que utiliza switch.

O envenenamento de cache ARP, por vezes referido como ARP Spoofing, é o processo de envio de mensagens ARP para um switch ou roteador Ethernet com MAC falso, a fim de interceptar o tráfego de outro computador.

Usando o Cain & Abel

Ao tentar envenenar o cache ARP, o primeiro passo é baixar as ferramentas necessárias e recolher algumas informações necessárias.

Nós vamos usar a popular ferramenta de segurança Cain & Abel da Oxid.it (http://www.oxid.it).

Uma vez que você tenha instalado o software Cain & Abel, você precisa coletar algumas informações adicionais, incluindo os endereços IP de seu sistema analisador, o sistema (dispositivo) remoto que você deseja capturar o tráfego, e o roteador ao qual o mesmo está ligado.

Quando você abre o Cain & Abel, você vai notar uma série de guias perto da janela superior.

O envenenamento de cache ARP é apenas uma das várias opções do Caim & Abel.

Para os nossos propósitos, vamos estar trabalhando com a aba Sniffer. Quando clicar nesta guia, você verá uma tabela vazia.

Efetuando o Ataque:

Para o ataque, além de usar o Cain & Abel, vamos também usar o Wireshark para testar, monitorar e capturar a tentativa de login em um site.

Vamos começar, no computador atacante, abra o Wireshark e tente capturar os dados da rede, em especial os protocolos HTTP, no nosso exemplo estamos inserindo o filtro:

ip.addr==192.168.43.92 && http

OBS: Para os testes estamos usando o endereço de classe C 192.168.43.0, lembre-se de usar os ranges de IP da sua rede local.

Você pode observar que nada foi nos mostrado. Guarde essa imagem, depois do ataque, você verá tudo o que está saindo do computador “alvo”.

Abra o Cain&&Abel, vá para o menu Configure, nessa tela, escolha a sua placa de rede wireless e clique em OK.

Agora, clique na guia SNIFFER e nessa nova tela, clique com o botão direito em qualquer lugar em branco e selecione a opção SCAN MAC ADDRESSES.

Agora, será necessário selecionar o range de IP a ser scaneado, por default, já vem selecionado todos os ranges.

Nesse momento, todos os equipamentos conectados ao seu celular serão listados.

Agora, iremos na guia ARP localizada no rodapé da página e então clique no botão + para abrir a janela NEW ARP POISON ROUTINGcontendo todos os equipamentos listados.

Na janela do lado esquerdo, selecione o IP do seu GATEWAY (No nosso caso o IP do nosso celular) e então na janela do lado direito será mostrado todos os equipamentos conectados.

Precisamos selecionar então o endereço IP da máquina “alvo”.

Realizado todas as etapas, precisamos então por último, iniciar o envenenamento, clique no botão START ARP POISON.

Pronto, agora nós já podemos ver todo o tráfego, pacotes enviados e recebidos e os endereços IPs acessados.

Isso já bastaria para que nós pudéssemos “espionar” o que esse computador está acessando.

Mas vamos também usar o Wireshark, para capturar pacotes e esperar que alguma senha em HTTP passe por nós.

Por um acaso, você se lembra do primeiro comando alguns momentos atrás? Pois bem, repita o comando e agora observe que temos um cenário diferente. Onde todo o tráfego do outro computador nos é apresentado.

Para nosso último teste, vá até o computador “alvo” abra algum site que tenha uma autenticação de usuário e senha HTTP e entre com uma credencial falsa.

Volte no Wireshark e procure pelo pacote contento a autenticação do login, lá o texto estará totalmente em claro, para você descobrir o usuário e senha digitado.

Com isso detectamos que no outro computador, o “usuário” entrou com o usuário teste e a senha teste.

Nossas próximas postagens irão mostrar como se proteger desse tipo de ataque.

Bons testes!

 

Humberto F. Forsan

Especialista em Segurança da Informação

today Nov 30
Firewall Iptables

A função do Firewall é tomar conta das portas, verificar quem as está acessando e conforme as regras do usuário deixar ou não o acesso dos programas através das referidas portas.

Para usuários Linux temos o iptables, configurado via scripts.

As regras do iptables são compostas de uma Tabela, Opção, Chain, Dados e Ação.

 iptables [-t tabela] [opção] [chain] [dados] -j [ação]

Tabelas:

– São os locais usados para armazenar os chains. As tabelas são referenciadas em uma regra iptables com a opção “-t tabela“.

Existem 3 tabelas disponíveis:

filter – tabela padrão, usada no tráfego de dados comum com ocorrência de NAT (geração de outra conexão);

nat – usada quando há ocorrência de NAT (geração de outra conexão);

mangle – raramente usada, utilizada para alterações especiais de pacotes.

Se você deixar em branco [-t tabela], a tabela usada será a filter.

Opções:

Representada por uma letra sempre escrita em maiúscula.

-A = acrescenta uma nova regra às existentes;

-L = lista as regras existentes;

-F = apaga todas as regras;

-I = insere uma nova regra;
-Z = zera uma regra especifica;

Chains:

– Com eles podemos especificar a situação do tratamento dos pacotes, seja qual tabela for, exemplo: para tabelas filter temos as seguintes tipos de chains:

INPUT – consultado para dados que chegam ao computador;

OUTPUT – consultado para dados que saem do computador;

FORWARD – consultado para dados que são redirecionados para outra interface de rede ou outra máquina.

– Já para as tabelas nat os chains possíveis são:

PREROUTING – consultado para os dados que precisam ser modificados logo que chegam (DNAT e redirecionamentode portas);

POSTROUTING – consultado para dados que precisam ser modificados após o tratamento de roteamento (IP Masquerading);

OUTPUT – consultado quando os dados gerados localmente precisam ser modificados antes de serem roteados (IPs locais).

Composição das regras do iptables: dados e ações.

Dados:

 – As opções de dados possíveis de inserção em uma regra iptables são:

-s

– Especifica a origem do pacote. Origem que pode ser informada como:

* endereço IP completo (-s 192.168.1.1);

* hostname (-s ubuntu);

* endereço fqdn (-s www.ubuntu.com);

* par rede/máscara (-s 200.200.200.0/255.255.255.0 ou -s 200.200.200.0/24).

 -d

– Especifica um destino para o pacote, com a mesma sintaxe descrita acima por -s.

-i

– Identifica a interface de entrada do pacote, podendo ser placa de rede, modem ou interface de conexão:

* -i eth0

* -i eth1

* -i ppp0

-o

Identifica a interface de saída do pacote, com a mesma sintaxe descrita acima em -i.

-p

– Especifica o protocolo usado na regra, podendo ser:

* -p tcp

* -p udp

* -p icmp

 -sport ou –source-port

– Especifica uma porta ou faixa de portas de origem. Deve sempre ser acompanhado por -p tcp e -p udp.

-dport ou –destination-port

– Especifica uma porta ou faixa de portas de destino. Deve sempre ser acompanhado por -p tcp e -p udp.

!

– Exclui determinado argumento (exceção).

Ações:

– Sempre vem após o parâmetro -j e os mais usados são:

ACCEPT – O pacote é ACEITO e o processamento das regras daquele chains é concluído;

DROP – Rejeita o pacote sem nenhum aviso;

REJECT – Rejeita o pacote, mas envia um aviso;

LOG – Este módulo envia uma mensagem ao syslog (/var/log/messages) tanto com o pacote aceito ou rejeitado.

Manipulando regras:

– Após conhecermos toda a estrutura de uma regra para o iptables, devemos saber como salvar nossas regras.

Nós podemos usar duas maneiras. A primeira é usando o comando:

# iptables-save > /diretório/[dê um nome para o arquivo]

Para restaurá-la, usamos outro comando:

 # iptables-restore > /diretório/[nome do arquivo]

A segunda maneira é criando um script com as regras:

#!/bin/bash

# descrição da regra

iptables [regra]

– Salve o arquivo [nome do arquivo], dê permissão de execução:

– Toda vez que quiser que ele seja habilitado é só executá-lo (sempre como root):

#!/bin/bash

# descrição da regra

iptables [regra]

chmod +x [nome do arquivo]

Comandos Básicos:

– Digitando:

iptables -L

– Lista suas atuais regras no iptables. Se você acabou de configurar seu servidor, você não terá regras, e você verá:

– Você poderia começar por bloquear o tráfego, mas talvez você esteja trabalhando por SSH, onde você precisa permiti-lo antes de bloquear todo o resto.

– Para permitir o tráfego de entrada (incoming) padrão para porta SSH (22), você pode dizer ao iptables permitir que todo tráfego TCP nesta porta esteja autorizado.

iptables -A INPUT -p tcp –dport ssh -j ACCEPT

–dport – As Portas de destino precisam desta regra.

– Sobre o comando anterior é uma regra que significa, a permissão de todos os pacotes TCP vindos da porta padrão SSH.

– Agora, vamos bloquear todo tráfego de entrada na porta 80 proveniente de um IP.

iptables -A INPUT -s 192.168.2.108 -p tcp –dport 80 -j DROP

– Checando as regras nós temos:

Outras Regras:

– Um exemplo que cria uma regra que nega todos os pacotes ICMP vindos do servidor, em que se encontra o firewall.

#iptables -A INPUT -P icmp -j DROP

– A regra citada faz com que todos os pacotes vindos de qualquer endereço da classe de ip 200.204.120.0

#iptables -A INPUT -s 200.204.120.0/24 -j DROP

– Esta regra só permitirá pacotes icmp para máquinas que estejam em qualquer endereço ip, menos no citado abaixo.

#iptables -A OUTPUT -p icmp -d ! 200.201.120.0/24 -j ACCEPT

Exemplo Compartilhar a Internet

modprobe iptable_nat

iptables –t nat –A POSTROUTING –o eth1 –j MASQUERADE

echo 1 >/proc/sys/net/ipv4/ip_forward

Com esses comandos, você pode ainda criar outras combinações.

Bons testes!

Humberto Forsan

Especialista em Segurança da Informação

today Nov 30
KeePass Cofre de Senhas

Ut molestie tortor finibus, posuere risus in, laoreet magna. Aliquam ornare ex eget consectetur consectetur. Mauris eu urna convallis nibh hendrerit convallis non sed elit. Etiam id laoreet tortor. Aliquam pretium lectus mi, ut tempus nisl volutpat eget. Quisque ac congue magna. Curabitur vel ullamcorper odio. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.