segunda-feira, 7 de dezembro de 2009

Nessus


Nessus como ferramenta para verificação de vulnerabilidades (Debian)



1- Introdução
Neste tutorial vou descrever como criar uma solução de verificação de vulnerabilidades em servidores, roteadores, switchs, sistema operacional Microsoft Windows, sistema operacional FreeBSD, entre outros.

Devido ao custo elevado de soluções proprietárias que realizam a verificação de vulnerabilidades e a criação de relatórios de forma automática (html), estarei explicando de forma simples como instalar, configurar e automatizar o Nessus. Todo o processo será descrito para um computador com o Linux Debian previamente instalado.

Nessus é uma ferramenta para verificação de vulnerabilidades, em alguns casos durante sua utilização equipamentos podem ficar inoperantes ou lentos devido ao grande número de testes (através de portas) que este aplicativo realiza. Segundo alguns sites ou textos, o computador que for alvo de testes com o Nessus pode até mesmo chegar a travar, requerendo um famoso reboot (reinicialização).

Segundo o wikipedia do Nessus, ele é um programa de verificação de falhas/vulnerabilidades de segurança (portas, vulnerabilidades, exploits). Ele é composto por um cliente e servidor, sendo que o scan propriamente dito é feito pelo servidor. O nessusd (servidor Nessus) faz um port scan ao computador alvo, depois disso vários scripts (escritos em NASL, Nessus Attack Scripting Language) ligam-se a cada porta aberta para verificar problemas de segurança. O Nessus ajuda a identificar e resolver alguns problemas de vulnerabilidades. A parte Servidor executa os testes enquanto a parte cliente permite a configuração e emissão de relatórios.

Instalação dos programas (pacotes) necessários

Os pacotes devem ser instalados conforme abaixo:

# apt-get install nessus nessusd nessus-plugins

Instalação do servidor web que armazenará as páginas de verificação de vulnerabilidades:

# apt-get install apache2

Com isso concluímos a instalação dos pacotes necessários para o funcionamento do Nessus. Vale ressaltar que o Nessus roda como um servidor e alguns de seus plugins podem danificar ou travar algum equipamento ou aplicativo.

Configurações iniciais

Como descrito na introdução, o Nessus é um aplicativo cliente servidor. Precisamos inicializar o Nessus como servidor(nessusd):

# nessusd -D

Para a utilização do Nessus faz-se necessário criar um usuário para logar no nessusd (servidor Nessus), execute o comando abaixo como root:

# nessus-adduser

O programa irá pedir os dados do novo usuário tais como login, senha, senha em texto plano (padrão) ou encriptada.

Será necessário registrar e atualizar o seu Nessus, acesse o site do Nessus e faça o registro como "HomeFeed". Será enviado para o seu e-mail o código de ativação:

# nessus-fetch --register
# nessus-fetch --check
# nessus-fetch --plugins


Nessus modo texto

O Nessus possui uma interface gráfica muito simples de ser utilizada, o objetivo deste tutorial não é descrever a parte gráfica e sim criar uma estrutura que verifique vulnerabilidades e crie relatórios automaticamente.

O Nessus possui uma estrutura simples de comando conforme descrito abaixo:

nessus

Onde:
  • Servidor: servidor onde o nessusd está rodando
  • Porta: padrão é 1241
  • Usuário: usuário que criamos no passo anterior
  • senha_do_usuario: senha que criamos no passo anterior
  • Alvos: arquivo contento os IPs ou nome das máquinas a serem scaneadas (separados por vírgulas exemplo: 10.12.4.15, 10.12.4.20)
  • Resultados: arquivo onde serão armazenados os resultados.

Automatizando a execução e criação de relatórios do nessus

Criação de diretórios, execute os comandos como root:

# mkdir /scripts
# mkdir /var/www/nessus
# chown www-data:www-data /var/www/nessus
# chmod 655 /scripts
# chmod 744 /var/www/nessus


Vamos criar um arquivo com os IPs a serem verificados, vamos chamar de /scripts/alvos.txt, utilizando seu editor de texto favorito adicione as seguintes linhas:






