
Escrevemos regularmente sobre como os hackers frequentemente se baseiam no uso , a fim de evitar a detecção. Eles literalmente , utilizando ferramentas padrão do Windows, conseguindo assim driblar antivírus e outras utilidades de detecção de atividades maliciosas. Nós, como defensores, agora somos forçados a lidar com as tristes consequências dessas técnicas de invasão astutas: um funcionário bem posicionado pode utilizar o mesmo método para roubo oculto de dados (propriedade intelectual da empresa, números de cartões de crédito). E se ele não se apressar, mas trabalhar devagar e discretamente, será extremamente difícil — mas ainda assim possível, se aplicarmos a abordagem correta e as apropriadas , — detectar tal atividade.
Por outro lado, não gostaria de demonizar os funcionários, pois ninguém deseja trabalhar em um ambiente empresarial diretamente do "1984" de Orwell. Felizmente, existem uma série de passos práticos e dicas que podem complicar significativamente a vida dos insiders. Vamos abordar métodos ocultos de ataque, utilizados por hackers funcionários com algum conhecimento técnico. E um pouco adiante, discutiremos opções para reduzir esses riscos – explorando tanto a abordagem técnica quanto organizacional.
Qual é o problema com o PsExec?
Edward Snowden, justo ou não, tornou-se sinônimo de roubo de dados por insiders. A propósito, não esqueça de olhar para sobre outros insiders, que também merecem algum nível de notoriedade. Vale ressaltar um ponto importante sobre os métodos que Snowden utilizou – até onde sabemos, ele não instalou nenhum software malicioso externo!
Pelo contrário, Snowden utilizou um pouco de engenharia social e aproveitou sua posição de administrador de sistemas para coletar senhas e criar credenciais. Nada complicado – nenhum , ataques ou .
Os funcionários das organizações nem sempre estão em uma posição única como a de Snowden, mas da concepção de "sobrevivência da carência" podemos extrair várias lições que devem ser conhecidas – não realizar quaisquer ações maliciosas que possam ser detectadas, e, especialmente, usar as credenciais com cuidado. Mantenha isso em mente.
e seu primo fizeram uma impressão em inúmeros pentesters, hackers e blogueiros de segurança da informação. E em combinação com mimikatz, o psexec permite que os invasores se movimentem dentro da rede sem precisar conhecer a senha em texto claro.
O Mimikatz intercepta o hash NTLM no processo LSASS e, em seguida, passa o token ou as credenciais – conhecido como ataque "pass the hash" – no psexec, permitindo que o invasor acesse outro servidor em nome de outro usuário. E a cada movimento subsequente para um novo servidor, o invasor coleta credenciais adicionais, ampliando suas capacidades na busca por conteúdo acessível.
Quando comecei a trabalhar com psexec, ele me pareceu simplesmente mágico – obrigado , gênio por trás do psexec, – mas eu também conheço os seus componentes barulhentos. Ele não é em nada discreto!
O primeiro fato interessante sobre psexec é que ele utiliza um extremamente complexo protocolo de arquivos de rede SMB da Microsoft. Com o SMB, o psexec transfere pequenos arquivos binários para o sistema alvo, colocando-os na pasta C:Windows.
Em seguida, o psexec cria um serviço Windows usando o binário copiado e o executa sob um nome "inesperado" PSEXECSVC. Você pode realmente ver tudo isso, assim como eu, observando a máquina remota (veja abaixo).

O cartão de visita do Psexec: serviço "PSEXECSVC". Ele executa o arquivo binário que foi colocado via SMB na pasta C:Windows.
Na fase final, o arquivo binário copiado abre uma conexão RPC com o servidor alvo e então recebe comandos de controle (por padrão – através do shell cmd do Windows), executando-os e redirecionando a entrada e saída para a máquina do invasor. O invasor vê a linha de comando básica – a mesma que veria se estivesse conectado diretamente.
Múltiplos componentes e um processo muito barulhento!
O complexo mecanismo dos processos internos do psexec explica a mensagem que me deixou perplexo durante meus primeiros testes há alguns anos: "Starting PSEXECSVC ..." e a pausa subsequente antes do aparecimento da linha de comando.

O Psexec do Impacket realmente mostra o que acontece "sob o capô".
Não é surpreendente: o psexec realizava uma enorme quantidade de trabalho "nos bastidores". Se você deseja uma explicação mais detalhada, consulte excelente descrição.
É evidente que, ao ser utilizado como uma ferramenta de administração de sistema, que era o propósito original do psexec, não há problema no "zumbido" de todos esses mecanismos do Windows. Para um atacante, no entanto, o psexec criará complicações, e para um insider cauteloso e astuto, como Snowden, o psexec ou uma ferramenta semelhante será um risco grande demais.
E aqui entra o Smbexec
SMB é uma maneira astuta e discreta de transferir arquivos entre servidores, e os hackers têm se infiltrado diretamente no SMB desde tempos imemoriais. Imagino que todos já sabem que não se deve as portas SMB 445 e 139 para a internet, certo?
Em 2013, na Defcon, Eric Milman () apresentou ao público , para que os pentesters pudessem experimentar a invasão furtiva no SMB. Não sei toda a história, mas depois o Impacket aprimorou ainda mais o smbexec. Na verdade, para meus testes, eu baixei exatamente os scripts do Impacket em Python de .
Ao contrário do psexec, o smbexec evita a transferência de um arquivo binário potencialmente detectável para a máquina alvo. Em vez disso, a ferramenta vive inteiramente com "alimentos disponíveis" através da execução de comandos da linha de comando do Windows.
Veja o que ela faz: ela envia um comando da máquina atacante através do SMB para um arquivo de entrada especial, e depois cria e executa uma linha de comando complexa (como um serviço do Windows), que parecerá familiar para os usuários de Linux. Em resumo: ela executa o shell nativo do Windows cmd, redireciona a saída para outro arquivo e, em seguida, o envia de volta via SMB para a máquina do invasor.
A melhor maneira de entender isso é estudar a linha de comando que consegui obter do log de eventos (veja abaixo).

