Beginner Friendly
![]()
Execute and Identify Credential Abuse in AWS
This intermediate lab walks through a full credential abuse attack chain in AWS and then pivots to the blue team to detect it. Starting from a public S3 bucket, you extract leaked IAM credentials, enumerate permissions, exfiltrate DynamoDB records, crack SHA-256 password hashes, and reuse the recovered passwords in a console credential stuffing attack. You then use CloudTrail and Amazon Athena to identify the compromised IAM user.
Overview
This intermediate lab walks through a full credential abuse attack chain in AWS and then pivots to the blue team to detect it. Starting from a public S3 bucket, you extract leaked IAM credentials, enumerate permissions, exfiltrate DynamoDB records, crack SHA-256 password hashes, and reuse the recovered passwords in a console credential stuffing attack. You then use CloudTrail and Amazon Athena to identify the compromised IAM user.
Scenario
During a routine audit for Huge Logistics, you discover an unsecured S3 bucket. Your task is to scrutinize its contents, use any sensitive data as pivots, and determine the risk exposure by gaining access to other connected systems.
Lab prerequisites
- Basic Linux command line knowledge
- AWS CLI installed and configured
- Familiarity with Go tooling and hash cracking
Learning outcomes
- Enumerate a public S3 bucket and exfiltrate a leaked JSON backup with credentials
- Automate IAM permission enumeration using Pacu and aws-enumerator
- Enumerate and scan DynamoDB tables to exfiltrate user records
- Identify and crack SHA-256 hashes with hashid and Jumbo John
- Use a Vim macro to reformat cracked data for a credential stuffing attack
- Run a credential stuffing attack against the AWS console with GoAWSConsoleSpray
- Detect the brute force and identify the compromised IAM user with CloudTrail and Amazon Athena
Real-world context
Password reuse and credential stuffing are prevalent in both on-premise and cloud environments, as users recycle passwords across services. Combined with secrets stored in insecure applications, this creates attack chains that defenders must be able to detect and investigate.
KEY TAKEAWAY
Credential stuffing works because people reuse passwords, not because anything was broken. A hash recovered from an application database becomes a working cloud credential the moment someone used the same password twice, and no vulnerability is involved at any point.
What this lab covers
You enumerate storage and database services, recover credential material from what you find, work out what kind of hashes they are and crack them, then test the results against other systems.
The intermediate rating is about breadth rather than difficulty. The lab moves through several services and a fair amount of data handling, which is realistic, since real credential work involves more list manipulation than cryptography.
It suits testers and defenders equally. The detection side of credential stuffing is genuinely tractable, and most organizations have not built it.
How credential reuse becomes cloud access
Application databases store password hashes, and how much protection those provide depends entirely on the algorithm. Fast general-purpose hashes can be attacked at enormous rates on commodity hardware, while purpose-built password hashing functions with a work factor are orders of magnitude slower to attack.
Identification comes before cracking. Hash format determines the approach, and getting this wrong wastes the entire effort, which is why recognizing formats is a practical skill rather than a theoretical one.
The recovered passwords are then tested elsewhere. This is credential stuffing: not guessing passwords but reusing known ones, on the reasonable assumption that a person who chose a password for one system chose it for others. Where that person also has cloud console access, an application database breach becomes a cloud incident.
How to detect this in your own environment
Watch for authentication attempts spread thinly across many accounts from a small number of sources. Stuffing produces a distinctive wide and shallow pattern, quite unlike a single user failing repeatedly, and grouping failures by source rather than by account is what makes it visible.
Alert on successful sign-ins that follow failures from the same source. The transition from failure to success is the moment the incident begins and is often the only clean timestamp you get.
Monitor for console sign-ins without multi-factor authentication, which is the population stuffing can actually reach. In a well-configured account that list should be empty.
How to prevent it
Enforce multi-factor authentication on every human identity. Credential stuffing depends on a correct password being sufficient, so this converts a likely compromise into a logged failure and is the single decisive control.
Federate human access through an identity provider so there are no standing console passwords to reuse, and check credentials against known breach corpora at the point they are set.
Use a slow, salted password hashing function with an appropriate work factor in your own applications. It does not stop reuse and it substantially raises the cost of turning a stolen database into a usable list.
Real-world context
Credential stuffing is one of the most common attack techniques against internet-facing services, driven by the very large corpora of breached credentials in circulation. It requires no exploit, scales cheaply, and succeeds at a low but reliable rate.
The cross-domain effect is what makes it a cloud problem. A breach of an unrelated consumer service can yield the password an engineer also used for a cloud account, which is why controls that depend on password secrecy are weak regardless of how strong the password is.
The pattern maps to MITRE ATT&CK T1110.004 Credential Stuffing, T1078.004 Cloud Accounts and T1552.001 Credentials In Files.
Applying this at work
- Query your sign-in logs for successful console authentications without multi-factor authentication and account for every one.
- Group authentication failures by source address rather than by user, which is what makes stuffing visible.
- Check the password hashing algorithm in your own applications and move to a purpose-built function with a work factor if it is a fast general-purpose hash.
- Screen new and changed passwords against known breach corpora.
- Move human cloud access to federation so there is no standing console password to reuse.
Frequently asked questions
What is the difference between credential stuffing and brute forcing?
Brute forcing guesses passwords. Credential stuffing reuses passwords known to be valid elsewhere, so the success rate is much higher and the attempt volume much lower, which also makes it harder to spot with rate-based controls.
Does a strong password protect against this?
Not if it is reused. Strength affects guessing, and stuffing uses a password already known to be correct. Uniqueness matters more than complexity here, and multi-factor authentication matters more than either.
Why does the hashing algorithm matter so much?
Because it determines how quickly a stolen database becomes a usable password list. Fast general-purpose hashes can be attacked at very high rates, while purpose-built functions with a work factor make the same task orders of magnitude more expensive.
Do I need my own AWS account to practice this?
No. The lab runs in a live AWS environment that Pwned Labs provisions for you, so there is nothing to set up and no risk to your own infrastructure.
Which certification covers this in depth?
The Amazon Cloud Red Team Professional (ACRTP) covers AWS attack and detection paths in full, including IAM abuse and privilege escalation, and is assessed hands-on in a live AWS account.
Cloud Security Training To Protect Your Business
Pwned Labs for Business gives your team access to dedicated business content, including labs and cyber ranges.
We also offer in-person or remote workshops, and our cloud penetration services are helping businesses become more secure!