addeed details
This commit is contained in:
parent
128eb30906
commit
50d66ec1a8
|
@ -435,6 +435,66 @@ A Unique ID is create through the following scheme
|
||||||
arn:aws:<service>:<region>:<account_id>:<resource_type>/<resource_name>
|
arn:aws:<service>:<region>:<account_id>:<resource_type>/<resource_name>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### IAM - Gain Access through Vulnerabilities
|
||||||
|
|
||||||
|
#### Gathering Credentials
|
||||||
|
|
||||||
|
Git repositories, especially on GitLab and Github but also other repositories,
|
||||||
|
can be a source of found credentials. A tool to find sensitive data inside git
|
||||||
|
repository is [Trufflesecurity's
|
||||||
|
Trufflehog](https://github.com/trufflesecurity/trufflehog).
|
||||||
|
|
||||||
|
Other repositories, like package repository for programming, are also prone to
|
||||||
|
contain credentials unintentionally.
|
||||||
|
|
||||||
|
#### Gain Access through CloudFormation
|
||||||
|
|
||||||
|
It is possible to phish credentials through url manipulation and sending it to
|
||||||
|
someone with higher privileges.
|
||||||
|
|
||||||
|
This may be achieved through link manipulation. A link for a CloudFormation
|
||||||
|
Stackset creation looks like this.
|
||||||
|
|
||||||
|
```http
|
||||||
|
https://console.aws.amazon.com/cloudformation/home?region=<region>#/stacks/new?stackName=<maliciousStackName>&templateURL=https://s3.amazonaws.com/<bucketname>/<templatename>.template
|
||||||
|
```
|
||||||
|
|
||||||
|
CloudFormation Stacks can be listed through aws cli.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
aws cloudformation describe-stacks | jq .
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Gaining Access through Metadata Service
|
||||||
|
|
||||||
|
Metdata Service (IMDS) returns information about the EC2 instance and IAM it uses.
|
||||||
|
Take a look at chapter [Metadata Service](#Metadata-Service) to get in to the details.
|
||||||
|
|
||||||
|
To gain access from the web, you need something like an LFI or a SSRF to
|
||||||
|
request the IMDS through the EC2 instance, indirectly. Goal is to gain access
|
||||||
|
to the environment variables and as a result to `AWS_SESSION_TOKEN`,
|
||||||
|
`AWS_SECRET_ACCESS_KEY` and `AWS_ACCESS_KEY_ID`.
|
||||||
|
|
||||||
|
Query the the role name first. Use them to query the instance profile role afterwards.
|
||||||
|
|
||||||
|
```http
|
||||||
|
http://169.254.169.254/latest/meta-data/iam/security-credentials/
|
||||||
|
http://169.254.169.254/latest/meta-data/iam/security-credentials/<FoundRoleName>
|
||||||
|
```
|
||||||
|
|
||||||
|
Export the variables and check if you got the instance profile permissions
|
||||||
|
correctly via aws cli.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
aws sts get-caller-identity
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Credentials Gain through CI/CD
|
||||||
|
|
||||||
|
Credentials can be found directly inside files of a bucket or through the use
|
||||||
|
of the bucket by other services, which store credentials inside the bucket as a
|
||||||
|
result of some executed scripts.
|
||||||
|
|
||||||
## Services
|
## Services
|
||||||
|
|
||||||
An [action on an
|
An [action on an
|
||||||
|
@ -1490,13 +1550,17 @@ inside these Lambda authorizer policies to get unexpected permissions.
|
||||||
|
|
||||||
#### Use an API Gateway as a Reverse Proxy
|
#### Use an API Gateway as a Reverse Proxy
|
||||||
|
|
||||||
Rotation of IP addresses for an attack may bypass restrictions, like rate-limiting, set for an address.
|
Rotation of IP addresses for an attack may bypass restrictions, like
|
||||||
This can be done via VPNs, e.g. Tor or more suitable in this case using the AWS
|
rate-limiting, set for an address. This can be done via VPNs, e.g. Tor or more
|
||||||
API Gateway to rotate the IP address via FireProx.
|
suitable in this case using the AWS API Gateway to rotate the IP address via
|
||||||
|
FireProx.
|
||||||
|
|
||||||
Use the Cloudshell inside a browser to clone and install the [Fireprox repository](https://github.com/ustayready/fireprox). Start `fire.py` afterwards.
|
Use the Cloudshell inside a browser to clone and install the [Fireprox
|
||||||
|
repository](https://github.com/ustayready/fireprox). Start `fire.py`
|
||||||
|
afterwards.
|
||||||
|
|
||||||
You can use Fireprox externally from the AWS, but you have set an endpoint via a URL to achieve a connection.
|
You can use Fireprox externally from the AWS, but you have set an endpoint via
|
||||||
|
a URL to achieve a connection.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./fire.py --command create --url <URL>
|
./fire.py --command create --url <URL>
|
||||||
|
@ -1506,4 +1570,4 @@ Using any of these two lets you list existing APIs.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./fire.py --command list
|
./fire.py --command list
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue