Làm thế nào để tìm ra sức mạnh của mật khẩu Wordpress (đã được lưu trữ)?


10

Tôi chịu trách nhiệm bảo mật cho rất nhiều máy chủ lưu trữ được chia sẻ. Hầu hết trong số họ đang có các trang web WordPress. Mỗi máy chủ đang có ít nhất 500 trang web WordPress.

Trong phần mở rộng của tôi, vấn đề với WordPress bắt đầu với mật khẩu yếu. Hầu hết mật khẩu quản trị trang web rất yếu và sử dụng trang web mật khẩu yếu được khai thác và sử dụng cho các hoạt động độc hại khác nhau.

Bây giờ kế hoạch của tôi là tìm ra mật khẩu yếu của trang web WordPress và mạnh mẽ thay đổi mật khẩu quản trị viên thành một số mật khẩu mạnh khác. Vì vậy, WordPress có thể được bảo mật và máy chủ của tôi sẽ không gặp rắc rối.

Cách để biết sức mạnh của mật khẩu WordPress được lưu trữ là gì?

Câu trả lời:


8

Băm Bruteforce

Bạn có thể bruteforce băm được lưu trữ trong cơ sở dữ liệu.

WordPress sử dụng phpass để băm. Theo mặc định, WordPress không sử dụng blowfish hoặc tương tự, nhưng chỉ md5 với số lần lặp là 8192. Nếu bạn chỉ muốn tìm mật khẩu thực sự xấu, bruteforcing chắc chắn là khả thi.

Nhưng tôi sẽ coi đây là một sự vi phạm khá lớn đối với niềm tin mà người dùng dành cho bạn, vì vậy tôi sẽ không đề xuất phương pháp này.

Phân tích mật khẩu của họ khi đăng nhập

Bạn có thể thêm một tập lệnh chặn tất cả các yêu cầu vào tập lệnh đăng nhập WordPress và ghi nhật ký hoặc phân tích mật khẩu, vì chúng ở trong bản rõ tại thời điểm đó.

Tất nhiên, điều này chỉ bắt được mật khẩu yếu khi người dùng thực sự đăng nhập. Nếu họ đã từ bỏ trang web của họ hoặc không hoạt động, có thể bạn sẽ mất một lúc để phát hiện ra rằng họ sử dụng mật khẩu yếu.

Tôi sẽ coi đây là một sự vi phạm thậm chí còn lớn hơn cả việc bẻ khóa băm và nó cũng mang một số lo ngại về bảo mật với nó (nếu bạn lưu trữ mật khẩu trong bản rõ, điều này rõ ràng sẽ là một mối lo ngại, nhưng ngay cả khi không, bạn có thể vô tình lưu trữ một số thông tin từ các phân tích có thể giúp một kẻ tấn công).

Thực hiện Chính sách mật khẩu (và buộc người dùng thay đổi mật khẩu của họ)

Bạn có thể thực hiện một chính sách mật khẩu. Khi người dùng gửi mật khẩu mới, bạn sẽ kiểm tra xem nó có tuân thủ chính sách của bạn hay không (lý tưởng nhất là điều này sẽ xảy ra ở phía máy chủ, không phải phía máy khách thông qua JavaScript).

Viết một chính sách mật khẩu tốt là khó khăn, vì vậy hãy xem các chính sách hiện có để giúp bạn ở đây.

Tất nhiên, mật khẩu cũ không bị ảnh hưởng bởi chính sách, vì vậy bạn cần buộc người dùng thay đổi mật khẩu cũ để tuân thủ chính sách

Hạn chế thiệt hại

Thực thi mật khẩu mạnh chắc chắn có thể là một ý tưởng hay, nhưng lý tưởng nhất là một ví dụ WordPress bị hack không thực sự ảnh hưởng đến bạn với tư cách là quản trị trang web.

Bạn nên hạn chế thiệt hại khi kẻ tấn công đã có quyền truy cập vào bản cài đặt WordPress. Lý tưởng nhất là bạn chỉ muốn một trường hợp đó bị ảnh hưởng chứ không phải toàn bộ máy chủ của bạn (vì vậy bạn có thể lo lắng về việc kẻ tấn công đưa nội dung không đứng đắn lên trang web - giống như người dùng hợp lệ có thể làm - nhưng không phải về thực thi mã hoặc độc hại khác Hoạt động).

