0%

網站弱點掃描筆記

1. 前言

寫這篇的原因是因為筆者經過OWASP ZAP修正弱點努力後,客戶後續實際請資安廠商進行掃描。客戶聯絡我需要進行弱點修正,以下記錄一些學習資訊。

2. 環境說明

  1. Windows Server 2016
  2. IIS10
  3. 網站架構(無後端程式碼)
    1. HTML
    2. JS
    3. SCSS
    4. CSS

3. 科普名詞

3.1. TLS - (Transport Layer Security,傳輸層安全性)

TSL (Transport Layer Security,傳輸層安全性) 是更新、更安全的 SSL 版本。我們仍將安全性憑證稱為 SSL,因為這是較常用的詞彙,不過當您透過DigiCert購買 SSL 時,您所購買的其實是最新的 TLS 憑證及 ECC、RSA 或 DSA 的加密選項

簡單來說,TLS是更安全的版本,從WIKI資料,也可以看到棄用的狀況:

image-20220802205731442

3.2. Cipher - 密碼

在密碼學中,密碼(英語:cipher,或cypher),是一種用於執行加密解密演算法——一系列可以作為一個過程來遵循的定義明確的步驟

比較好聯想的就是我們常說的對稱加密AESDES,非對稱加密RSA

3.3. Hash - 雜湊

雜湊演算法也被用來加密存在資料庫中的密碼(password)字串,由於雜湊演算法所計算出來的雜湊值(Hash Value)具有不可逆(無法逆向演算回原本的數值)的性質,因此可有效的保護密碼。

用在於檔案校驗碼(Checksum),比如:

  • 用來快速判斷檔案是否和原本相同。
  • 有在論壇下載過檔案的人應該都很常見到一長串 MD5 或 SHA-1 驗證碼,就是用來讓你快速檢查你下載的檔案裡頭的內容,是不是跟上傳者上傳的檔案一樣。

3.3.1. 為什麼雜湊不是加密?

  • 今天如果我拿到一串密文,我是有辦法透過解密,得到原始的明文的,而且如果使用非對稱式加密的話,我甚至還可以驗證傳送方是不是本人(是否有被進行中間人攻擊)。
    • 雜湊演算法在這裡也會被使用,通常會被拿來檢驗傳送的訊息是否有被更改過。
    • 傳送方附上原始訊息經過某個雜湊演算法得出的雜湊值,接收方在解開這個訊息之後,會透過相同的雜湊演算法來驗證。
  • 但如果是拿到一串雜湊值的話,理論上是無法逆向得到原始的明文的,根本無法拿來做資料的傳遞。

對於雜湊在網路傳輸上的應用有了更進一步的了解,確認傳送的訊息是否有被更改過

引用:加密和雜湊有什麼不一樣?

4. 廠商檢測使用之軟體

引用報告書內容:

本服務所使用之弱點掃描檢測工具的廠牌為 HCL AppScan,作為網頁弱點掃描檢測工具,可全面搜尋受測單位的漏洞。

經查詢這套軟體看起來是付費軟體哦。

5. 檢測結果

image-20220802195617329

5.1. 低強度密碼組合 - ROBOT 攻擊:伺服器支援有漏洞的密碼組合

網路搜尋找到來自HCL AppScan文件說明

依預設,IIS 安裝時會啟用 2 個低強度 SSL 2.0 密碼組合:SSL2_RC4_128_WITH_MD5SSL2_DES_192_EDE3_CBC_WITH_MD5。這會影響 AppScan Enterprise 的安全,應該停用這些密碼組合。

從文件內容中,了解到原來設定都藏在登錄檔之中,試圖理解SSL2_RC4_128_WITH_MD5這個是代表什麼意思,意外發現可以用這張圖片來解釋:

Server Protocols + _ + Ciphers + _ + WITH + Hashes

img

實際去探訪登錄檔,截圖增加印象:

image-20220802203224225

5.2. 偵測到 RC4 密碼組合

經過第一項弱點的認識後,這一項的說明其實就變得更好理解了。也就是不要包含RC4就對了!

5.3. 偵測到低強度密碼:並非所有密碼組合都支援完全秘密轉遞

經過第一項弱點的認識後,這一項的說明其實就變得更好理解了。比如不能有SSLRC4MD5,並且在組合上避免低安全的組合!

6. 工具推薦

6.1. SSLScan

是一套open source,在github公開,可以自行下載。

  • 可以看到SSL/TLS Protocols的enable狀況
  • 可以看到Supported Server Cipher 的支援狀況
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
PS C:\Users\kite\Downloads\sslscan-2.0.15> .\sslscan.exe tw.yahoo.com
Version: 2.0.15 Windows 64-bit (Mingw)
OpenSSL 1.1.1e-dev xx XXX xxxx

Connected to 119.161.15.251

Testing SSL server tw.yahoo.com on port 443 using SNI name tw.yahoo.com

SSL/TLS Protocols:
SSLv2 disabled
SSLv3 disabled
TLSv1.0 enabled
TLSv1.1 enabled
TLSv1.2 enabled
TLSv1.3 enabled

TLS Fallback SCSV:
Server supports TLS Fallback SCSV

TLS renegotiation:
Secure session renegotiation supported

TLS Compression:
Compression disabled

Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed
TLSv1.1 not vulnerable to heartbleed
TLSv1.0 not vulnerable to heartbleed

Supported Server Cipher(s):
Preferred TLSv1.3 128 bits TLS_AES_128_GCM_SHA256 Curve 25519 DHE 253
Accepted TLSv1.3 256 bits TLS_AES_256_GCM_SHA384 Curve 25519 DHE 253
Accepted TLSv1.3 256 bits TLS_CHACHA20_POLY1305_SHA256 Curve 25519 DHE 253
Preferred TLSv1.2 128 bits ECDHE-ECDSA-AES128-GCM-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-ECDSA-AES256-GCM-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-ECDSA-CHACHA20-POLY1305 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-RSA-CHACHA20-POLY1305 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits ECDHE-ECDSA-AES128-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-ECDSA-AES256-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits ECDHE-ECDSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-ECDSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.2 128 bits AES128-GCM-SHA256
Accepted TLSv1.2 256 bits AES256-GCM-SHA384
Accepted TLSv1.2 128 bits AES128-SHA256
Accepted TLSv1.2 256 bits AES256-SHA256
Accepted TLSv1.2 256 bits AES256-SHA
Preferred TLSv1.1 128 bits ECDHE-ECDSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.1 256 bits ECDHE-ECDSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.1 128 bits ECDHE-RSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.1 256 bits ECDHE-RSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.1 256 bits AES256-SHA
Preferred TLSv1.0 128 bits ECDHE-ECDSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.0 256 bits ECDHE-ECDSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.0 128 bits ECDHE-RSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.0 256 bits ECDHE-RSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.0 256 bits AES256-SHA

Server Key Exchange Group(s):
TLSv1.3 128 bits secp256r1 (NIST P-256)
TLSv1.3 192 bits secp384r1 (NIST P-384)
TLSv1.3 260 bits secp521r1 (NIST P-521)
TLSv1.3 128 bits x25519
TLSv1.3 224 bits x448
TLSv1.2 128 bits secp256r1 (NIST P-256)
TLSv1.2 192 bits secp384r1 (NIST P-384)
TLSv1.2 260 bits secp521r1 (NIST P-521)
TLSv1.2 128 bits x25519
TLSv1.2 224 bits x448

SSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
ECC Curve Name: prime256v1
ECC Key Strength: 128

6.2. IIS Crypto

7. 參考網站