0Pricing
Ethical Hacking Academy · บทเรียน

การถอดรหัสแฮช

การระบุและการโจมตี

การถอดรหัสแฮช เป็นบทเรียน 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 attack

John 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเข้ารหัสรูปแบบเทียบกับการเข้ารหัสลับ
  2. การแฮช
  3. แบบสมมาตรและแบบอสมมาตร
  4. การถอดรหัสแฮช
← กลับไปที่ Ethical Hacking Academy