# flAWS 2 - Attacker Path
flAWS 2 is the continuation of fLAWS CTF which is focused for teaching about AWS (Amazon Web Services) pentesting, which introduces issues in Lambda and ECR and to exploit them, it's hosted on `http://flaws2.cloud/` so we don't need to setup anything for AWS. I'll be focusing on doing the Attacker path and this path includes 3 levels
## Level 1
### Finding AWS Access and Session
The page asks us to enter a 100 digit pin code
If we try to see what request is made at the backend in the network tab from developer tools
It's making a request to `https://2rfismmoo8.execute-api.us-east-1.amazonaws.com/default/level1?code=1` with the value of the `code` so it must be evaluating from the backend whether the code is valid . As we learned from fLAWS (prequel to fLAWS2) that it's used to make API requests, where `2rfismmoo8` is `rest-api-id` , `level` is the stage/function . This resource in AWS is known as `AWS Lambda` which is baiscally used to run code or make API requests
On making an invalid request like putting characters instead of numbers we'll get an error which will reveal `AWS_SECRET_KEY`, `AWS_ACCESS_KEY_ID` and `AWS_SESSION_TOKEN`
We can use this to access the s3 bucket which it's only allowed through a valid AWS key as we can't access it without it
Adding AWS_SESSION_TOKEN in the credentials file
WIth `awscli` we can access the s3 bucket
```bash
aws s3 ls s3://level1.flaws2.cloud
```
We can download the secret html file with `cp`
This will give us the link to level 2
## Level 2
### Accessing ECR images
Checking for un-authorized access on s3 buckets
This level talks about a container on http://container.target.flaws2.cloud/ which is being referenced `Elastic Container Registry (ECR)` , it's basically a container (docker) image registry service
So from awscli we can use `aws ecr` for interacting with elastic container registry (make sure to grab aws keys and session because they do get expired)
With `aws ecr get-login` we can get the username and password for ECR
Also we get the endpoint for registory control, with `aws ecr describe-images --repository-name level2` we can list the images from repoistory `level2`
All we have to do is login to registry control with docker
With `docker` we can pull the image `level2` with tag `latest`
```bash
docker pull 653711331788.dkr.ecr.us-east-1.amazonaws.com/level2:latest
```
We can list the images with `docker images`
The container can be ran by executing `bash` in the container to get a shell
```
sudo docker run --rm -it --entrypoint bash 2d73de35b781
```
Going into `/var/www/html` we can find the link to level 3 in `index.htm` file
Now level 3 which is the last level of flaws2.cloud, wasn't working as
it requires us to accss http://container.target.flaws2.cloud which wasn't responding, I am not sure what's the reason but this concludes flaws2.cloud
## References
- http://flaws2.cloud/
- https://pentestbook.six2dez.com/enumeration/cloud/aws
- https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html