Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New attack technique: SES enumeration activities #501

Merged
merged 6 commits into from
Apr 8, 2024

Conversation

loresuso
Copy link
Contributor

What does this PR do?

New attack technique

Motivation

Attackers may use AWS SES to send phishing emails from a victim's AWS account. One of the objectives of the attackers could be sending as many emails as possible from a verified source to start a phishing campaign. Before doing that, and as described by this research , they can call some APIs for enumeration, like ses:GetSendQuota and ses:ListIdentities

Checklist

  • The attack technique emulates a single attack step, not a full attack chain
  • We have factual evidence & references that the attack technique was used by real malware, pentesters, or attackers
  • The attack technique makes no assumption about the state of the environment prior to warming it up

Co-authored-by: Alessandro Brucato <alessandro.brucato@protonmail.com>
Signed-off-by: Lorenzo Susini <susinilorenzo1@gmail.com>
@loresuso loresuso changed the title New attack technique: ses enumeration activities New attack technique: SES enumeration activities Mar 26, 2024
@christophetd
Copy link
Contributor

Thanks for the PR! Will review it in the coming days

@loresuso
Copy link
Contributor Author

Thank you @christophetd!

@christophetd
Copy link
Contributor

When an attacker wants to enumerate SES, they can achieve the same outcome in two different ways:

  1. Use sesv2:GetAccount and read quotas in place and whether e-mail sending is enabled from the response
  2. Use ses:GetAccountSendingEnabled + ses:GetSendQuota individually

Not sure which one we should be using, any thoughts? I've also asked in the Cloud Security Forum Slack

@christophetd
Copy link
Contributor

@loresuso I've made a few changes to make enumeration slightly more aggressive, are you comfortable with the changes and can you have a look? Thanks!

@loresuso
Copy link
Contributor Author

loresuso commented Apr 4, 2024

We are aware of the two alternatives, but initially thought to use GetSendQuota just because the GetAccount API call wasn't mentioned in the article we linked. Thinking about it, GetAccount should be better from an attacker's point of view because:

@christophetd christophetd force-pushed the ses-email-attack-technique branch from 6363dd1 to 0fa5252 Compare April 4, 2024 10:32
@loresuso
Copy link
Contributor Author

loresuso commented Apr 4, 2024

By the way, thanks, the changes look good to me, especially the additional step with the GetIdentityVerificationAttributes call

@loresuso
Copy link
Contributor Author

loresuso commented Apr 8, 2024

I think everything is good, when you want we can get this merged :) @christophetd

I also have another question: I believe we could also implement another technique where we try to send an email using ses:SendEmail API. What do you think? How would you map it to MITRE ATT&CK? Curious to know your opinion about it!

@christophetd
Copy link
Contributor

If we can find evidence that it's been abused in the wild (e.g. write-up) yes it would be perfect

@christophetd christophetd merged commit 6e97276 into DataDog:main Apr 8, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants