Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 13-11-2009, 02:20 PM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Bảo mật VBullitin Toàn tập (Full 2 phần)

Bảo mật VBullitin Toàn tập (Full 2 phần)


Bảo mật thêm cho vbb phần I


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...).


Click this bar to view the full image.


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

Mã:
    
   <?php
-Thêm vào sau đó

Mã:
    
   //Khai bao dang nhap
$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;
}
-Save lại với mã là UTF-8

kết quả here

Click this bar to view the full image.

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:

Mã:
    
      
    $INFO['sql_database'] = 'ngoisaon_Forums';
$INFO['sql_driver'] = 'mySQL';
$INFO['sql_host'] = 'localhost';
$INFO['sql_pass'] = 'HANOIMUATHU';
Đâ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ỉ

Cách khắc phục:
- Chmod (ko bàn ở đây)
- 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

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:

B1: Bạn edit file diagnostic.php trong thư mục admincp

-Tìm

Mã:
    
   $ignored_files = array('/includes/config.php', '/includes/config.php.new',
-Thay bằng

Mã:
    
   $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

Mã:
    
   include(CWD . '/includes/config.php');
-Thay bằng

Mã:
   
   include(CWD . '/thư mục bạn muốn đổi tên/tên file config mới.php');
-Tìm

Mã:
 if (file_exists(CWD. '/includes/config.php'))
-Thay bằng

Mã:
 if (file_exists(CWD. '/thư mục bạn muốn đổi tên/tên file config mới.php'))
- Bạn có thể chọn nhiều cách làm như thay đổi tên thư mục chứa file config hoặc thay đổi file tên file config (làm 2 cách càng tốt).
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 @TV17000#
- 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 @TV1000#
Bonus cho bạn code fake bigdump mafia chôm được
demo là diễn đàn này @TV7000#

Mã:
 <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>
Bảo mật thêm cho vbb part 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 được

- Đố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...

Bước 2: Tiến hành quá trình che dấu.

- 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.php

Bước 3:

- Xóa hết nội dung file config.php và thay bằng đoạn code

<?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.

Bước 4: Bảo mật thêm cho file config.

- 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.

- 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à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.

Bạn làm như sau: vào file config.php tìm đoạn này và edit nó

Mã:
    
   $config['Misc']['admincpdir'] = 'admincp'; //thay nội admincp bằng tên folder mà bạn muốn đổi
$config['Misc']['modcpdir'] = 'modcp'; //thay nội modcp bằng tên folder mà bạn muốn đổi

Bài toán 5:


Phương pháp chống những kẻ tò mò tọc mạch
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.
- 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.

Bài toán 7:

Có cách nào để phát hiện quá trình xâm nhập không nhỉ?
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)
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

Để 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é:
Bước 1: edit file login.php
Bạn tìm:

Mã:
    
   $strikes = verify_strike_status($vbulletin->GPC['vb_login_username']);
Và add sau nó:

Mã:
      
     $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ước 2:
vẫn ở file login.php
Bạn tìm:

Mã:
     
              // log this error if attempting to access the control panel
            require_once(DIR . '/includes/functions_log_error.php');
Thêm sau nó:

Mã:
    
           
    $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$freferer$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$freferer$fscriptpath$fdatetime$realname";
            }
            vbmail($vbulletin->options['webmasteremail'], $subject, $message, true);

webmasteremail
các bạn chỉnh trongvb options nhé code sẽ tự động gởi mail thông báo quá trình xâm nhập cho bạn.
Note: - test trên forum 3.7
- Special thanks to Boofo for this mod

Bài toán 8: Phương pháp chống up shell wa plugin và edit plugin

Bạn chèn đoạn code này vào file config.php (sau dòng <?php)

Mã:
    
   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

Mã:
      
     //    ****** 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';
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.
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. Theo: congdongitviet


  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 09:44 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.