本文旨在整理構建漏洞資料庫過程中的核心問題:如何科學分類電腦網路漏洞。觀點尚待成熟,拋磚引玉,期與同好共同完善。單一漏洞具多維屬性,主要可從四個維度劃分:直接威脅、成因、嚴重性、利用方式。
A. 按直接威脅分類
攻擊者取得一般用戶權限後,極可能利用本地漏洞提權至管理員。主要威脅類型:
1. 遠程管理員權限
無需帳號,直接獲取遠端系統最高權限。多源於以 root/System 身份運行的守護進程緩衝區溢出,少數為邏輯缺陷。
- IMAP4rev1 v10.190 imapd AUTHENTICATE 命令:未檢查參數長度,構造惡意命令溢位緩衝區,獲取 root 權限。
- Windows NT IIS 4.0 ISAPI DLL:URL 邊界檢查缺失,超長 URL 溢位
inetinfo.exe(Local System 權限),直接拿管理員權限。
- 早期 AIX 3.2 rlogind:認證邏輯缺陷,
rlogin victim.com -l -froot 免密碼以 root 登入。
2. 本地管理員權限
已有本地帳號前提下,攻擊有缺陷的 SUID 程式或競爭條件提權。
- RedHat Linux restore:依賴
RSH 環境變數,竄改 PATH 讓惡意程式以 root 執行。
- Solaris 7 Xsun:SUID 位設置,參數邊界檢查不足,緩衝區溢位獲取 root。
- Windows 2000 網路 DDE:讓代理在本地系統用戶安全上下文執行攻擊者代碼,提權控制主機。
3. 普通用戶訪問權限
利用服務漏洞獲取一般用戶權限(UNIX 為 shell,Windows 為 cmd.exe)。常攻擊非 root 守護進程、有缺陷 CGI。
- UBB 論壇 5.19 以下版本:輸入驗證缺陷,提交構造表單執行 shell 命令,獲取
nobody shell。
- RedHat Linux 6.2 innd 2.2.2.3:緩衝區溢位,以
news 身份執行代碼。
- Windows IIS 4.0-5.0 Unicode 解碼漏洞:利用
cmd.exe 以 Guest 群組權限執行程式。
4. 權限提升
攻擊有缺陷的 SGID 程式,將權限提升至非 root 特定用戶/群組。獲取管理員權限可視為特殊權限提升。
- RedHat Linux 6.1 man:SGID man,format bug 溢位獲取 man 群組權限。
- Solaris 7 write:SGID tty,緩衝區溢位獲取 tty 群組權限。
- Windows NT 特洛伊 Profile:誘導其他用戶載入惡意 Profile,執行攻擊代碼,甚至影響管理員。
5. 讀取受限文件
利用漏洞讀取無權限文件(通常為安全相關)。成因:權限設置錯誤、特權進程處理不當、Core Dump 洩露。
- SunOS 5.5 ftpd:誘導 ftpd 錯誤產生全域可讀 core 文件,含
shadow 片段。
- SuSE 6.2 pg:配置文件處理缺陷,鏈接
pb.conf 至特權文件並讀取。
- Oracle 8.0.3 NT 版:日誌文件全域可讀且為明文,記錄連線密碼。
6. 遠程拒絕服務
無需登入即可癱瘓系統/應用。多源於系統/守護進程缺陷或配置錯誤。
- 早期 Linux/BSD TCP/IP 堆疊 IP 分片重組缺陷,特殊分片封包導致死機。
- Windows 2000 NetMeeting 3.01:二進制資料流導致 CPU 100%。
- AnalogX Proxy Server 4.04 FTP:超長 USER 命令參數導致崩潰。
7. 本地拒絕服務
登入後利用程式對意外情況處理失誤(如不檢查臨時文件、盲目跟隨符號鏈接)導致崩潰。
- BSDi 3.x:本地用戶以垃圾資料覆蓋任意文件,導致系統不可用。
- RedHat 6.1 tmpwatch:缺陷導致大量
fork() 進程,系統失去回應。
8. 遠程非授權文件存取
利用有缺陷 CGI 程式(未驗證輸入合法性)構造特殊輸入存取文件。
Poll_It_SSI_v2.0.cgi:請求 ?data_dir=\etc\passwd 讀取密碼文件。