Đây là một chủ đề khá rộng, nhưng một số điểm bao gồm : DISALLOW_FILE_EDIT, hạn chế sử dụng plugin (vì chúng được mã hóa kém an toàn hơn nhiều so với chính WordPress), không cho phép JavaScript (ví dụ với nhiều trang, chỉ có siêu quản trị viên mới có quyền đăng JavaScript, không quản trị viên), v.v.


4

Tôi không chắc chắn rằng điều này thậm chí có thể. Khi bạn chọn mật khẩu, nó được lưu trữ băm trong cơ sở dữ liệu. Không có tham gia ngược lại khi nói đến thuật toán băm.

Theo kinh nghiệm của tôi, tập lệnh cho mật khẩu được đặt ở đâywww.example.com/wp-admin/js/password-strength-meter.jsđây là liên kết đến nó.

Bạn có thể thay đổi cấp độ và tỷ lệ phần trăm cho mật khẩu tại đây, vì vậy bạn có thể đặt mật khẩu bắt buộc là 100/100.

Và, nếu bạn muốn khách hàng của mình kiểm tra mật khẩu mạnh, có ứng dụng dễ thương có thể cung cấp cho bạn mật khẩu mạnh ở đây.

Không thể thực hiện một số thao tác ngược ở đây và ngoài ra, có rất ít plugin buộc người dùng phải lấy mật khẩu mạnh.


1
Điều này có vẻ như là một điều đơn giản mà không có máy chủ web và chủ sở hữu trang web có thể làm để giúp bảo vệ chính họ. Câu hỏi và câu trả lời rất hay! Tôi không chắc chắn nó đã từng được giải quyết ở đây trước đây. Nó ít nhất đã không được giải quyết trong một thời gian dài. Chúc mừng !!
Closnoc

1
Câu trả lời trên là tốt, nhưng nó không giải quyết được vấn đề của tôi. Hầu hết các trang web WordPress đã được cài đặt hoặc trong một ngày 100 cài đặt WP đang diễn ra trong máy chủ của tôi. Giả sử tôi thay đổi độ mạnh của mật khẩu bằng mật khẩu-strong-mét.js, vẫn không hữu ích với tôi. Bcoz, pwd đã được thiết lập. Điều này sẽ chỉ hữu ích cho passwd mới, không phải cho cái đã được đặt.
Mani

1
Nhưng, không có cách nào bạn có thể tìm ra tất cả mật khẩu từ cơ sở dữ liệu vì chúng được băm. Bạn có thể đặt điều này và sau đó gửi lại cho tất cả người dùng để thay đổi mật khẩu của họ để họ có thể có mật khẩu mạnh. Tôi không thấy cách nào khác xung quanh điều này. Kiểm tra các câu trả lời dưới đây quá.
Josip Ivic

2
@Josip Ivic, cách duy nhất là thiết lập lại pwd và thông báo cho quản trị viên như bạn đã nói.
Mani

1
Đối với người dùng mới, tôi chỉ cần điều chỉnh tập lệnh trên wp trên máy chủ để bắt buộc phải có mật khẩu mạnh và đối với người dùng cũ, tôi sẽ gửi lại thư cho họ để họ có thể thay đổi mật khẩu thành mật khẩu mạnh. Như tôi đã nói, không có cách nào dễ dàng để làm điều này, nhưng nó có thể thực hiện được. :)
Josip Ivic

3

Tin tốt là bạn có thể thay đổi mật khẩu người dùng, tin xấu là bạn không thể nhìn thấy chúng.
Wordpress mạnh mẽ đến mức ngay cả trong cơ sở dữ liệu, nó lưu mật khẩu bằng mã hóa một chiều, nó không chỉ là hàm băm md5 mà bạn có thể chuyển đổi, nó thậm chí không phải là dữ liệu tuần tự, đối với mật khẩu test123bạn sẽ nhận được như thế $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn, ngay cả khi bạn thay đổi trường mật khẩu trong cơ sở dữ liệu mà không sử dụng mã hóa, nó sẽ không hoạt động.

Cách đổi mật khẩu

Tôi tin rằng bạn biết điều này nhưng tôi sẽ để nó ở đây. Bạn có thể nhập bảng điều khiển wordpress của mình với các đặc quyền quản trị viên, đi đến người dùng, tìm người dùng và phần này không tốt cho mục đích của bạn vì bạn phải nhấp vào để tạo mật khẩu mới, nó sẽ cung cấp cho bạn một số ký tự và ký hiệu ngẫu nhiên và bạn có thể chỉnh sửa nó bằng chính bạn nhưng thậm chí sau đó bạn không thể nhìn thấy mật khẩu.


