terça-feira, 14 de maio de 2013

Olá pessoal!

Venho trazer para vocês um projeto que me tirou o sono e que me ocupou 1 semana. Eu tenho 3 PCS aqui a disposição no meu lab. Com isso em mente eu preparei uma infra muito interessante para todos que quiserem aprender pentest. Com um lab desse, só não aprende quem não quer. Vamos a ele:

Existem 3 modos de montar seu próprio lab, adaptei esses modos de milhares de textos na net e montei meu próprio, então não digam que copiei >.<

Antes de começar, só mais uma coisa. Muitos podem diser “Ah mas se você tem um lab com 3 pcs pra que vms? Vms não é a mesma coisa que um pc real”. E sim, uma maquina virtual tem coisas que não serão encontradas em uma maquina de verdade e vice-versa, mas se bem configurada pode se chegar muuuito perto de uma maquina real, sem falar que com vms podemos ter varias rodando em 1 pc. Procurem ai entao como configurar rede em vms, modos de compatibilidade, coerência e Seamless.

E vamos logo ao ponto…


Infraestrutura Necessária

Primeiro de tudo você precisa definir qual vai ser o SO host das vms.Veja um SO que se adapte melhor a você e suas necessidades. Eu por exemplo no inicio usava um macbook pro como atacante e vitima. Mac OS X é muito estável, e muito bom, mas por causa do gerenciamento de memória do Parallels (programa de vms do mac) não conseguia manter mais de 3 vms abertas ao mesmo tempo xD. Passei para o linux então. Tive muitos problemas com compatibilidade nesse ponto, o que melhor me adaptei foi um host com backbox (sim, para vitima) ou com ubuntu, usando VirtualBox para gerenciar minhas VM’s. Mas se você preferir usar windows também vai se dar bem, windows consegue gerenciar bem, mas para evitar problemas com tela azul, preste muita atenção em como você vai configurar a memória de cada vm, aconselho também usar o VMWare.


Modo 1


Caso use o modo 1 não vai precisar de 3 máquinas muito potentes, já que vai estar tudo distribuido. Aconselho a usar essa e comprar pcs mais ou menos, quem sabe depois de brincar com vms você deseja criar um cluster para quebrar senhas? Já tem um bom inicio


Modo 2


Nesse modo usaremos 2 PC’s, um deles não precisa ser muito bom, o suficiente para rodar sua distro de pentest preferida, e o outro necessita ser um pouco melhor, já que vai hostear varias vms, possivelmente algumas em paralelo. No momento que escrevo isso estou usando essa infra, com um Atom, 4GB ram e 250GB de HD para o Backbox e um i5, 8GB de ram e 500GH de HD rodando ubuntu como host para minhas vms.


Modo 3


Nesse modo usaremos apenas um PC. Então obviamente ele vai ter que ser bem bom para aguentar tudo isso junto… Ai vai de você escolher o PC ideal para suas brincadeiras, mas, nada impede de você pegar um meio fraco e ir usando uma vm por vez, o máximo que pode acontecer é atrasar seu estudo xD. Uma solução inteligente aqui é usar sua distro de pentest preferida como host e atacante ao mesmo tempo, e ir usando na vm suas vitimas.


Modo 1


Nesse primeiro modo vamos usar todo o potencial do nosso (meu no caso) lab. Com 3 PCS o que eu poderia fazer? Posso usar 2 pcs com distros para pentest para ataques simultâneos, não deixa de ser uma boa idéia, para testar estabilidade de sistemas e rede, mas isso pode ser usado mais para frente. Podemos também dividir nossas vms em 2 partes (metade em cada PC vitima), por exemplo, separar S.O’s windows em 1 e Linux’s em outra. Ou use como preferir…


Modo 2

Na minha opinião, a melhor infra daqui. Usando 2 pcs, como citado acima um atom com 2gb de ram e 250 de hd para meu backbox como atacante e um i5 com 8gb de ram e 500gb de hd como vitima com minhas vms e ubuntu como host. Acredito que essa configuração aguenta bastante antes das telas azuis…

DICA: nunca use o host como vitima também, se você usa windows como host e quer exploitar windows, instale uma cópia na vm, vai evitar dores de cabeça futuras…


Modo 3

O modo mais complicado, eu pelo menos gosto de fazer varios testes em paralelo, para agilizar o processo, no momento, não estou me preocupando com o tamanho do ruido que causo na rede, deixo isso mais para a frente. Então precisa-se de um PC rasoavelmente bom para uma coisa dessas, de preferência com o atacante sendo o host, para poupar 1 vm. A dica para usar esse modo é pesquisar na net qual é o minimo de memória que cada um dos sistemas precisa para funcionar bem, como por exemplo o debian squeeze consegue rodar perfeitamente com 384 mb de ram. Outra dica, complementando essa primeira é: no linux, SEMPRE use os terminais de texto (tty 1 ao 7 ou 8 dependendo da distro). Não gaste memória com coisas gráficas inúteis. Pode ser dificil no inicio, mas isso vai trazer muito conhecimento para você.

Ok, já sabemos um modo bom de organizar nosso lab, mas e agora, que vm eu instalo nele?

Vamos lá! Andei essa semana estudando vms e distros diferentes para um melhor aprendizado e cheguei a seguinte conclusão:


