บางครั้งเราจะประสบปัญหาดังกล่าว เช่น รหัสผ่านเป็นโหมด abcdabcd และไม่มี abcdabcd ในพจนานุกรมของเรา หากเราสร้าง มันจะใช้พื้นที่ขนาดใหญ่ มีวิธีสร้าง abcdabcd ผ่าน abcd หรือไม่? ใน hashcat แน่นอนว่าสามารถทำได้ ในส่วนนี้ เราจะพูดถึงโหมดนี้ก่อน นั่นคือ โหมดการโจมตีแบบรวมพจนานุกรม (พารามิเตอร์แสดงเป็น -a 1)
ขั้นแรก เราจะอธิบายความหมายของ -a 1 ผ่านตัวอย่างง่ายๆ จากนั้นพาคุณไปสู่การประยุกต์ใช้รูปแบบที่ซับซ้อนทีละขั้นตอน
hashcat –a 1 –m 0 mima.txt –o outfile dic.txt dic.txt
ความหมายของคำสั่งนี้คือการใช้ dic.txt พจนานุกรมนี้จะถูกรวมเข้าด้วยกันเพื่อถอดรหัส mima.txt หาก dic.txt ประกอบด้วยพจนานุกรม
ดังแสดงในรูปด้านล่าง พจนานุกรมใหม่ที่สร้างขึ้นหลังจากการรวมคำสั่งนี้ mima.txt จะถูกถอดรหัส:
นั่นคือ แต่ละบรรทัดใน dic.txt จะถูกรวมเข้ากับตัวมันเองเพื่อสร้างพจนานุกรมใหม่
การแนะนำก่อนหน้านี้เป็นการรวมกันของพจนานุกรมเดียวกัน หากเป็นพจนานุกรมที่แตกต่างกัน hashcat ก็รองรับคำสั่งดังต่อไปนี้
แสดงถึง dic1.txt บรรทัดทั้งหมดถูกรวมเข้ากับบรรทัดทั้งหมดใน dic2.txt และพจนานุกรมที่เกิดขึ้นจะแก้ไข mima.txt
ใช้โหมดรวมภายใต้สถานการณ์ใดบ้าง โดยทั่วไปโหมดรวมจะใช้เมื่อรหัสผ่านของผู้ใช้แบ่งออกเป็นสองส่วนอย่างชัดเจน เช่น abcd1234, asdfasdf, aaa19770101,... ฯลฯ รหัสผ่านจะแสดงอย่างชัดเจนในย่อหน้าก่อนหน้าและย่อหน้าถัดไป
(1) ในโหมดการรวมกัน ปัจจุบัน hashcat สามารถรองรับการรวมกันของพจนานุกรมสองฉบับเท่านั้น (หรือพจนานุกรมเดียวกันสองครั้ง) และไม่สามารถรองรับพจนานุกรมหลายฉบับได้ (พจนานุกรมมากกว่า 3 ฉบับ) หรือการโจมตีแบบรวมของพจนานุกรมเดียวกันมากกว่า 3 ครั้ง
นั่นหมายความว่าคำสั่งต่อไปนี้ไม่ถูกต้อง:
แฮชแคท –a 1 –m 0 mima.txt –ooutfile dic.txt dic.txt
แฮชแคท –a 1 –m 0 mima.txt –ooutfile dic1.txt dic2.txt dic3.txt
(2) ในโหมดรวม ไดเร็กทอรีไม่รองรับ (ในบทความก่อนหน้านี้ ในโหมด -a 0 ไดเร็กทอรีทั้งหมดได้รับการรองรับ) กล่าวอีกนัยหนึ่ง สองสถานการณ์ต่อไปนี้ไม่สามารถทำได้
hashcat –a 1 –m 0 mima.txt –ooutfile /dic/
hashcat –a 1 –m 0 mima.txt –ooutfile /dic/* .txt
(3) ปัญหาความทันเวลา
เมื่อใช้โหมดการรวม หากพจนานุกรมมีขนาดใหญ่มาก เช่น พจนานุกรมสองเล่มคือ 10,000,000 พื้นที่รวมคือ 100,000,000,000,000 ซึ่งเทียบเท่ากับพจนานุกรม 10,000,000 (แต่ละพจนานุกรมมี 10,000,000 รายการ) การโจมตี พื้นที่มีขนาดใหญ่เกินไปและอาจมีการทำซ้ำจำนวนมาก แม้ว่าอัตราความครอบคลุมจะเพิ่มขึ้น แต่ความทันเวลาก็ไม่สูง
การแคร็กด้วยความรุนแรงตามชื่อคือการทำให้พื้นที่ข้อความธรรมดาที่ระบุหมดลงอย่างรุนแรง ซึ่งเป็นวิธีที่ไม่มีทาง (เพราะ คุณไม่มีทางลดพื้นที่ที่หมดลงได้)
ก่อนที่จะพูดถึงการแคร็กแบบรุนแรงอย่างเป็นทางการ เรามาพูดถึงพื้นที่ที่หมดลงกันก่อน ยกตัวอย่างตัวอักษรตัวพิมพ์เล็กทั่วไป + ตัวเลข หากความยาวของรหัสผ่านคือ 4 พื้นที่คือ 36**4=1679616 ซึ่งดูเหมือนจะไม่ใหญ่และจะออกมาในไม่ช้า หากความยาวของรหัสผ่านคือ 8 พื้นที่คือ 36**8=2821109907456 หากระยะเวลาในการแก้ปัญหาคือ 1,000,000,000 (1 พันล้านครั้ง/วินาที) เวลาในการแก้ปัญหาจะอยู่ที่ประมาณ 2,820 วินาที หรือประมาณ 47 นาที ซึ่งดูเหมือนว่าจะทนได้ ; หากความยาวของรหัสผ่านคือ 10 พื้นที่คือ 36**10=3656158440062976 หากระยะเวลาการคำนวณคือ 1,000,000,000 (1 พันล้านครั้ง/วินาที) เวลาการคำนวณเกิน 1,000 ชั่วโมง ดังนั้นจึงไม่มีทางยอมรับได้
มีโหมดการแคร็กความรุนแรงหลายประเภท (พารามิเตอร์แสดงเป็น -a 3) ใน hashcat ด้านล่างนี้ เราจะอธิบายทีละประเภท
hashcat มีชุดอักขระเริ่มต้นในตัว 8 ชุด ได้แก่ l (ตัวอักษรตัวพิมพ์เล็ก 26 ตัว), u (ตัวอักษรตัวพิมพ์ใหญ่ 26 ตัว) และ d (ตัวเลข 10 ตัว) , H (อักขระเลขฐานสิบหกตัวพิมพ์เล็ก), H (อักขระเลขฐานสิบหกตัวพิมพ์ใหญ่), s (อักขระพิเศษ 31), A (คอลเลกชันของ l, u, d, s 95 อักขระเต็ม) และ b (ไบนารี
ตัวอย่าง
(1) หากใช้พื้นที่ตัวอักษรตัวพิมพ์เล็ก 6 บิตให้หมด คำสั่งจะเป็นดังนี้:
(2) หากใช้พื้นที่ตัวอักษร 8 บิตให้หมด คำสั่งจะเป็นดังนี้:
(3) หากช่วงที่หมดคือพื้นที่ตัวเลขทั้งหมด 4-6 บิต คำสั่งจะเป็นดังนี้:
ในที่นี้ มีการเพิ่มพารามิเตอร์ --inrcement --increment-min 4 --inrcement --increment-max 6 แสดงถึงค่าต่ำสุดและสูงสุดของความยาวที่หมด
โหมดการรวมกันที่นี่เป็นโหมดองค์กรในโหมดที่สมบูรณ์ ไม่ใช่โหมด (-a 1)
ยกตัวอย่างโดยตรง:
(1) รหัสผ่านมีช่วงที่สมบูรณ์ สันนิษฐานว่าความยาวของรหัสผ่านคือ 6 หลักแรกคือชุดอักขระเต็ม หลักที่สองคือตัวอักษรตัวพิมพ์เล็ก และหลักที่สามคือตัวอักษรตัวพิมพ์ใหญ่ หลักที่สี่ ห้า และหกเป็นชุดอักขระเต็ม ดังนั้นคำสั่งสามารถใช้โหมดต่อไปนี้ได้:
(2) มีโหมดการรวมกันหลายโหมดด้านล่าง
หนึ่ง: หากช่วงของรหัสผ่านเป็นตัวพิมพ์ใหญ่และตัวเลขเล็ก และความยาวคือ 6 คำสั่งจะเป็นดังนี้:
ใช้ -1 ที่นี่? ล? คุณ? d หมายถึง ตัวอักษรใหญ่และตัวเล็ก + ตัวเลข
bis: หากช่วงที่หมดคือ 6 หลัก หลักแรกและสี่เป็นตัวพิมพ์ใหญ่และตัวเลขเล็ก หลักที่สองเป็นตัวพิมพ์ใหญ่และตัวเลขเล็ก หลักที่สามและห้าเป็นตัวพิมพ์ใหญ่และตัวเลขที่หกเป็นตัวเลข จากนั้นคำสั่งมีดังนี้:
แน่นอน คุณยังสามารถระบุความยาวขั้นต่ำและความยาวสูงสุดได้ ดังแสดงในรูปด้านล่าง
ก่อนหน้านี้ เราได้แนะนำว่า hashcat มีชุดอักขระในตัว 8 ชุด แต่จะเกิดอะไรขึ้นหากชุดอักขระที่ผู้ใช้ต้องการไม่อยู่ใน 8 ประเภทนี้ จะทำอย่างไร? ไม่สำคัญหรอก hashcat ยังได้เตรียมโหมดการโจมตีที่รุนแรงแบบกำหนดเองไว้มากมายสำหรับทุกคน
ใช้คำสั่ง hashcat –h คุณจะเห็นว่ารูปแบบการใช้งานต่อไปนี้ถูกกำหนดไว้
ด้านล่างนี้ เราจะอธิบายผ่านตัวอย่าง:
( 1) หากความยาวของรหัสผ่านคือ 8 บิต และแต่ละบิตประกอบด้วย "0123456789aqwcfhj,.<>=-_+" คุณสามารถใช้คำสั่งต่อไปนี้ได้
คุณยังสามารถเขียนอักขระเหล่านี้ลงในไฟล์ได้ เช่น char.txt โดยใช้คำสั่งต่อไปนี้
(2) หากความยาวรหัสผ่านคือ 8 บิต บิตแรก สาม และหกอยู่ใน "43545yt" บิตที่สองและสี่อยู่ใน "345dfv-=_+" และบิตที่ห้าและเจ็ดอยู่ใน "9vjnbbf-brg" และบิตที่แปดอยู่ใน "345fkfggh" คุณสามารถใช้คำสั่งต่อไปนี้ได้
แน่นอนว่าคุณสามารถเขียนอักขระเหล่านี้ลงในไฟล์ต่างๆ เช่น char1.txt, …… โดยใช้คำสั่งต่อไปนี้
หมายเหตุ: สัญลักษณ์บางอย่างจะมีความหมายพิเศษในบรรทัดคำสั่ง ดังนั้นเมื่อมีสัญลักษณ์พิเศษในชุดอักขระ ควรเขียนสัญลักษณ์เหล่านี้ในรูปแบบไฟล์
(3) บนพื้นฐานของ (2) เพิ่มความยาวขั้นต่ำและความยาวสูงสุด เช่น 4-8 บิต คุณสามารถใช้คำสั่งต่อไปนี้ได้
ในบทความก่อนหน้านี้ เราได้แนะนำการใช้พารามิเตอร์บางอย่าง วันนี้เราจะแนะนำพารามิเตอร์ที่ใช้กันทั่วไปบางส่วน วันนี้เราจะมุ่งเน้นไปที่พารามิเตอร์การแสดงผลหน้าจอ
บทความก่อนหน้านี้ได้แนะนำคำสั่งที่เกี่ยวข้องกับเอาต์พุตไฟล์ (-o/--outfile-format) ผ่านคำสั่งเหล่านี้ ผลลัพธ์ของการถอดรหัสรหัสผ่าน hashcat สามารถถอดรหัสได้ในบางรูปแบบ เอาต์พุตไปยังไฟล์ แต่ในระหว่างการทำงานของ hashcat เราไม่เห็นว่ารหัสผ่านใดที่ hashcat ถอดรหัส หากเราสามารถพิมพ์รหัสผ่านที่ถอดรหัสโดย hashcat บนหน้าจอได้โดยตรงในระหว่างการทำงานของ hashcat ซึ่งจะใช้งานง่ายและสะดวกยิ่งขึ้น มีพารามิเตอร์ไม่กี่ตัวใน hashcat ที่สามารถส่งออกผลลัพธ์การทำงานของ hashcat ไปยังหน้าจอได้
show จะส่งออกแฮชที่ถอดรหัสและรหัสผ่านที่แคชไว้ในไฟล์ pot ไปยังหน้าต่างหน้าจอ
left จะส่งออกค่าแฮชที่ hashcat ไม่ได้ถอดรหัสไปยังหน้าจอ
stdout จะไม่ทำการถอดรหัสรหัสผ่าน แต่จะพิมพ์เนื้อหาในพจนานุกรมที่ใช้ในการถอดรหัสรหัสผ่าน
มีคำสั่ง hashcat มากมาย และพารามิเตอร์ที่แตกต่างกันนั้นแตกต่างกันมาก หากคุณต้องการให้ฟังก์ชันและฟังก์ชันของ hashcat อย่างเต็มที่ ขอแนะนำให้ทุกคนลองใช้คำสั่งที่แตกต่างกันเพื่อทำความคุ้นเคยกับการรวมกันของคำสั่ง hashcat ที่แตกต่างกัน สำหรับฟังก์ชันของพารามิเตอร์ hashcat คุณสามารถเรียนรู้จากวิธีใช้ออนไลน์ของ hashcat (-h)