برمجة سكريبتات BASH لتسهيل مهام مختبر إختراق



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

اليوم بإن الله سنتكلم عن موضوع مهم جدا . كيف سنقوم تسريع عملية الحصول على معلومات 


من خلال سكريبتات BASH . طبعا نظام تشغيل لينكس قوي جدا وخصوصا في جانب معالجة النصوص 


والحصول على معلومات دقيقة في وقت خيالي . 

طيب لنفرض أنك بعد تنفيذ عميلة إختبار إختراق حصلت على قواعد بيانات السرفر أو الموقع 

وبدك ياسيدي تجلب كل هاشات عشان تعمل عليها بروت فورس وأيضا الحصول على إيميلات 

لتطبيق هجمات هندسة إجتماعية في حالة لو فشلت عملية التخمين . 

مهم سنقوم ببرمجة سكريبت يستخرج ايميلات ورح نسميه email_extra.sh 

وسكريبت استخراج الهاشات رح نسميه Hash_dump.sh 

طيب نبدأ بالسكريبت الاول 

رح تفتح ترمينال وتطبيق امر تالي لأنشاء ملف -انا سأشتغل ببرنامج تحرير Gedit 


gedit email_extra.sh

بإمكانك إشتغال برنامج التحرير الطرفية Nano 

nano email_extra.sh

وتحفظ بالظغط على : ctrl+x وبعدها y 


مهم هذا هو الكود : 



#!/bin/bash
if [ $# -ne 1 ]; 
then echo " Usage : $0 filename "; exit 0;fi 
egrep -o '[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}' $1



شأشرح الأمور المهمة في اول نضع مسار المترجم الموجود في هذا المسار  /bin/bash

وبعدها الدالة الشرطية IF التي تقول بانه لو كان عدد Args لايساوي 1 فكتب 

كلام فوق 


$0: اسم السكريبت 
$1: Arg 1 : الذي سيكون اسم الملف في هذه الحالة 
S#:عدد Args 

 .. sh email_extra.sh Arg1 Arg2 

وبعد تنفيذ كل ذلك يقول بالخروج exit 

ونغلق دالة شرطيبة بعكسها FI << IF

وصلنا الى المهم هو Egrep


-o : إخراج النتائج المابطقة فقط

كيف يكتب الإيميل : 

EMAIL-_@EMAIL.COM(2-4)

[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}

[A-Za-z0-9._] : دا رح يقبل لنا كل حروف أرقام 

نفس الشي : [A-Za-z0-9.]

 بس بدون ( _ ) او (-) لانها غير مسموح بها في هذا الجزء 

وجزء الأخير [a-zA-Z]{2,4} في أحرف فقط بس طوله من 2 إلى 4


وبالتالي رح يستخرج لنا كل نتائج  من الملف  الذي اخترناه ويعرضها لنا في الشاشة 



نتقل الى سكريبت الهاشات 


ودا رح تضطر تعدل عليه انت بنفسك لان أمر يختلف من قاعدة بيانات الى أخرى . 


جزء من قاعدة بيانات : 


CREATE TABLE `ps_customer` (
  `id_customer` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_gender` int(10) unsigned NOT NULL,
  `id_default_group` int(10) unsigned NOT NULL DEFAULT '1',
  `secure_key` varchar(32) NOT NULL DEFAULT '-1',
  `note` text,
  `email` varchar(128) NOT NULL,
  `passwd` varchar(32) NOT NULL,
  `last_passwd_gen` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `birthday` date DEFAULT NULL,
  `lastname` varchar(32) NOT NULL,
  `newsletter` tinyint(1) unsigned NOT NULL DEFAULT '0',

INSERT INTO ps_customer VALUES('1', '1', '1', '38a2292a039c15150de1a4f014215cdc', NULL, 'hacker.fantome195@gmail.com', '316f5feed1229d43637497eccfd31ee7', '2011-11-18 22:52:49', '1978-05-12', 'VAUDREY', '1', '82.22.112.97', '2009-02-22 02:48:00',
  
طيب مانريده نحن هو كل محتويات عمود passwd  . 



cat sqldb_shop.sql | grep "ps_customer VALUES("|cut -d " " -f10 | egrep -o "[^'].*[/$']"|cut -d"'" -f1


اول عرضنا الملف بامر CAT ورح وبعدها عملنا تحويل لنتائج امر الى grep التي ستجلب لنا كل سطر يبدأ 

"ps_customer VALUES("

وبعدها حولنا نتائجها الى CUT الذي سيقوم بوضع عازل -D (فراغ) واخراج فقط الجزء 10 

متال : 

KARIM IS A GREAT PERSON : cut -d " " -f1 

اذن رح يخرج لنا فقط كلمة KARIM لأنها الجزء 1 المفصولة بفراغ 



ونحن في أمر سابق اخترنا اظهار الجزء 10 اللي هو '316f5feed1229d43637497eccfd31ee7' الباسورد 

المشفر . طيب هل انتهينا ؟ 

بالطبع لأنه يجب ازالة ' ' من هاش 

سنحول أيضا نتائج الى grep 

egrep -o "[^'].*[/$'] "

[^'].* :

 تجاهل كل سطر يبدأ ب ( ' ) طبعا (^) تعني بداية سطر  مما يعني اننا سنتخرج كل شئ بعد ('

*. : تعني كل شئ كيفما كان 

[/$'] : تعني كل سطر ينتهي ب (') طبعا ($/) تعني اخر في السطر . 

وبكذا نكون عملنا فلترة عشان يستخرج لنا كل معلومات التي تبدأ بعد ( ' ) وتنتهي ب ( ' )


ونتيجة 




طيب نريد إزالة (') المتبيقة رح نحول نتائج الى cut 


 cut -d"'" -f1 

وحدد فاصل اللي هو (') وأخبرناه يظهر لنا الجزء 1 اللي هو HASH 



وبالتالي أكملنا الشغل ﻻزمنا نقوم بحفظ امر دا في سكريبت لو أردنا 

Hash_dump.sh 

#!/bin/bash 
cat sqldb_shop.sql | grep "ps_customer VALUES("|cut -d " " -f10 | egrep -o "[^'].*[/$']"|cut -d"'" -f1



طيب لو أدرت حفظ نتائج كلها في ملف تكست يكفي ان تظيف امر تالي : 

cat sqldb_shop.sql | grep "ps_customer VALUES("|cut -d " " -f10 | egrep -o "[^'].*[/$']"|cut -d"'" -f1 > hash.txt 

egrep -o '[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}' $1 > emails.txt 




وبكذا نكون كملنا درسنا اليوم 

لو كانت لديكم أفكار او استفسارات المرجوا اظافتها تحت التدوينة . 



في أمان الله وحفظه 


تعليقات

  1. اخوي انا عندي استفسار ، لقد قمت بنسخ الكود الذي تم شرحه
    كود استخراج الايميلات ، ولكن انا اريد ان اقوم بأستخراج الايميلات من قاعدة البيانات لموقع ما
    دعني اوضح لك أكثر ، لقد قمت برفع سكربت shell على موقع واريد ان اقوم بأستخراج الايملات من قاعدة بيانات الموقع ماللذي يبنغي علي فعله ؟

    استفسار اخر ، عندي ملف email.txt يحتوي على مجموعة ايميلات + باسوردات
    اريد ان اقوم بأستخراج الايميلات فقط علماً انني استخدم نظام لينكس توزيعة (linux mint ) اتمنى الإفادة

    شكراً لكم مقدماً

    ردحذف

إرسال تعليق

شاركنا رأيك حول الموضوع...