โหมดการโจมตีต่างๆของแมวแฮชแฮช

hashcat มีโหมดการโจมตีหลายโหมด เพื่อดูวิธีใช้แบบเต็มด้วยพารามิเตอร์ – help คุณสามารถดูตาราง "โหมดการโจมตี" ดังนี้:

#Mode
0Straight
1Combination
3Brute-force
6Hybrid Wordlist + Mask
7Hybrid Mask + Wordlist

1.Straight

โหมดการโจมตีนี้เรียกอีกอย่างว่า "การโจมตีพจนานุกรม" ไม่มีอะไรจะพูด เพียงแต่ว่าเมื่อได้รับพจนานุกรม hashcat จะอ่านเนื้อหาในพจนานุกรมทีละบรรทัด คำนวณค่าแฮชของแต่ละบรรทัด และเปรียบเทียบกับค่าแฮชเป้าหมาย

ตัวอย่าง:

  hashcat -a 0 -m 400 example400.hash  example.dict

2.Combination

Baidu บอกฉันว่าการรวมกันเป็นคำนามซึ่งหมายถึง: "การรวมกัน; สมาคม; การรวมกันของรหัสผ่าน; ชุดชั้นใน" โหมดการโจมตีนี้ง่ายมากจริงๆ นั่นคือการรวมเนื้อหาของพจนานุกรมรหัสผ่านสองตัวเข้าด้วยกัน การใช้โหมดการโจมตีนี้จำเป็นต้องระบุพจนานุกรมรหัสผ่านสองรายการ สมมติว่าเรามีพจนานุกรมรหัสผ่านสองพจนานุกรม dict1.txt และ dict2.txt ซึ่งมีเนื้อหา:

  การล่าสัตว์ 
คิตตี้ 
  สายรุ้ง

และ

  ปารีส 
  rock

จากนั้นคำสั่ง:

  hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt

พจนานุกรมที่พยายามจริงคือ:

  huntingparis 
ฮันติงร็อค 
คิวตี้ปารีส 
คิวตี้ร็อค 
เรนโบว์ปารีส 
  rainbowrock

คำใน dict1.txt อยู่ทางซ้าย และคำใน dict2.txt อยู่ทางขวา รวมเป็น 3×2=6

พารามิเตอร์ที่เกี่ยวข้องกับโหมดนี้คือ:

  -j, --rule-left 
กฎหลัง   -k, --rule-right

-j จะดำเนินการทางด้านซ้าย และกฎหลัง -k จะดำเนินการทางด้านขวา เช่น การเพิ่มพารามิเตอร์ -j '$- ' จากนั้นพจนานุกรมที่ลองใช้จริงคือ:

  การล่าสัตว์-ปารีส 
  หินล่า 
คิตตี้-ปารีส 
  คิตตี้ร็อก 
  ฝนโบว์ปารีส 
  rain-bowrock

เพิ่มพารามิเตอร์ -j '^!', พจนานุกรมจริงที่ฉันลองคือ:

  ! การล่าสัตว์Paris 
  ! ฮันติงร็อค 
  ! คิตตี้ปารีส 
  ! คิตตี้ร็อค 
  ! เรนโบว์ปารีส 
  ! rainbowrock

เพิ่มพารามิเตอร์ -k '^>' จากนั้นพจนานุกรมจริงที่ลองคือ:

  hunting>paris 
  ล่า>หิน 
คิตตี้ ปารีส 
คิตตี้ ร็อค 
  ฝน>โบวปารีส 
  rain>bowrock

กฎนี้คืออะไร? การใช้ "$" และ "^" คล้ายกับนิพจน์ทั่วไป ดังนั้นจึงเป็นนิพจน์ทั่วไปหรือไม่? อันที่จริง ไม่ กฎของ hashcat ถูกนำไปใช้ด้วยตัวเอง ซึ่งเป็นเนื้อหาชิ้นใหญ่อีกชิ้นหนึ่ง สำหรับรายละเอียด โปรดดูที่ Rule-based Attack

3.Brute-force

เพื่อลองชุดอักขระที่กำหนด ชุดค่าผสมต่างๆ ตามวิกิอย่างเป็นทางการของ hashcat วิธีการนี้ล้าสมัยและถูกแทนที่ด้วยการโจมตีด้วยหน้ากากในทุกด้าน ดังนั้นจึงไม่มีการวิจัย

