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