AIS3 180802
===
###### tags: `AIS3` `筆記`
# 資訊安全評估
講師聯絡方式
hi@kaiching.wang
## 傳統 vs 雲端
### 傳統
#### 偵查
1. IP 範圍探索
2. Port 探索
```
nmap -T4 -A -Pn -sT
```
#### 尋找弱點
##### 弱點掃描
1. Nessus
2. nexpose
3. OpenVAS
##### 網頁弱點掃描
1. Acunetix
2. AppScan
3. WebInspect
### 雲端
#### 需考慮的議題
1. 浮動IP範圍
2. 是否暴露在 public
3. 弱點如何 patch
4. 入侵後能做什麼
5. 雲端架構
6. 應用程式架構
### 最大差異
- 網路系統
- 認證授權
## 資訊蒐集&攻擊
### IP列舉
~~多到爆~~
### 網域列舉
- 搜尋引擎
- Google Hacking
- site:ais3.org
- 百度,Bing,Yandex(俄羅斯搜尋引擎)
Google 會自動過濾敏感訊息,你有試過其他的嗎
- Crt.sh
- 憑證透明化
- PassiveDNS
- VirusTotal
- 紀錄曾經解析過的網域
- 分析網域過往行為
- 有單日上限
- dnsdumpster.com
- DNS 資訊關聯圖繪製工具
- 協助分析 DNS 紀錄
- Censys, Shodan, Zoomeye
- 紀錄網路空間的主機資訊
- 暴力破解
- Sublist3r
```shell
python sublist3r.py -d yahoo.com -b -t 50 -p 80,443,21,22
```
- CSP(Content Security Policy)
### 網域劫持
CNAME 指到錯誤目標
### CDN(Content Delivery Network)
- 快取
- 存取控制
- WAF
- 抗 DDOS
~~繞過就沒了WAF~~
- AP 通常如何獲取使用者IP?
```php
<?php
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$myip = $_SERVER['HTTP_CLIENT_IP'];
}else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$myip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$myip= $_SERVER['REMOTE_ADDR'];
}
echo $myip;
?>
```
- Header: CF-Connecting-IP
CDN 跟伺服器透過此 Header 告知用戶 IP
#### 如何繞過
- 嘗試找舊IP
- 找暴露在網路上的真實IP
- 尋找沒受CDN保護的子網域
#### 練習題 Writeup
題目給了 https://realme.0x61697333.cf/ 要找Flag
簡單觀察回來的封包, 從 Header 可以得知這個網站有用 CDN
繞過的思路就先想會不會有暴露在網路上的真實IP
就用 VirusTotal.com 來尋找
找到
104.28.10.231
104.28.11.231
52.194.38.175
而 104 開頭的是 CDN 端的 IP, 連進去後 CDN 會再幫你連進真正的 Server
那 52 開頭的就有可能是真正的 Server
連進去後, CF-Connecting-IP 設定成 127.0.0.1, Flag 就奉上了
### Cloud Storage Service
- 透過 API 進行操作
#### 最常見的安全問題
- 權限配置錯誤
- 被意外存取
- 網域劫持
##### AWS S3
- 尋找公開的儲存空間
- https://buckets.grayhatwarfare.com
- 事件
- https://github.com/naswww/s3-leaks
- AWSBucketDump
- 全自動列舉公開的 AWS S3
- https://github.com/jordanpotti/AWSBucketDump
```shell
python3 AWSBucketDump.py -l 字典 -g 關鍵字 -D -m 尺寸 -t 執行緒(2以上)
```
### Load Balancer
#### 安全風險
- 部屬源汙染
- 探索服務汙染
- 經濟攻擊
### SSRF
SSRF 服務請求偽造, 攻擊者構造特殊請求, 透過伺服器端發起攻擊
#### 成因
沒有對輸入進行過濾
#### SSRF 的攻擊面
- 借刀殺人
- 探索內部服務(Port Scan)
- 攻擊內部服務(Struct2, Redis, ElasticSearch)
- 讀取本機端檔案
- 識別服務框架/架構(Banner)
#### 什麼地方會出現 SSRF
- 能夠發起網路請求的地方
- 呼叫其他服務
- 請求遠端資源
- 服務內建功能(Oracle, MSSQL, CouchDB)
- 文件處裡(ffmpeg, ImageMagic, Doc, Xlsx, PDF, XML)
- 其他漏洞利用(CommandInjection, SQLi, XSS, SSTI)
#### 神奇服務
- Splash: Javascript Render Service
- 爬蟲會用到的工具
- 可以 GET/POST 還可以修改 Header
#### 可利用協議
- Http/Https
- http://127.0.0.1:8080
- Gopher
- File
- file:///etc/passwd
- Dict
#### 可利用服務
- Redis
- CouchDB
- ElasticSearch
##### 練習題 Writeup
只要知道 nginx 的預設路徑
/etc/nginx/sites-enabled/default
接下來你知道的
#### 保護繞過
- Http302
- IP 變形
- 127.0.1
- 127.0x0.0x00.1
- http://2130706433
- http://0/
- http://[::]
- http://0000::1
- nip.io
- dig nip.io 看看
- dig 140.120.23.23.nip.io 看看
- DNS Rebind
- dig 看看 A.1.1.1.1.1time.127.0.0.1.1times.repeat.rebind.network
- 再 dig 一次
- 解析不一致
http://1.1.1.1&@2.2.2.2#@3.3.3.3/
#### 該保護那些IP?
- 127.0.0.1
- Private IP
- 169.254.169.254 (WTF)
##### MetaData Service
雲端 only
一些栗子:
http://169.254.169.254/latest/user-data
http://169.254.169.254/latest/meta-data
http://169.254.169.254/latest/meta-data/iam/security-credentials/RoleName
##### WeirdAAL
Source: https://github.com/carnal0wnage/weirdAAL
python3 weirdAAL.py -m recon_all -t MyTarget
# Web Security
## Cookie
善用屬性:
- Secure
- HttpOnly
- Expire
- Domain/Path
## Header
- strict-transport-security: Http Strict Transport Security https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
- Content-Security-Policy
- X-XSS-Protection
- X-Frame-Options