วิธีค้นหาความแข็งแกร่งของรหัสผ่าน Wordpress (เก็บไว้แล้ว)


10

ฉันต้องรับผิดชอบต่อความปลอดภัยของเซิร์ฟเวอร์โฮสต์ที่ใช้ร่วมกันจำนวนมาก ส่วนใหญ่มีเว็บไซต์ WordPress เซิร์ฟเวอร์แต่ละเครื่องมีเว็บไซต์ WordPress อย่างน้อย 500 เว็บไซต์

ใน expereince ของฉันปัญหาเกี่ยวกับ WordPress เริ่มต้นด้วยรหัสผ่านที่อ่อนแอ รหัสผ่านผู้ดูแลระบบของเว็บไซต์ส่วนใหญ่นั้นอ่อนแอมากและการใช้เว็บไซต์รหัสผ่านที่อ่อนแอนั้นถูกนำไปใช้และใช้ในกิจกรรมที่เป็นอันตรายต่างๆ

ตอนนี้แผนการของฉันคือค้นหารหัสผ่านที่อ่อนแอของเว็บไซต์ WordPress และเปลี่ยนรหัสผ่านของผู้ดูแลระบบเป็นรหัสผ่านที่คาดเดายากอื่น ๆ เพื่อให้ WordPress สามารถรักษาความปลอดภัยและเซิร์ฟเวอร์ของฉันจะไม่เป็นปัญหา

วิธีการทราบถึงความแข็งแกร่งของรหัสผ่าน WordPress ที่เก็บไว้คืออะไร?

คำตอบ:


8

Bruteforce hashes

คุณสามารถแฮชที่แฮชที่เก็บไว้ในฐานข้อมูล

WordPress ใช้ phpass สำหรับการแฮ็ก ตามค่าเริ่มต้น WordPress ไม่ใช้ปลาปักเป้าหรือสิ่งที่คล้ายกัน แต่เพียง md5 ด้วยจำนวนการวนซ้ำของ 8192 หากคุณต้องการค้นหารหัสผ่านที่ไม่ดีจริงๆการ bruteforcing นั้นเป็นไปได้

แต่ฉันจะถือว่านี่เป็นการละเมิดความเชื่อมั่นที่ผู้ใช้ให้คุณดังนั้นฉันจะไม่แนะนำวิธีนี้

วิเคราะห์รหัสผ่านของพวกเขาเมื่อเข้าสู่ระบบ

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

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

ฉันจะพิจารณาว่านี่เป็นการละเมิดที่ยิ่งใหญ่กว่าการทำลายแฮชและมันยังมีข้อกังวลด้านความปลอดภัยอยู่ด้วย (หากคุณเก็บรหัสผ่านเป็นข้อความธรรมดาสิ่งนี้จะเป็นข้อกังวลอย่างชัดเจน แต่แม้ว่าจะไม่ใช่คุณอาจเก็บข้อมูลบางอย่างจาก การวิเคราะห์ที่อาจช่วยผู้โจมตี)

ใช้นโยบายรหัสผ่าน (และบังคับให้ผู้ใช้เปลี่ยนรหัสผ่าน)

คุณสามารถใช้นโยบายรหัสผ่าน เมื่อผู้ใช้ส่งรหัสผ่านใหม่คุณจะตรวจสอบว่าเป็นไปตามนโยบายของคุณหรือไม่ (โดยหลักแล้วสิ่งนี้จะเกิดขึ้นกับฝั่งเซิร์ฟเวอร์ไม่ใช่ฝั่งไคลเอ็นต์ผ่าน JavaScript)

การเขียนนโยบายรหัสผ่านที่ดีนั้นเป็นเรื่องยากดังนั้นโปรดดูนโยบายที่มีอยู่เพื่อช่วยเหลือคุณที่นี่

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

จำกัดความเสียหาย

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

คุณควรจำกัดความเสียหายเมื่อผู้โจมตีเข้าถึงการติดตั้ง WordPress ตามหลักการแล้วคุณต้องการให้มีเพียงครั้งเดียวที่ได้รับผลกระทบไม่ใช่ทั้งเซิร์ฟเวอร์ของคุณ (ดังนั้นคุณอาจกังวลเกี่ยวกับผู้โจมตีที่ใส่เนื้อหาที่ไม่เหมาะสมบนเว็บไซต์ - เช่นเดียวกับผู้ใช้ที่ถูกต้องอาจทำได้ - แต่ไม่เกี่ยวกับการใช้รหัส กิจกรรม).

