Hacking de senha oculta com Smbexec

Hacking de senha oculta com Smbexec

Escrevemos regularmente sobre como os hackers muitas vezes dependem da exploração métodos de hacking sem código maliciosopara evitar a detecção. Eles literalmente "sobreviver no pasto", usando ferramentas padrão do Windows, contornando antivírus e outros utilitários para detectar atividades maliciosas. Nós, como defensores, somos agora forçados a lidar com as consequências infelizes de tais técnicas inteligentes de hacking: um funcionário bem colocado pode usar a mesma abordagem para roubar secretamente dados (propriedade intelectual da empresa, números de cartão de crédito). E se ele não tiver pressa, mas trabalhar devagar e silenciosamente, será extremamente difícil - mas ainda possível se ele usar a abordagem correta e a abordagem apropriada. Ferramentas, — identificar essa actividade.

Por outro lado, não gostaria de demonizar os funcionários porque ninguém quer trabalhar num ambiente de negócios desde o 1984 de Orwell. Felizmente, há uma série de etapas práticas e truques que podem tornar a vida muito mais difícil para quem está dentro. Vamos considerar métodos de ataque secreto, usado por hackers por funcionários com algum conhecimento técnico. E um pouco mais discutiremos opções para reduzir esses riscos - estudaremos opções técnicas e organizacionais.

O que há de errado com o PsExec?

Edward Snowden, com ou sem razão, tornou-se sinónimo de roubo de dados internos. Aliás, não esqueça de dar uma olhada esta nota sobre outros insiders que também merecem algum status de fama. Um ponto importante que vale a pena enfatizar sobre os métodos utilizados por Snowden é que, até onde sabemos, ele não instalei nenhum software malicioso externo!

Em vez disso, Snowden usou um pouco de engenharia social e aproveitou sua posição como administrador de sistema para coletar senhas e criar credenciais. Nada complicado - nenhum mimikatz, ataques homem no meio ou metasploit.

Os funcionários organizacionais nem sempre estão na posição única de Snowden, mas há uma série de lições a serem aprendidas com o conceito de "sobrevivência por pastoreio" que devem ser observadas - não se envolver em qualquer atividade maliciosa que possa ser detectada e ser especialmente cuidado com o uso de credenciais. Lembre-se deste pensamento.

Psexec e seu primo crackmapexec impressionaram inúmeros pentesters, hackers e blogueiros de segurança cibernética. E quando combinado com o mimikatz, o psexec permite que invasores se movam dentro de uma rede sem a necessidade de saber a senha em texto simples.

Mimikatz intercepta o hash NTLM do processo LSASS e então passa o token ou credenciais - os chamados. ataque "passar o hash" – no psexec, permitindo que um invasor faça login em outro servidor como de outro do utilizador. E a cada mudança subsequente para um novo servidor, o invasor coleta credenciais adicionais, ampliando o alcance de suas capacidades na busca pelo conteúdo disponível.

Quando comecei a trabalhar com psexec, parecia mágico para mim - obrigado Mark Russinovich, o brilhante desenvolvedor do psexec - mas também conheço seu barulhento componentes. Ele nunca é reservado!

O primeiro fato interessante sobre o psexec é que ele usa comandos extremamente complexos Protocolo de arquivo de rede SMB da Microsoft. Usando SMB, psexec transfere pequenas binário arquivos para o sistema de destino, colocando-os na pasta C:Windows.

Em seguida, o psexec cria um serviço do Windows usando o binário copiado e o executa com o nome extremamente “inesperado” PSEXECSVC. Ao mesmo tempo, você pode realmente ver tudo isso, como eu fiz, observando uma máquina remota (veja abaixo).

Hacking de senha oculta com Smbexec

Cartão telefônico do Psexec: serviço "PSEXECSVC". Ele executa um arquivo binário que foi colocado via SMB na pasta C:Windows.

Como etapa final, o arquivo binário copiado é aberto Conexão RPC para o servidor de destino e então aceita comandos de controle (através do shell cmd do Windows por padrão), iniciando-os e redirecionando a entrada e a saída para a máquina doméstica do invasor. Nesse caso, o invasor vê a linha de comando básica - a mesma como se estivesse conectado diretamente.

Muitos componentes e um processo muito barulhento!

Os complexos componentes internos do psexec explicam a mensagem que me intrigou durante meus primeiros testes há vários anos: “Iniciando PSEXECSVC...” seguida por uma pausa antes do prompt de comando aparecer.

Hacking de senha oculta com Smbexec

O Psexec do Impacket realmente mostra o que está acontecendo nos bastidores.

Não é de surpreender: o psexec fez um grande trabalho nos bastidores. Se você estiver interessado em uma explicação mais detalhada, confira aqui estes descrição maravilhosa.

Obviamente, quando utilizado como ferramenta de administração de sistemas, que foi propósito original psexec, não há nada de errado com o “zumbido” de todos esses mecanismos do Windows. Para um invasor, entretanto, o psexec criaria complicações, e para um insider cauteloso e astuto como Snowden, o psexec ou um utilitário semelhante seria um risco muito grande.

E então vem o Smbexec

O SMB é uma forma inteligente e secreta de transferir arquivos entre servidores, e os hackers têm se infiltrado diretamente no SMB há séculos. Acho que todo mundo já sabe que não vale a pena abrir Portas SMB 445 e 139 para a Internet, certo?

Na Defcon 2013, Eric Millman (brav0hax) apresentado smbexec, para que os pentesters possam experimentar hackers furtivos em SMB. Não sei a história toda, mas o Impacket refinou ainda mais o smbexec. Na verdade, para meus testes, baixei os scripts do Impacket em Python de Github.

