
⚠️ คำเตือนกฎหมาย
บทความนี้เขียนเพื่อการศึกษาและการป้องกันเท่านั้น การสแกน/โจมตีระบบโดยไม่ได้รับอนุญาตผิดกฎหมายตาม พรบ.คอมพิวเตอร์ พ.ศ.2550 มาตรา 10-16 — ทำเฉพาะระบบที่ได้รับอนุญาตหรือ Bug Bounty ที่อยู่ใน scope เท่านั้น
🎯 Vulnerability Assessment คืออะไร?
หลังจาก Scanning & Enumeration เสร็จ — Red Team จะได้รายการ:
- Port ที่เปิดอยู่
- Service และ version
- OS และ patch level
- Users และ shares
- DNS records
- และอีกมากมาย
แต่... รู้ว่า port 80 เปิดอยู่ ไม่ได้แปลว่ารู้ว่ามันอ่อนแอตรงไหน
Vulnerability Assessment คือขั้นตอนที่ วิเคราะห์ข้อมูลทั้งหมด แล้วหาช่องโหว่จริงๆ — แล้วจัดลำดับว่าช่องโหว่ไหนอันตรายที่สุด ควรโจมตีก่อน
🔍 Phase 1: Vulnerability Scanning — ใช้ Tool หาช่องโหว่อัตโนมัติ
Vulnerability Scanner คือ tool ที่ scan ระบบแล้วเทียบกับฐานข้อมูล CVE เพื่อหาช่องโหว่ที่รู้จัก
1. Nessus (Industry Standard)
# Nessus — ติดตั้งแล้วเปิด web interface # https://localhost:8834 # Basic network scan # สร้าง scan → ใส่ target IP → เลือก scan template → Launch # Nessus จะ report ออกมาเป็น: # - Critical (CVSS 9.0-10.0) # - High (CVSS 7.0-8.9) # - Medium (CVSS 4.0-6.9) # - Low (CVSS 0.1-3.9)
2. OpenVAS (Open Source Alternative)
# OpenVAS — ติดตั้งผ่าน Kali Linux gvm-setup gvm-start # เปิด web interface # https://localhost:9392 # สร้าง target → สร้าง task → เลือก scan config → Start scan
3. Nmap Scripting Engine (NSE)
Nmap ไม่ใช่แค่ port scanner — มี scripts สำหรับหาช่องโหว่ด้วย:
# Scan ด้วย vulnerability scripts nmap -sV --script=vuln target.com # Scan ด้วย specific vulnerability scripts nmap -sV --script=smb-vuln-* target.com nmap -sV --script=http-vuln-* target.com nmap -sV --script=ssl-heartbleed target.com nmap -sV --script=ssl-poodle target.com # ดู scripts ทั้งหมด ls /usr/share/nmap/scripts/ | grep vuln
4. Nikto (Web Vulnerability Scanner)
# Nikto — web server scanner nikto -h https://target.com # Nikto จะตรวจ: # - Dangerous files (phpinfo, backup files) # - Server misconfiguration # - Default files and directories # - Outdated server software # - HTTP headers issues
⚠️ ข้อควรระวัง: Vulnerability Scanner ใช้เวลานาน ส่ง traffic เยอะ และ อาจทำให้ระบบ crash ได้ — ต้องได้รับอนุญาตก่อน และควรทำในช่วง off-peak
📊 Phase 2: CVSS — วัดความรุนแรงของช่องโหว่
เมื่อได้รายการช่องโหว่แล้ว ต้องจัดลำดับความรุนแรง — ตรงนี้ CVSS (Common Vulnerability Scoring System) เข้ามาช่วย
CVSS ให้คะแนน 0-10:
| Score | Severity | Action |
|---|---|---|
| 9.0 - 10.0 | 🔴 Critical | แก้ทันที — อาจโจมตีได้ทันที |
| 7.0 - 8.9 | 🟠 High | แก้เร่งด่วน — อาจโจมตีได้ |
| 4.0 - 6.9 | 🟡 Medium | แก้ตามแผน — ต้องมี conditions |
| 0.1 - 3.9 | 🟢 Low | แก้เมื่อมีเวลา — ยากที่จะโจมตี |
ตัวอย่าง CVSS ที่รู้จัก:
- Log4Shell (CVE-2021-44228): CVSS 10.0 — Critical — RCE ผ่าน log message
- Heartbleed (CVE-2014-0160): CVSS 7.5 — High — อ่าน memory จาก SSL
- Shellshock (CVE-2014-6271): CVSS 10.0 — Critical — RCE ผ่าน Bash
- EternalBlue (MS17-010): CVSS 8.1 — High — RCE ผ่าน SMB (WannaCry ใช้ตัวนี้)
ดู CVSS score ได้ที่: NVD, CVE Details
🧠 Phase 3: Manual Analysis — สิ่งที่ Tool หาไม่เจอ
Vulnerability Scanner มีข้อจำกัด — มันหาได้แค่ ช่องโหว่ที่รู้จัก (Known Vulnerabilities)
แต่ช่องโหว่ที่อันตรายที่สุดมักเป็น ช่องโหว่ที่ไม่รู้จัก (Unknown/Logic Flaws) — ต้องใช้มนุษย์วิเคราะห์
1. Logic Flaws
ตัวอย่าง: เว็บอนุญาตให้ user ดูข้อมูลตัวเองที่ /user/123 — แต่ไม่ได้ตรวจสอบว่า user นั้นเป็นเจ้าของข้อมูลหรือไม่ — เปลี่ยนเป็น /user/124 ก็เห็นข้อมูลคนอื่นได้
Scanner ไม่มีวันหาเจอ — เพราะมันไม่รู้ว่า "123" กับ "124" ต่างกันยังไง
2. Business Logic Flaws
ตัวอย่าง: ระบบ e-commerce — ใช้ coupon ลดราคา 100% แล้วสั่งของฟรี หรือ — เพิ่มสินค้าเข้าตะกร้า 1000 ชิ้น แล้ว checkout ราคาติดลบ
3. Configuration Issues
ตัวอย่าง:
- Debug mode เปิดอยู่ใน production — เห็น stack trace, internal paths
- CORS misconfiguration — เว็บอนุญาตให้ origin ใดๆ เข้าถึง API
- Directory listing เปิด — เห็นไฟล์ทั้งหมดใน directory
- Default credentials — admin/admin, root/root
4. Information Disclosure
ตัวอย่าง:
- Error message เปิดเผย SQL query
- HTTP headers เปิดเผย server version
- Git repository เปิด —
/.git/— ดาวน์โลด source code ได้ - Backup files —
index.php.bak,database.sql.gz
📋 Phase 4: Prioritization — เลือกจุดโจมตี
เมื่อมีรายการช่องโหว่แล้ว ต้องเลือก — โจมตีจุดไหนก่อน?
กฎ 5 ข้อของ Red Team ในการเลือกเป้าหมาย:
- ความรุนแรง (Severity) — Critical ก่อน High ก่อน Medium
- ความง่าย (Exploitability) — ช่องโหว่ที่ exploit ง่ายก่อน (public exploit มีอยู่แล้ว)
- ผลกระทบ (Impact) — RCE ดีกว่า Information Disclosure
- ความเงียบ (Stealth) — ช่องโหว่ที่ไม่ส่ง logs เยอะก่อน
- ความน่าเชื่อถือ (Reliability) — exploit ที่ได้ผลทุกครั้งก่อน
ตัวอย่างการจัดลำดับ:
| ลำดับ | ช่องโหว่ | เหตุผล |
|---|---|---|
| 1 | RCE ผ่าน public exploit | Critical + ง่าย + ผลกระทบสูง |
| 2 | SQL Injection | High + ได้ข้อมูล database |
| 3 | Default credentials | High + ง่ายมาก |
| 4 | XSS | Medium + ต้องมี user interaction |
| 5 | Information Disclosure | Low + ไม่ได้ access โดยตรง |
🛡️ ฝั่ง White Hat — Vulnerability Management
การป้องกันไม่ใช่แค่ "patch ให้หมด" — แต่ต้องมี Vulnerability Management Program:
- Scan สม่ำเสมอ — อย่างน้อยเดือนละ 1 ครั้ง หรือหลัง deploy ใหม่
- จัดลำดับความสำคัญ — ใช้ CVSS + context ขององค์กร
- แก้ไขตามลำดับ — Critical ภายใน 24 ชั่วโมง, High ภายใน 1 สัปดาห์
- Verify กลับ — scan ซ้ำหลัง patch เพื่อยืนยันว่าแก้ได้จริง
- Document ทุกอย่าง — เก็บบันทึกช่องโหว่ วิธีแก้ เวลาที่แก้
📝 สรุปบทที่ 3
- Vulnerability Assessment = วิเคราะห์ข้อมูลจาก Scanning เพื่อหาช่องโหว่จริงๆ
- ใช้ Scanner tools: Nessus, OpenVAS, NSE, Nikto
- ใช้ CVSS จัดลำดับความรุนแรง (0-10)
- Manual Analysis สำคัญกว่า Scanner — Logic Flaws, Business Logic, Config Issues
- Prioritization: เลือกจุดโจมติตาม Severity, Exploitability, Impact, Stealth, Reliability
- กฎสำคัญ: ทำเฉพาะระบบที่ได้รับอนุญาต
บทต่อไป: 🔴 Red Team 101 — บทที่ 4: Exploitation 101 เมื่อรู้ช่องโหว่แล้ว ก็ถึงเวลาลงมือ
🦉 "ช่องโหว่ที่อันตรายที่สุดไม่ใช่ที่ CVSS สูงที่สุด — แต่เป็นที่คนละเลยที่สุด"