Vamos criar um script e chamar de /scripts/nessus.sh, utilizando seu editor de texto favorito adicione as seguintes linhas:

#!/bin/bash
#
MES=`date +%B`
nessus -T html -q 127.0.0.1 1241 /scripts/alvos.txt /var/www/nessus/resultado${MES}.html -V
chmod 655 /var/www/nessus/resultado${MES}.html
chowh www-data:www-data /var/www/nessus/resultado${MES}.html

Alterar a permissão do arquivo criado, execute o comando como root:

# chmod -R 600 /scripts

Para gerar os relatórios automaticamente, vamos agendar as suas tarefas, execute o seguinte comando como root:

# crontab -e

Adicione as linhas abaixo no crontab (os relatórios serão gerados todo dia 1 a 1 hora da manhã):

0 1 1 * * /scripts/nessus.sh

Para acessar os relatórios mensais (agendados através do cron), acesse através de qualquer browser:

http://seu.enderedo.rede.ip/nessus/

Conclusão

O Nessus realmente conseguiu suprir todas as necessidades de nossa empresa. Afinal testamos algumas soluções proprietárias, mas no final das contas as respostas eram idênticas ou muito próximas ao nessus.

Concluímos que a ferramenta é simples de ser instalada, confiável e livre.

Viva a liberdade...    (By Inside)


  Agora Nessus em Modo Gráfico !

Este é um Link para você usar o Nessus em Modo Gráfico, muito Facil ! No caso para quem usa Distribuições como Debian, Ubuntu... Pode estar instalando o Nessus com pacotes .deb ou pelo Synaptic



Read more »

sábado, 5 de dezembro de 2009





PenTest o que é ?


O que pretendo discutir com os nossos colegas é quais são as ferramentas e métodos que utilizam para enumeração ,scanning e testes de vulnerabilidades em redes, .Tem muitos que acha que administrar uma rede é apenas fazer o pc ficar conectado na rede e cuidar para que ele fica funcionando, se seria isso era moleza
mais um administrador de rede tem que proteger a sua rede para impedir invasão e viros, tem empresa que contrata um adminstrador só para aquela função e se der alguma coisa errado tá ferrado, ela pode perde muito dinheiro e a culpa é do admistrador.

1.Penetration testing

Penetration-test é o método usado para testar e descobrir vulnerabilidades numa rede e a possibilidade de ver como estas podem ser exploradas ou corrigidas.
Para ser feito um teste de penetração são contratados profissionais (ou pessoas internas à rede) para explorar a rede, da mesma forma que um cracker faria e em seguida são entregues os resultados indicando todas as falhas encontradas e como corrigi-las.

Para se fazer um teste de penetração é necessário passar diversas fases, para as quais são utilizadas diversas ferramentas. As fases serão indicadas nos pontos seguintes.

2 -Reconhecimento da rede

A enumeração consiste no reconhecimento da rede e dos sistemas atingíveis. Os resultados esperados são: nomes de domínios, nomes de servidores, informação do ISP, endereços IP envolvidos e também um mapa da rede. Inclui ainda informação de registos de domínios para os servidores.
Para fazer o reconhecimento da rede, podem ser utilizadas diversas ferramentas e técnicas, conforme o objectivo do ataque. Indico abaixo algumas ferramentas, que poderão ser usadas no reconhecimento.

•Nslookup – funciona em Windows e Linux. Serve para mapear endereços IP para um determinado domínio.

•Whois –Nos dá toda a informação sobre um domínio registado (entidade que registou, endereço físico, contactos, domain servers, etc)

•ARIN

•Dig – serve para perguntar a um servidor DNS informação acerca de outras coisas, por exemplo, a versão do name server que a empresa está a utilizar...

•Engenharia social

•Web site alvo

3 -Scanning

Nesta fase de um teste de penetração é a identificação de portas abertas e serviços a correr, na máquina(s) ou rede alvo, chegando assim a enumeração de vulnerabilidades no alvo.

