Hashcat เป็นที่รู้จักในฐานะเครื่องมือถอดรหัสรหัสผ่านที่เร็วที่สุดในโลก บทความวันนี้จะแยกพารามิเตอร์ที่ใช้กันทั่วไปหลายตัว รวมคำสั่งถอดรหัสรหัสผ่าน และวิเคราะห์วิธีใช้ Hashcat เพื่อถอดรหัสรหัสผ่าน
เรารู้ว่า hashcat สามารถถอดรหัสรหัสผ่านได้จำนวนมาก โดยสามารถถอดรหัสรหัสผ่านได้ประมาณ 210 ประเภท ซึ่งส่วนใหญ่เป็นแฮช หากคุณต้องการถอดรหัสรหัสผ่านผ่าน hashcat คุณต้องเข้าใจรูปแบบของรหัสผ่านก่อน จากนั้นจึงจัดทำดัชนีหมายเลขรหัสผ่านใน hashcat ตามรูปแบบรหัสผ่าน
เราใช้รหัสผ่าน: digapis และค่าเกลือ asdf เป็นตัวอย่างเพื่อแสดงรูปแบบของค่าแฮชบางส่วน
| หมายเลข | ชื่อ | ชนิด | ตัวอย่าง |
|---|---|---|---|
| 0 | MD5 | แฮช, ความยาว 32 | 8713d75511bea7e0df78c6063dc778b0 |
| 1400 | SHA-256 | hash | aa106625c7de812d6118992a191ea4627e2457fa80bf6ec06f9c60cbf8e5260f |
| 1700 | SHA-512 | hash | 23afac4524f62ea4d941ca4933249b2b78d19069773266abc36d6fd17a6fbe2f4ccc834acc868358ba32ddca553611218a2865f975339fe45d38cc1999f84b5e |
| 10 | MD5($pass.$salt) | รหัสผ่านจะถูกเติมเกลือและดำเนินการ MD5 หนึ่งครั้ง รหัสผ่านจะอยู่ที่ | 48985c61e2581c3f9ee5f1cfb775afbc:asdf |
| 20 | md5($salt.$pass) | เกลือก่อน | 4fa1dd606353e055fed67d9812bddf35:asdf |
| 2600 | md5(md5($pass)) | รหัสผ่าน 2 ครั้ง md5 | 98177c3f36af4a3f77f5b87594e6cf6a |
| 3710 | md5($salt.md5($pass)) | รหัสผ่าน 1 ครั้ง การแปลง md5 เพิ่มเกลือที่ด้านหน้า และดำเนินการอีกครั้ง md5 | 88a535877ec21b8786775a7074e4de4c:asdf |
| 4400 | md5(sha1($pass)) | รหัสผ่านทำการแปลง sha1 หนึ่งครั้ง และทำการแปลง MD5 | ec7bf3099984001a2b0f37ba5d1d68fa |
| 4500 | sha1(sha1($pass)) | เล็กน้อย | 005a41cfe16c9a5556c7a5cdd5f1958991f2e031 |
| 1460 | HMAC-SHA256(key=$salt) | เล็กน้อย | d684ab7c38ddc262f215328334c4d0273cef10d6c5e61988f5cc87fcab8a7a60:asdf |
| 11500 | CRC32 | ยกเว้น | 4C244A19:00000000 |
- คำสั่ง A สามารถระบุโหมดการโจมตีได้ การใช้ hashcat เพื่อถอดรหัสรหัสผ่าน การรู้เพียงหมายเลขของรหัสผ่านไม่เพียงพอ คุณต้องเลือกโหมดการโจมตีที่ใช้ hashcat เพื่อถอดรหัสรหัสผ่านด้วย
Hashcat4.0.1 มีโหมดการโจมตี 5 โหมด แต่ละโหมดมีลักษณะเฉพาะของตัวเอง
| หมายเลข | โหมดการโจมตี | ความหมาย |
|---|---|---|
| 0 | ตรง | โหมดโจมตีโดยตรง |
| 1 | Combinstion | โหมดการโจมตีแบบรวม |
| 3 | Brute-force | โหมดแคร็กพลังระเบิด |
| 6 | Hybrid Wordlist+Mask | พจนานุกรม+Mask Combination |
| 7 | Hybird Mask+Wordlist | Mask+Dictionary Combination |
ในโหมดการโจมตีทั้ง 5 โหมดนี้ เราสามารถใช้พจนานุกรมเพื่อถอดรหัสรหัสผ่านได้ ใช้การถอดรหัสความรุนแรงเพื่อสำรวจรหัสผ่านที่เป็นไปได้ทั้งหมด หรือคุณสามารถรวมพจนานุกรมและมาสก์เพื่อถอดรหัสรหัสผ่านได้ ในโหมดการโจมตีที่แตกต่างกัน พารามิเตอร์ที่ใช้โดยคำสั่ง hashcat จะแตกต่างกัน เราใช้โหมดการโจมตีแบบตรงเป็นตัวอย่างเพื่อเรียนรู้ว่า hashcat ใช้ไฟล์พจนานุกรมเพื่อถอดรหัสรหัสผ่านอย่างไร เพื่อนร่วมงานจะสลับการใช้พารามิเตอร์อื่นๆ ด้วย
โหมดการโจมตีโดยตรงคือการใช้พจนานุกรมโดยตรงสำหรับการระเบิดรหัสผ่าน สามารถถอดรหัสได้โดยใช้ไฟล์พจนานุกรมเดียวหรือไฟล์พจนานุกรมหลายไฟล์ คุณยังสามารถทำให้การระเบิดรหัสผ่านมีประสิทธิภาพมากขึ้นโดยการรวมพจนานุกรมเข้ากับไฟล์กฎ
hashcat -a 0 –m 0 mima.txt –o outfile dic.txt
-a ระบุโหมดการโจมตีเป็นการโจมตีโดยตรง -m ระบุประเภทแฮชเป็น MD5 และ -o จะเขียนรหัสผ่านที่ถอดรหัสลงใน outfile
การโจมตีพจนานุกรมคู่ก็เป็นสถานการณ์ในโหมดการโจมตีโดยตรงเช่นกัน เมื่อใช้ไฟล์พจนานุกรมเพื่อระเบิดรหัสผ่าน ไฟล์พจนานุกรมสองไฟล์จะถูกโหลด สิ่งนี้จะขยายพื้นที่สำหรับไฟล์พจนานุกรม
การโจมตีพจนานุกรมหลายรายการโหลดไฟล์พจนานุกรมหลายรายการพร้อมกัน คำสั่งต่อไปนี้ใช้พจนานุกรมสามรายการ ดำเนินการโจมตีพจนานุกรม และโหลดพจนานุกรมสามรายการตามลำดับเพื่อระเบิด dic.txt ในคำสั่งเป็นไฟล์พจนานุกรมที่ใช้ในการระเบิด
การใช้การโจมตีไดเร็กทอรีพจนานุกรมจะใช้ไฟล์พจนานุกรมหลายไฟล์ในไดเร็กทอรีพจนานุกรมสำหรับการโจมตีโดยตรง การใช้ไดเร็กทอรีพจนานุกรม ไฟล์พจนานุกรมหลายไฟล์ในไดเร็กทอรีพจนานุกรมจะถูกโหลดตามลำดับในระหว่างการโจมตีโดยตรง dic ในคำสั่งต่อไปนี้คือโฟลเดอร์ที่ไฟล์พจนานุกรมหลายไฟล์ตั้งอยู่
-r/--rule-file คำสั่งจะใช้กฎหลายข้อในไฟล์กฎกับแต่ละคำในพจนานุกรม ไฟล์กฎสามารถสร้างได้ด้วยตัวเอง หรือคุณสามารถใช้ไฟล์กฎที่มาพร้อมกับ hashcat ได้ ไฟล์กฎที่มาพร้อมกับ hashcat มักจะอยู่ในโฟลเดอร์กฎ ไฟล์กฎภายใต้โฟลเดอร์กฎมีดังนี้:
ในการโจมตีกฎพจนานุกรม คุณสามารถใช้พจนานุกรมเดี่ยว พจนานุกรมหลายพจนานุกรม หรือไดเร็กทอรีพจนานุกรมรวมกับไฟล์กฎสำหรับการระเบิดรหัสผ่าน ในความเป็นจริงมันเป็นรูปแบบของการโจมตีโดยตรงรวมกับไฟล์กฎ
สิ่งที่เรียกว่ากฎนั้นคล้ายกับภาษาการเขียนโปรแกรมที่สร้างรหัสผ่านของผู้สมัคร โดยสามารถแก้ไข ตัด ขยายคำ หรือข้ามการดำเนินการบางอย่างตามตัวดำเนินการแบบมีเงื่อนไข เพื่อให้สามารถโจมตีได้อย่างยืดหยุ่นและมีประสิทธิภาพมากขึ้น
การโจมตีด้วยกฎสามารถใช้ร่วมกับพจนานุกรมคู่ พจนานุกรมหลายพจนานุกรม หรือแม้แต่ไดเรกทอรีพจนานุกรม วิธีการใช้คล้ายกับการโจมตีกฎพจนานุกรมเดี่ยว
-o ตามด้วยพารามิเตอร์ไฟล์ และป้อนรหัสผ่านที่ถอดรหัสลงในไฟล์ที่ระบุผ่านคำสั่ง -o แบบฟอร์มการจัดเก็บเริ่มต้นคือ hash:plain มีตัวอย่างการใช้คำสั่งนี้ก่อนหน้านี้ ลองไปดูภาพด้านบนด้วยตัวเอง
คำสั่งนี้สามารถระบุรูปแบบเอาต์พุตของไฟล์ outfile ได้ ไฟล์ Outfile มีโหมดเอาต์พุตทั้งหมด 15 โหมด
Outfile-format=1 จะส่งออกเฉพาะแฮชไซเฟอร์เท็กซ์ที่ถอดรหัสเท่านั้น
Outfile-format=2 ส่งออกเฉพาะข้อความธรรมดาของรหัสผ่านที่ถอดรหัสแล้ว
นอกเหนือจากการใช้พารามิเตอร์ -o เพื่อเอาต์พุตแล้ว เรายังสามารถใช้พารามิเตอร์ remove เพื่อถอดรหัสข้อมูลที่ถอดรหัสในไฟล์ไซเฟอร์เท็กซ์ รหัสผ่านจะถูกกรอง เหลือเพียงรหัสผ่านที่ไม่สามารถถอดรหัสได้ ด้วยวิธีนี้ งานที่ซ้ำซ้อนจะลดลงเมื่อทำการถอดรหัสรหัสผ่านในภายหลัง
เมื่อจำนวนรหัสผ่านที่ถอดรหัสค่อนข้างมากหรือไฟล์พจนานุกรมมีขนาดใหญ่มาก ตัวเลือกต่อไปนี้จะปรากฏขึ้น การป้อน S บนแป้นพิมพ์จะพิมพ์สถานะถัดไปบนหน้าจอ ผ่านสถานะนี้ คุณสามารถดูความคืบหน้าของการถอดรหัสรหัสผ่านปัจจุบันได้
ทุกครั้งที่คุณต้องการตรวจสอบความคืบหน้าในการถอดรหัสรหัสผ่านปัจจุบัน การป้อน S จะลำบากกว่า นี่คือการใช้พารามิเตอร์สถานะเพื่อให้หน้าจออัปเดตสถานะโดยอัตโนมัติ หน้าจอ. ลดการดำเนินการที่คุณต้องทำและลดการสัมผัสโดยไม่ได้ตั้งใจ
นอกเหนือจากการใช้พารามิเตอร์สถานะ hashcat เพื่ออัปเดตสถานะหน้าจอโดยอัตโนมัติแล้ว คุณยังสามารถใช้พารามิเตอร์ --status-timer เพื่อตั้งค่าช่วงเวลาสำหรับการอัปเดตหน้าจอสถานะ
Hashcat คร่าวๆ เป็นข้างต้น หากคุณสนใจ hashcat คุณยังสามารถเยี่ยมชมเว็บไซต์ของ hashcat ได้โดยตรง ซึ่งมีการแนะนำโดยละเอียดเกี่ยวกับพารามิเตอร์คำสั่งของ hashcat และโหมดการโจมตีแต่ละโหมด
บทความนี้พิมพ์ซ้ำจากห้องปฏิบัติการรักษาความปลอดภัยเครือข่าย Dingniu