Hạn chế Local Attack với WordPress

Local Attack là gì?

  • Là phương pháp dùng để tấn công 1 website nào đó trên cùng một server. Công cụ của việc tấn công này là dùng các đoạn mã khai thác được viết bằng một số phương pháp lập trình như: PHP, ASP.net, Python… Các đoạn mã này được gọi là Shell. Shell được hiểu như một phần mềm cung cấp cho người dùng giao diện để làm việc với phần nhân kernel của hệ điều hành.
  • Khi Local Attack chiếm được quyền điều khiển một website nằm trên hosting và sử dụng nó làm bàn đạp để tấn công các website khác cùng server. Hacker có thể lợi dụng lỗ hổng của site để upload shell lên hosting.

Các bước tấn công Local Attack

  • Xác định mục tiêu: Dựa vào các công cụ reverse IP để list ra các site cùng trên một server.
  • Chiếm được quyền điều khiển một website cùng server mục tiêu.
  • Thu thập thông tin về mục tiêu: Sau khi up webshell lên hosting hacker sẽ dò tìm, thu thập tất cả các thông tin đường dẫn, phân quyền về các user khác trên server hiện tại.
  • Tấn công trực tiếp mục tiêu: Sau khi có thông tin về đường dẫn, cấu trúc và lợi dụng các lỗ hổng mã nguồn tương tự để tiếp tục chèn shell vào sử dụng như backdoor cho các lần tấn công tiếp theo.

Hạn chế tấn công Local Attack trong WordPress 

  • Thay đổi database prefix: Mặc định tiền tố database của WordPress sẽ là wp_ . Nếu bạn không đổi tiền tố này sẽ làm cho hacker biết rõ tên của từng table của website.
  • File wp-config.php: Thông thường với dịch vụ hosting các file đều nằm trong thư mục public_html và đường dẫn mặc định là /home/username/public_html/wp-config.php. Vì vậy việc giấu file wp-config là cần thiết và bạn nên chuyển file wp-config ra khỏi thư mục public_html để chuyển vào 1 thư mục bất kỳ.
  • Chặn sửa file trong wp-admin: Thêm vào file wp-config.php đoạn mã sau vào cuối file:
    define( ‘DISALLOW_FILE_EDIT’, true );
  • Đổi security key: Truy cập vào file wp-config.php tìm:
    define(‘AUTH_KEY’, ‘put your unique phrase here’);
    define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
    define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
    define(‘NONCE_KEY’, ‘put your unique phrase here’);
    define(‘AUTH_SALT’, ‘put your unique phrase here’);
    define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
    define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
    define(‘NONCE_SALT’, ‘put your unique phrase here’);

    Vào trang  https://api.WordPress.org/secret-key/1.1/salt/ để lấy secret-key
    thay toàn bộ đoạn code trên bằng đoạn code được cung cấp.
  • Chặn cài đặt plugins, theme: Thêm file wp-config.php đoạn mã sau:
    define(‘DISALLOW_FILE_MODS’,true);
  • Phân quyền file wp-config: Thay đổi lại Permission 400 hoặc 444 hoặc nhờ người quản trị hosting thay đổi thuộc tính không cho sửa file này. Khi cần thì yêu cầu người quản trị bỏ thuộc tính readonly
  • Bảo mật wp-config.php với .htaccess: Thêm đoạn code sau vào cuối file .htaccess
    # protect wpconfig.php
    <files wp-config.php>
    order allow,deny
    deny from all
    </files>
  • Bảo vệ thư mục wp-content: Tạo file .htaccess và thêm đoạn code sau:
    Order deny,allow
    Deny from all
    <Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
    Allow from all
    </Files>

    Lưu ý: nếu trong thư mục wp-content có chưa các file khác liên quan đến mã nguồn WordPress thì  cần thêm phần mở rộng (phần đuôi ví dụ woff) vào danh sách trên.
  • Giới hạn truy cập wp-admin: Thư mục wp-admin và file wp-login.php luôn là điểm tấn công nếu một ai đó muốn truy cập vào website của bạn. Do đó, tốt hơn hết là chặn hết tất cả lượt truy cập vào hai khu vực này, trừ bạn ra.
    Tạo một file .htaccess trong thư mục wp-admin và chèn đoạn sau vào.
    <FilesMatch “.*”>
    Order Deny,Allow
    Deny from all
    Allow from [your-ip]
    </FilesMatch>

    Trong đó  [your-ip] là địa chỉ IP từ thiết bị mà bạn muốn truy cập vào wp-admin
  • Sử dụng các gói hosting tại Onedata để các kỹ thuật viên hạn chế việc hacker tấn công vào hosting của bạn.

Cám ơn các bạn đã tham khảo.

Was this article helpful?

Related Articles