Chủ Nhật, 17 tháng 6, 2012
[TUT] - Bảo mật cho Forum vBulletin
Bài viết này Mafia viết thêm dựa trên tài liệu của shacker và một bài viết bằng tiếng Anh viết về bảo mật cho vbb. ok vào đề đi nào!
I/Bài toán 1
Tôi đưa ra một giả thiết rằng tài khoản Admin trên forum bạn bị ai đó chiếm lấy bất hợp pháp (thông qua đoán pass, cài troyzan, ăn cấp password cookie...).
Vấn đề đặt ra ở đây là sẽ phải có một pass thứ 2 để ngăn chặn bước chân của kẻ muốn tấn công forum bạn lại chứ
Thông thường thì một số bạn dùng htaccess tôi sẽ cung cấp cho các bạn thêm một cách làm nữa:
Cách thiết lập:
Bạn edit file global.php từ thư mục admincp của diễn đàn (không phải global.php nằm bên ngoài index)-Bạn tìm
<?php
//Khai bao dang nhap-Save lại với mã là UTF-8
$config['dn2_dnp'] = 'usename';
$config['mk2_dnp'] = 'password';
if ($_SERVER['PHP_AUTH_USER'] != $config['dn2_dnp'] || $_SERVER['PHP_AUTH_PW'] != $config['mk2_dnp']){
header('WWW-Authenticate: Basic realm="Xin vui long khai bao thong tin yeu cau truoc khi duoc chuyen den bang dang nhap"');
header('HTTP/1.0 401 Unauthorized');
//Trang sẽ hiển thị khi thông tin khai báo sai bét. Hỗ trợ HTML nên bạn có thể thiết kế một trang đẹp hơn
echo '<center>Đi chổ khác chơi đi chú em. Nhấn nút biến!</center>';
exit;
}
kết quả here
Bạn làm thêm một cái nữa ở modcp để bảo mật cho staff của mình luôn.
II/Bài toán 2
Hacker thông qua local biết được cấu trúc dữ liệu site bạn.
Mục đích của cuộc tấn công của hacker là đọc được file config, giả sử tôi có một file config sau:
$INFO['sql_database'] = 'ngoisaon_Forums';Đây là info database của diễn đàn hacker có thể thông qua nó drop database của forum hoặc thông qua shell đổi được password của admin ~~~> nguy hiểm thật nhỉ
$INFO['sql_driver'] = 'mySQL';
$INFO['sql_host'] = 'localhost';
$INFO['sql_pass'] = 'HANOIMUATHU';
Cách khắc phục:
- Chmod (ko bàn ở đây)Tôi sẽ hướng dẫn các bạn đổi tên thư mục include (chứa file config) và file config.php:
- Zend (dùng trình zendgaurd để zend lại các file php quan trọng)
- Đổi tên thư mục include (chứa file config) và file config.php
B1: Bạn edit file diagnostic.php trong thư mục admincp
-Tìm
$ignored_files = array('/includes/config.php', '/includes/config.php.new',-Thay bằng
$ignored_files = array('/thư mục bạn muốn đổi tên/tên file config mới.php', '/thư mục bạn muốn đổi tên/tên file config mới.php.new',B2: Bạn edit file class_core.php trong thư mục include
-Tìm
include(CWD . '/includes/config.php');
include(CWD . '/thư mục bạn muốn đổi tên/tên file config mới.php');-Tìm
-Thay bằngif (file_exists(CWD. '/includes/config.php'))
if (file_exists(CWD. '/thư mục bạn muốn đổi tên/tên file config mới.php'))
tôi khuyên các bạn nên rename tên thành class_gì đó hoặc functions_gì đó để gây thêm khó khăn về thị lực cho kẻ muốn xâm nhập
- Còn file bạn tạo một file mới với tên config.php và điền info như sau:
Lạy anh tha cho em em có làm gì nên tội thì anh hãy pm em mà trách tội em :(Bonus cho bạn code fake bigdump mafia chôm được
demo là vipunder
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>.:: Loi roi ban ::.</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="162">
<tr>
<td width="33%" height="21"></td>
<td width="33%" align="center" height="21"></td>
<td width="34%" height="21"></td>
</tr>
<tr>
<td width="33%" height="75"></td>
<td width="33%" align="center" height="75"><img border="0" src="http://daoduytu.net/police.jpg"></td>
<td width="34%" height="75"></td>
</tr>
<tr>
<td width="33%" height="21"></td>
<td width="33%" align="center" height="21"></td>
<td width="34%" height="21"></td>
</tr>
<tr>
<td width="33%" height="24"></td>
<td width="33%" align="center" height="24"><font face="Arial" size="4" color="#FF0000"><b>Địa chỉ này không tồn tại hoặc bạn không được quyền truy cập!</b></font></td>
<td width="34%" height="24"></td>
<center><font color="blue" size="5">Bạn sẽ được chuyển về trang bạn vừa xem</font></center>
</tr>
<tr>
<td width="33%" height="21"></td>
<td width="33%" align="center" height="21">
<script language="javascript">
window.setInterval("history.go(-1)", 5000);
//history.go(-1);
</script>
</td>
<td width="34%" height="21"></td>
</tr>
</table>
</body>
</html>
phần II
Bài toán 3:Sau khi bạn đổi tên thư mục include (chứa file config) và file config.php thì có cách nào để che dấu file config thêm một lần nữa không nhỉ?
Câu trả lời là bạn có thể làm được nhưng làm trên host window hay linux thì bạn lưu ý như sau:
Bước 1: Xác định folder cần che dấu file config.
- Đối với host dùng linux bạn tạo 1 folder tên #data .Ý nghĩa của dấu # thì trong linux dấu # sẽ bị lướt qua => ko truy cập đượcBước 2: Tiến hành quá trình che dấu.
- Đối với host dùng window bạn nên che dấu file config vào các folder có sẵn như admincp, modcp, style...
- Tạo một file php mới với tên bất kỳ (bạn nên nghĩ ra một cái tên gần gần na ná với cấu trúc của forum vbb) ở đây tôi đặt tên là usercp.php- Tiếp theo bạn copy toàn bộ nội dung file config vào usercp.phpBước 3:
- Xóa hết nội dung file config.php và thay bằng đoạn codeBước 4: Bảo mật thêm cho file config.
<?php include "#data/usercp.php" ?> (đối với host dùng linux)
hoặc <?php include "data/usercp.php" ?> (đối với host dùng window)
- Bây giờ file config của bạn đã được chuyển sang một folder khác với một cái tên khác.
- Lời khuyên là bạn nên dùng host linux để có được tính năng Chmod nếu Chmod tốt thì hacker sẽ khó lòng mà xâm nhập.Bài toán 4: Để những folder như admincp, modcp thì tầm thường quá có thể nào thay đổi tên những folder này không.
- Mã Hóa file config bằng zendguard.
- Dùng MD5 để mã hóa user và pass của file config.
- Bước cuối quan trọng nhất ,CHMOD folder #data (chỉ làm bước này nếu bạn sử dụng host linux) là 111 nếu host có hỗ trợ còn không thì 711 cũng được,nếu làm đúng file sẽ mất tiêu thư mục #data y như thư mục rỗng.
- file config cũ chứa nội dung <?php include "#data/usercp.php" ?> thì bạn hãy mã hóa nó.
Bạn làm như sau: vào file config.php tìm đoạn này và edit nó
Code:
$config['Misc']['admincpdir'] = 'admincp'; //thay nội admincp bằng tên folder mà bạn muốn đổiBài toán 5: Phương pháp chống những kẻ tò mò tọc mạch
$config['Misc']['modcpdir'] = 'modcp'; //thay nội modcp bằng tên folder mà bạn muốn đổi
Bạn tạo một file index.html với nội dung tùy ý ở bất cứ folder nào trong host. (kể cả mục skin, imager, và những folder con trong folder mẹ imager)
Bài toán 6: Che dấu những folder nhạy cảm.
- Bạn có thể dùng .htaccess.Bài toán 7: Có cách nào để phát hiện quá trình xâm nhập không nhỉ?
- Rename các folder nhạy cảm như data, databackup, mysqldumper...
- Tạo subdomain để vào VD: sql.yourdomain.com và trỏ tới mysqldumper.
Câu trả lời rằng bạn hoàn toàn có thể biết trước được quá trình xâm nhập vào admincp hoặc modcp do member của diễn đàn bạn hoặc một kẻ phá hoại nào đó. Quá trình xâm nhập có thể là đoán pass.
Điều gì bạn muốn biết về quá trình xâm nhập?
Đó là nickname đang cố xâm nhập, ip của hắn, số lần cố gắn xâm nhập, thời gian diễn ra quá trình xâm nhập.
Demo: test ở diễn đàn ku LTA (mafia team)Để làm được như thế này bạn lần lượt làm theo hướng dẫn ở các bước sau nhé:
Username tried: [l] [t] [a]
IP Address: 117.2.15.36
Host: 117.2.15.36
Strikes: 2 out of 5
Referrer: http://forum.b3pro.us/modcp/index.php
Script: http://forum.b3pro.us/login.php?do=login
Date/Time: Sunday, August 17th, 2008 at 6:43:33 am ?
==========================================
Username tried: asedfsda
IP Address: 117.2.15.36
Host: 117.2.15.36
Strikes: 1 out of 5
Referrer: http://forum.b3pro.us/modcp/index.php
Script: http://forum.b3pro.us/login.php?do=login
Date/Time: Sunday, August 17th, 2008 at 6:42:54 am
Bước 1: edit file login.php
Bạn tìm:
$strikes = verify_strike_status($vbulletin->GPC['vb_login_username']);Và add sau nó:
$username = $vbulletin->GPC['vb_login_username'];
$fdate = date('l, F jS, Y');
$ftime = date('g:i:s a');
$fdatetime = "Date/Time: $fdate at $ftime \r\n";
$fscriptpath = "Script: http://$_SERVER[HTTP_HOST]" . SCRIPTPATH . "\r\n";
$freferer = 'Referrer: ' . REFERRER . "\r\n";
$fusername = "Username tried: $username \r\n";
$fipaddress = 'IP Address: ' . IPADDRESS . "\r\n";
$iphostname = "Host: " . @gethostbyaddr(IPADDRESS) . "\r\n";
if ($vbulletin->userinfo['userid'] > 0)
{
$realname = "\nUSER ATTEMPT: " . $vbulletin->options['bbtitle'] . " has identified this registered user as: " . $vbulletin->userinfo['username'] . "\r\n";
}
Bạn tìm:
// log this error if attempting to access the control panel
require_once(DIR . '/includes/functions_log_error.php');
Webmasteremail các bạn chỉnh trong VB Options nhé code sẽ tự động gởi mail thông báo quá trình xâm nhập cho bạn.$fstrk = "Strikes: $GLOBALS[strikes] out of 5 \r\n";
if ($vbulletin->GPC['logintype'] === 'cplogin')
{
$subject= 'WARNING: Failed Admin CP logon in ' . $vbulletin->db->appname . ' ' . $vbulletin->options['templateversion'] . "\r\n\r\n";
$message="Someone is trying to login to your " . $vbulletin->options['bbtitle'] . " Admin CP!\n\n$fusername$fipaddress$iphostname$fstrk$fref erer$fscriptpath$fdatetime$realname";
}
else
{
$subject= 'WARNING: Failed Mod CP logon in ' . $vbulletin->db->appname . ' ' . $vbulletin->options['templateversion'] . "\r\n\r\n";
$message="Someone is trying to login to your " . $vbulletin->options['bbtitle'] . " Mod CP!\n\n$fusername$fipaddress$iphostname$fstrk$fref erer$fscriptpath$fdatetime$realname";
}
vbmail($vbulletin->options['webmasteremail'], $subject, $message, true);
Note:
- test trên forum 3.7Bài toán 8: Phương pháp chống up shell wa plugin và edit plugin
- Special thanks to Boofo for this mod!
Bạn chèn đoạn code này vào file config.php (sau dòng <?php)
define('DISABLE_HOOKS', true);Bonus: phương pháp thiết lập ở config.php để ngăn chặn việc xóa, sửa hay thêm bớt thông tin tài khoản admin
Vài lời khuyên là không nên dùng source share sẳn, đừng hack quá nhiều mod, đặt biệt là những mod không rõ nguồn gốc vì có thể người share mod sẽ đính kèm shell vào plugin. Đây chỉ là một vài phương pháp tạm thời để ngăn hacker, tôi đang nghiên cứu thêm giải pháp bảo mật hẹn diệp sau sẽ post tiếp.// ****** UNDELETABLE / UNALTERABLE USERS ******
// The users specified here will not be deletable or alterable from the control panel by any users.
// To specify more than one user, separate userids with commas.
$config['SpecialUsers']['undeletableusers'] = 'nhập user admin vào đây';
Tut được đúc kết từ kinh nghiệm bản thân và tài liệu của các bật tiền nhân đi trước.
phần III
Bài toán 9: Admincp Fake
Tôi đặt ra một giã thiếc: hacker có được user và pasword của admin. Hacker sẽ tìm cách vào admincp của bạn để chèn thêm shell hoặc nghịch phá diễn đàn bạn. Để làm được điều đó hacker phải vào admincp của bạn, thế thì tại sao không tạo một Admincp giả để đánh lừa những ai ưa tò mò nhỉ
Cách này có thể áp dụng cho những code shop, code news và những code forum khác bạn có thể tùy biến dễ dàng.
Q: Thế thì admincp củ của tôi để đâu nhỉ?Demo run code và đoạn email gửi về
A: Bạn hãy rename folder admincp cũ thành bất cứ tên gì miễn sao chỉ có mỗi mình bạn biết, mỗi mình bạn có thể vào
Q: Cách này có hạn chế hack không?
A: Nó chỉ hạn chế một phần, phần còn lại phụ thuộc vào mức độ bảo mật của hosting bạn.
Q: Làm thế nào mà tôi phát hiện quá trình xâm nhập?
A: Code sẽ tự động gửi email đến thông báo cho bạn mỗi khi xuất hiện quá trình xâm nhập.
Bài toán 10: Secure IPNew Security Breach Attempt
--------------- SENDER INFORMATION ------------This message was sent to you by Admincp.IP address is: 117.2.13.17Username: X-ecpanelPassword: 123456
Bảo mật admincp luôn là đề tài hot nhất, việc này đã làm cho nhiều webmaster và cả hacker hao tâm tổn sức. Hum nay tôi xin giới thiệu với các bạn một giải pháp bảo mật hiệu quả cho admincp:
Công dụng của nó ngoài việc đảm bảo chỉ 1 IP được phép login vào admincp. Còn có thêm tính năng đặt biệt giúp bạn có thể dễ dàng update IP đó.
download :
Cách làm:
- Bạn mở file capnhapip.php, chỉinh lại $pass = '12345'; cho phù hợp.Code:
- Mở file Security, chỉnh IP Hosting của bạn.
- UP 3 file security.php, checkip.php , listip.txt vào thư mục admincp.
- Chmod File listip.txt thành 777.
- Mở file global.php và thêm vào đằng sau <?
include("security.php")Cách sử dụng:
- Truy cập vào địa chỉ: http://yourURL.com/forum/admincp/capnhapip.phpNhập mật khẩu của bạn để cập nhập địa chỉ IP mới.
Tip: Nên dùng Sock SSh do chính hosting của bạn tạo ra để truy cập vào admincp
download:
Chuyên Mục:
Hacking and Security,
vBulletin
Đăng ký:
Đăng Nhận xét (Atom)
Nonton Bokeps Terbaru Jav 69
Trả lờiXóaNonton Bokeps Anak Di Bawah Umur
Nonton Bokeps Indonesia Artis
Nonton Bokeps Pecah Perawan
Cewek SMA DiSodokMemek Nya Berdarah
Nonton Bokeps Korea Terbaru
عرب نجنتوت سويك المهبل بوتيه برسيح
Royalflush88 Agen Poker Terbaik
Agen Poker Royalflush88 Daftar Disini
Agen Bola Online No 1 Terbaik
Bokeps Orang Rekaman Pribadi
Film Bokeps Ngintip Orang
Nonton Bokeps Terekam Cctv
Nonton Bokeps Jilbab Menggoyang
Bokeps Hentai
Nonton Bokeps Janda STW
Agen Poker Online No 1
Nonton Bokeps Artis Vietnam
Agen Poker Royalflush88 Daftar Disini
Agen Bola Online No 1 Terbaik
نونتون بوكيبس تيربارو جاف 69
Bokeps Minderjährige beobachten
इंडोनेशियाई कलाकार बोकैप्स देखें
Sledujte zlomené zlomené boky
고등학교 소녀 그녀의 피 묻은 훈제