นี่เป็นหัวข้อที่ค่อนข้างกว้าง แต่บางประเด็นรวมถึง: DISALLOW_FILE_EDITจำกัด การใช้ปลั๊กอิน (เนื่องจากมีการเข้ารหัสน้อยกว่าตัว WordPress อย่างปลอดภัย), ไม่อนุญาต JavaScript (เช่นกับหลายไซต์, ผู้ดูแลระบบระดับสูงเท่านั้นที่มีสิทธิ์โพสต์ JavaScript ไม่ใช่ ผู้ดูแลระบบ) ฯลฯ


4

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

จากประสบการณ์ของฉันสคริปต์สำหรับรหัสผ่านตั้งอยู่ในwww.example.com/wp-admin/js/password-strength-meter.jsและนี่คือลิงค์ไปยังมัน

คุณสามารถเปลี่ยนระดับและร้อยละของรหัสผ่านได้ที่นี่เพื่อให้คุณสามารถตั้งค่ารหัสผ่านที่ต้องบังคับเป็น 100/100

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

เป็นไปไม่ได้ที่จะทำการแกะสลักแบบย้อนกลับที่นี่และนอกจากนี้ยังมีปลั๊กอินบางอย่างที่บังคับให้ผู้ใช้รับรหัสผ่านที่คาดเดายาก


1
ดูเหมือนว่าโฮสต์เว็บและเจ้าของไซต์จะทำสิ่งต่าง ๆ ง่ายๆเพื่อปกป้องตนเอง คำถามและคำตอบที่ดีมาก! ฉันไม่แน่ใจว่าเคยพูดถึงที่นี่มาก่อน อย่างน้อยมันก็ไม่ได้รับการแก้ไขเป็นเวลานาน ไชโย !!
Closnoc

1
คำตอบข้างต้นเป็นสิ่งที่ดี แต่ก็ไม่ได้แก้ปัญหาของฉัน เว็บไซต์ WordPress ส่วนใหญ่ติดตั้งไว้แล้วหรือติดตั้ง WP ใน 100 วันในเซิร์ฟเวอร์ของฉัน สมมติว่าฉันเปลี่ยนความแข็งแกร่งของรหัสผ่านโดยใช้ password-strength-meter.js แต่ก็ไม่มีประโยชน์สำหรับฉัน Bcoz pwd ถูกตั้งค่าไว้แล้ว สิ่งนี้จะมีประโยชน์สำหรับรหัสผ่านใหม่เท่านั้นไม่ใช่สำหรับรหัสที่ตั้งค่าไว้แล้ว
มณี

1
แต่ไม่มีวิธีที่คุณสามารถค้นหารหัสผ่านทั้งหมดจากฐานข้อมูลเพราะพวกเขาถูกแฮช คุณสามารถตั้งค่านี้จากนั้นส่งให้ผู้ใช้ทุกคนเปลี่ยนรหัสผ่านเพื่อให้พวกเขาสามารถมีรหัสผ่านที่คาดเดายาก ฉันไม่เห็นวิธีอื่นใดเกี่ยวกับสิ่งนี้ ตรวจสอบคำตอบด้านล่างด้วย
Josip Ivic

2
@Josip Ivic วิธีเดียวคือรีเซ็ต pwd และแจ้งผู้ดูแลระบบตามที่คุณพูด
มณี

1
สำหรับผู้ใช้ใหม่ฉันเพียงแค่ปรับสคริปต์บน wp บนเซิร์ฟเวอร์ดังนั้นจึงจำเป็นต้องมีรหัสผ่านที่รัดกุมและสำหรับผู้ใช้เก่าฉันจะส่งอีเมลใหม่เพื่อให้พวกเขาสามารถเปลี่ยนรหัสผ่านของพวกเขาให้แข็งแกร่ง อย่างที่ฉันได้พูดไปมันไม่มีวิธีที่ง่ายในการทำสิ่งนี้ แต่ทำได้ :)
Josip Ivic

3

ข่าวดีก็คือคุณสามารถเปลี่ยนรหัสผ่านของผู้ใช้ข่าวดีก็คือคุณไม่สามารถมองเห็นพวกเขาได้
Wordpress มีประสิทธิภาพมากแม้ในฐานข้อมูลจะเก็บรหัสผ่านด้วยการเข้ารหัสทางเดียวไม่ใช่แค่แฮช md5 ที่คุณสามารถแปลงได้ แต่ไม่ใช่ข้อมูลที่เป็นอนุกรมสำหรับรหัสผ่านที่test123คุณจะได้รับเช่น$P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvnแม้ว่าคุณจะเปลี่ยนฟิลด์รหัสผ่าน ในฐานข้อมูลโดยไม่ใช้การเข้ารหัสมันจะไม่ทำงาน