Quên đề cập đến việc bạn có thể sử dụng một plugin như iTheme để yêu cầu người dùng nhập mật khẩu mạnh, cũng cho phép bảo vệ lực lượng vũ phu và các tính năng thú vị khác mà bạn có thể thấy mình quan tâm.
knif3r 22/2/2016

3

Khi mật khẩu được băm, cách duy nhất để kiểm tra bảo mật của họ là vũ phu ép buộc họ. Tập hợp danh sách các mật khẩu yếu, thường được sử dụng và kiểm tra chúng chống lại các giá trị băm được lưu trữ trong cơ sở dữ liệu của bạn.

Trừ khi bạn sử dụng một danh sách mật khẩu rất đầy đủ, điều này sẽ không nắm bắt được tất cả các mật khẩu yếu, nhưng nó sẽ lọc ra những điểm yếu nhất trong số đó.


Đây là giải pháp đòi hỏi rất nhiều thời gian.
Josip Ivic

Đây là những gì được gọi là xây dựng một bảng cầu vồng.
Ashfame 22/2/2016

@Ashfame Không, không phải vậy. Một bảng cầu vồng là một cách tiếp cận phức tạp hơn nhiều mà không nhất thiết phải phù hợp nhất cho kịch bản này.
Tom van der Zanden

@TomvanderZanden Nó có thể không phải là một cách tiếp cận phù hợp, nhưng làm thế nào đây sẽ không phải là một bàn cầu vồng?
Ashfame 22/2/2016

@Ashfame Bởi vì các bảng cầu vồng phức tạp hơn nhiều so với "kiểm tra danh sách mật khẩu đối với cơ sở dữ liệu của bạn". Ví dụ, bảng Rainbow sử dụng chuỗi băm và hàm khử. Cũng lưu ý rằng việc xây dựng bảng cầu vồng mất nhiều thời gian hơn là chỉ kiểm tra tất cả mật khẩu đối với cơ sở dữ liệu của bạn. Sử dụng bảng cầu vồng được tính toán trước có thể có ý nghĩa, nhưng nó có thể là quá mức cần thiết cho tình huống này.
Tom van der Zanden

1

Bạn không thể mạnh mẽ thay đổi mật khẩu quản trị viên wp, trừ khi bạn không có quyền kiểm soát trong mỗi cơ sở dữ liệu wordpress, được lưu trữ trong phpmyadmin.

Và không, không có cách nào nhanh chóng để tìm ra mật khẩu tuần trên trang web 500 wordpress. Josip đề cập đến một liên kết để kiểm tra cường độ mật khẩu, nhưng trang web đó đã không sử dụng md5 crypto algo để kiểm tra cường độ mật khẩu.

Kiểm tra Liên kết SO này , ( Wordpress sử dụng MD5 ) và bạn sẽ thấy đầu ra khác với ứng dụng đó. Vì vậy, như bạn thấy p#aSS*Word14không an toàn hơn Dance With Me TonightVì vậy, đừng sử dụng ứng dụng bên thứ ba để kiểm tra mật khẩu Wordpress của bạn, bởi vì có thể họ đang sử dụng một thuật toán mật mã khác để kiểm tra / giả sử cường độ mật khẩu.

Ngoài ra, bạn nên có tất cả các mật khẩu, và kiểm tra từng mật khẩu một, không có bất kỳ trò ảo thuật nào để tìm ra nhanh chóng.

Một điều nữa là, nếu một trang web WordPress bị hack thì nó không ảnh hưởng đến trang wp khác trong cùng một máy chủ (Ngoại trừ tấn công DOS). Tôi đã thấy nhiều người bắt đầu wp trong chia sẻ lưu trữ và trang web của họ đang bị hack, nhưng trang web hàng xóm của họ vẫn hoạt động tốt, bởi vì mỗi wp đều có cơ sở dữ liệu riêng trên phpmyadmin.


Didn't affect other WP site on same server:Sự trùng hợp! Phụ thuộc vào loại tấn công / hack & ý định của hacker / bot.
Ashfame

Tôi đang nói về bảo mật wordpress, không phải là bảo mật cấp gốc. Nhưng tôi chắc chắn, hầu hết tất cả các nhà cung cấp dịch vụ lưu trữ sử dụng cơ chế hộp cát để không ảnh hưởng đến trang web khác trên cùng một máy chủ.
Goyllo

1

