Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Etapas do pentest

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Etapas do pentest

    Pentesting (penetration testing, ou teste de penetração) é o ato de invadir um sistema da mesma forma que um hacker mal intencionado faria, a pedido (pago, claro) do proprietário ou empresa.
    Neste post vou identificar quais as etapas padrão de um pentesting, além de definir algumas das ferramentas utilizadas em cada etapa.
    Definições
    • Vulnerabilidade é uma falha específica do sistema que pode permitir acesso ou ações não autorizadas. Uma vulnerabilidade não se limita aos sistemas informatizados (softwares), mas também aos processos internos de uma empresa, seja de funcionários ou da administração.
    • Explorar uma vulnerabilidade é usar uma falha no sistema para violar a política de segurança.
    • Estudo de penetração é um teste para testar a força dos controles de segurança de um sistema informatizado. O objetivo é encontrar todos os possíveis furos de segurança e prover sugestões para a correção dos mesmos.
    • Pentest é uma tentativa autorizada de violar a segurança do sistema. Deve constar como forma de política de segurança e integridade. Trata-se da técnica de descobrir, entender e documentar todas as falhas de segurança que podem ser encontradas em um sistema.
    • Alvo de estudo de penetração é o elemento indicado pelo cliente (ou pelos desejos do hacker, no caso de uma invasão não autorizada) que, uma vez realizado, pode-se dizer que a invasão foi um sucesso. Exemplos de alvos de estudos de penetração são a obtenção de acesso de leitura e/ou escrita de objetos específicos, arquivos ou contas; ganhar privilégios específicos ou torná-los indisponíveis.

    Quando vamos realizar um pentest, devemos manter em mente que:
    • Não é possível provar a ausência de uma falha de segurança. Só se prova sua existência.
    • A única diferença entre um pentest e uma intrusão hacking é que o pentest é autorizado.
    • Na prática, os pentests são afetados por falta de recurso, dinheiro e prazos apertados.
    • É bom conhecer todo o processo e já prescrever um 'roteiro' a ser seguido. Lembro, entretanto, que como o hacking é, em sua maior parte, ações espontâneas, esse roteiro poderá ser alterado e repensado por diversas vezes durante o ataque.
    • Invadir um sistema não ocorre como nos filmes. Não haverá uma interface integrada com todos os utilitários necessários, um botão para acessar o sistema e nem sempre as senhas serão fáceis de serem descobertas. Um ataque hacker real a um sistema pode levar de horas a meses (ou até anos), dependendo da amplitude do alvo, e não alguns segundos como em hollywood.


    Camadas de teste
    Durante o pentest, passamos por 3 camadas.
    A primeira camada é a do atacante externo sem conhecimento sobre o sistema, isto é, estamos do lado de fora da rede e não sabemos nada sobre o sistema. Começamos assim.
    A segunda camada costuma ser atingida após a etapa da enumeração, que você verá abaixo. É a do atacante externo com acesso ao sistema, ainda que com privilégios baixos.
    A terceira camada é a do atacante interno com acesso ao sistema. É a etapa final.

    Metodologia do hacking


    Footprinting
    Também chamada de "Information gathering", é a parte que você obtém o máximo de informações possíveis sobre a empresa. Aqui vale tudo. Os hackers mais famosos sugerem até mesmo revirar o lixo das empresas (não caracteriza crime, se estiver em local público, como a calçada - mas não quer dizer que o segurança não vá querer te expulsar de lá). Para empresas com atividades nos EUA, é útil usar o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., um banco de dados público com informações das empresas da terra do Tio Sam. Se a empresa tiver um site (e qual empresa não tem?), utilize alguma ferramenta Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para obter mais informações (WhoIs para sites .br Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...). Ainda sobre o site, você também pode usar o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para saber onde a empresa o hospeda, além de pesquisar no código-fonte das páginas por comentários HTML, Javascript e CSS interessantes. Também vale fazer DNS Lookup e Reverse DNS Lookup, até para ver possíveis subdomínios ocultos. Uma ferramenta muito útil para isso é o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Mas isso não se limita a ficar sentado em frente ao computador. Vamos, levante-se, procure um telefone público, finja ser um candidato a fornecedor, entregue seu currículo, faça uma entrevista de emprego e tente obter detalhes do entrevistador por engenharia social. Melhor ainda: consiga um emprego lá.
    Filmes falham em mostrar todo o hacking feito em frente a computadores. Na vida real, não é bem assim.

    Scan
    Com as informações sobre as empresas, seus proprietários, funcionários e procedimentos internos em mãos, chegou a hora de obter informações sobre os computadores e os softwares (e suas versões) que rodam neles.
    Você precisa mapear toda (ou ao menos boa parte) da rede. Ferramentas como o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (e o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., uma interface gráfica para o nmap) serão muito úteis. Com ele, boa parte do trabalho já será adiantado, pois ele já retorna as portas abertas (port scan), quais os serviços que rodam nessas portas, além do sistema operacional de cada máquina.
    Também é interessante utilizar o "traceroute" (tracert no Windows), um comando já presente no terminal/prompt de comando que traça a rota entre o seu endereço IP e um servidor externo.
    Deve-se prestar atenção aos firewalls. Muitos deles bloqueiam ICMP Echo Requests, não permitindo a você receber ICMP Echo Reply. Isso nada mais é do que o "ping", que envia pacotes de "lixo" ICMP para verificar se um servidor está on-line. O problema é que ferramentas como traceroute e nmap dependem do ping para funcionar, e bloquear esses pacotes não é difícil de se fazer (até mesmo roteadores domésticos costumam ter essa opção em suas configurações). Neste caso, devemos usar a opção -P0 (é um zero, e não uma letra O) ou -PN no nmap para indicar que ele não deve usar ping. Para se fazer um traceroute, usamos o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... E se realmente precisamos fazer o ping, usamos o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... No entanto, o tcping depende de uma porta TCP para funcionar, o que faz com que ele funcione apenas para verificar se alguma porta está aberta (o que você pode fazer simplesmente tentando conectar-se a ela, usando telnet ou Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Por isso, neste caso, seria mais interessante utilizar um portscanner automático (existem aos montes, mas o netcat e o nmap também podem ser usados como portscanners). Digamos que você não irá querer testar, uma a uma, as 65.535 possíveis portas de um servidor.
    Com isso, poderemos pegar um utilitário de diagrama de rede (ou caneta e papel) e já desenhar a rede como ela nos parece, já indicando para que serve cada máquina, bem como os serviços que ela executa.

    Enumeração
    Já temos bastante informações sobre o nosso alvo, mas ainda não é o suficiente. Vamos obter informações de uma forma um pouco mais intrusiva.
    Precisamos agora obter o maior número de informações sobre os serviços que rodam no sistema. Isso inclui: usuários (não necessariamente senhas... agora), compartilhamento de rede (pastas e impressoras compartilhadas) e outras informações sobre as aplicações. Isso vai depender bastante do tipo de empresa que estamos atacando, e quais os softwares que a mesma utiliza. Encontrar backups perdidos (o Google pode ajudar, também) pode ser uma ótima fonte de informações. Ferramentas como Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... podem ajudar, mas essa etapa é bem manual. É interessante irmos ao telnet ou netcat, conectar a cada serviço e ver o que eles dizem. Atenção às mensagens de erro: "Usuário inválido" ou "Senha inválida" são diferentes de "Usuário ou senha inválidos", já que, em um caso, conseguimos definir se acertamos um nome de usuário (e só erramos a senha) ou não.

    Obtenção de acesso
    Com as informações que temos até o momento, já conseguimos obter um acesso, ainda que básico e sem muitos privilégios (como a conta ou acesso à máquina de um funcionário qualquer, sem privilégios administrativos - esse funcionário poderia ser nós mesmos ou um informante, inclusive! Dinheiro move o mundo...). Precisamos achar uma maneira de se adentrar o sistema de qualquer forma (como pedindo a um funcionário qualquer que execute algo via e-mail ou no compartilhamento de rede ou com alguma conta padrão do sistema, ou obtida por força-bruta, usando softwares como Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...). Também podemos tentar encontrar vulnerabilidades nos serviços. Para isso, usamos sites como Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Um exploit de buffer-overflow, por exemplo, pode nos colocar com uma posição bem avantajada no sistema. Obter arquivos de senhas, ainda que sob criptografia, também é legal. Servidores Linux guardam informações sobre seus usuários no arquivo /etc/passwd, e suas senhas criptografadas no arquivo /etc/shadow. A criptografia é meio pesada, teríamos que tentar algo como força-bruta, ou sites especializados (Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., por exemplo, que descriptografa MD5).

    Escalação de privilégios
    Escalação, escalagem ou escalada? Tanto faz (na verdade, o corretor automático do meu navegador indicou que 'escalagem' está errado). O que importa é que não nos contentamos com os privilégios que obtivemos no passo anterior, e queremos mais. Queremos ser root, SYSTEM ou o que for suficiente para atingir os alvos que o cliente nos indicou. Para isso, podemos utilizar keyloggers, que gravam todas as teclas digitadas (para Windows, existem aos montes, como o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., e não é muito difícil programar um. Para Linux, eu indico o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... ou o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Também vale usar sniffers. Eu recomendaria o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para Linux, e o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... para Windows, pois nem sempre o WinPCap está instalado na máquina do usuário do Windows - e o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... precisa dele (no Linux, o WinPCap se chama libpcap). Um conhecimento sobre o terminal do sistema operacional alvo é crucial.
    Note que estaremos o tempo todo com acesso ao terminal do sistema (já que uma sessão de desktop remoto, VNC ou Teamviewer seria muito visível ao alvo). Neste caso, para enviar arquivos que precisamos executar no alvo, poderíamos utilizar o próprio netcat ou o wget, obtendo de algum servidor web ou FTP instalado em nossa máquina.
    Prestamos atenção também aos processos e serviços executados no computador e nos outros computadores. Já que estaremos dentro da rede, será mais interessante escaneá-la.

    Pilfering
    O termo "pilfering", em inglês, significa "roubar pequenas coisas". É bem mais simples de entender, podendo ser utilizada antes, durante e/ou depois da escalada de privilégios. Trata-se da busca de arquivos do registro, arquivos de configurações e documentos do usuário por qualquer coisa que nos tragam informações importantes sobre as credenciais. Pode ser a configuração de preenchimento automático do navegador (!!!), e-mails e configurações de programas, como Filezilla. Também podemos roubar o arquivo ~/.rhosts ou /etc/hosts de sistemas Unix. Esses arquivos guardam as máquinas que podem acessar a conta de determinados usuários. O registro do Windows pode ter muito a nos dizer. E se estiverem ocultos, podemos ler os valores usando ferramentas como Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Também é interessante verificar bancos de dados, sejam eles Access, MySQL, MSSQL... Algum arquivo de configuração, indicando as credenciais para acessá-los, deve existir na máquina.

    Eliminação de rastros
    Como eu disse, um ataque de bom porte pode começar, mas não terminar hoje. Por isso, nos manteremos no sistema enquanto pudermos (vamos ver isso no próximo passo), mas não podemos ser detectados pelos administradores da rede. Precisamos nos esconder.
    Vamos começar limpando os rastros do que fizemos. É importante deixar o menor número de arquivos possíveis, e esconder bem aqueles que precisaremos deixar. A pasta temporária (/tmp no Unix e C:\WINDOWS\Temp no Windows) é interessante, desde que o usuário não a limpe com frequência (malditos CCleaners da vida (Baidu?)).
    O Linux costuma gravar toda a atividade do terminal no arquivo ~/bash_history (o ~ indica o diretório do usuário. Exemplo: /home/usuario ou /root). Precisamos apagá-lo (é preferível apenas remover nossas entradas). Também podemos rodar comandos que, recursivamente, apaguem todos os arquivos .log do sistema, ou simplesmente remover nossas entradas (o que é melhor). Se formos deixar um processo rodando (como um keylogger ou um backdoor), é importante deixar, também, um rootkit, que é um utilitário que desenvolveremos usando Windows API Hooks para ocultar nossos processos do gerenciador de tarefas, ou mesmo renomear nossos programas para nomes que o usuário costuma ver, como processos do Windows (explorer.exe, svchost.exe...).

    Manteneção de acesso
    Manutenção? Eu quis dizer que precisamos "manter" o acesso, para voltarmos ao sistema posteriormente. Isso significa abrir uma porta ou programar um trojan de conexão reversa (usando netcat, por exemplo), para não perdermos o acesso que já obtivemos. Dicas são: criar contas de usuário para nosso uso (cuidado! O usuário pode perceber), agendar tarefas (usando o comando 'at' do Windows e cronjobs do Linux), infectar pastas e chaves no registro para inicialização (para que nossos utilitários sejam iniciados junto com o sistema do usuário e até mesmo infectar alguns utilitários do sistema do usuário (isto é, renomeá-los e colocar um backdoor/trojan junto. O backdoor deve executar esse utilitário, para não ser identificado pelo alvo).
    Se formos realmente utilizar backdoors de conexão direta (netcat...), mas não conseguimos acessá-lo, a porta pode estar sendo bloqueada pelo firewall. Neste caso, seria interessante utilizar o FPipe em outra máquina dentro da rede, para que ela funcione como um "relay". Isso quer dizer que o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... abrirá uma porta nela, para que possamos nos conectar, mas ela redirecionará todos os dados trafegados por essa porta para o servidor e porta onde nosso backdoor está instalado. Como a máquina está na rede interna, há menos chances do firewall bloqueá-la.

    Negação de serviço
    "Se tudo der certo, hoje vai dar merd*", já dizia o grande Mr. Catra. Mas e se nada der certo?
    Bem, um dos alvos de estudo de penetração (lembra o que é isso? Leia na seção "Definições", no início do post) pode, muito bem, ser tornar um sistema indisponível (off-line). Neste caso, entram os famosos DoS e DDoS. Não podemos confundir DoS com DOS. DOS (MS-DOS) significa "Disk Operation System", e é o sistema operacional desenvolvido pela Microsoft, que hoje vem no Windows com o nome "Prompt de comando", como você já deve saber. DoS nada mais é do que "denial of service" (negação de serviço) , e DDoS seria "distributed DoS" (DoS distribuído). Trata-se de realizar inúmeros acessos a um serviço ou servidor, até que ele fique cheio de lixo, não consiga atender à demanda e caia. DDoS seria fazer exatamente isso, mas usando uma botnet, ou seja, vários computadores e servidores zumbis infectados por você realizando diversas requisições ao alvo (ao lado dos keyloggers, servidores botnet são a maioria dos vírus enviados por e-mail). Já existem botnets prontas, disponíveis para aluguel. Eu indicaria a Zeus, mas como o FBI acabou com ela, o melhor, neste caso, seria construir sua própria rede de computadores zumbi, ou procurar alguma em fóruns na deep web como o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., no qual o pagamento costuma ser em Bitcoin. Para um ataque simples de DoS, indico o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Mas existem outras técnicas de se realizar DoS. Uma delas, por exemplo, consiste em buscar exploits que, por meio de buffer overflow, façam com que determinado serviço trave. Técnicas ICMP, como o famoso "ping da morte" (enviar ping a um servidor até que ele caia) são dos anos 90, não costumam ser relevantes. Essa etapa também requer um pouco de uso de mente. Por exemplo, se o serviço de e-mail utiliza "BoxTrapper" (um serviço do CPanel que, para evitar spam, sempre que recebe e-mails de um remetente desconhecido, envia de volta um e-mail com um link para confirmar que o remetente é humano, e não um sistema de spam/e-mail marketing, para só então, mediante essa confirmação, entregar a mensagem na caixa do usuário), podemos enviar centenas ou milhares de e-mails ao servidor, falsificando o header "From" (colocando um e-mail falso), para que o sistema envie diversos e-mails para vários servidores, seja bloqueado por vários deles por considerarem spam e/ou fique sem ter como atender às demandas dos funcionários que precisam enviar e-mails. Um pouco de programação PHP e o uso da classe Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... deve resolver. As possibilidades são muitas.


    Mais ferramentas
    Como queremos ter uma visão superficial sobre o pentest, e não sabemos qual o servidor que pegaremos, um dia, não podemos sugerir mais do que ferramentas genéricas. Mas aqui estão mais algumas para ajudar. Scanners de rede como o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... são úteis pois já costumam automatizar boa parte da tarefa (automatizar não é substituir o trabalho humano... neste caso). Para o caso de um ataque web, Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... ajudarão bastante. Outra ferramenta que você utilizará bastante quando for executar exploits é o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Por enquanto, a dica que dou para quem está adentrando esse universo agora é: instale máquinas virtuais usando o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e brinque de invadi-las, buscando exploits, instalando aplicativos vulneráveis etc. Utilize, também, distribuições Linux preparadas para o hacking, já com todas as ferramentas, como o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (desses 3, apenas o Kali está sendo mantido). Essas distribuições costumam rodar em LiveCD, não sendo necessário instalá-las.

    Bons estudos!
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
    Similar Threads
X
Working...
X