วิธีเปลี่ยนรหัสผ่าน

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


ลืมพูดถึงคุณสามารถใช้ปลั๊กอินเช่น iThemes เพื่อกำหนดให้ผู้ใช้ป้อนรหัสผ่านที่แข็งแกร่งนอกจากนี้ยังอนุญาตการป้องกันกำลังดุร้ายและคุณสมบัติเยี่ยมอื่น ๆ ที่คุณอาจพบว่าคุณสนใจ
knif3r

3

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

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


นี่คือทางออกที่ต้องใช้เวลา
Josip Ivic

นี่คือสิ่งที่เรียกว่าการสร้างตารางรุ้ง
Ashfame

@Ashfame ไม่มันไม่ใช่ ตารางรุ้งเป็นวิธีที่ซับซ้อนกว่าซึ่งไม่จำเป็นต้องเหมาะสมที่สุดสำหรับสถานการณ์นี้
Tom van der Zanden

@ TomvanderZanden มันอาจไม่ใช่วิธีที่เหมาะสม แต่วิธีนี้จะไม่เป็นตารางสายรุ้ง?
Ashfame

@Afame เนื่องจากตารางสายรุ้งมีความซับซ้อนมากกว่า "การตรวจสอบรายชื่อรหัสผ่านกับฐานข้อมูลของคุณ" ตัวอย่างเช่นตาราง Rainbow ใช้ฟังก์ชันแฮชเชนและฟังก์ชันการลดขนาด โปรดทราบว่าการสร้างตารางรุ้งใช้เวลามากกว่าการตรวจสอบรหัสผ่านทั้งหมดกับฐานข้อมูลของคุณ การใช้ตารางรุ้งที่คำนวณล่วงหน้าอาจสมเหตุสมผล แต่อาจเกินความจำเป็นสำหรับสถานการณ์นี้
Tom van der Zanden

1

คุณไม่สามารถเปลี่ยนรหัสผ่านของผู้ดูแลระบบ wp ได้อย่างเด็ดขาดเว้นแต่คุณจะไม่มีการควบคุมในแต่ละฐานข้อมูลของ wordpress ซึ่งถูกเก็บไว้ใน phpmyadmin

และไม่ไม่มีวิธีที่รวดเร็วในการค้นหารหัสผ่านสัปดาห์ใน 500 เว็บไซต์ wordpress Josip พูดถึงลิงก์เดียวเพื่อความแข็งแรงของรหัสผ่านชำระเงิน แต่เว็บไซต์นั้นไม่ได้ใช้ md5 crypto algo เพื่อชำระเงินรหัสผ่านให้มีความแข็งแรง

ชำระเงินลิงค์นี้ ( Wordpress โดยใช้ MD5 ) และคุณจะเห็นผลลัพธ์ที่แตกต่างจากแอพนั้น ดังนั้นอย่างที่คุณเห็น p#aSS*Word14ไม่ปลอดภัยกว่าDance With Me Tonightดังนั้นอย่าใช้แอพของบุคคลที่สามเพื่อตรวจสอบรหัสผ่าน Wordpress ของคุณเพราะอาจเป็นเพราะพวกเขากำลังใช้อัลกอริทึมเข้ารหัสลับอื่นเพื่อตรวจสอบ / ถือว่ามีความแข็งแรงของรหัสผ่าน

นอกจากนี้คุณควรมีรหัสผ่านทั้งหมดและทดสอบทีละตัวไม่มีเคล็ดลับเวทมนต์เพื่อค้นหาอย่างรวดเร็ว

อีกสิ่งหนึ่งคือหากไซต์หนึ่งของ WordPress ถูกแฮ็กมันจะไม่ส่งผลกระทบต่อเว็บไซต์ wp อื่น ๆ ในเซิร์ฟเวอร์เดียวกัน (ยกเว้นการโจมตีของ DOS) ฉันเคยเห็นหลายคนเริ่ม wp ในโฮสติ้งที่ใช้ร่วมกันและเว็บไซต์ของพวกเขาถูกแฮ็ก แต่เว็บไซต์เพื่อนบ้านก็ยังทำงานได้ดีเพราะ wp แต่ละตัวมีฐานข้อมูลเป็นของตัวเองใน phpmyadmin


