AWS - GuardDuty Enum
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
De acordo com a documentação: GuardDuty combina aprendizado de máquina, detecção de anomalias, monitoramento de rede e descoberta de arquivos maliciosos, utilizando tanto fontes da AWS quanto de terceiros líderes da indústria para ajudar a proteger cargas de trabalho e dados na AWS. O GuardDuty é capaz de analisar dezenas de bilhões de eventos em várias fontes de dados da AWS, como logs de eventos do AWS CloudTrail, logs de fluxo do Amazon Virtual Private Cloud (VPC), logs de auditoria e de sistema do Amazon Elastic Kubernetes Service (EKS) e logs de consulta DNS.
O Amazon GuardDuty identifica atividades incomuns dentro de suas contas, analisa a relevância de segurança da atividade e fornece o contexto em que foi invocada. Isso permite que um respondedor determine se deve gastar tempo em uma investigação mais aprofundada.
Os alertas aparecem no console do GuardDuty (90 dias) e nos Eventos do CloudWatch.
Quando um usuário desativa o GuardDuty, ele para de monitorar seu ambiente AWS e não gerará novas descobertas, e as descobertas existentes serão perdidas. Se você apenas parar, as descobertas existentes permanecerão.
Reconhecimento: Atividade sugerindo reconhecimento por um atacante, como atividade de API incomum, tentativas de login em banco de dados suspeitas, varredura de portas intra-VPC, padrões incomuns de solicitações de login falhadas ou sondagem de portas desbloqueadas de um IP conhecido como malicioso.
Comprometimento de instância: Atividade indicando um comprometimento de instância, como mineração de criptomoedas, atividade de comando e controle (C&C) de backdoor, malware usando algoritmos de geração de domínio (DGA), atividade de negação de serviço de saída, volume de tráfego de rede incomum, protocolos de rede incomuns, comunicação de instância de saída com um IP malicioso conhecido, credenciais temporárias do Amazon EC2 usadas por um endereço IP externo e exfiltração de dados usando DNS.
Comprometimento de conta: Padrões comuns indicativos de comprometimento de conta incluem chamadas de API de uma geolocalização incomum ou proxy de anonimização, tentativas de desativar o registro do AWS CloudTrail, mudanças que enfraquecem a política de senha da conta, lançamentos de instâncias ou infraestrutura incomuns, implantações de infraestrutura em uma região incomum, roubo de credenciais, atividade de login em banco de dados suspeita e chamadas de API de endereços IP maliciosos conhecidos.
Comprometimento de bucket: Atividade indicando um comprometimento de bucket, como padrões de acesso a dados suspeitos indicando uso indevido de credenciais, atividade de API do Amazon S3 incomum de um host remoto, acesso não autorizado ao S3 de endereços IP maliciosos conhecidos e chamadas de API para recuperar dados em buckets S3 de um usuário sem histórico anterior de acesso ao bucket ou invocadas de uma localização incomum. O Amazon GuardDuty monitora e analisa continuamente eventos de dados do AWS CloudTrail S3 (por exemplo, GetObject, ListObjects, DeleteObject) para detectar atividades suspeitas em todos os seus buckets do Amazon S3.
Acesse uma lista de todas as descobertas do GuardDuty em: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Você pode convidar outras contas para uma conta diferente do AWS GuardDuty para que todas as contas sejam monitoradas a partir do mesmo GuardDuty. A conta mestre deve convidar as contas membros e então o representante da conta membro deve aceitar o convite.
Você pode designar qualquer conta dentro da organização para ser o administrador delegado do GuardDuty. Apenas a conta de gerenciamento da organização pode designar um administrador delegado.
Uma conta que é designada como administrador delegado se torna uma conta de administrador do GuardDuty, tem o GuardDuty habilitado automaticamente na Região AWS designada e também tem a permissão para habilitar e gerenciar o GuardDuty para todas as contas na organização dentro dessa Região. As outras contas na organização podem ser visualizadas e adicionadas como contas membros do GuardDuty associadas a esta conta de administrador delegado.
Tente descobrir o máximo possível sobre o comportamento das credenciais que você vai usar:
Horários em que é usado
Localizações
User Agents / Serviços (Pode ser usado a partir de awscli, webconsole, lambda...)
Permissões regularmente usadas
Com essas informações, recrie o máximo possível do mesmo cenário para usar o acesso:
Se for um usuário ou um papel acessado por um usuário, tente usá-lo nas mesmas horas, da mesma geolocalização (até mesmo o mesmo ISP e IP, se possível)
Se for um papel usado por um serviço, crie o mesmo serviço na mesma região e use-o a partir daí nos mesmos intervalos de tempo
Sempre tente usar as mesmas permissões que esse principal usou
Se você precisar usar outras permissões ou abusar de uma permissão (por exemplo, baixar 1.000.000 de arquivos de log do cloudtrail), faça isso devagar e com a mínima quantidade de interações com a AWS (awscli às vezes chama várias APIs de leitura antes da de escrita)
guardduty:UpdateDetector
Com essa permissão, você poderia desativar o GuardDuty para evitar disparar alertas.
guardduty:CreateFilter
Atacantes com esta permissão têm a capacidade de empregar filtros para o arquivamento automático de descobertas:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Atacantes com os privilégios anteriores poderiam modificar a Lista de IPs Confiáveis do GuardDuty adicionando seu endereço IP a ela e evitar gerar alertas.
guardduty:DeletePublishingDestination
Os atacantes poderiam remover o destino para evitar alertas:
Excluir este destino de publicação não afetará a geração ou visibilidade das descobertas dentro do console do GuardDuty. O GuardDuty continuará a analisar eventos em seu ambiente AWS, identificar comportamentos suspeitos ou inesperados e gerar descobertas.
Observe que existem dezenas de descobertas do GuardDuty, no entanto, como Red Teamer, nem todas elas afetarão você, e o que é melhor, você tem a documentação completa de cada uma delas em https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html então dê uma olhada antes de tomar qualquer ação para não ser pego.
Aqui estão alguns exemplos de bypasses de descobertas específicas do GuardDuty:
O GuardDuty detecta solicitações de API da AWS de ferramentas comuns de teste de penetração e aciona uma PenTest Finding. É detectado pelo nome do agente do usuário que é passado na solicitação da API. Portanto, modificando o agente do usuário, é possível evitar que o GuardDuty detecte o ataque.
Para evitar isso, você pode procurar no script session.py
no pacote botocore
e modificar o agente do usuário, ou definir o Burp Suite como o proxy da AWS CLI e mudar o agente do usuário com o MitM ou apenas usar um SO como Ubuntu, Mac ou Windows para evitar que este alerta seja acionado.
Extrair credenciais do EC2 do serviço de metadados e utilizá-las fora do ambiente AWS ativa o alerta UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Por outro lado, empregar essas credenciais de sua instância EC2 aciona o alerta UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. No entanto, usar as credenciais em outra instância EC2 comprometida dentro da mesma conta não é detectado, não levantando nenhum alerta.
Portanto, use as credenciais exfiltradas de dentro da máquina onde você as encontrou para não acionar este alerta.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)