จะถอดรหัสรหัสผ่านโดยใช้เครื่องมือ Hashcat ได้อย่างไร

เผยแพร่แล้ว: 2021-12-14

ในการทดสอบการแฮ็กและการเจาะระบบอย่างมีจริยธรรม การถอดรหัสรหัสผ่านเป็นสิ่งสำคัญในการเข้าถึงระบบหรือเซิร์ฟเวอร์

ในระบบและฐานข้อมูล รหัสผ่านมักจะถูกบันทึกในรูปแบบข้อความธรรมดา

รหัสผ่านจะถูกแฮชเสมอก่อนที่จะจัดเก็บไว้ในฐานข้อมูล และแฮชจะถูกเปรียบเทียบระหว่างกระบวนการตรวจสอบ

ขึ้นอยู่กับการเข้ารหัสที่ใช้ ระบบต่างๆ จะจัดเก็บแฮชรหัสผ่านในรูปแบบต่างๆ และถ้าคุณมีแฮช คุณสามารถถอดรหัสรหัสผ่านใดๆ ได้อย่างง่ายดาย

และในบทความนี้ เราจะมาสำรวจวิธีถอดรหัสแฮชรหัสผ่านโดยใช้เครื่องมือบรรทัดคำสั่ง Hashcat ที่ยอดเยี่ยมและสะดวก

มาเริ่มกันเลยดีกว่า

แต่ก่อนหน้านั้น…

ฟังก์ชันแฮชคืออะไร?

การแฮชเป็นกระบวนการแปลงข้อความอินพุตปกติเป็นสตริงข้อความขนาดคงที่โดยใช้ฟังก์ชันทางคณิตศาสตร์ที่เรียกว่าฟังก์ชันแฮช ข้อความใดๆ ไม่ว่าจะมีความยาวเท่าใด สามารถเปลี่ยนเป็นการสุ่มชุดของจำนวนเต็มและตัวอักษรโดยใช้อัลกอริทึม

การแฮช

  • อินพุตหมายถึงข้อความที่จะแฮช
  • ฟังก์ชันแฮชคืออัลกอริธึมการเข้ารหัส เช่น MD5 และ SHA-256 ที่แปลงสตริงเป็นค่าแฮช
  • และสุดท้าย ค่าแฮชคือผลลัพธ์

Hashcat คืออะไร?

Hashcat เป็นเครื่องมือกู้คืนรหัสผ่านที่เร็วที่สุด ออกแบบมาเพื่อทำลายรหัสผ่านที่ซับซ้อนสูงในระยะเวลาอันสั้น และเครื่องมือนี้ยัง สามารถ โจมตี ได้ ทั้ง รายการ คำศัพท์ และ เดรัจฉาน

Hashcat มีสองตัวแปร ใช้ CPU และ GPU (หน่วยประมวลผลกราฟิก) เครื่องมือที่ใช้ GPU สามารถถอดรหัสแฮชได้ในเวลาน้อยกว่า CPU คุณสามารถตรวจสอบข้อกำหนดของไดรเวอร์ GPU ได้จากเว็บไซต์ทางการ

คุณสมบัติ

  • ฟรีและโอเพ่นซอร์ส
  • สามารถใช้รูปแบบแฮชได้มากกว่า 200 แบบ
  • รองรับระบบปฏิบัติการหลายระบบ เช่น Linux, Windows และ macOS
  • มีหลายแพลตฟอร์ม เช่น รองรับ CPU และ GPU
  • สามารถถอดรหัสแฮชหลายอันได้พร้อมกัน
  • รองรับไฟล์ Hex-salt และ hex-charset พร้อม กับการปรับประสิทธิภาพอัตโนมัติ
  • มีระบบการเปรียบเทียบในตัว
  • รองรับเครือข่ายการถอดรหัสแบบกระจายโดยใช้โอเวอร์เลย์

และคุณสามารถดูคุณสมบัติอื่น ๆ ได้จากเว็บไซต์ของพวกเขา

การติดตั้ง Hashcat

ขั้นแรก ตรวจสอบให้แน่ใจว่าระบบ Linux ของคุณทันสมัยด้วยโปรแกรมและเครื่องมือใหม่ล่าสุด

สำหรับสิ่งนี้ ให้เปิดเทอร์มินัลแล้วพิมพ์:

 $ sudo apt update && sudo apt upgrade

โดยทั่วไปแล้ว Hashcat จะติดตั้งไว้ล่วงหน้าใน Kali Linux คุณสามารถค้นหาเครื่องมือได้ในส่วนการถอดรหัสรหัสผ่าน แต่ถ้าคุณต้องการติดตั้งด้วยตนเองในการแจกจ่าย Linux ให้พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล

 $ sudo apt-get install hashcat