Didn't affect other WP site on same server:เหตุบังเอิญ! ขึ้นอยู่กับประเภทของการโจมตี / แฮ็คและเจตนาของแฮ็กเกอร์ / บ็อต
Ashfame

ฉันกำลังพูดเกี่ยวกับความปลอดภัยของ wordpress ไม่ใช่ความปลอดภัยระดับราก แต่ฉันแน่ใจว่าผู้ให้บริการโฮสต์ส่วนใหญ่ที่ใช้กลไก sandbox จะไม่ส่งผลกระทบต่อเว็บไซต์อื่นบนเซิร์ฟเวอร์เดียวกัน
Goyllo

1

ดังที่คำตอบก่อนหน้านี้ชี้ให้เห็น: คุณไม่สามารถอ่านรหัสผ่านที่เก็บไว้ได้

ทางเลือกอื่นอาจเป็น:

  1. ใช้คำแนะนำโดยJosip Ivicเพื่อบังคับใช้รหัสผ่านที่คาดเดายาก
  2. ลบรหัสผ่านทั้งหมด (หรือเฉพาะรหัสผ่านสำหรับผู้ใช้ที่มีสิทธิ์บางอย่าง)
  3. และสุดท้ายแจ้งผู้ใช้ที่ได้รับผลกระทบว่านโยบายรหัสผ่านใหม่มีผลบังคับใช้และนำพวกเขาไป/wp-login.php?action=lostpasswordสู่การรีเซ็ตรหัสผ่าน

1

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

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

เคล็ดลับ: WordPress ยังคงสามารถจัดการแฮชอย่างถูกต้องแม้ว่าคุณจะอัปเดต MD5 (% รหัสผ่าน%) ลงในคอลัมน์ sql

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

1) อัปเดตรหัสผ่านสำหรับผู้ดูแลระบบผู้แก้ไข แต่คุณต้องระบุว่าใครเป็นผู้ใช้ ส่งอีเมลให้พวกเขาแล้วบังคับใช้การ จำกัด รหัสผ่านในหน้ารีเซ็ตรหัสผ่าน / หน้าการลงทะเบียนเป็นต้นโปรดจำไว้ว่าบางคนสามารถมีแบบฟอร์มเหล่านั้นที่อื่นบนเว็บไซต์ (คิดว่าแบบฟอร์ม AJAX ด้วย) การสร้างคำสั่ง WP-CLI ที่ช่วยคุณในการดำเนินการตามแผนนี้แทนที่จะโหลดสภาพแวดล้อม WP และสคริปต์ที่กำลังทำงาน

2) การสร้างตารางสายรุ้งซึ่งประกอบด้วยรหัสผ่านที่แฮชสำหรับสตริงที่รู้จัก (รหัสผ่าน) จากนั้นคุณต้องจับคู่การแฮชกับรหัสผ่านของผู้ใช้และประเมินความแข็งแกร่งของรหัสผ่านนั้น การสร้างตารางเป็นขั้นตอนที่ช้าที่สุดที่นี่เนื่องจากคุณต้องแฮชรหัสผ่านที่เป็นไปได้แต่ละอันที่สามารถมีเก็บไว้ในดิสก์ (หลาย GB ขึ้นอยู่กับความยาว & การรวมกันของรหัสผ่านที่คุณกำลังบัญชี) จากนั้นดำเนินการกับผลลัพธ์ 99% มั่นใจว่าเป็นทางออกที่เกินความต้องการของคุณ

เคล็ดลับ: คุณรู้จักเกลือและความลับที่เรามีอยู่ในwp-config.phpไฟล์ การเปลี่ยนแปลงจะทำให้การเข้าสู่ระบบเป็นโมฆะในกรณีที่คุณต้องการ


1

พยายามบังคับให้มันดุร้ายโดยใช้การโจมตีในพจนานุกรม

เป็นวิธีที่ดีกว่าในการประเมินความแข็งแกร่งของรหัสผ่านของคุณ? :-) ใช่ฉันรู้แล้วมันต้องใช้เวลาพอสมควร ...

มิฉะนั้นคุณสามารถสันนิษฐานได้ว่ารหัสผ่านทั้งหมดนั้นอ่อนแอ (ฉันว่านั่นเป็นข้อสันนิษฐานที่แม่นยำมาก ) และสร้างรหัสผ่านของคุณเองเก็บแฮชในฐานข้อมูลและให้รหัสผ่านแบบข้อความธรรมดาแก่ผู้ดูแลระบบโดยใช้ "ความปลอดภัย" ช่อง

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.