سپندارمزد

سپندارمزد
بیشتر میشه گفت یه ایده هست تا یک برنامه کامل!
این برنامه که نامش سپندارمزد هست ،میتواند به صورت یک برنامه تحت خط فرمان اجرا شده و در مدت زمان معینی که شما برایش تعیین میکنید ، محتویات فایل های رو سرور شما را مورد ارزیابی قرار دهد.برای آشنایی با این برنامه قسمت هایی از آن را تحلیل میکنم.

< ?
$status = $argv[1];
$files = array("file1.php", "file2.php","file3.php","file4.php");
$checkstr = "SEPANDAMAZDA";
$timeleft = 10;
? >

مقدار متغییر Status تنها برای اجرای برنامه است.
آرایه Files وظیفه نگهداری از نام و مکان فایل های شما را داراست. فایل هایی که در این آرایه قرار گیرند ، مورد ارزیابی قرار میگیرند ، البته شما میتوانید با کمی تغییر به جای آرایه تمامی فایل های یک دایرکتوری را مورد ارزیابی قرار دهید.به طور مثال :

< ?
$handle = opendir('.');
while ($file = readdir($handle)){
if (strstr($file, '.php')){
...
...
...
? >

مقدار متغییر checkstr وظیفه نگهداری بخش مهمی به را بر عهده دارد.
مقداری که توسط این متغییر نگهداری میشود ، در هر یک از فایل ها جستجو میشود. بگزارید با یک مثال به شما نشان دهم :

< ? /* SEPANDAMAZDA */
require('./blog-header.php');
...
...
...
? >

کد های که مشاهده میکنید ، محتویات یکی از فایل های من که در آرایه Files قرار دارد است.

برنامه پس از اجرا مقدار متغییر checkstr را در فایل ها جستوجو میکند.اگر آن را یافت که فبها در غیر این صورت کد های معینی را اجرا میکند که خواهید دید.
متغییر timeleft مدت زمان را برای ما تعیین میکند و مقدار ۱۰ مشخص میکن که برنامه باید هر ۱۰ ثانیه یک بار فایل ها را مورد ارزیابی و جستجو قرار دهد.
برنامه پس از اجزا هر ۱۰ ثانیه یک بار فایل ها را میآزماید و اگر مقدار مشخص شده در آنها یافت نشد ، اینگونه فرض میکند که کدهای فایل تغییر یافته و دیگر مقدار اصلی خود را دارا نیست. پس شروع به مقدار دهی مجدد فایل با کد های اصلی میکند.
بدین صورت :

< ?
for ( $i = 0 , $i <= 3 , $i++ ){
$cheking=fopen($files[$i], 'r+');
if (strstr(fread($cheking, filesize($files[$i])), $checkstr)){
echo "$files[$i] : [ Ok ]\n";
sleep($timeleft);
}else{
switch ($i) {
case 0:
$FileEntry = "
$antihack = fwrite($cheking, $FileEntry);
break;
case 1:
$FileEntry = “
$antihack = fwrite($cheking, $FileEntry);
break;
case 2:
$FileEntry = “
$antihack = fwrite($cheking, $FileEntry);
break;
case 3:
$FileEntry = “
$antihack = fwrite($cheking, $FileEntry);
break;
? >

همانطور که متوجه شدید ، به دلیل اینکه هکر ها از اجرای این برنامه بر روی سرور مطلع نیستند ( که البته میتوانند بشوند ) حتی با دسترسی ریشه هم مدتی از Deface کردن سایت شما عاجز میشود. البته جوجه هکر ها که … .
نکته : این برنامه حقوق خاصی ندارد و تحت لیسانس GPL است و هر گونه تغییر در آن با شرایط GPL مجاز است.
شما میتوانید نسخه ای از برنامه را از اینجا بارگزاری کنید.
با تشکر – شهریار جلایری

imageimageimage
[U]nkn0wn [S]ecurity [R]esearcher
Author : Shahriyar Jalayeri (Snake)
Mail : Snake.Apollyon Yahoo com
Home : www.Unkn0wn.sub.ir
©® ۲۰۰۵ - ۲۰۰۷


درباره من

در این وبلاگ ، جستار ها و دست نوشته های مرا در باره امنیت و ضد امنیت خواهید خواند.برای دسترسی به مقالات نوشته شده در وادی ضد امنیت و امنیت از دسته بندی {مقالات} استفاده کنید.


نامه برقي اينجانب
یافتن مطالب :