4.Mask Attack

นี่เป็นวิธีการโจมตีที่ค่อนข้างใหม่ ตัวอย่างมีดังนี้:

  hashcat -a 3 -m 0 md5.hash ? ล? ล? ล? ล? l

แม้ว่าตามตาราง "โหมดการโจมตี" -A 3 สอดคล้องกับ Brute-force แต่ในความเป็นจริง -A 3 ใช้การโจมตีแบบหน้ากาก การโจมตีด้วยหน้ากากถือได้ว่าเป็น Brute-force ขั้นสูง พารามิเตอร์

-m ใช้เพื่อระบุประเภทฟังก์ชันแฮช และค่า md5 จะถูกเก็บไว้ในไฟล์ md5.hash กุญแจสำคัญคือสตริงสุดท้าย "?l?l?l?l?l?l?l" สตริงดังกล่าวเรียกว่าหน้ากาก

หน้ากากคือสตริงที่ประกอบด้วยตัวยึดตำแหน่งหลายตัว "?l" เป็นตัวแทน โดยที่ "?" เป็นคำสำคัญที่ใช้เพื่อแก้ไข "l" ที่ตามมา "?l" รวมกันเพื่อแสดงถึงชุดอักขระ นอกเหนือจาก "?l" แล้ว ยังสามารถมี "?u", "?d", "?h", "?h", "?s", "?a" และ "?b" ซึ่งแสดงชุดอักขระดังแสดงในตารางด้านล่าง

0 – 0xff
? ชุดอักขระ
labcdefghijklmnopqrstuvwxyz
uabcdefghijklmnopqrstuvwxyz
d0123456789
H0123456789abcdef
H0123456789abcdef
s! "#$%&'()*+,-./:;<=>?@[\]^_`~{|}
a? ล? คุณ? ง? s
b

ด้วยวิธีนี้ เราจะเข้าใจว่า "?l? l?l" จริงๆ แล้วเทียบเท่ากับพจนานุกรมรหัสผ่าน:

aaaaa 
อาอาบ 
... 
zzzzz

ในทำนองเดียวกัน "?l?u?d" เทียบเท่ากับพจนานุกรมรหัสผ่าน:

  aA0 
  aA1 
  ... 
บา0 
  ... 
  zZ9

ชุดอักขระในตารางด้านบนเป็นแบบสร้างในตัวของ hashcat เรายังสามารถระบุชุดอักขระได้ด้วยตัวเอง:

  --custom-charset1=ชุดอักขระ 1 
  --custom-charset2=ชุดอักขระ 2 
  --custom-charset3=ชุดอักขระ 3 
  --custom-charset4=ชุดอักขระ 4

พารามิเตอร์ –custom-charsetN สามารถย่อเป็น -N ตัวอย่างเช่น –custom-charset1 สามารถย่อเป็น -1 ชุดอักขระที่ระบุด้วย -N จะถูกระบุในรูปแบบของตัวยึดตำแหน่ง "?N" ในหน้ากาก เช่น:

  -1 abc123 ? 1? 1? 1

เทียบเท่ากับพจนานุกรมรหัสผ่าน:

  aaa 
  aab 
  ... 
  aa3 
  ... 
  333

-N นอกเหนือจากสตริงที่แสดงถึงชุดอักขระแล้ว ยังสามารถเป็นไฟล์ที่ลงท้ายด้วย .hcchr และไฟล์จะจัดเก็บชุดอักขระ hashcat มาพร้อมกับไฟล์ .hcchr จำนวนมากในชุดอักขระ/ไดเร็กทอรีของแพ็คเกจการติดตั้ง

ชุดของอักขระที่แสดงโดยตัวยึดตำแหน่ง "??" คือ "?" เอง นอกจากนี้ เมื่อใช้อักขระที่เหลือเป็นตัวแทน อักขระเหล่านี้จะแสดงถึงตัวอักขระเอง ตัวอย่างเช่น "?lwerner?d" เทียบเท่ากับพจนานุกรมรหัสผ่าน:

  awerner0 