Também nesta fase do teste podemos incluir diversas ferramentas e tecnicas, conforme o objectivo do teste e a configuração da máquina/rede alvo. Ferramentas deste tipo foram analisadas no ponto 3 deste mesmo relatório.
As ferramentas mais utilizadas para fazer scanning, são:

•telnet –Serve para mostrar informação sobre uma aplicação ou serviço (versão, plataforma.

•nmap – port scanner

•hping2 – port scanner

•netcat – port scanner

•ping – testa conectividade IP

•traceroute –Ele conta os “hops” da rede, desde a máquina em que é executado até à máquina/sistema alvo.

•queso – OS fingerprinting.

4 -Teste de vulnerabilidade

Os testes de vulnerabilidades consistem na determinação de que buracos de segurança e vulnerabilidades podem ser aplicadas à rede/máquina alvo. Quem efectuar o teste vai tentar identificar nas máquinas na rede alvo todas as portas abertas, sistemas operativos e aplicações a serem executadas; incluindo o sistema operativo, patches aplicados e service packs aplicados.

Nas etapas anteriores, são identificadas as máquinas que estão ligadas e que portas e serviços têm disponíveis.

Existe, na geral quatro categorias de vulnerabilidades que podem ser encontradas:

•Os bugs específicos do sistema operativo, exploits, vulnerabilidades e buracos de segurança

•As fraquezas no firewall e routers, entre diversas marcas

•A exploração de scripts de web server

•As partilhas e confianças exploráveis entre sistemas e ficheiros.

O scan de vulnerabilidades pode ser feito de várias formas, que indicarei nos pontos seguintes.

5 -Ferramentas e Manuais

As análises das vulnerabilidades de um computador pode ser feita manualmente, com base na informação recolhida nos pontos anteriores. Ou seja, são percorridas as listas de vulnerabilidades existentes, em busca de alguma que possa existir para cada uma das aplicações instaladas na máquina.

6 -Nessus

O Nessus é a melhor ferramenta de inventariação de vulnerabilidades com código fonte disponível.

Instalação

Esta ferramenta é constituida por duas partes: o cliente e o servidor, que podem ou não, ser instaladas em máquinas diferentes.
A instalação é bastante simples:

•executa-se a script de instalação
•adiciona-se um utilizador

Utilização

O Nessus tem de ter o servidor instalado numa máquina *IX, mas o cliente pode ser executado em Windows ou em *IX.
O cliente desta ferramenta, pode correr em modo gráfico ou em modo de comando. O modo de comando tem a vantagem de poder ser incluido em scripts, o modo gráfico tem a vantagem de ser facilmente seleccionável quais os testes de vulnerabilidade que são executados.

7 -SARA-Security Auditor's research assistant

O SARA é um scanner de rede, que procura serviços e os analisa.
Esta ferramenta produz relatórios em diversos formatos: html, XML, interactivos e CSV, importável para folhas de cálculo.

Instalação

A instalação do SARA é muito simples: basta descomprimir o tgz, e executar ./configure, make, make install.

Relativamente à configuração, podem fazer-se algumas configurações específicas, mas deixando tudo o que vem por default, obtêm-se resultados interessantes.

Utilização

O SARA pode ser executado em três modos: interactivo (interface web), linha de comando, ou modo remoto.. No caso presente, optei pelo modo interactivo.

O modo remoto pode ser útil, no caso de se desejar ter o servidor de SARA numa determinada máquina e um cliente gráfico, na própria máquina.
Este modo tem algumas limitações: só é permitido um utilizador de cada vez, um teste não pode ser interrompido, o servidor não foi feito para ficar permanentemente à espera de pedidos, é preciso ter preocupações com a segurança.
Pode ser definido o tipo de “ataque” que é feito à máquina/rede em causa. Pode variar entre cinco níveis de severidade.

Comecei por fazer um scan de nível máximo, à página da FEUP e em seguida fiz um scan do mesmo nível ao www.portugalmail.pt.
No segundo caso obtive um resultado falso, dado que a vulnerabilidade indicada não está presente na máquina em questão. Ou seja, esta vulnerabilidade existe, de facto na versão indicada do software, mas neste caso concreto, já foi patched.


Comparação entre detectores de vulnerabilidades

A detecção manual de vulnerabilidades é, com certeza a que permite mais pormenor, mas é muito difícil de ser implementada com perfeição.
Relativamente às duas ferramentas utilizadas, o SARA é, sem dúvida, mais rápida, mas é também a menos eficiente. Além de apresentar resultados muito menos detalhados e não apresentar formas de resolução das vulnerabilidades (como o Nessus), apresenta falsos positivos.

Relativamente à forma de apresentação de resultados, o SARA é muito inferior. O servidor tem ainda problemas de funcionamento, no sentido que entre dois testes, se não for re-arrancado, não funciona corretamente.
Tem no entanto, uma funcionalidade interessante, que é ir guardando e apresentando em paralelo os resultados de testes anteriores. Esta característica pode ser interessante, do ponto de vista de armazenamento de informação sobre todo o parque de servidores de uma empresa, por exemplo.

By: Inside
Read more »

sexta-feira, 4 de dezembro de 2009

Apostila Segurança da Informação (IMPORTANTE)

Pessoal, hoje vou estar publicando uma apostila bem interessante sobre Segurança da Informação, para quem quer iniciar na área (Hacking) será preciso se interessar, ou melhor Ler esta Apostila.

Qualquer Coisa só Comentar, O link não esta quebrado !

Read more »

quinta-feira, 3 de dezembro de 2009

Diferenças entre Hacker e Cracker

Cracker e Hacker: experts trabalhando em sentidos opostos
Os termos hacker e cracker se parecem muito e são comumente confundidos por aqueles que não dominam com perfeição o vocabulário particular ao mundo da informática. Na verdade, hackers e crackers são experts em computadores, pessoas que possuem habilidades extraordinárias em lidar com sistemas e programações, e que dedicam muito tempo de suas vidas a fim de estudar tais conteúdos. O que os difere é o uso que fazem destes conhecimentos.


A palavra hacker, em sua tradução literal significa cortador. Esta tradução pode adquirir sentido se pensarmos em algo como cortar ou derrubar barreiras. Porém, o uso e entendimento mais comum (e, portanto, leigo) desta palavra traduzem uma associação entre hacker e pirata digital, vândalo, invasor e etc. Hackear é esmiuçar, o que não pressupõe condição para piratear, vandalizar ou vender serviços criminosos.

Para tal conduta existem termos estritamente apropriados, como lamer ou cracker. Ainda de acordo com Rezende, hackers não podem ser considerados coletivamente como criminosos, já que muitos deles trabalham em colaboração com desenvolvedores de software, em uma ação que visa eliminar possíveis falhas de segurança nestas ferramentas. Os hackers são considerados também os principais responsáveis pelo desenvolvimento da internet e dos softwares livres (o Linux é uma criação hacker!).

Cracker, de acordo com o significado originalmente cunhado ao termo, designa sim, elementos mal intencionados, que estudam e decodificam programas e linguagens a fim de causar danos a computadores alheios. A intenção é invadir e sabotar sistemas, quase sempre objetivando a captação de dados passíveis de render cifras. Ou seja, roubo eletrônico, estelionato ou o que quer que seja. A intenção é definitivamente ruim.

Existem ainda diversas subdivisões para o termo cracker: cader, especialistas em fraudar cartões de crédito; defacer, indivíduo que desfigura as páginas principais de sites; e outros muitos, que expostos aqui só serviriam ao fomento da confusão entre os termos prioritariamente discutidos. Vale lembrar novamente a diferença entre bons e maus: hackers do bem, crackers do mau.

O que existe e acontece comumente é a confusão entre o sentido das palavras hacker e cracker, confusão esta criada pelo uso informal da língua. E, sabemos, a língua é quem faz o dicionário. Dificilmente esta situação será revertida, em vista da publicação de termos errôneos pela mídia não especializada, porém de massas. Cientes desta condição, os verdadeiros e originais hackers (lembremos, pessoas do bem, interessadas no desenvolvimento e liberação das tecnologias) arranjaram um outro termo para identificá-los: agora são geeks!


Fonte: www,google.com.br by: Inside
Read more »