Ao contrário do psexec, smbexec evita transferir um arquivo binário potencialmente detectado para a máquina de destino. Em vez disso, a concessionária vive inteiramente do pasto até o lançamento local Linha de comando do Windows.

Eis o que ele faz: ele passa um comando da máquina atacante via SMB para um arquivo de entrada especial e, em seguida, cria e executa uma linha de comando complexa (como um serviço do Windows) que parecerá familiar aos usuários do Linux. Resumindo: ele inicia um shell cmd nativo do Windows, redireciona a saída para outro arquivo e depois a envia via SMB de volta para a máquina do invasor.

A melhor maneira de entender isso é observar a linha de comando, que consegui obter no log de eventos (veja abaixo).

Hacking de senha oculta com Smbexec

Esta não é a melhor maneira de redirecionar E/S? A propósito, a criação do serviço possui ID de evento 7045.

Assim como o psexec, ele também cria um serviço que faz todo o trabalho, mas o serviço depois disso removido – é usado apenas uma vez para executar o comando e depois desaparece! Um oficial de segurança da informação que monitora a máquina da vítima não será capaz de detectar óbvio Indicadores de ataque: Não há nenhum arquivo malicioso sendo lançado, nenhum serviço persistente está sendo instalado e não há evidências de uso de RPC, uma vez que o SMB é o único meio de transferência de dados. Brilhante!

Do lado do invasor, um “pseudo-shell” está disponível com atrasos entre o envio do comando e o recebimento da resposta. Mas isso é suficiente para que um invasor - seja um hacker interno ou externo que já tenha uma posição segura - comece a procurar conteúdo interessante.

Hacking de senha oculta com Smbexec

Para enviar dados de volta da máquina alvo para a máquina do invasor, ele é usado smbclient. Sim, é o mesmo Samba utilidade, mas apenas convertido em um script Python pela Impacket. Na verdade, o smbclient permite hospedar secretamente transferências FTP por SMB.

Vamos dar um passo atrás e pensar no que isso pode fazer pelo funcionário. No meu cenário fictício, digamos que um blogueiro, analista financeiro ou consultor de segurança altamente remunerado possa usar um laptop pessoal para trabalhar. Como resultado de algum processo mágico, ela se ofende com a empresa e “fica mal”. Dependendo do sistema operacional do laptop, ele usa a versão Python do Impact ou a versão Windows do smbexec ou smbclient como um arquivo .exe.

Assim como Snowden, ela descobre a senha de outro usuário olhando por cima do ombro ou tem sorte e se depara com um arquivo de texto com a senha. E com a ajuda dessas credenciais, ela começa a explorar o sistema em um novo nível de privilégios.

Hackeando DCC: Não precisamos de nenhum Mimikatz “estúpido”

Em meus posts anteriores sobre pentesting, usei o mimikatz com muita frequência. Esta é uma ótima ferramenta para interceptar credenciais - hashes NTLM e até mesmo senhas em texto não criptografado escondidas dentro de laptops, apenas esperando para serem usadas.
Os tempos mudaram. As ferramentas de monitoramento melhoraram na detecção e bloqueio do mimikatz. Os administradores de segurança da informação também têm agora mais opções para reduzir os riscos associados aos ataques pass the hash (PtH).
Então, o que um funcionário inteligente deve fazer para coletar credenciais adicionais sem usar o mimikatz?

O kit do Impacket inclui um utilitário chamado despejo de segredos, que recupera credenciais do cache de credenciais de domínio, ou DCC, para abreviar. Meu entendimento é que se um usuário de domínio fizer login no servidor, mas o controlador de domínio não estiver disponível, o DCC permitirá que o servidor autentique o usuário. De qualquer forma, secretsdump permite despejar todos esses hashes, se estiverem disponíveis.

Hashes DCC são não hashes NTML e não pode ser usado para ataque PtH.

Bem, você pode tentar hackeá-los para obter a senha original. No entanto, a Microsoft ficou mais inteligente com o DCC e os hashes DCC tornaram-se extremamente difíceis de decifrar. Sim, eu tenho hashcat, “o adivinhador de senhas mais rápido do mundo”, mas requer uma GPU para funcionar de maneira eficaz.

Em vez disso, vamos tentar pensar como Snowden. Um funcionário pode realizar engenharia social pessoalmente e possivelmente descobrir algumas informações sobre a pessoa cuja senha ela deseja decifrar. Por exemplo, descubra se a conta online da pessoa já foi hackeada e examine sua senha em texto simples em busca de pistas.

E este é o cenário que decidi seguir. Vamos supor que um insider soube que seu chefe, Cruella, foi hackeado diversas vezes em diferentes recursos da web. Depois de analisar várias dessas senhas, ele percebe que Cruella prefere usar o formato do nome do time de beisebol "Yankees" seguido do ano corrente - "Yankees2015".

Se você está tentando reproduzir isso em casa, você pode baixar um pequeno "C" código, que implementa o algoritmo de hash DCC e o compila. João, o EstripadorA propósito, adicionou suporte para DCC, para que também possa ser usado. Vamos supor que alguém de dentro não queira se preocupar em aprender John, o Estripador, e goste de executar "gcc" em código C legado.

Fingindo o papel de um insider, tentei várias combinações diferentes e finalmente consegui descobrir que a senha de Cruella era “Yankees2019” (veja abaixo). Missão completa!

Hacking de senha oculta com Smbexec

Um pouco de engenharia social, uma pitada de adivinhação e uma pitada de Maltego e você estará no caminho certo para quebrar o hash DCC.

Sugiro que terminemos aqui. Voltaremos a este tópico em outras postagens e veremos métodos de ataque ainda mais lentos e furtivos, continuando a desenvolver o excelente conjunto de utilitários do Impacket.

Fonte: habr.com

Adicionar um comentário