การโจมตี MITM ด้วยเว็บไซต์ที่ใช้ HSTS

Aug 25 2020

ฉันต้องการที่จะทำการโจมตีแบบ Man-in-the-Middle กับเครือข่ายของฉันเองเพื่อจุดประสงค์ทางการศึกษา ฉันต้องการสถานการณ์ต่อไปนี้: ทำการโจมตี MITM ด้วย Bettercap ไปที่เว็บไซต์และยอมรับคำเตือนใบรับรองซึ่งหมายถึงยอมรับใบรับรองที่ Bettercap นำเสนอ (ผู้โจมตี)

คำถามที่ 1:

ฉันต้องการทราบว่าปัจจุบันนี้เป็นไปได้หรือไม่โดยมีการใช้นโยบายความปลอดภัย HSTS บนเว็บไซต์และรายการพรีโหลด HSTS

คำถาม 2:

ความเป็นไปได้เดียวของฉันคือเว็บไซต์ที่ไม่มี HSTS ใช้งานหรือมีวิธีลบ HSTS และทำการโจมตีโดยยอมรับใบรับรองหรือไม่

คำตอบ

1 mti2935 Aug 25 2020 at 18:40

คำถามที่ 1: ใช่เป็นไปได้ ข้อเท็จจริงที่ว่าไซต์อยู่ในรายการโหลดล่วงหน้าของ HSTS เพียง แต่บอกเบราว์เซอร์ว่าควรเชื่อมต่อกับไซต์โดยใช้ https ไม่ใช่ http รายการโหลดล่วงหน้า HSTS ไม่มีข้อมูลใด ๆ เกี่ยวกับใบรับรองเอง

คำถาม 2: ไม่เพราะคำตอบสำหรับคำถาม 1

1 EsaJokinen Aug 26 2020 at 01:27

แม้ว่าจะไม่เป็นกฎเกณฑ์แต่โดยทั่วไปแล้วเบราว์เซอร์จะปฏิบัติตามคำแนะนำการใช้งานตัวแทนผู้ใช้ที่มีเหตุผลอย่างดีจากRFC 6797, 12เพื่อไม่ให้ผู้ใช้ข้ามข้อผิดพลาดหากมีนโยบาย HSTS ที่ทราบอยู่

12.1. ไม่มีการขอความช่วยเหลือจากผู้ใช้

การสร้างการเชื่อมต่อที่ปลอดภัยล้มเหลวจากคำเตือนหรือข้อผิดพลาดใด ๆ ( ตามข้อ 8.4 ("ข้อผิดพลาดในการจัดตั้งการขนส่งที่ปลอดภัย")) ควรดำเนินการโดย "ไม่มีการขอความช่วยเหลือจากผู้ใช้" ซึ่งหมายความว่าผู้ใช้ไม่ควรได้รับกล่องโต้ตอบที่ให้ตัวเลือกในการดำเนินการต่อ แต่ควรได้รับการปฏิบัติในทำนองเดียวกันกับข้อผิดพลาดของเซิร์ฟเวอร์ที่ไม่มีอะไรเพิ่มเติมที่ผู้ใช้สามารถทำได้ในส่วนที่เกี่ยวกับการโต้ตอบกับเว็บแอปพลิเคชันเป้าหมายนอกเหนือจากรอและลองใหม่

โดยพื้นฐานแล้ว "คำเตือนหรือข้อผิดพลาดใด ๆ " หมายถึงสิ่งใดก็ตามที่จะทำให้การใช้งาน UA เพื่อประกาศให้ผู้ใช้ทราบว่ามีบางอย่างไม่ถูกต้องทั้งหมดกับการสร้างการเชื่อมต่อ

การไม่ทำเช่นนี้คือการอนุญาตให้ผู้ใช้ไล่เบี้ยเช่น "การคลิกผ่านกล่องโต้ตอบคำเตือน / ข้อผิดพลาด" เป็นสูตรสำหรับการโจมตีแบบคนตรงกลาง หากเว็บแอปพลิเคชันออกนโยบาย HSTS แสดงว่าเป็นการเลือกใช้แนวทาง "ไม่ขอความช่วยเหลือจากผู้ใช้" โดยปริยายซึ่งข้อผิดพลาดหรือคำเตือนของใบรับรองทั้งหมดทำให้เกิดการยุติการเชื่อมต่อโดยไม่มีโอกาสที่จะ "หลอก" ผู้ใช้ให้ตัดสินใจผิดพลาดและยอมตัวเอง .

หากคุณจำเป็นต้องสามารถ MitM การเชื่อมต่อของคุณเองเช่นเพื่อวัตถุประสงค์ในการทดสอบหรือการดีบักวิธีเดียวใน HSTS คือการติดตั้งใบรับรอง CA หลักของพร็อกซี HTTPS ของคุณเป็น CA หลักที่เชื่อถือได้ ด้วยวิธีนี้ใบรับรองที่ใช้โดยพร็อกซีจะกลายเป็นใบรับรองที่ถูกต้องดังนั้น HSTS จึงไม่ใช่ปัญหา

ตามที่ระบุใบรับรอง CA ของ Bettercap เพื่อรวมเข้ากับเบราว์เซอร์ # 536ใบรับรอง CA หลักของ Bettercap จะถูกเก็บไว้ใน/root/.bettercap-ca-cert.pemไฟล์.