Pentest

O que são vírus?

Um vírus é a forma mais antiga de malware e é de longe o mais conhecido por todos. Mas o que é um vírus? O que separa um vírus de outras formas de malwares? Como um vírus é criado, e como ele ataca sua vítima?

O primeiro código que poderia ser classificado como um vírus chegou por volta de 1970 na forma do projeto Creeper. Este projeto implementou capacidades como a replicação e a capacidade de infectar um sistema. O projeto também gerou outro vírus conhecido como o reaper, que removeu o Creeper de qualquer sistema infectado com o código. (mais…)

Entendendo o que são malwares

Um dos problemas proeminentes que surgiu com a disseminação da tecnologia é o malware. Malware é um termo que abrange vírus, worms, cavalos de Tróia e bombas lógicas, bem como adware e spyware. Estes tipos de malware causaram uma série de problemas ao longo dos anos, que vão desde simples aborrecimentos a perigosos e maliciosos exploits. Softwares que se encaixam na categoria de malware, evoluíram drasticamente até incluir a capacidade de roubar senhas, informações pessoais e identidades, bem como danos hardware em alguns casos (como Stuxnet fez).

Malware é um termo novo, abrangente, mas os tipos de software que cobre estão longe de ser novos. Vírus e worms são algumas das mais antigas formas de softwares maliciosos existentes. O que mudou é o poder da tecnologia, a criatividade dos projetistas e o efeito de novos métodos de distribuição, como redes mais complexas, compartilhamento de arquivos peer-to-peer, conectados sempre à Internet e outros mecanismos que venho a tona durante os anos.

Veremos também os covert channels, cuja utilização aumentou gradualmente. Esses canais são componentes desconhecidos e não monitorados de um sistema que pode ser explorado para obter acesso ao sistema. Através do uso de um covert channel, um invasor poderá ser capaz de conseguir o acesso a um sistema sem o conhecimento do proprietário ou atrasar a detecção tanto que, no momento em que o ponto de entrada é descoberto, é tarde demais para o defensor fazer algo sobre isso. (mais…)

Cobrindo seus rastros em um pentest

Depois de ter invadido um sistema e ter um software instalado ou executado alguns scripts, o próximo passo é a limpeza de seus rastros ou esconde-los. O objetivo desta fase é evitar que seu ataque seja facilmente descoberto usando várias técnicas para esconder os sinais. Durante esta fase, você procura eliminar mensagens de erro, arquivos de log e outros itens que podem ter sido alterados durante o processo de ataque.

Desabilitando a auditoria

Uma das melhores maneiras de evitar ser descoberto é não deixar trilhas em tudo. E uma das melhores maneiras de fazer isso é evitar que qualquer trilha seja criada ou, pelo menos, minimizar a quantidade de provas. Quando você está tentando não deixar trilhas, um bom ponto de partida é alterando a forma como os eventos são registrados no sistema alvo.

Desativar a auditoria em um sistema evita que certos eventos apareçam e, portanto, retarda a detecção. Lembre-se que a auditoria é projetada para permitir a detecção e rastreamento de eventos selecionados em um sistema. Uma vez que a auditoria é desativada, você efetivamente privou o defensor de uma grande fonte de informações e forçou-os a procurar outros métodos de detecção. (mais…)

Escalando privilégios e executando aplicações em um ataque

Quando você obtém uma senha e obtém acesso a uma conta, ainda há mais trabalho a fazer: escalar os privilégios. A realidade é que a conta que você está comprometendo pode acabar sendo privilegiada e menos defendida. Se este for o caso, você deve executar o escalonamento de privilégios antes de realizar a próxima fase. O objetivo deve ser ganhar um nível onde menos restrições existem na conta e você tem maior acesso ao sistema.

Cada sistema operacional vem com um número de contas de usuário e grupos já presentes. No Windows, os usuários pré-configurados incluem as contas de administrador e de convidado. Como é fácil para um invasor encontrar informações sobre as contas incluídas em um sistema operacional, você deve ter o cuidado de garantir que essas contas sejam protegidas adequadamente, mesmo que nunca sejam usadas. Um invasor que sabe que essas contas existem em um sistema é mais do que provável para tentar obter suas senhas. (mais…)

