Trường
30-06-2009, 11:36 PM
Chào các bạn !
Mấy ngày hôm nay diễn đàn của bạn mình bị local nặng nề quá, 3 lần deface trong vòng 2 ngày, vô tình thấy trên google nhiều diễn đàn khác cũng bị tình trạng tương tự => nên mình nhận thấy việc bảo mật là rất cần thiết khi quản lý diễn đàn của bạn.
Không có gì là tuyệt đối cả, nhưng viết bài này hi vọng các bạn đỡ vất vả hơn khi gặp mấy thằng hacker 1/2. Tham khảo ý kiến của cả người bảo mật trong ct hosting lẫn hacker.
I/ Phòng ngự
Phòng hơn chống đúng ko :D ? Đừng có chủ quan là diễn đàn của các bạn nhỏ, mới thành lập nên attacker ko thích dòm ngó => ko bảo mật.
Đơn giản vì h pro thì ít còn 1/2 thì nhiều. Nhiều chú mới biết tí ti về hack đã phấn khởi đi phá khắp biên giới (để lại tên, tuổi, sdt =)) )....vậy chắc các bạn đủ hiểu, bắt đầu nhé
1. Mã hóa file config.php, rename và chuyển ra chỗ khác.
Mã hóa: nói từ này hơi trừu tượng, những bạn mới làm quen với php chắc khó hiểu. Đơn giản là các bạn chỉ cần download file này về máy sau đó dùng soft Zend Guard zend nó lại là xong.
Chi tiết như sau:
- Tải Zend Guard tại đây:http://www.mediafire.com/?jmxmjelnmmz (vừa up xong, nóng hổi)
- Unrar và setup
- Cài đặt xong bạn right click vào giao diện chính của nó chọn Add Files (hoặc bấm Ctrl +F ), sau khi thêm file cần zend bạn chọn đầu ra của file mới ở Target folder, cuối cùng bấm Encode để bắt đầu mã hóa....xong.
- Sửa tên file và thay đường dẫn: Mục đích attacker muốn sờ đến file này vì muốn lấy thông tin database của bạn.
Ví dụ:
domain/forum/includes/config.php
Khi có shell, attacker chỉ cần run đg dẫn trên là xong.
Các bạn giấu config sẽ làm attacker khó khăn thêm 1 chút.
Sau khi sửa tên và chuyển file config ra chỗ khác, các bạn vào sửa class_core.php trong thư mục includes.
Find & relace all
/includes/config.php
Thành
/new path/newconfig.php
Sửa cho đúng với với đường dẫn của bạn chứ ko phải sửa như mình đâu :D
Câu hỏi đặt ra là path của config mới đc đặt trong class_core.php, attacker chỉ cần view file này là biết ngay config đặt chỗ nào. Mình đã thử mã hóa class_core.php nhưng kết quả là diễn đàn trắng bóc. cho nên việc làm này thực sự có hiệu quả nếu bạn di chuyển config.php ra ngoài public_html.
Hoặc tạo file .htaccess đặt trong includes với nội dung như sau:
<Files "class_core.php">
Order Allow,Deny
Deny from All
</Files>
2. Chmod thật kỹ tất cả các thư mục và files trong source
- Chmod tất cả các files thành 404.
- Chmod tất cả các folder thành 101.
- Chmod luôn public_html thành 101.
Việc này ko khó nhưng mất khá nhiều thời gian, các bạn chịu khó vậy :)
Khi nào dùng đến host hoặc muốn sửa files bạn chmod lại folder thành 775 hoặc 777. Dùng xong đừng quên chmod lại thành 101...Cẩn tắc vô áy náy :D
3. Tất cả các công cụ dùng để backup/restore data như mysqldumper, bigdump... sau khi dùng xong lập tức rename hoặc remove khỏi host
Nếu bạn giữ nguyên tên các dụng cụ kia trên host, một khi bị phát hiện thì bất cứ ai cũng có thể làm database của bạn biến mất trong nháy mắt. Chắc các bạn cũng biết có không ít người ae chết oan vì tội "quên" :D
4. Rename thư mục admincp trên diễn đàn.
Nếu nó chiếm đc admincp của bạn thì chưa nói đến chuyện nó đưa shell lên quá dễ dàng qua temp hoặc plugins chỉ cần nó nghịch lung tung đã đau đầu rồi.
Còn nhiều chuyện ko thể ngờ ví dụ như vô tình để Remember tại trình duyệt FF ở tiệm net thì forum của bạn die là cái chắc :D
Cẩn thận hơn nữa thì đặt luôn tường lửa cho an toàn :2T-bunny-(10):
5. Dự phòng
- Backup data ít nhất 1 tuần/lần, cất kĩ trong máy :D
- Download source về cất trong máy ít nhất 1 tháng/lần
- Change pass admin ít nhất 1 tháng/lần
Ko cái gì thừa đâu, khi xảy ra bất kì sự cố gì cũng ko cần lo lắng.
------- Phòng như vậy đủ rồi, pro thực thụ thì phòng nữa cũng vẫn die, còn 1/2 thì :2T-bunny-(18): -----------
II/ Khắc phục diễn đàn khi đã bị attacker phá hoại.
1. Về source
các bạn nên thay một bộ source sạch để chạy cho an toàn. Còn nếu tiếc bộ cũ thì hãy kiểm tra từng file 1 =)).
2. Về database
- Nếu diễn đàn vừa bị hack, bạn vào thử thì thấy "Database Error" thì...bị drop rồi. :2T-bunny-(16):
Cách duy nhất là dùng file backup mới nhất thôi.
- Nếu vào web thấy hiệu là toàn trang trắng bóc, có mấy dòng hacker by thằng này, thằng nọ...., kiểm tra file index.php trên forum ko thấy gì bất thường thì cứ thở phào 1 cái đi đã :D. Đây là dấu hiệu attacker chỉ "phá" chứ ko "del" nên bạn có thể phục hồi đến hơn 90% dữ liệu.
Bước 1 : backup data về, nhưng chia ra database ra làm 3 phần
Phần 1 gồm 3 table : style, template, templatehistory
Phần 2 gồm 4 table: plugin, product, productcode, productdependency
Phần 3: gồm những table còn lại.
Nếu data của các bạn quá lớn thì có thể chia nhỏ phần 3 ra.
Bước 2 : Kiểm tra database
Bạn mở từng phần ra sau đó Ctrl + F và gõ từ khóa là
eval(base64_decode
Trong database sạch ko có đoạn này đâu, nên nếu bạn phát hiện ra đoạn này (đằng sau còn một chuỗi kí tự) tức là trong phần data đó chắc chắn có backdoor. Đó là cấu trúc của file php đã được mã hóa.
Bạn hãy xóa hết bắt đầu từ
'{${eval(base64_decode
http://truongton.net/forum/imagehosting/961834a4a34c12c64b.gif
...Và kết thúc ở , tiếp theo
http://truongton.net/forum/imagehosting/961834a4a34fe963a4.gif
Nhớ tìm kĩ xóa sạch nha :D
Tiếp tục đặt ra một câu hỏi, bởi vì nói thì dễ làm tương đối khó. Sửa file sql nếu sửa nhầm một dấu chấm phẩy thôi cũng làm bạn ko thể nào restore lại hoặc nếu có đc cũng làm truy vấn lỗi. Theo kinh nghiệm của mình thì nếu kiểm tra thấy shell trong "phần 3" của database thì các bạn mới sử dụng cách này (đơn giản vì chẳng còn cách nào khác :D)
Còn nếu phát hiện shell ở plugins hoặc style (phần 1 + 2) thì các bạn nên bỏ đi, sau đó lấy 2 phần ở mấy file backup cũ đắp vào database đang dùng (chưa backup data lần nào thì mình chịu :D)
Bước 3: Chạy thử
Sau khi ok hết thì bạn tạo 1 database mới, đắp tất cả dữ liệu vào database đó và cho diễn đàn chạy thử. (Đừng chạy thử bằng source cũ và database cũ kẻo đang làm thì nó lại phá)
Nếu ok thì thực hiện bảo mật lại diễn đàn như phần một la mã trên kia.
Phù, dài tập quá, lâu lắm mới làm bài dài vậy :D
Chúc các bạn thành công (....và tự chúc mình thành công :( )
Mấy ngày hôm nay diễn đàn của bạn mình bị local nặng nề quá, 3 lần deface trong vòng 2 ngày, vô tình thấy trên google nhiều diễn đàn khác cũng bị tình trạng tương tự => nên mình nhận thấy việc bảo mật là rất cần thiết khi quản lý diễn đàn của bạn.
Không có gì là tuyệt đối cả, nhưng viết bài này hi vọng các bạn đỡ vất vả hơn khi gặp mấy thằng hacker 1/2. Tham khảo ý kiến của cả người bảo mật trong ct hosting lẫn hacker.
I/ Phòng ngự
Phòng hơn chống đúng ko :D ? Đừng có chủ quan là diễn đàn của các bạn nhỏ, mới thành lập nên attacker ko thích dòm ngó => ko bảo mật.
Đơn giản vì h pro thì ít còn 1/2 thì nhiều. Nhiều chú mới biết tí ti về hack đã phấn khởi đi phá khắp biên giới (để lại tên, tuổi, sdt =)) )....vậy chắc các bạn đủ hiểu, bắt đầu nhé
1. Mã hóa file config.php, rename và chuyển ra chỗ khác.
Mã hóa: nói từ này hơi trừu tượng, những bạn mới làm quen với php chắc khó hiểu. Đơn giản là các bạn chỉ cần download file này về máy sau đó dùng soft Zend Guard zend nó lại là xong.
Chi tiết như sau:
- Tải Zend Guard tại đây:http://www.mediafire.com/?jmxmjelnmmz (vừa up xong, nóng hổi)
- Unrar và setup
- Cài đặt xong bạn right click vào giao diện chính của nó chọn Add Files (hoặc bấm Ctrl +F ), sau khi thêm file cần zend bạn chọn đầu ra của file mới ở Target folder, cuối cùng bấm Encode để bắt đầu mã hóa....xong.
- Sửa tên file và thay đường dẫn: Mục đích attacker muốn sờ đến file này vì muốn lấy thông tin database của bạn.
Ví dụ:
domain/forum/includes/config.php
Khi có shell, attacker chỉ cần run đg dẫn trên là xong.
Các bạn giấu config sẽ làm attacker khó khăn thêm 1 chút.
Sau khi sửa tên và chuyển file config ra chỗ khác, các bạn vào sửa class_core.php trong thư mục includes.
Find & relace all
/includes/config.php
Thành
/new path/newconfig.php
Sửa cho đúng với với đường dẫn của bạn chứ ko phải sửa như mình đâu :D
Câu hỏi đặt ra là path của config mới đc đặt trong class_core.php, attacker chỉ cần view file này là biết ngay config đặt chỗ nào. Mình đã thử mã hóa class_core.php nhưng kết quả là diễn đàn trắng bóc. cho nên việc làm này thực sự có hiệu quả nếu bạn di chuyển config.php ra ngoài public_html.
Hoặc tạo file .htaccess đặt trong includes với nội dung như sau:
<Files "class_core.php">
Order Allow,Deny
Deny from All
</Files>
2. Chmod thật kỹ tất cả các thư mục và files trong source
- Chmod tất cả các files thành 404.
- Chmod tất cả các folder thành 101.
- Chmod luôn public_html thành 101.
Việc này ko khó nhưng mất khá nhiều thời gian, các bạn chịu khó vậy :)
Khi nào dùng đến host hoặc muốn sửa files bạn chmod lại folder thành 775 hoặc 777. Dùng xong đừng quên chmod lại thành 101...Cẩn tắc vô áy náy :D
3. Tất cả các công cụ dùng để backup/restore data như mysqldumper, bigdump... sau khi dùng xong lập tức rename hoặc remove khỏi host
Nếu bạn giữ nguyên tên các dụng cụ kia trên host, một khi bị phát hiện thì bất cứ ai cũng có thể làm database của bạn biến mất trong nháy mắt. Chắc các bạn cũng biết có không ít người ae chết oan vì tội "quên" :D
4. Rename thư mục admincp trên diễn đàn.
Nếu nó chiếm đc admincp của bạn thì chưa nói đến chuyện nó đưa shell lên quá dễ dàng qua temp hoặc plugins chỉ cần nó nghịch lung tung đã đau đầu rồi.
Còn nhiều chuyện ko thể ngờ ví dụ như vô tình để Remember tại trình duyệt FF ở tiệm net thì forum của bạn die là cái chắc :D
Cẩn thận hơn nữa thì đặt luôn tường lửa cho an toàn :2T-bunny-(10):
5. Dự phòng
- Backup data ít nhất 1 tuần/lần, cất kĩ trong máy :D
- Download source về cất trong máy ít nhất 1 tháng/lần
- Change pass admin ít nhất 1 tháng/lần
Ko cái gì thừa đâu, khi xảy ra bất kì sự cố gì cũng ko cần lo lắng.
------- Phòng như vậy đủ rồi, pro thực thụ thì phòng nữa cũng vẫn die, còn 1/2 thì :2T-bunny-(18): -----------
II/ Khắc phục diễn đàn khi đã bị attacker phá hoại.
1. Về source
các bạn nên thay một bộ source sạch để chạy cho an toàn. Còn nếu tiếc bộ cũ thì hãy kiểm tra từng file 1 =)).
2. Về database
- Nếu diễn đàn vừa bị hack, bạn vào thử thì thấy "Database Error" thì...bị drop rồi. :2T-bunny-(16):
Cách duy nhất là dùng file backup mới nhất thôi.
- Nếu vào web thấy hiệu là toàn trang trắng bóc, có mấy dòng hacker by thằng này, thằng nọ...., kiểm tra file index.php trên forum ko thấy gì bất thường thì cứ thở phào 1 cái đi đã :D. Đây là dấu hiệu attacker chỉ "phá" chứ ko "del" nên bạn có thể phục hồi đến hơn 90% dữ liệu.
Bước 1 : backup data về, nhưng chia ra database ra làm 3 phần
Phần 1 gồm 3 table : style, template, templatehistory
Phần 2 gồm 4 table: plugin, product, productcode, productdependency
Phần 3: gồm những table còn lại.
Nếu data của các bạn quá lớn thì có thể chia nhỏ phần 3 ra.
Bước 2 : Kiểm tra database
Bạn mở từng phần ra sau đó Ctrl + F và gõ từ khóa là
eval(base64_decode
Trong database sạch ko có đoạn này đâu, nên nếu bạn phát hiện ra đoạn này (đằng sau còn một chuỗi kí tự) tức là trong phần data đó chắc chắn có backdoor. Đó là cấu trúc của file php đã được mã hóa.
Bạn hãy xóa hết bắt đầu từ
'{${eval(base64_decode
http://truongton.net/forum/imagehosting/961834a4a34c12c64b.gif
...Và kết thúc ở , tiếp theo
http://truongton.net/forum/imagehosting/961834a4a34fe963a4.gif
Nhớ tìm kĩ xóa sạch nha :D
Tiếp tục đặt ra một câu hỏi, bởi vì nói thì dễ làm tương đối khó. Sửa file sql nếu sửa nhầm một dấu chấm phẩy thôi cũng làm bạn ko thể nào restore lại hoặc nếu có đc cũng làm truy vấn lỗi. Theo kinh nghiệm của mình thì nếu kiểm tra thấy shell trong "phần 3" của database thì các bạn mới sử dụng cách này (đơn giản vì chẳng còn cách nào khác :D)
Còn nếu phát hiện shell ở plugins hoặc style (phần 1 + 2) thì các bạn nên bỏ đi, sau đó lấy 2 phần ở mấy file backup cũ đắp vào database đang dùng (chưa backup data lần nào thì mình chịu :D)
Bước 3: Chạy thử
Sau khi ok hết thì bạn tạo 1 database mới, đắp tất cả dữ liệu vào database đó và cho diễn đàn chạy thử. (Đừng chạy thử bằng source cũ và database cũ kẻo đang làm thì nó lại phá)
Nếu ok thì thực hiện bảo mật lại diễn đàn như phần một la mã trên kia.
Phù, dài tập quá, lâu lắm mới làm bài dài vậy :D
Chúc các bạn thành công (....và tự chúc mình thành công :( )