การถอดรหัสแฮช
การระบุและการโจมตี
การถอดรหัสแฮช เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
ทำไมต้องถอดรหัสค่าแฮช
ระหว่างการประเมินความปลอดภัย คุณมักกู้คืนค่าแฮชรหัสผ่านจากฐานข้อมูล ไฟล์กำหนดค่า หรือข้อมูลหน่วยความจำ การถอดรหัสค่าเหล่านี้ช่วยยืนยันว่ารหัสผ่านไม่ปลอดภัย และแสดงผลกระทบที่เกิดขึ้นจริงให้ลูกค้าเห็น
โปรดจำไว้ว่าการแฮชเป็นการทำงานทางเดียว คุณไม่สามารถย้อนกลับค่าแฮชได้โดยตรง แต่คุณสามารถ ลองเดาข้อมูลนำเข้า แฮชข้อมูลที่ลองแต่ละรายการ แล้วเปรียบเทียบกับค่าเป้าหมาย
ขั้นตอนที่ 1: ระบุชนิดค่าแฮช
ก่อนเริ่มถอดรหัส คุณต้องทราบว่าอัลกอริทึมใดสร้างค่าแฮชนั้นขึ้นมา เบาะแสมาจากความยาวและรูปแบบ:
- อักขระฐานสิบหก 32 ตัว น่าจะเป็น MD5
- อักขระฐานสิบหก 40 ตัว น่าจะเป็น SHA-1
- อักขระฐานสิบหก 64 ตัว น่าจะเป็น SHA-256
- ขึ้นต้นด้วย
$2b$หมายถึง bcrypt ส่วน$argon2หมายถึง Argon2
เครื่องมือระบุชนิดค่าแฮช
เครื่องมือช่วยระบุชนิดค่าแฮชโดยอัตโนมัติ คุณจึงไม่ต้องคาดเดาเอง hashid และ hash-identifier จะวิเคราะห์รูปแบบและเสนออัลกอริทึมที่น่าจะเป็นไปได้
ผลลัพธ์จะช่วยบอกว่าควรส่งหมายเลข mode ใดให้เครื่องมือถอดรหัสของคุณ
hashid '5f4dcc3b5aa765d61d8327deb882cf99'
# Suggests: MD5, MD4, NTLM ...การโจมตีด้วยพจนานุกรม
การโจมตีด้วยพจนานุกรม (รายการคำ) จะลองคำทุกคำในรายการ โดยแฮชแต่ละคำแล้วนำไปเปรียบเทียบ วิธีนี้ทำงานได้รวดเร็วและตรวจพบรหัสผ่านทั่วไปจำนวนมากที่ผู้ใช้เลือกใช้
รายการคำชื่อดังอย่าง rockyou.txt มีรหัสผ่านจริงที่รั่วไหลออกมาหลายล้านรายการ และเป็นจุดเริ่มต้นเริ่มต้นที่ใช้กันโดยทั่วไปสำหรับการถอดรหัสส่วนใหญ่
การโจมตีแบบลองทุกความเป็นไปได้
การโจมตีแบบลองทุกความเป็นไปได้จะลองการผสมอักขระที่เป็นไปได้ทุกแบบ วิธีนี้รับประกันว่าจะสำเร็จในท้ายที่สุด แต่มีต้นทุนเพิ่มขึ้นแบบเอ็กซ์โพเนนเชียล
คุณสามารถจำกัดขอบเขตด้วยรูปแบบกำหนดเงื่อนไข เช่น กำหนดให้มีอักขระตัวพิมพ์เล็กและตัวเลขรวมกัน 8 ตัวพอดี รูปแบบเหล่านี้ทำให้การลองทุกความเป็นไปได้แบบเจาะจงทำได้จริง เมื่อคุณทราบนโยบายรหัสผ่าน
?l = lowercase ?u = uppercase ?d = digit ?s = symbol
# Mask ?u?l?l?l?l?d?d = Capital + 4 lower + 2 digitsการโจมตีตามกฎ
ผู้คนมักดัดแปลงคำพื้นฐานอย่างคาดเดาได้ เช่น เติมตัวเลขและสัญลักษณ์ท้ายคำว่า 'รหัสผ่าน' การโจมตีตามกฎจะใช้การแปลงรูปแบบต่าง ๆ เช่น เปลี่ยนตัวแรกเป็นตัวพิมพ์ใหญ่ เติมปี หรือแทนตัวอักษรด้วยตัวเลข กับแต่ละรายการในรายการคำ
วิธีนี้ตรวจพบรหัสผ่านที่มนุษย์ตั้งขึ้นจริงได้ โดยไม่ต้องเสียต้นทุนเท่ากับการลองทุกความเป็นไปได้ทั้งหมด ชุดกฎ best64 เป็นจุดเริ่มต้นที่มีประสิทธิภาพและได้รับความนิยม
Hashcat
hashcat เป็นเครื่องมือถอดรหัสที่ใช้การเร่งความเร็วด้วย GPU และเป็นเครื่องมือชั้นนำ โดยใช้รหัสตัวเลขของโหมดสำหรับแต่ละอัลกอริทึม และตัวเลือกโหมดการโจมตี (-a 0 สำหรับพจนานุกรม, -a 3 สำหรับลองทุกความเป็นไปได้)
GPU ทำให้ hashcat ทำงานถอดรหัสค่าแฮชเร็วอย่าง MD5 และ SHA ได้เร็วกว่าการใช้ CPU อย่างมหาศาล
hashcat -m 0 -a 0 hashes.txt rockyou.txt
# -m 0 = MD5, -a 0 = dictionary attackJohn the Ripper
John the Ripper เป็นเครื่องมือถอดรหัสแบบดั้งเดิมอีกตัวหนึ่ง มีประสิทธิภาพสูงบน CPU และรองรับรูปแบบข้อมูลอย่างกว้างขวาง อีกทั้งมักตรวจจับชนิดของค่าแฮชได้โดยอัตโนมัติ
John มีเครื่องมือช่วยที่สะดวก เช่น unshadow สำหรับรวม /etc/passwd และ /etc/shadow ของ Linux ให้เป็นไฟล์ที่พร้อมสำหรับการถอดรหัส
unshadow /etc/passwd /etc/shadow > combined.txt
john --wordlist=rockyou.txt combined.txt
john --show combined.txtเหตุผลที่ค่าสุ่มและค่าแฮชช้าช่วยป้องกันได้
ความเร็วในการถอดรหัสขึ้นอยู่กับอัลกอริทึมเป็นอย่างมาก:
- GPU สามารถลองค่าเดา MD5 ได้ถึงหลายพันล้านครั้งต่อวินาที
- bcrypt หรือ Argon2 อาจอนุญาตให้ลองได้เพียงไม่กี่พันครั้งต่อวินาทีโดยตั้งใจ
ค่าสุ่มยังบังคับให้คุณต้องถอดรหัสแต่ละค่าแยกกัน ทำให้ไม่สามารถใช้ทางลัดจากตารางค้นหาเรนโบว์ได้ นี่คือเหตุผลที่ผู้ดูแลระบบใช้ค่าแฮชที่เติมค่าสุ่มและทำงานช้า
การค้นหาข้อมูลออนไลน์และจริยธรรม
สำหรับค่าแฮชเร็วที่ไม่มีค่าสุ่ม ฐานข้อมูลออนไลน์อย่าง CrackStation จะเก็บข้อมูลการค้นหาที่คำนวณไว้ล่วงหน้า ทำให้มักถอดรหัสค่าแฮชทั่วไปได้ทันที
จริยธรรม: โปรดถอดรหัสเฉพาะค่าแฮชที่คุณได้รับอนุญาตให้ทดสอบเท่านั้น การถอดรหัสข้อมูลเข้าสู่ระบบจริงโดยไม่ได้รับอนุญาตถือเป็นสิ่งผิดกฎหมาย ในงานประเมินความปลอดภัย ให้รายงานรหัสผ่านที่ถอดได้เป็นหลักฐานว่านโยบายอ่อนแอ และห้ามนำรหัสผ่านเหล่านั้นไปใช้ในทางที่ผิด
การประเมินความพยายามที่ต้องใช้
ก่อนทุ่มเวลาหลายชั่วโมงไปกับการถอดรหัส โปรดประเมินความเป็นไปได้ก่อน:
- ความเร็วของอัลกอริทึม: MD5 ถอดรหัสได้เร็ว ส่วน bcrypt ตั้งใจให้ทำงานช้า
- ความซับซ้อนของรหัสผ่าน: ความยาวและชุดอักขระที่ใช้จะทำให้จำนวนค่าที่เป็นไปได้เพิ่มขึ้นอย่างมาก
- ฮาร์ดแวร์: ชุดเครื่อง GPU ประสิทธิภาพสูงมีความเร็วเหนือกว่า CPU ของแล็ปท็อปอย่างมาก
หากรหัสผ่านแบบสุ่มยาวที่ใช้ bcrypt และมีค่าสุ่มต้องใช้เวลาหลายศตวรรษ ให้เปลี่ยนไปใช้แนวทางการโจมตีอื่นแทนการลองทุกความเป็นไปได้
ตรวจสอบความเข้าใจอย่างรวดเร็ว
คุณได้บันทึกข้อมูลสำรองของฐานข้อมูลไว้ จงตัดสินใจว่าควรดำเนินการใดเป็นอันดับแรกจึงจะฉลาดที่สุด
สรุปทบทวน
คุณได้เรียนรู้กระบวนการถอดรหัสแฮช:
- ระบุ อัลกอริทึมจากความยาวและรูปแบบโดยใช้ hashid
- เพิ่มระดับการโจมตีตามต้นทุน ได้แก่ พจนานุกรม จากนั้น กฎ และต่อด้วย การลองทุกความเป็นไปได้โดยใช้หน้ากาก
- ใช้ hashcat (GPU) และ John the Ripper (CPU, ตรวจจับโดยอัตโนมัติ)
- การเติมค่าเกลือและแฮชที่ทำงานช้า (bcrypt, Argon2) ลดความเร็วในการถอดรหัสลงอย่างมาก
- ดำเนินการภายในขอบเขตการอนุญาตเสมอ
เนื้อหา Cryptography for Hackers จบลงเพียงเท่านี้ โมดูลถัดไป: การไม่เปิดเผยตัวตนและ OPSEC
คำถามที่พบบ่อย
บทเรียน “การถอดรหัสแฮช” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การถอดรหัสแฮช” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การถอดรหัสแฮช”
การระบุและการโจมตี คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การถอดรหัสแฮช” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม
ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