อาเวอร์เนอร์1 
  ... 
  zwerner9

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

สมมติว่าเรารู้ว่ารหัสผ่านของใครบางคนมีทั้งหมด 7 หลัก หลักแรกเป็นตัวพิมพ์ใหญ่ 3 หลักถัดไปเป็นตัวพิมพ์เล็ก และ 3 หลักสุดท้ายเป็นตัวเลข หากเป็นการแคร็กแบบรุนแรงแบบดั้งเดิม จะต้องใช้ชุดอักขระ A-Z, A-Z และ 0-9 รวมเป็น 62 อักขระ ต้องลองสูงสุด 62^7=3 521 614 606 208 ครั้ง ซึ่งเป็นระดับล้านล้าน เมื่อใช้หน้ากากเพื่ออธิบายรหัสผ่านนี้ มันคือ "\u\l\l\l\d\d\d" ซึ่งคำนวณได้ง่าย มีความเป็นไปได้ทั้งหมด (26^4)×(10^3)=456 976,000 ซึ่งเป็นระดับ 100 ล้าน ซึ่งน้อยกว่าวิธีก่อนหน้า 4 ลำดับ

ย้อนกลับไป แม้ว่าเราจะไม่ทราบการกระจายรหัสผ่าน แต่ก็สามารถจำลองเอฟเฟกต์ของการแคร็กแบบรุนแรงแบบดั้งเดิมได้อย่างง่ายดายโดยใช้หน้ากาก

ปัญหาตอนนี้คือ mask ได้รับการแก้ไขแล้ว มีตัวแทนกี่ตัวที่เขียนตายแล้ว เราควรทำอย่างไรหากเราไม่ทราบความยาวของรหัสผ่าน ไม่เป็นไรถ้ารหัสผ่านยาวเกินไป ถ้ารหัสผ่านของคนอื่นมีเพียง 3 หลัก และตัวแทนของเรามี 4 ตัว และเราไม่สามารถแก้มันได้ มันจะไม่สูญเสียอย่างมากหรือ? จำเป็นต้องเริ่มจาก 1 และเขียนหน้ากากทุกความยาวหรือไม่? นั่นลำบากแค่ไหน

มีวิธีแก้ปัญหาสองวิธี วิธีแรกคือใช้ไฟล์ mask เขียน mask หลายรายการในไฟล์เดียว จากนั้นระบุไฟล์นี้ในบรรทัดคำสั่ง โปรดทราบว่าไฟล์หน้ากากจะต้องลงท้ายด้วย .hcmask

ตัวอย่างเช่น เนื้อหาของ test.hcmask คือ:

  ? แอล 
  ? ล? แอล 
  ? ล? ล? แอล 
  ? ล? ล? ล? l

ใช้ไฟล์ด้วยคำสั่งต่อไปนี้:

  hashcat -m 0 -a 3  --show md5.hash test.hcmask

วิธีแก้ปัญหาอีกวิธีหนึ่งคือการเพิ่มพารามิเตอร์ –increment ซึ่งบอกให้ hashcat เริ่มจากตัวยึดตำแหน่งโดยใช้หน้ากากที่เราให้มา จากนั้นลองสองหรือสามจนกระทั่งความยาวที่เรากำหนด ตัวอย่างเช่น เราเขียนตัวแทน "abc" นี้ จากนั้นคำนวณค่า md5 ของสตริงต่อไปนี้:

  a:0cc175b9c0f1b6a831c399e269772661 
  b:92eb5ffee6ae2fec3ad71c777531578f 
  c:4a8a08f09d37b73795649038408b5f33 
  ab:187ef4436122d1cc2f40dc2b92f0eba0 
  ac:e2075474294983e013ee4dd2201c7a73 
  ba:07159c47ee1b19ae4fb9c40d480856c4 
  บีซี:5360af35bde9ebd8f01f492dc059593c 
  ca:5435c69ed3bcc5b2e4d580e393e373d3 
หมายเลขรุ่น: d0d7fdb6977b26929fb68c6083c0b439 
  abc:900150983cd24fb0d6963f7d28e17f72 
  abc:900150983cd24fb0d6963f7d28e17f72 
  bac:79ec16df80b57696a03bb364410061f3 
  bca:b64eab8ce39e013604e243089c687e4f 
  cba:3944b025c9ca7eec3154b44666ae04a0 
  cab:16ecfd64586ec6c1ab212762c2c38a90