Não é essa a maior maneira de redirecionar entrada/saída? A propósito, a criação de um serviço gera o identificador de evento 7045.
Assim como o psexec, ela também cria um serviço que realiza toda a tarefa, mas o serviço depois é removido – é utilizado apenas uma vez para executar o comando e depois desaparece! Um funcionário de segurança da informação monitorando a máquina da vítima não conseguirá detectar nada óbvio. indicadores de ataque: não há nenhum arquivo executável malicioso, nenhum serviço persistente sendo instalado e não há evidências do uso de RPC, já que SMB é o único meio de transmissão de dados. Genial!
Do lado do atacante, existe um "pseudo-shell" com atrasos entre o envio de comandos e a recepção de respostas. Mas isso é suficiente para que o criminoso – seja um insider ou um hacker externo com um ponto de apoio – comece a procurar conteúdo interessante.

Para enviar dados de volta da máquina alvo para a máquina do atacante, usa-se . Sim, é o mesmo Samba , mas apenas refeito em um script Python pelo Impacket. De fato, o smbclient permite que você organize secretamente uma transmissão FTP sobre SMB.
Vamos dar um passo para trás e pensar sobre o que isso pode significar para um funcionário. No meu cenário fictício, vamos supor que um blogueiro, um analista financeiro ou um consultor de segurança bem pago tem permissão para usar seu laptop pessoal para o trabalho. Como resultado de um processo mágico, ela se ofende com a empresa e "parte para a desgraça". Dependendo do sistema operacional do laptop, ela usa a versão Python do Impact ou a versão Windows do smbexec ou smbclient em forma de arquivo .exe.
Assim como Snowden, ela descobre a senha de outro usuário, seja espiando por cima do ombro, ou por sorte, encontra um arquivo de texto com a senha. E com essas credenciais, ela começa a vasculhar o sistema em um novo nível de privilégios.
Comprometimento DCC: não precisamos de nenhum Mimikatz "idiota"
Nos meus posts anteriores sobre pentest, eu usei muito o mimikatz. É uma ferramenta incrível para interceptar credenciais — hashes NTLM e até mesmo senhas em texto claro, escondidas dentro de laptops, esperando para serem aproveitadas.
Os tempos mudaram. As ferramentas de monitoramento melhoraram na detecção e bloqueio do mimikatz. Administradores de segurança da informação também possuem mais opções para reduzir riscos relacionados a ataques do tipo "pass the hash" (PtH).
Então, o que um funcionário inteligente deve fazer para coletar credenciais adicionais sem usar o mimikatz?
O pacote do Impacket inclui uma ferramenta chamada , que extrai credenciais do cache Domain Credential Cache, ou simplesmente DCC. Pelo que eu entendo, se um usuário de domínio acessa o servidor, mas o controlador de domínio não está disponível, o DCC permite que o servidor autentique o usuário. De qualquer forma, o secretsdump permite que você extraia todos esses hashes, se eles estiverem disponíveis.
Os hashes DCC são não hashes NTLM e eles não podem ser usados para um ataque PtH.
Bem, você pode tentar quebrá-los para obter a senha original. Entretanto, a Microsoft se tornou mais esperta ao lidar com DCC e quebrar os hashes DCC se tornou extremamente difícil. Sim, existe , "o mais rápido do mundo em quebra de senhas", mas ele requer uma GPU para funcionar de forma eficaz.
Em vez disso, vamos tentar pensar como Snowden. Um funcionário pode fazer engenharia social presencial e, talvez, descobrir alguma informação sobre a pessoa cuja senha ele quer quebrar. Por exemplo, descobrir se a conta online dessa pessoa já foi invadida e examinar sua senha em texto claro em busca de dicas.
E esse é o cenário que eu decidi seguir. Vamos supor que o insider descobriu que sua chefe, Cruella, foi invadida várias vezes em diferentes sites. Após analisar algumas dessas senhas, ele percebe que Cruella prefere usar o formato de nome do time de beisebol "Yankees" seguido do ano atual – "Yankees2015".
Se você está tentando reproduzir isso em casa, pode baixar um pequeno "C" , que implementa o algoritmo de hash DCC, e compilá-lo. , aliás, adicionou suporte ao DCC, então ele também pode ser usado. Vamos supor que o insider não quer se envolver com o John the Ripper e gosta de rodar o "gcc" em código C desatualizado.
A encenar o papel de insider, eu executei várias combinações diferentes e, no final, consegui descobrir que a senha da Cruella era "Yankees2019" (veja abaixo). Missão cumprida!

Um pouco de engenharia social, uma pitada de adivinhação e uma dose de Maltego – e você já está a caminho de quebrar o hash DCC.
Sugiro que terminemos por aqui. Voltaremos a este assunto em outras publicações e exploraremos mais métodos de ataque lentos e furtivos, continuando a contar com o maravilhoso conjunto de utilitários do Impacket.
Fonte: habr.com