การใช้เครื่องมือ

ในการเริ่มต้นใช้งาน Hashcat เราจำเป็นต้องมีแฮชรหัสผ่าน หากคุณไม่มีแฮชที่จะถอดรหัส เราจะสร้างแฮชบางส่วนก่อน

ในการสร้างแฮชโดยใช้บรรทัดคำสั่ง เพียงทำตามรูปแบบด้านล่าง

 echo -n "input" | algorithm | tr -d "-">>outputfiename

ตัวอย่างเช่น คุณจะเห็นว่าฉันเปลี่ยนคำบางคำให้เป็นแฮชโดยใช้อัลกอริทึม md5 ด้านล่าง

 ┌──(rootkali)-[/home/writer/Desktop] └─# echo -n "geekflare" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

และผลลัพธ์จะถูกบันทึกไว้ในไฟล์ crackhash.txt

ตอนนี้เราจะตรวจสอบแฮชที่บันทึกไว้ในไฟล์ที่กำหนด

 ┌──(rootkali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13

คุณจะเห็นว่าตอนนี้เรามีแฮชที่จะถอดรหัสแล้ว นี่คือขั้นตอนในการสร้างแฮชโดยใช้อัลกอริทึมที่คุณเลือก

ขั้นตอนต่อไปคือการเริ่มใช้เครื่องมือ Hashcat ในเครื่อง Linux ของคุณ เพียงใช้คำสั่งต่อไปนี้เพื่อใช้ Hashcat

 $ hashcat --help

จะแสดงตัวเลือกทั้งหมดที่คุณจำเป็นต้องทราบเพื่อเรียกใช้เครื่องมือ บนเทอร์มินัล คุณจะพบโหมดการโจมตีและแฮชทั้งหมด

รูปแบบทั่วไปของคำสั่งคือ

 $ hashcat -a num -m num hashfile wordlistfile

ที่นี่ 'num' หมายถึงโหมดการโจมตีและแฮชเฉพาะที่จะใช้ หากคุณเลื่อนเทอร์มินัล คุณจะพบตัวเลขที่แน่นอนสำหรับทุกโหมดการโจมตีและแฮช เช่น md4 - ตัวเลขคือ 0 และสำหรับอัลกอริทึม sha256 - ตัวเลขคือ 1740

รายการคำศัพท์ที่ฉันจะใช้คือรายการคำศัพท์ rockyou คุณสามารถค้นหารายการคำศัพท์นั้นได้อย่างง่ายดายในพาธ /usr/share/wordlists

คุณยังสามารถใช้คำสั่ง find เพื่อค้นหาเส้นทางของ wordlist นั้นได้อีกด้วย

 ┌──(rootkali)-[/home/writer] └─# locate rockyou.txt

และสุดท้าย ในการถอดรหัสแฮชโดยใช้ไฟล์ wordlist ให้ใช้คำสั่งต่อไปนี้

 $ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

หลังจากรันคำสั่งนี้ คุณอาจได้รับข้อผิดพลาดรันไทม์ (ข้อผิดพลาดข้อยกเว้นความยาวโทเค็น) ซึ่งสามารถแก้ไขได้ง่าย

hashcat3

ในการแก้ไขปัญหานี้ ให้บันทึกแต่ละแฮชแยกกันในไฟล์อื่น ข้อผิดพลาดนี้เกิดขึ้นหากคุณมีความเร็ว CPU หรือ GPU ต่ำ หากคอมพิวเตอร์ของคุณมีโปรเซสเซอร์ความเร็วสูง คุณสามารถถอดรหัสแฮชทั้งหมดได้อย่างง่ายดายพร้อมกันเป็นไฟล์เดียว

ดังนั้นหลังจากแก้ไขข้อผิดพลาดและทุกอย่างแล้วผลลัพธ์จะเป็นแบบนี้

 ┌──(rootkali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021

ในผลลัพธ์ข้างต้น หลังจากรายละเอียดแคชของพจนานุกรม คุณสามารถสังเกตได้ว่าแฮชถูกถอดรหัส และรหัสผ่านถูกเปิดเผย

บทสรุป

ฉันหวังว่าคุณจะเข้าใจการใช้ Hashcat เพื่อถอดรหัสรหัสผ่านได้ดีขึ้น

คุณอาจสนใจที่จะเรียนรู้เกี่ยวกับเครื่องมือเดรัจฉานต่างๆ สำหรับการทดสอบการเจาะและเครื่องมือทดสอบการเจาะที่ดีที่สุด