ก่อน ":" คือสตริงดั้งเดิมที่จะคำนวณค่าแฮช และหลัง ":" คือค่า hasn ที่คำนวณได้ บันทึกเนื้อหาข้างต้นในไฟล์ md5.hash จากนั้นเรียกใช้คำสั่งต่อไปนี้:

  hashcat -m 0 -a 3 --แสดง --ชื่อผู้ใช้ md5.hash abc

การเพิ่มพารามิเตอร์ –ชื่อผู้ใช้เป็นเพราะค่าแฮชแต่ละค่าของเรามีสตริงดั้งเดิมอยู่ข้างหน้า หากเราไม่เพิ่มพารามิเตอร์นี้ hashcat จะแสดงว่าไม่พบค่าแฮชที่ถูกต้อง เมื่อเพิ่มพารามิเตอร์นี้ hashcat จะคิดว่าสตริงก่อนค่าแฮชเป็นชื่อผู้ใช้ของคู่ค่าแฮช เพื่อให้สามารถโหลดค่าแฮชได้อย่างราบรื่น

ผลลัพธ์ของการรันคือการแก้ไขแฮชเพียงแฮชเดียว:

  900150983cd24fb0d6963f7d28e17f72:abc

ตอนนี้เพิ่มพารามิเตอร์ –increment แล้วรันอีกครั้ง:

  hashcat -m 0 -a 3 --show --increment --username md5.hash abc

คราวนี้ มีการแก้ไขแฮชอีกสองแฮช:

  0cc175b9c0f1b6a831c399e269772661:a 
  187ef4436122d1cc2f40dc2b92f0eba0:ab

มองเห็นได้ –increment มีบทบาท แต่ในขณะเดียวกัน เราก็รู้ด้วยว่าด้วยพารามิเตอร์นี้ hashcat จะลองเฉพาะ A, ab และ abc ตามลำดับเท่านั้น และจะไม่จัดเรียงและรวมตัวยึดตำแหน่งตามลำดับและลองใช้ความเป็นไปได้ต่างๆ

5. การโจมตีแบบไฮบริด

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

สมมติว่าเรามีพจนานุกรม example.dict อยู่แล้ว ซึ่งมีเนื้อหาดังนี้

   สวัสดีครับ 
  werner

จากนั้นคำสั่ง:

  hashcat -m 0 -a 6 md5.hash example.dict ? ง? d

เทียบเท่ากับการใช้พจนานุกรม:

  สวัสดี00 
สวัสดี01 
  ... 
สวัสดีค่ะ99 
เวอร์เนอร์00 
เวอร์เนอร์01 
  ... 
  werener99

จากนั้นคำสั่ง:

  hashcat -m 0 -a 7 md5.hash ? ง?  dexample.dict

เทียบเท่ากับการใช้พจนานุกรม:

  00สวัสดี 
  01หวัดดี 
  ... 
  99หวัดดี 
  00เวอร์เนอร์ 
  01เวอร์เนอร์ 
  ... 
  99เวเรเนอร์

ก่อนหน้านี้:วิธีการใช้ซอฟต์แวร์แฮชแมวแฮชแฮชเพื่อระเบิดแฮชต่างๆ
ถัดไป:วิธีใช้ hashcat การแบ่งปันทางเทคนิค

บทความล่าสุด

บทความติดหนึบ

  • มุ่งเน้นไปที่ Word, Excel, PPT, PDF, RAR, ZIP, 7Z, แพ็คเกจบีบอัด, ไฟล์ที่เข้ารหัส Office ปลดล็อคและถอดรหัส
  • เรามอบการกู้คืนรหัสผ่านแพ็คเกจไฟล์ที่ถูกบีบอัดคุณภาพสูงให้กับผู้ใช้ การปลดล็อค PDF และการกู้คืนรหัสผ่าน Word
  • ลิขสิทธิ์ © ต้นแบบการกู้คืนรหัสผ่านเอกสาร แพลตฟอร์มถอดรหัสออนไลน์