Existem muitas ferramentas para encontrar vulnerabilidades, utilizar exploits e comprometer sistemas. Trojans, backdoors, sniffers, rootkits, exploits, buffer overflows e SQL injections, todos sao tecnologias que podem ser utilizadas para "hackear" um sistema ou rede. Muitas delas sao tao complexas que necessitam de um capitulo inteiro dedicado a explicar o ataque e as tecnologias aplicadas.A maioria das ferramentas de "hacking" exploram a fragilidade em uma dessas areas:Sistemas operacionais: Muitos adminstradores de sistemas instalam sistemas operacionais com as configuracoes padrao, resultando em potenciais vulnerabilidades que continuam sem serem corrigidas.Aplicacoes: as aplicacoes na grande maioria das vezes nao passam por uma analise de vulnerabilidades enquanto estao sendo desenvolvidas, assim falhas de programacao que podem ser exploradas passam despercebidas.Shrink-wrap code: Muitos programas da prateleira vem com recursos extras, o usuario comum nao tem conhecimento de que pode ser usado para explorar o sistema. As macros do Word sao um exemplo disso.Misconfigurations (falhas de configuracao): os sistemas podem tambem ter configuracoes incorretas ou as configuracoes de seguranca podem ser minimas para o usuario poder utilizar o sistema da forma que lhe e conveniente, que pode resultar em uma vulnerabilidade e em um ataque.Alem das tecnologias que podem ser utilizadas pelos hackers, existe diferentes tipos de ataques, eles sao categorizados em ataques passivos e ataques ativos. Ataques passivos ou ativos podem ser realizados tanto na rede como nos hosts. Ataques ativos geralmente alteram a rede ou o hosts quando estao sendo atacados enquanto os ataques passivos servem para obter informacoes do sistema. Ataques ativos afetam a disponibilidade, integridade e confidencialidade e autenticidade dos sistemas; ataques passivos sao "apenas" uma violacao de sigilo.Alem dos ataques passivos ou ativos, os ataques tambem podem ser categorizados em internos e externos. Internos quando sao originados de dentro do perimetro de suguranca da organizacao (aqui entra a figura do "Insider") geralmente ocorrem por membros da organizacao que conseguem ganhar acesso a mais recursos que se era esperado e os externos sao originados de fora desse perimetro, da Internet ou de alguma conexao de acesso remoto. Pela teoria, HASH e a transformacao de uma grande quantidade de informacoes em uma pequena quantidade de informacoes, essa transformacao e realizada atraves de um algoritmo de dispersao e representada na forma hexadecimal. O hash e utilizado para identificar alguma informacao digital, pode ser ela um arquivo, uma mensagem, uma chave ou ate mesmo um arquivo, ou seja, qualquer informacao digital de forma unica. E um metodo para transformar dados algo (quase) exclusivo, outra caracteristica do hash e determinada pelas funcoes criptograficas utilizadas, atraves do hash nao e possivel obter a informacao original. Baseado nesses conceitos uma funcao hash deve ter as seguintes caracteristicas: o valor de entrada pode ter qualquer tamanho, porem a saida tem tamanho fixo que pode ter 16 bytes, no caso dos algoritmos MD2, MD4 e MD5 e 20 bytes no caso do algoritmo SHA1, mas pode ter ate 512 bytes; o algoritmo deve ser facil de ser computado para qualquer informacao; ser impossivel de retornar a informacao original a partir do hash; e ser livre de colisao, ou seja, deve garantir uma probabilidade