Você vai precisar de:

  • Windows server 2003 e 2008
  • Windows 7 (pode usar o XP também, mas já esta meio defasado, mas para inicio pode ser bom)
  • Linux Debian (ou qualquer distro semelhante)
  • Red Hat (ou qualquer distro semelhante, CentOS, fedora, etc)
  • Linux Infecsious Disease
  • Linux Metasploitable
  • Linux Nebula (exploit-exercises.com)
  • Linux Hacking-Lab.com Live CD

Existem outras vms vuls para brincar, mas gostei dessas, apresentam um bom nível de desafio, sendo crescente em cada uma.

Não coloquei links para down de nenhuma delas por que vai variar o seu programa de vms, mas com uma pequena busca na net você encontra todas essas (e apanha um pouco já na configuração e instalação delas )


Método de Estudo

Então, temos um monte de vms e agora? Como eu comentei antes, não precisa seguir isso 100%, veja quais são suas prioridades e adapte a um plano de estudo que fique bom para você.

Bom, na minha opinião, deve-se já ter um pré conhecimento em redes, exploits, distros de pentest, um pouco de programação também é bom e por ai vai. Quanto mais você souber mais fácil vai ser lidar com todos esses brinquedinhos novos…

Então, seguindo uma ordem lógica de estudo e dificuldade vamos iniciar pelo mais fácil.


Windows

Pode iniciar conhecendo suas vms windows (xp, 7, server), procure conhecer como o sistema funciona, sistema de registro, arquivos de senhas, arquivos de boot, como burlar senhas e barreiras que podem te atrasar e etc. Para inicio não instale antivirus e desabilite o firewall, conforme for melhorando seus conhecimentos vá aumentando a dificuldade.


Linux hacking-lab.com

Seu próximo passo pode ser esse. Na verdade, se você baixar esse Live CD você não está baixando uma distro vul, está baixando uma distro com algumas tools, cheia de limitações e muitos desafios prontos (para mais informações visite o site hacking-lab.com). Recomendo você baixar essa, cadastrar-se no site e resolver o máximo de desafios que conseguir, tem muita coisa de excelente qualidade lá. Aqui no fórum tem muita coisa que pode ajudar você nesse estágio, fica a dica.


Linux Metasploitable

Agora chega de tutos, videos e ambientes preparados para você, vamos cair de cara numa distro linux cheia de bugs e ferramentas desatualizadas. Com o conhecimento que você já tem você pode se aventurar por aqui. Tente primeiramente conhecer todos os recursos instalados aqui, depois tente exploitar todos e por ultimo tente atualizar e exploitar novamente. Terminando esse estágio você já vai estar muito acima da grande maioria…


Linux infecsious Disease

Agora vamos para uma distro completamente desconhecida (até para mim), novamente vamos ter que descobrir o que tem nessa vm e descobrir como exploitar e seguir todo o processo novamente. Mas dessa vez já estaremos trabalhando com algo mais sério, se pesquisar um pouco vai ver que ela foi desenvolvida em cima de uma distro para pentest (BT 2)…


Linux exploit-exercises.com Nebula


Agora chegamos a um divisor de águas. Essa vm está cheia de bugs e falhas também, mas estão relativamente bem camufladas, você deve estudar bastante os conteúdos da LPIC lvl 1 e 2 para se dar bem aqui. Olha só, se eu chegar nesse nível tenho grandes chances de prestar e passar na LPIC 1 e 2 (e quem sabe 3 também o.0)

Mais informações sobre esse nível no site do desenvolvedor do desafio…

Dica: evite em todas, mas aqui especialmente, será um teste de conhecimentos, então tente estudar e entender o que está causando a falha e não pegar a resposta na net. Fazendo isso só estará enganando a si mesmo.


Linux Debian e Red Hat

Chegamos ao ultimo estágio, parabéns! Agora temos duas distros normais, sem “nenhuma” falha preparada para você. Com o conhecimento que você já tem você pode montar aqui o ambiente que quiser para continuar seus testes… Pode ir gradativamente melhorando a segurança deles e tentando invadir.


Concluindo

Opa chegamos ao final (até que em fim xD) desse texto. Se você resolveu boa parte de todos esses desafios, seguindo as regras de cada um, pode se considerar bom. Nesse ponto, se você já não fez isso pode voltar para o windows e tentar deixa-lo o mais “ininvasivo” possivel (acho que acabei de inventar uma palavra xD).

Qualquer coisa que tiverem de duvidas sobre algum dos desafios ou configs, testes ou qualquer outra coisa pode postar aqui, esse post vai ficar aqui para isso ^^

Agora não tem desculpa para não aprender pentest =D

P.S.: levei 3 horas para escrever isso e uma semana para por tudo funcionando então pelo menos leia tudo >.<

E era isso por em quanto, todos (ou quase todos) os desafios e vms foram testados e aprovados por mim (grande coisa xD)

Espero que gostem, bom trabalho (pra mim) e bons estudos a todos.

4 comentários:

  1. Excelente artigo, minha opção è o modo 2, atacante, desktop com bulldozer 3.3ghz, 16 gb ram e 1,5tb, e o host notebook windows para vms com core i5, 8 gb ram 1 tb hd. Só que utilizo a maquina atacante na maquina host com acesso remoto ; )

    ResponderExcluir
    Respostas
    1. Muito interessante cara!

      Belas maquinas que tem ai. Bons estudos

      Valeu pelo comentario o/

      Excluir
    2. Vocês podem encontrar várias máquinas vulneráveis para pentest no endereço:
      http://vulnhub.com/

      Excluir

Subscribe to RSS Feed Follow me on Twitter!