Extra: HTTPS Insecurity with SSLstrip

SSLstrip เป็น 1 ในเทคนิคที่นิยมใช้กันในการทำ Man-in-the-middle เพื่อดักข้อมูล ซึ่งถูกคิดค้นโดย Moxie Marlinspike (คุณพี่ Deadlock นั่นเอง) และได้ถูกนำมา present ในงาน Black Hat DC 2009
ทำไมต้อง SSLstrip
โดยปกติการทำ Man-in-the-middle กับ Encrypted Traffic (HTTPS) นั้น Attacker จะติดปัญหาคือไม่สามารถ Decrypt Data ได้ ทำให้ไม่สามารถอ่านข้อมูลได้นั่นเอง หากต้องการจะอ่านข้อมูลก็มักจะใช้วิธีการทำ SSLsniff ซึ่งวิธีจะเป็นการ Decrypt HTTPS Traffic ระหว่างทางโดยการสร้าง SSL Tunnel 2 อัน เพื่อคุยระหว่างกับ User กับ Attacker และระหว่าง Attacker กับ Server
ซึ่งวิธีการทำ SSLsniff นี้มักจะเป็นปัญหาเนื่องจาก Certificate ที่ใช้ระหว่างเครื่อง User และ Attacker จะไม่ถูก Trust โดย Web Browser ทำให้ขึ้นหน้า Certificate Error ที่ฝั่ง User (Client) ดังนั้น User ที่มี Awareness ดีหน่อยก็อาจจะรอดพ้นจากวิธีการทำ SSLsniff ได้ รายละเอียดการ Trust กันของ PKI อ่านได้จาก HTTPS Insecurity Part 1
ทำให้โอกาสประสบความสำเร็จของ Attacker นั้นลดลง แต่หากใช้ SSLstrip ปัญหา Certificate Error จะหมดไปทันที
SSLstrip ทำงานอย่างไร
SSLstrip ทำงานบนสมมติฐานว่าโดยปกติ User ไม่ได้เข้า Website ที่เป็น HTTPS โดยตรงแต่มักจะถูก Redirect ให้เข้า ตัวอย่างเช่น เราพิมพ์ URL http://www.twitter.com จะโดน Server จะทำการ Redirect ให้เราไปที่ https://www.twitter.com แทน
Trick ของ SSLstrip คือการโจมตีไปที่ HTTP (ข้อมูลจะไม่ถูกเข้ารหัส) แทนที่จะโจมตี HTTPS ซึ่งทำโดยวิธีการใช้ Man-in-the-middle บวกกับการบังคับไม่ให้ User คุยกับ Server ผ่าน HTTPS แต่จะเป็นการคุยโดย
- เครื่อง Attacker คุย HTTPS กับ Server
- เครื่อง User (Client) คุย HTTP กับ Attacker
ขั้นตอนการใช้งาน SSLstrip
ขั้นตอนที่ 1 (เหมือนกับการทำ Man-in-the-middle ทั่วไป)
- ตั้ง Forward Packet
- ทำ ARP Spoofing เพื่อ Redirect ข้อมูลจากเครื่อง User มาที่ Attacker
ขั้นตอนที่ 2
- ทำ Routing traffic เพื่อให้ข้อมูลวิ่งเข้าที่ port ของ SSLStrip ที่เปิดไว้ ตัวอย่างบนเวปทั่วไปจะใช้คำสั่ง
iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port <listenPort>
- Run SSLStrip
แค่เพียงเท่านี้ Attacker จะสามารถดัก Traffic ของ User ได้ทั้งหมดทันที
วิธีการป้องกัน SSLstrip
- Implement HTTP Strict Transport Security (HSTS) ที่ฝั่ง Server ซึ่งเป็นวิธีการบังคับให้ Web Browser คุยผ่าน HTTPS เท่านั้น แต่การทำด้วยเทคนิคนี้จะยากมากเพราะว่า Developer แต่ละ Web จะต้องมีความรู้ความเข้าใจในการทำให้ Web ตัวเองปลอดภัย
- User จะต้องมี Awareness มากขึ้น
บริการของเรา
PENETRATION TEST
ทีมผู้เชี่ยวชาญที่มีจรรยาบรรณและใบรับรอง ใช้ระเบียบวิธีอิงมาตรฐาน NIST SP800-115 ค้นหาความเสี่ยงไซเบอร์บนแอปพลิเคชัน โครงสร้างพื้นฐาน และโมบาย ให้ตรงกับความต้องการขององค์กร
Up Next

ARTICLES/19 May 2023
SSH Tunnel for Penetration Testing
SSH ไม่ได้มีไว้แค่ล็อกอินหรือย้ายไฟล์ บทความอธิบายว่า SSH Tunnel คืออะไร และเอามาเปิดทางเข้าถึงระบบในงานทดสอบเจาะระบบได้อย่างไร

ARTICLES/2 Mar 2021
SANS Holiday Challenge 2017 Write-up Part 1
Write-up ของ SANS Holiday Hack Challenge 2017 ตอนแรก ว่าด้วยภาพรวมโจทย์ทั้ง 9 ข้อและรูปแบบกิจกรรมของปีนั้น

ARTICLES/2 Mar 2021
SANS Holiday Challenge 2017 Write-up Part 2
Write-up SANS Holiday Hack Challenge 2017 ตอนที่สอง ว่าด้วย Snowball game ที่กินทรัพยากรเครื่องหนัก และวิธีมองมันผ่าน HTTP request แทนการเล่นด้วยมือ