Quebra de senha: Ataques off-line

Os ataques off-line representam ainda outra forma de ataque que é muito eficaz e difícil de detectar em muitos casos. Tais ataques dependem do atacante ser capaz de aprender como as senhas são armazenadas e, em seguida, usando essas informações, realizar um ataque. Veja abaixo um ataque de senha que extrai hashes. (mais…)

Quebra de senha: Ataques passivos online

Como em outros casos em que examinamos e usamos medidas passivas, os ataques às senhas são usados para obte-las sem interagir diretamente com o alvo. Estes tipos de ataques são eficazes em ser furtivos, porque eles tentam coletar senhas sem revelar muito sobre o sistema coletor. Esse tipo de ataque depende menos da maneira como uma senha é construída e mais sobre como ela é armazenada e transportada. Quaisquer problemas com essas áreas podem ser apenas o suficiente para abrir a porta para obter essas valiosas credenciais. (mais…)

Técnicas para quebrar uma senha

Na fase de enumeração de um pentest, foram coletadas diversas informações sobre o alvo, incluindo usuários. Estes usuários são importantes nesta fase porque eles te dão uma visão em que se deve focar durante o ataque a um sistema. Use a quebra de senhas para obter credenciais de uma conta com a intenção de usar esta conta para ganhar acesso autorizado ao sistema com um usuário legítimo.

De forma resumida, a quebra de senha é o processo de recuperar senhas transmitidas ou armazenadas como dados. Desta forma, um invasor pode recuperar e usar uma senha extraviada ou esquecida. Administradores de sistemas pode usar este processo para auditar e testar por brechas em um sistema para avaliar a força delas e os invasores poderão fazer este processo para tentar causar prejuízos.

Tipicamente, o processo de invasão inicia-se com as senhas, pois elas podem ser quebradas ou auditadas usando técnicas manuais ou automatizadas com a intenção de revelar as credenciais.

Antes de continuar falando sobre a quebra de senha, temos que entender o que é uma senha. A senha foi feita para ser algo que um indivíduo possa lembrar facilmente mas ao mesmo tempo não ser fácil de ser adivinhada ou quebrada. É onde o problema reside, pois o ser humano tende a escolher senhas fáceis de lembrar, o que as tornam fáceis de adivinhar. (mais…)

Enumeração SMTP

Outra forma efetiva de obter informações de um alvo é através do uso do SMTP. Este protocolo foi desenhada para enviar mensagens entre servidores que enviam e recebem e-mails. SMTP é um padrão usado pela maioria dos servidores e clientes de e-mail hoje em dia.

Então, como podemos usar este protocolo para obter informações? O processo é simples se você tiver o conhecimento fundamental de alguns comandos e como usá-los. (mais…)

Enumeração de serviços de diretório e LDAP

O Lightweight Directory Access Protocol (LDAP) é usado para interagir e organizar banco de dados. LDAP é comumente usado porque é um padrão aberto e um grande número de fornecedores usam em seus próprios produtos, em muitos casos, serviços de diretórios como o Active Directory da Microsoft. Tenha em mente que você pode ter outros serviços interagindo com LDAP e, portanto, informações estarem sendo vazadas para outros sem a sua aprovação.

Se você fazer suas anotações durante a fase de escaneamento, você pode lembrar de ter achado alguma porta 389 aberta. Se você achou esta porta aberta durante o scan, você pode ter achado um alvo interessante. Esta porta está associada com o LDAP, no qual você pode achar um serviço de diretório ou algo semelhante.

O LDAP é muito usado com o Active Directory ou OpenLDAP, mas na prática, este protocolo é usado pelas empresas que são armazens de um grande volume de dados.

Um diretório é um banco de dados, mas os dados são organizados de forma hierárquica ou lógica. Outra forma de olhar para este desenho é pensar como uma organização de dados assim como ocorrer em um sistema operacional, com arquivos e pastas. Para facilitar e tornar mais eficiente o acesso estes dados, você pode usar um serviço de DNS para aumentar a velocidade das consultas. (mais…)