Như các câu trả lời trước đã chỉ ra: bạn không thể đọc mật khẩu được lưu trữ.

Một giải pháp thay thế có thể là:

  1. Thực hiện đề xuất của Josip Ivic để thực thi mật khẩu mạnh.
  2. Xóa tất cả mật khẩu (hoặc chỉ mật khẩu cho người dùng với các đặc quyền nhất định).
  3. Và cuối cùng, thông báo cho người dùng bị ảnh hưởng rằng chính sách mật khẩu mới có hiệu lực và hướng dẫn họ /wp-login.php?action=lostpasswordđặt lại mật khẩu.

1

Mật khẩu WordPress được băm, giống như bất kỳ ứng dụng hợp lý nào khi lưu trữ mật khẩu vì lưu trữ mật khẩu văn bản rõ ràng rất không an toàn vì người dùng của bạn có thể có cùng mật khẩu cho các dịch vụ khác mà họ sử dụng (nghĩ là gmail?).

Không thể chuyển đổi hàm băm trở lại mật khẩu, người khác cũng có thể lưu trữ chúng trong văn bản rõ ràng. Mật khẩu trước đây được sử dụng để băm MD5nhưng điều đó được chứng minh là không an toàn bởi một nhóm bảo mật, vì vậy thuật toán băm đã được cập nhật phpass.

Mẹo: WordPress vẫn có thể quản lý để băm chính xác ngay cả khi bạn cập nhật MD5 (% password%) vào cột sql.

Bây giờ cách thực tế để tiếp cận những gì bạn đang cố gắng làm cho một trang web là thực sự buộc thay đổi mật khẩu bằng cách thay đổi cột thành một thứ khác và thực thi các yêu cầu về độ mạnh mật khẩu tại trang nơi họ sẽ cập nhật mật khẩu. Nhưng trường hợp sử dụng của bạn yêu cầu thực hiện việc này trên rất nhiều cài đặt WP và những chủ sở hữu trang web đó có thể không đánh giá cao bạn làm điều này mà không có sự đồng ý của họ. Vì vậy, bạn chắc chắn phải giới hạn phạm vi tác động của hành động của mình.

1) Chỉ cập nhật mật khẩu cho quản trị viên, biên tập viên, nhưng bạn yêu cầu bạn phải tìm ra những người dùng đó là ai. Gửi email cho họ và sau đó thực thi hạn chế mật khẩu trên trang đặt lại mật khẩu / trang đăng ký, v.v ... Hãy nhớ rằng ai đó có thể có các biểu mẫu đó ở nơi khác trên trang web (cũng nghĩ các biểu mẫu AJAX). Tạo lệnh WP-CLI, người giúp bạn thực hiện kế hoạch này, thay vì tải môi trường WP và chạy tập lệnh.

2) Tạo bảng cầu vồng bao gồm mật khẩu băm cho một chuỗi (mật khẩu) đã biết. Và về cơ bản, bạn phải khớp băm với mật khẩu của một người dùng cụ thể và đánh giá độ mạnh của mật khẩu đó. Tạo bảng là bước chậm nhất ở đây vì bạn phải băm từng mật khẩu có thể có, lưu trữ trên đĩa (vài GB tùy thuộc vào độ dài và kết hợp mật khẩu bạn đang tính) và sau đó hành động theo kết quả. 99% chắc chắn rằng đó là một giải pháp quá mức cho nhu cầu của bạn.

Mẹo: Bạn biết những muối và bí mật chúng tôi có trong wp-config.phphồ sơ. Thay đổi chúng không hợp lệ đăng nhập phiên, chỉ trong trường hợp bạn cần điều đó.


1

Cố gắng vũ phu nó bằng cách sử dụng một cuộc tấn công từ điển

Cách nào tốt hơn để đánh giá sức mạnh của mật khẩu của bạn? :-) Vâng, tôi biết, sẽ mất một chút thời gian ...

Mặt khác, bạn chỉ có thể giả sử tất cả các mật khẩu đều yếu (tôi cho rằng đó sẽ là một giả định rất chính xác ) và tự tạo mật khẩu, lưu trữ băm trong cơ sở dữ liệu và cung cấp mật khẩu văn bản đơn giản cho quản trị viên bằng cách sử dụng "an toàn" kênh

Mặt khác, giả sử lại tất cả các mật khẩu yếu và buộc các quản trị viên thay đổi chúng, và sử dụng trình xác nhận độ mạnh mật khẩu rất kén chọn trên chính trang web.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.