Password Crackerวิธีการถอดรหัส/เดารหัสผ่าน
⚡ สรุปอย่างชาญฉลาด
การถอดรหัสผ่านคือการกู้คืนข้อมูลประจำตัวโดยการเดา เปรียบเทียบ หรือคำนวณกับค่าแฮชที่จัดเก็บไว้อย่างเป็นระบบ ภาพรวมนี้จะอธิบายถึงวิธีการทำงานของผู้โจมตี เครื่องมือที่พวกเขาใช้ ปัจจัยที่ทำให้การโจมตีมีความแข็งแกร่ง และมาตรการควบคุมที่ผู้ดูแลระบบต้องบังคับใช้

การถอดรหัสผ่านเป็นหนึ่งในศาสตร์เก่าแก่ที่สุดของการรักษาความปลอดภัยเชิงรุก และยังคงมีความสำคัญเช่นเคย เนื่องจากผู้ใช้ยังคงเลือกใช้รหัสผ่านที่คาดเดาได้ง่าย ในบทความนี้ เราจะแนะนำเทคนิคทั่วไปที่ผู้โจมตีใช้ในการกู้คืนรหัสผ่าน เครื่องมือที่ช่วยในการทำงานโดยอัตโนมัติ และมาตรการป้องกันที่ผู้ดูแลระบบสามารถนำมาใช้เพื่อปกป้องระบบจากการโจมตีเหล่านี้
การถอดรหัสรหัสผ่านคืออะไร?
การถอดรหัสผ่านคือกระบวนการพยายามเข้าถึงระบบที่จำกัดโดยไม่ได้รับอนุญาต โดยการกู้คืนความลับที่ปกป้องกลไกการตรวจสอบสิทธิ์ กระบวนการถอดรหัสอาจเกี่ยวข้องกับการเปรียบเทียบแฮชรหัสผ่านที่จัดเก็บไว้กับรายการคำที่คำนวณไว้ล่วงหน้า หรือการเรียกใช้อัลกอริทึมที่สร้างรหัสผ่านที่เป็นไปได้จนกว่าจะพบคำที่ตรงกัน เมื่อพบคำที่ตรงกันแล้ว ผู้โจมตีสามารถตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่ถูกต้องได้โดยไม่ต้องเดารหัสผ่านออนไลน์เลย
ความแข็งแกร่งของรหัสผ่านคืออะไร?
ความแข็งแกร่งของรหัสผ่านคือการวัดประสิทธิภาพของรหัสผ่านในการต้านทานการโจมตีเพื่อถอดรหัสผ่าน ความแข็งแกร่งของรหัสผ่านใดๆ นั้นพิจารณาจากคุณสมบัติสามประการ:
- ความยาว: จำนวนอักขระทั้งหมดที่รหัสผ่านประกอบด้วย
- ซับซ้อน: ไม่ว่าจะเป็นการใช้ตัวอักษรพิมพ์ใหญ่ ตัวอักษรพิมพ์เล็ก ตัวเลข และสัญลักษณ์ผสมกันก็ตาม
- ความคาดเดาไม่ได้: รหัสผ่านนั้นสามารถเดาได้ง่ายหรือไม่โดยผู้โจมตีที่รู้จักผู้ใช้
เรามาเปรียบเทียบรหัสผ่านสามรหัสนี้กัน: รหัสผ่าน, password1และ #รหัสผ่าน1$ในตัวอย่างนี้ เราจะใช้ตัวบ่งชี้ความแข็งแกร่งของรหัสผ่านของ cPanel ภาพด้านล่างแสดงความแข็งแกร่งของรหัสผ่านแต่ละแบบ
หมายเหตุ: รหัสผ่านที่ใช้คือ รหัสผ่านค่าความแรงคือ 1 ซึ่งอ่อนมาก
หมายเหตุ: รหัสผ่านที่ใช้คือ password1ค่าความแข็งแกร่งอยู่ที่ 28 ซึ่งยังถือว่าอ่อนแออยู่
หมายเหตุ: รหัสผ่านที่ใช้คือ #รหัสผ่าน1$ค่าความแข็งแกร่งของรหัสผ่านคือ 60 ซึ่งถือว่าแข็งแกร่ง ยิ่งค่าความแข็งแกร่งสูงเท่าไหร่ รหัสผ่านก็ยิ่งดีเท่านั้น
สมมติว่าเราต้องจัดเก็บรหัสผ่านเดียวกันโดยใช้การแฮชแบบ MD5 เราจะใช้โปรแกรมสร้างแฮช MD5 ออนไลน์เพื่อแปลงรหัสผ่านแต่ละรหัสให้เป็นค่าแฮช ตารางด้านล่างแสดงค่าแฮชที่ได้
| รหัสผ่าน | MD5 แฮช | ตัวบ่งชี้ความแข็งแกร่งของ cPanel |
|---|---|---|
| รหัสผ่าน | 5f4dcc3b5aa765d61d8327deb882cf99 | 1 |
| password1 | 7c6a180b36896a0a8c02787eeafb0e4c | 28 |
| #รหัสผ่าน1$ | 29e08fb7103c327d68327f23d8d9256c | 60 |
ต่อไปนี้เราจะใช้เว็บไซต์ค้นหาค่า MD5 สาธารณะเพื่อถอดรหัสแฮชข้างต้น ภาพด้านล่างแสดงผลลัพธ์การถอดรหัสรหัสผ่านสำหรับแต่ละค่า
จากผลลัพธ์ข้างต้น จะเห็นได้ว่าเราสามารถถอดรหัสผ่านแรกและรหัสผ่านที่สองได้สำเร็จ ซึ่งมีค่าความแข็งแกร่งต่ำกว่า แต่เราไม่สามารถถอดรหัสผ่านที่สามได้ เนื่องจากรหัสผ่านที่สามนั้นยาวกว่า ซับซ้อนกว่า และคาดเดาได้ยากกว่า อีกทั้งยังมีค่าความแข็งแกร่งสูงกว่าด้วย
เทคนิคการถอดรหัสรหัสผ่าน
มีเทคนิคที่ได้รับการพิสูจน์แล้วหลายวิธีที่ผู้โจมตีใช้ในการกู้คืนรหัสผ่าน เราจะอธิบายหมวดหมู่ที่ใช้กันทั่วไปมากที่สุดด้านล่างนี้
- การโจมตีด้วยพจนานุกรม: วิธีนี้ใช้รายการคำศัพท์ที่น่าจะเป็นตัวเลือก และเปรียบเทียบแต่ละคำกับรหัสผ่านของผู้ใช้หรือแฮชรหัสผ่านที่ได้มา
- การโจมตีด้วยกำลังดุร้าย: การโจมตีแบบ Brute force คือการผสมผสานตัวอักษร ตัวเลข และสัญลักษณ์ โดยใช้อัลกอริทึมในการสร้างรหัสผ่านที่เป็นไปได้ทั้งหมดอย่างเป็นระบบ จนกว่าจะพบรหัสผ่านที่ตรงกัน ตัวอย่างเช่น รหัสผ่านเช่น รหัสผ่าน สามารถลองใช้ได้เช่นกัน พี@$$เวิร์ด โดยใช้กฎการค้นหาแบบผสมผสาน (hybrid brute force rule)
- การโจมตีด้วยโต๊ะสายรุ้ง: วิธีนี้อาศัยค่าแฮชที่คำนวณไว้ล่วงหน้า สมมติว่าฐานข้อมูลจัดเก็บรหัสผ่านในรูปแบบแฮช MD5 ผู้โจมตีสร้างตารางอีกตารางหนึ่งที่จัดเก็บแฮช MD5 ของรหัสผ่านที่ใช้กันทั่วไป และเปรียบเทียบแฮชที่ได้กับตารางที่คำนวณไว้ล่วงหน้า หากพบว่าตรงกัน รหัสผ่านก็จะถูกกู้คืนได้
- เดา: อย่างที่ชื่อบอก วิธีนี้เกี่ยวข้องกับการเดา รหัสผ่านเช่น QWERTY, รหัสผ่านและ ผู้ดูแลระบบ โดยทั่วไปแล้วค่าเหล่านี้มักถูกใช้งานหรือตั้งเป็นค่าเริ่มต้น หากไม่ได้เปลี่ยนแปลง ค่าเหล่านี้ก็อาจถูกบุกรุกได้อย่างรวดเร็ว
- การค้นหาข้อมูลผ่านแมงมุม: องค์กรส่วนใหญ่ใช้รหัสผ่านที่มีข้อมูลของบริษัท ข้อมูลเหล่านี้สามารถรวบรวมได้จากเว็บไซต์ของบริษัทและโซเชียลมีเดีย เช่น Facebook และ Twitter โปรแกรมรวบรวมข้อมูล (Spidering) จะรวบรวมข้อมูลจากแหล่งเหล่านี้เพื่อสร้างรายการคำศัพท์เป้าหมาย ซึ่งจะถูกนำไปใช้ในการโจมตีแบบใช้พจนานุกรมและแบบเดาสุ่ม (Brute Force Attack)
- การบรรจุหนังสือรับรอง: ผู้โจมตีจะนำชื่อผู้ใช้และรหัสผ่านที่รั่วไหลจากการละเมิดข้อมูลครั้งหนึ่งไปใช้กับบริการที่ไม่เกี่ยวข้อง เพื่อเอาเปรียบผู้ใช้ที่ใช้ข้อมูลประจำตัวซ้ำ
รายการคำที่ใช้ในการค้นหาข้อมูลของบริษัทสมมติ อาจประกอบด้วยคำต่อไปนี้: 1976 (ปีเกิดของผู้ก่อตั้ง); สมิธ, โจนส์ (นามสกุล); แอคมี (ชื่อบริษัท); สร้าง, ถึง, สุดท้าย (คำหลักที่แสดงถึงวิสัยทัศน์); กอล์ฟ, หมากรุก, ฟุตบอล (งานอดิเรก)
ตารางด้านล่างเปรียบเทียบเทคนิคต่างๆ โดยพิจารณาจากความเร็ว ข้อกำหนดเบื้องต้น และความสามารถในการตรวจจับ
| เทคนิค | ความเร็ว | ต้องใช้แฮชหรือไม่? | ตรวจจับได้ทางออนไลน์หรือไม่? |
|---|---|---|---|
| พจนานุกรม | รวดเร็ว | สามารถเลือกหรือไม่เลือกก็ได้ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| กำลังดุร้าย | ช้า | สามารถเลือกหรือไม่เลือกก็ได้ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| โต๊ะเรนโบว์ | เร็วมาก | มี (ใบกำกับภาษีเต็มรูปแบบ) | ไม่ (ออฟไลน์) |
| คาดเดา | ตัวแปร | ไม่ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| แมงมุม | ช้า | ไม่ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| การโจมตีโดยใช้ชื่อผู้ใช้งานและรหัสผ่านที่เคยรั่วไหล | รวดเร็ว | ไม่ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
Password Cracker เครื่องมือ
เครื่องมือถอดรหัสผ่านเป็นโปรแกรมซอฟต์แวร์ที่ใช้เทคนิคต่างๆ ที่กล่าวมาข้างต้นโดยอัตโนมัติ เราได้กล่าวถึงเครื่องมือประเภทนี้ไปแล้วในตัวอย่างเรื่องความแข็งแกร่งของรหัสผ่านก่อนหน้านี้ ซึ่งการค้นหาค่า MD5 สาธารณะจะใช้ตารางเรนโบว์เพื่อถอดรหัสแฮชทั่วไป ต่อไปนี้เราจะมาดูเครื่องมือเพิ่มเติมที่ผู้ปฏิบัติงานใช้ในระหว่างการประเมินผลอย่างเป็นทางการ
1) John the Ripper
John the Ripper โปรแกรมนี้ใช้พรอมต์คำสั่งและรับรายการคำศัพท์พร้อมกฎเพื่อสร้างคำที่อาจเป็นไปได้ มันตรวจจับรูปแบบแฮชทั่วไปหลายรูปแบบโดยอัตโนมัติ โปรแกรมนี้ใช้งานได้ฟรี ในขณะที่รายการคำศัพท์เชิงพาณิชย์ที่คัดสรรแล้วมีจำหน่ายแยกต่างหาก เยี่ยมชม https://www.openwall.com/john/.
2) Cain & Abel
Cain & Abel วิ่งบน Windows และสามารถกู้คืนรหัสผ่านของผู้ใช้ ดักจับข้อมูลเครือข่าย และอื่นๆ อีกมากมาย อินเทอร์เฟซแบบกราฟิกทำให้เป็นที่นิยมในหมู่ผู้ใช้ใหม่ โปรแกรมนี้ไม่ได้รับการดูแลรักษาอย่างต่อเนื่องตั้งแต่ปี 2014 ดังนั้นควรใช้เฉพาะกับระบบห้องปฏิบัติการรุ่นเก่าเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่นี่ https://sectools.org/tool/cain/.
3) Ophcrack
Ophcrack เป็นข้ามแพลตฟอร์ม Windows โปรแกรมถอดรหัสรหัสผ่านที่ใช้ตารางเรนโบว์ ทำงานบน Windows, ลินุกซ์ และ macOSและยังมีโมดูลการโจมตีแบบใช้กำลังดุร้าย (brute force) รวมอยู่ด้วย เยี่ยมชม https://ophcrack.sourceforge.io/.
4) Hashcat
Hashcat เป็นมาตรฐานสมัยใหม่สำหรับการกู้คืนรหัสผ่านแบบออฟไลน์ รองรับอัลกอริธึมแฮชมากกว่า 300 แบบ ใช้การเร่งความเร็ว GPU และนำเสนอการโจมตีแบบใช้กฎ เอกสารประกอบอยู่ที่ https://hashcat.net/hashcat/.
5) ไฮดรา
Hydra (THC-Hydra) มุ่งเป้าไปที่บริการออนไลน์ต่างๆ เช่น SSH, FTP, RDP และแบบฟอร์มล็อกอิน HTTP โดยมาพร้อมกับ Kali Linux และมีการใช้งานอย่างแพร่หลายในปฏิบัติการเรดทีมที่ได้รับอนุญาต
จะป้องกันการโจมตีด้วยการถอดรหัสรหัสผ่านได้อย่างไร?
องค์กรสามารถใช้มาตรการต่อไปนี้เพื่อลดโอกาสที่รหัสผ่านจะถูกเจาะ:
- ต้องมีอักขระอย่างน้อย 12 ตัว และหลีกเลี่ยงรูปแบบที่คาดเดาได้ เช่น 11552266 หรือ qwerty1234
- ควรจัดเก็บรหัสผ่านโดยใช้ฟังก์ชันแฮชแบบทางเดียวที่ช้า เช่น bcrypt, scrypt หรือ Argon2 แทนที่จะใช้ฟังก์ชันแฮชที่รวดเร็ว เช่น MD5 หรือ SHA-1
- ใส่เกลือ (salt) ลงในรหัสผ่านทุกรหัสก่อนทำการแฮช เกลือเหล่านี้จะช่วยป้องกันการค้นหาด้วยตารางเรนโบว์ (rainbow table) แม้ว่าการแฮชจะทำได้เร็วก็ตาม
- นำนโยบายรหัสผ่านที่ให้ความสำคัญกับคะแนนความแข็งแกร่งสูงมาใช้ และส่งเสริมการใช้รหัสผ่านแบบวลี ตามที่แนะนำใน NIST SP 800-63B
- เปิดใช้งานการตรวจสอบสิทธิ์แบบหลายปัจจัย (MFA) เพื่อป้องกันไม่ให้เข้าถึงได้หากรหัสผ่านถูกขโมยเพียงอย่างเดียว
- ใช้โปรแกรมจัดการรหัสผ่านเพื่อสร้างข้อมูลประจำตัวที่ไม่ซ้ำกันสำหรับทุกบริการ เพื่อป้องกันการโจมตีแบบยัดเยียดข้อมูลประจำตัว (credential stuffing attacks)
- ตั้งค่าการล็อกบัญชี การจำกัดการใช้งาน และการตรวจสอบอย่างต่อเนื่อง เพื่อตรวจจับการโจมตีแบบ Brute Force ออนไลน์ตั้งแต่เนิ่นๆ
กิจกรรมการแฮ็ก: แฮ็กทันที!
ในสถานการณ์จำลองนี้ เราจะมาไขปริศนา Windows บัญชีที่ใช้รหัสผ่านแบบง่าย Windows ระบบจะจัดเก็บข้อมูลประจำตัวในเครื่องในรูปแบบแฮช NTLM (ซึ่งเป็นรูปแบบที่ใช้ MD4) และเราจะใช้โมดูลถอดรหัส NTLM ใน Cain and Abel เพื่อกู้คืนค่าดังกล่าว
เคนและอาเบลสามารถถอดรหัสผ่านได้โดยใช้การโจมตีด้วยพจนานุกรม การโจมตีแบบเดาสุ่ม หรือการวิเคราะห์รหัส (ตารางที่คำนวณไว้ล่วงหน้า) ในที่นี้เราจะใช้การโจมตีด้วยพจนานุกรม ดาวน์โหลดรายการคำศัพท์ 10k-Most-Common.zip จากเว็บไซต์ที่น่าเชื่อถือ สำหรับการสาธิตนี้ เราได้สร้างบัญชีชื่อ บัญชี ด้วยรหัสผ่าน QWERTY เมื่อ Windows เครื่องมือห้องปฏิบัติการ 7 เครื่อง
วิธีการถอดรหัสรหัสผ่าน
คำแนะนำด้านล่างนี้จะจับคู่หน้าจอแต่ละหน้าของเกม Cain and Abel กับการกระทำที่ต้องทำ โปรดทำตามขั้นตอนตามลำดับในบัญชีทดลองของคุณเอง ห้ามใช้กับระบบที่คุณไม่ได้เป็นเจ้าของเด็ดขาด
ขั้นตอนที่ 1) เปิดหนังสือเรื่องคาอินและอาเบล
เปิดใช้งานแอปพลิเคชัน คุณจะเห็นหน้าจอหลักดังต่อไปนี้
ขั้นตอนที่ 2) ค้นหาปุ่ม "เพิ่ม"
ตรวจสอบให้แน่ใจว่าได้เลือกแท็บ Cracker แล้ว ดังที่แสดงในภาพด้านบน จากนั้นคลิกปุ่ม Add บนแถบเครื่องมือ
ขั้นตอนที่ 3) เลือกแหล่งที่มาของการนำเข้า
หน้าต่างโต้ตอบต่อไปนี้จะปรากฏขึ้น เลือก นำเข้าแฮชจากระบบภายในเครื่อง และคลิกถัดไป
ขั้นตอน 4) Revดูบัญชีที่นำเข้า
บัญชีผู้ใช้ในเครื่องจะแสดงดังต่อไปนี้ ผลลัพธ์ที่ได้จะตรงกับบัญชีผู้ใช้ในเครื่องคอมพิวเตอร์ในห้องปฏิบัติการของคุณ
ขั้นตอนที่ 5) คลิกขวาที่บัญชีเป้าหมาย
คลิกขวาที่บัญชีที่คุณต้องการแฮ็ก สำหรับบทเรียนนี้ เราจะใช้ บัญชี ผู้ใช้
ขั้นตอนที่ 6) เปิดแผงโจมตีด้วยพจนานุกรม
ในหน้าต่างการโจมตีด้วยพจนานุกรม ให้คลิกขวาในส่วนพจนานุกรมแล้วเลือก เพิ่มไปยังรายการ ที่แสดงด้านล่าง
ขั้นตอนที่ 7) เลือกไฟล์รายการคำศัพท์
เรียกดูไฟล์ 10k-most-common.txt เลือกไฟล์ที่คุณเพิ่งดาวน์โหลดมา
ขั้นตอน 8) Revดูรหัสผ่านที่กู้คืนได้
หากผู้ใช้เลือกใช้รหัสผ่านที่ง่าย เช่น QWERTYคุณจะเห็นผลลัพธ์ที่คล้ายกับภาพหน้าจอด้านล่าง โดยมีค่าข้อความธรรมดาอยู่ข้างบัญชีผู้ใช้
หมายเหตุ: ระยะเวลาที่ใช้ในการถอดรหัสผ่านขึ้นอยู่กับความแข็งแกร่งของรหัสผ่าน ความซับซ้อนของรายการตัวเลือก และกำลังการประมวลผลของเครื่องของคุณ หากการโจมตีด้วยพจนานุกรมไม่สามารถกู้คืนรหัสผ่านได้ ให้ลองใช้การโจมตีแบบเดาแบบสุ่มหรือการวิเคราะห์รหัสลับต่อไป
ปัญญาประดิษฐ์ (AI) เป็นอย่างไร เรชาping การถอดรหัสและการป้องกันรหัสผ่าน
ปัญญาประดิษฐ์ได้กลายเป็นพลังสำคัญทั้งในด้านการถอดรหัสผ่านและด้านการป้องกัน ผู้โจมตีฝึกฝนโมเดลภาษาโดยใช้ข้อมูลประจำตัวที่รั่วไหลเพื่อทำนายรหัสผ่านที่สมจริง ในขณะที่ผู้ป้องกันใช้โมเดลเดียวกันนี้ร่วมกับระบบตรวจสอบข้อมูลเพื่อตรวจจับการบุกรุกได้เร็วขึ้น
ต่อไปนี้คือวิธีที่ AI กำลังเปลี่ยนแปลงวงการนี้ในปัจจุบัน:
- การสร้างรายการคำศัพท์ที่ชาญฉลาดขึ้น: โมเดลแบบสร้างข้อมูล เช่น PassGAN เรียนรู้รูปแบบรหัสผ่านของมนุษย์และสร้างรายการตัวเลือกที่สามารถถอดรหัสแฮชได้มากกว่าพจนานุกรมแบบคงที่
- การให้คะแนนความเสี่ยงด้านพฤติกรรม: AI ป้องกันตนเองจะตรวจสอบตำแหน่งทางภูมิศาสตร์ในการเข้าสู่ระบบ ลายนิ้วมือของอุปกรณ์ และประเภทข้อมูลping จังหวะ ส่งบริบทที่ผิดปกติเพื่อเพิ่มระดับการตรวจสอบสิทธิ์
- การตรวจจับความผิดปกติแบบเรียลไทม์: ตัวจำแนกประเภทการเรียนรู้ของเครื่องจะตรวจสอบบันทึกการตรวจสอบสิทธิ์และตรวจจับการโจมตีด้วยการใช้ข้อมูลประจำตัวที่ไม่ถูกต้องหรือการโจมตีแบบ Brute Force ที่ช้า ซึ่งกฎการตรวจสอบลายเซ็นไม่สามารถตรวจจับได้
- การให้คำแนะนำเชิงนโยบายอัตโนมัติ: แพลตฟอร์มการยืนยันตัวตนจะประเมินรหัสผ่านใหม่โดยเทียบกับชุดข้อมูลเฉพาะขององค์กร และแนะนำรหัสผ่านที่แข็งแกร่งกว่าก่อนที่ผู้ใช้จะยืนยันรหัสผ่านนั้นอย่างเป็นทางการ
- ระบบป้องกันการโจมตีแบบฟิชชิ่ง: AI ช่วยเร่งการใช้งาน FIDO2 และกระบวนการรหัสผ่านโดยการวิเคราะห์สัญญาณความเสี่ยงและลดความยุ่งยากในการใช้งานของผู้ใช้
ผสานการตรวจสอบด้วย AI เข้ากับการตรวจสอบสิทธิ์แบบหลายปัจจัย การเข้ารหัสแบบแฮชที่ทันสมัย เช่น Argon2 และระบบแจ้งเตือนการละเมิดข้อมูลที่รวดเร็ว เพื่อให้ระบบป้องกันอัตโนมัติก้าวล้ำหน้าการโจมตีอัตโนมัติอยู่เสมอ















