نقاش: البرمجة واختبار الاختراق
يؤمن الكثيرين أن البرمجة جزء لا يتجزّء من الهاكر ولتكون هاكر حقيقي يجب أن تمتلك خبرة برمجيّة قوية تمكّنك من البرمجة بأكثر من لغة. في تخصص اختبار الاختراق Penetration Testing اتقانك لاحدى لغات البرمجة لا شك أنه نقطة في صالحك وقد يسهّل عليك الكثير من الأمور ويختصر الوقت لكن هل البرمجة فعلاً أمر ضروري أم أن الأدوات الموجودة تفي بالغرض؟ واذا كانت ضرورية برأيك ما هي اللغة الأفضل لهذا المجال ولماذا؟
موضوع النقاش:
- هل اتقان البرمجة أمر ضروري أم يمكن للشخص أن يكون Penetration Tester ناجح دون أن يجيد البرمجة.
- كيف ستساعد البرمجة مختبر الاختراق في عمله وهل ترى أن تعلّم لغة برمجة واحدة أمر كافي.
- ما هي اللغة أو اللغات التي تعتقد أنه يجب على مختبر الاختراق تعلّمها ولماذا؟
- اذا كنت ترى أن تعلم البرمجة أمر غير ضروري في اختبار الاختراق هل يمكن توضيح الأسباب.
أتمنى ألا يكون النقاش عبارة عن أسئلة وأجوبة فقط وليناقش كل شخص الأفكار المطروحة حسب رأيه الشخصي ويضيف أي شيء يريده, البعض يرى أن البرمجة غير ضرورية في عمليّة اختبار الاختراق لأن الاهتمام الأكبر سيكون منصب على الـ Vulnerability Assessment أكثر من البرمجة بحد ذاتها وآخرين لا يمكنهم تصوّر الهاكر (مختبر الاختراق) بدون اتقانه للبرمجة بلغة واحدة على الأقل, كذلك اختيار لغة البرمجة المناسبة لتعلّمها والتي ستفيد الهاكر في اختبار الاختراق أمر مهم أيضاً.
السلام عليكم
من منطق اعرف عدوك .. يجب ان تعرف لغته و بماان للغات البرمجة ما يجمعها اكثر من ما يفرقها التعلم للغة البرمجة و خاصة اللغات السكريبت ك php or ruby or python يساعد اي صاحب قبعة .. انا شخصبا مهتم ب ruby بسبب اختيارها من طرف مشروع metesploit و سلسسلتها . php ان للغة الويب القوية و المفضلة … رغم تجربتي مع python و c .. الحمد الله اعرف قراءة الاكواد رغم عدم برمجتي .
سلام
انا اشوف من الأفضل ل pentester ان يكون لديه خلفية في البرمجة ويكون متمكن من لغة واحدة على أقل لأن اذا الشخص تمكن من لغة واحدة سوف يكون على وعي تام كيف البرمجة تعمل واذا احتاج إلى لغه اخرى سوف يكون تعملها اسهل عليه.
لأن ليس كل ادوات اختبار الأختراق سوف تعمل على حسب مايحتاج وبعض الأدوات تحتاج تعديل في بعض حالات لذا اذا لديه خلفية في البرمجة سوف يكون على دراية كيف كود الأداة يعمل وكيف يتم التعديل علية.
في اعتقادي من الغات الجيدة لمختبر الأختراق على سبيل المثال Perl or Python or Ruby لانها من اللغات السهل ولهما كثير من الأمثله على الويب
#### بنسبه لي اكره Perl ####
اخيرا الإبحار في لغة واحد والتمكن منها يكون افضل من التنطط من لغه لغة اخرى
تحياتي لكم
بالنسبة للغات البرمجة اعتقد لغة بايثون أسهل لغة لانشاء برامج Fuzzer ولغة الاسمبلي لعمليات الـDebugging والـreverse engineer بالنسبة لي اعتمد كثيراً عليهم لكن مع خروج برامج مثل Metasploit و olly debug اصبحت المهمة اسهل
السلام عليكم ورحمة الله وبركاته
اخي الكريم عبد المهيمن نحن الان في التكلم في صدد موضوع كبير فانت تقول هناء Penetration Tester وهناك عددت مجالات اما ان تكون مهندس عكسي او مدير شبكه
الى الخ..
في البداء لازم وانا ارئ من الضروي تكون متقن للغه برمجه معينه ومن الافضل
ان يكون لديك اطلاع على اللغات الاخرى , فأذا كنت مجرد مستخدم لبعض الادوات فانك تكون كا الاعماء لاتدري مايدور خلفها وإذا واجهتك اي مشكله فنك لاتستطيع ان تبحث لها عن حل والسبب لاتدري مايدور, مجرد خلفيه بسيطه ونظريه واليست عمليه .
امابنسبه اخي الكريم كيف سوف تساعدك كا مختبر اختراق فاعطيك مثل بسيط ( في الماضي كانت هناك قلاع حصينه وهناك شخص نشئ داخل هذه القلعه ويعرف كل مادخلها ماخرجها
وتفصاليها من الداخل وحدث ان احد إحتل هذه القلعه, سؤال من الشخص الذي سيكون مساعد لك في اختراق هذه القلعه اليس الذي يعرف تفاصيلها وهذا مثل بسيط للغة البرمجه )
اما بنسبه للغات البرمجه التي يجيب ان تكون على علم بها هناك تختلف الروئ
في نظري اللغه الاولى هي c or c++ اما بنسبه كامدير سيرفرات فا تكفيك احد هذه اللغات ruby or perl or python لني انا اصنف هذه الثالث للغات من عائله واحده (راي شخصي) و PHP لغه رائعه بمكانك تعمل بها الكثير من الاشياء .
الخلاصه : للغات البرمجه مهمه لكل مختبر اختراق ( لكي تعرف من اين تاكل الكتف ).
فلنقل ان اللص قد يقوم بالسرقة اذا وجد الباب مفتوحا اسهل من النافذة
وإذا اعتبرنا ان السيرفر يحتوى برمجيات سيرفر ويب مثلا فسيكون هذا هو الباب للمخترق
لن اقول نسب ولكن البرمجيات تكون هي اكبر ثغرة في السيرفر اذا لم يكن المبرمج متمكن من عمله ولديه كامل الثقة ومطلعا يوميا على اخر التطورات بخصوص الثغرات والاختراقات التي تترتب على اللغة التي يستخدمها ستكون هذه كارثة بالنسبة لمدير السيرفر وعدد كبير من المبرمجين لايعتني بهذا الامر فيقع كل العاتق على مدير السيرفر ومن هنا تبدء مهمته عليه التأمين .
لنفترض ان الخادم مثلا اغلبيت الخوادم التي تعمل اليوم يستخدم ال(PHP) وهي الاكثر شيوعا مؤخرا هل هذا يعني ان مدير السيرفر عليه ان يتعلم ال (PHP) ؟
طبعا لا اي لغة برمجة قد تفي بالغرض لان البرمجيات كلها تشترك في عديد من النقاط مثلا Logic ,dataflow,….,الخ
الذي يختلف فقط هو syntax طبعا اذا كان مدير السيرفر لديه خلفية عن لغة برمجة واحدة يمكنه الوصول الى مبتغاه بمنتهى السهولة هذا الكلام لاينطبق على كل لغات البرمجة وإن كان ينطبق على اغلبها لان فكرة الاختراق كلها تتشابه لاجديد يضاف مثل (SQL Injection),(Buffer OverFlow),….,الخ
معنى هذا ان القواعد التي تطبق على الاختراق تتشابه ولكن الذي يختلف هو طريقة التنفيذ من لغة الى اخرى وإذا كان مدير الخادم عنده خلفية عن لغة برمجة واحيدة قوية ومطلع على اخر التحديثات والاختراقات اذا الوصول للمعلومة سيكون بمنتهى السهولة ولن يأخذ منه وقت كبير
بخصوص اللغات التي يجب ان يكون على دراية بها ويفضل ان يكون متعلمها هي اللغة التي سيقوم السيرفر بتقديمها للعملاء وإن كان يفضل ان يكون لديه دراية بلغات اقوى مثل ال C او ال C++
فهذا سيسهل الامور جــــــــــــــــــدا
لان اغلب اللغات الاخرى مشتقة منها
السلام عليكم
شكرا اخي عبد المهيمن على الفكرة و النقاش.
طبعا البرمجة مهمة جدا للـpentester. طبعا هناك الكثير من الادوات في هذا المجال و من الممكن الاعتماد عليها في عمليات الفحص و لكن في هذه الحالة لن يكون هناك مجال للابتكار او الابداع و سيعتمد على ما تم برمجته مسبقا. من جهة اخرى فتعلم لغات البرمجة تساعد على فهم كيفية عمل البرامج المختلفة و كيف يتم التعامل على الجهاز مما سيساعد على اكتشاف الاخطاء و استغلالها و طبعا كلما زاد عدد لغات البرمجة التي يعرفها الشخص كلما زادت خبرته في كيفية عمل و اكتشاف الاخطاء في البرامج المختلفة. بالاضافة الى ذلك فاتقان عدد من لغات البرمجة سيساعد الpentester في كتابة برامج و سكربتات قد يحتاجها اثناء عملية الاختراق. طبعا كل هذا سيزيد من خبرة المخترق و يزيد من فهمه الى طريقة تفكير الالة مما يساعد على تسهيل عملية الاختراق و يرفع مستوى المخترق بشكل كبير.
بالنسبة للغات البرمجة التي يجب تعلمها فهناك الكثير من لغات البرمجة و كل منها مختص بمجال معين, لنفرض ان شخص مختص بالتطبيقات الويب فيجب تعلم لغات البرمجة المتعلقة بهذا المجال مثل php او كمدير سيرفرات او شكبات فتعلم c++ قد يكون مفيدا جدا.
بالمسبة لي انا افضل لغة python لقوتها و سهولتها , perl قد تكون مفيدة كذلك .
Assembly على الرغم من تصنيفها low level language فأرى انها مهمة جدا و تعلمها قد يساعد و بشكل كبير على فهم كيفية عمل البرامج بشكل عميق.
نستنتج مما سبق ان البرمجة ليست امر مهم لـpentester ولكنها مهمة جدا للpentester الناجح !!
بسم الله الرحمن الرحيم
و السلام عليكم و رحمة الله و بركاته
جاء هذا النقاش فى وقته
ان كنت تذكر يا اخى عبد المهيمن فلقد سألتك هذا السؤال من قبل و ذلك لان معظم الناس المهتمين بمجال الاختراق قالوا لى انه يجب على الشخص المهتم بهذا المجال ان يكون لديه خلفيه عن لغات البرمجه حتى و لو قليله و انت قد نصحتنى بلغة روبى و لقد احببتها كثيراً لانها سهله فى التعلم و التطبيق
على العموم ان لست خبيراً فى الاختراقات فأنا لا اركز على امر واحد فى الكمبيوتر و لى من كل بستان زهرة و لذلك لا استطيع ان اجيب على هذه الاسئله و لكن بالنسبه للبرمجه فلقد حاولت مع العديد من لغات البرمجه و قد وجدت لغة روبى هى الاسهل و لا اعرف اذا كانت الاقوى ولكنها الاسهل و هذا عن تجربه شخصيه و بعد محاولاتى الفاشله فى تعلم لغات برمجه كثيره
و السلام عليكم و رحمة الله و بركاته
البرمجة مهمة جدا سواء لفاحص الاختراق او حتى المهتم بامور الكمبيوتر عامة
لانها بتعلمه فكرة عامة عن لغات البرمجة الاخرى
وبتفتح مجال الابتكار وعدم الاعتماد على القديم
مينفعش اننا نعتمد ع اداوت موجودة مسبقا ونلغى عقلنا فى ابتكار جديد
يعنى ع الاقل نحترف لغة واحدة وناخد فكرة عن باقى اللغات
فى حين اردنا اجراء تعديل او اضافة
واحسن اجابة عن السؤال دا موجودة بالفعل فى موقع اى سيكيورتى
فى انطلاق اداه i commender
واداه i scanner
اى فكرة تيجى فى بالك تقدر تنفضها بكل سهولة باى لغة برمجة تجدها؟
اما لو معندكش اى خلفية عن اى لغة برمجة فا الفكرة هتفضل مجرد فكرة فى عقلك..
اكيد تحتاج كم لغة برمجية طبعا ليس شرط انك تكون محترف في اللغة ولغة واحده للهكر لا تكفى
الافضل انك تتعلم اكثر من لغة وتتعلم اللغة حسب احتياجك لها لان في لغات ضروري يكون الهكر محترف فيها وفي لغات لا تحتاج ان يكون الهكر محترف فيها
المفيد خذ حاجتك من اي لغة برمجية تحتاجها كهاكر واترك الذي لا تحتاجه
…….
كيف تساعد في الاختراق ما تقدر تخترق شئ او تتخطى حمايته اذا ما عرفت كيف تم تركيبه وفهمت محتواه
………..
السي في المرتبة الاولى
ما لاحظته من ردود البعض أنكم خلطتم بين الشخص المختص في اختبار الاختراق Penetration Testing والمختص في مجال الـ Vulnerability Research.. الأول مهمته اختبار أمن الأنظمة ومعرفة برمجية باحدى اللغات التفسيرية طبعاً سفيده كثيراً والثاني مختص في اكتشاف ثغرات البرامج وتطوير أساليب جديدة وهنا يحتاج معرفة في الأمور المنخفضة المستوى أكثر مثل الهندسة العكسية, لغة ASM , C.
طبعاً كل ما عرف “الهاكر” لغات برمجة أكثر بغض النظر عن تخصصه ان كانت تفسيرية مثل Ruby, Python.. أو منخفضة المستوى مثل C , Assembly حيكون أفضل له لكن السؤال الي يطرح نفسه الآن هل يحتاج مختبر الاختراق خبرة في لغة ASM مثلا؟ لا أختلف أن معرفتها ستفيده في بعض الحالات المتعلقة في تحليل الشيل كود والاستغلالات المنتشرة لكن هل يمكننا اعتبارها من الضروريات؟ أما لغة PHP فهي ضروري في مجال اختبار اختراق تطبيقات الويب بجانب معرفة لغة SQL.
بالنسبة لي البرمجة بدأت كهواية وفعلاً استفدت منها في مجال اختبار الاختراق وأمور أخرى كثيرة لأنها توفر طريقة سهلة لاستخدام مكتبات الشبكات مثل انشاء Sockets والاتصال مع المواقع والسيرفرات وحتى قدرة عالية مع التعامل مع الملفات وقواعد البيانات.. هذا لا ينطبق على Ruby فقط بل على جميع اللغات التفسيرية.
البعض يفضّل استخدام لغات مثل C أو C++ لا أقول أن هذا خطئ فالأمر يعود للشخص أولاً وأخيراً وفي مجال اختبار الاختراق ما تستطيع تنفيذه بسي أو سي بلس بلس يمكن تنفيذه بشكل أسرع بكثير باستخدام لغة تفسيرية لذلك برأيي الشخصي من يريد أن يبدء تعلّم البرمجة أن يبدء بلغة تفسيرية لأنها أسهل في التعلم والانتاجية فيها أسرع بكثير وعندما تصل لمرحلة لم تعد تستطيع اللغة التفسيرية تلبية احتياجاتك يمكنك الانتقال للغة مثل C/C++.
في اعتقادي البرمجة تساعد مختبر الاختراق ولابد ان يكون لديه بعض مهارات البرمجة (على سبيل المثال ليس كل شي من ادوات والأستغلالات (exploit ) سليمة بعض الادوات او الاستعلالات ممكن انه تنزل باك دوور في جهازك وانت ماتدري لذا يجب معرفه البرمجة لكي تكون على علم كيف هذه الأداة او الاستغلال تعمل . على كذا المختبر يحتاج الى معرفة في البرمجة في واحده من اللغات المنخفضة ولغة من العالية المستوى
البرمجة أمر هام جدا لتسهيل الإختراق
فمثلا
عندما كنت أقوم بتجربة SQL Inject
لا أفهم شيئ
كنت أصنف هذا يقوم بالدخول دون باسورد و غيرها من الطرق
لذا
بعد إتقاني ل PHP/Mysql
فهمت الأكواد المستعملة
أيضا أصبح ما أقوم به أسهل و أكثر منطقية
بل و الأكثر من هذا أصبحت أنشأ أكوادي الخاصة في الإختراق (رغم أنها تصب مصب واحد لكن بعض التدوير و إطالة الطريقة يزيد الخبرة)
أيضا
لا أفضل أن ينعتني أحد ب Script Kitty أو Lamer
ﻷنه إن لم تعرف البرمجة
فأنت لست هاكر
لنقل أنك إستعملت برنامج كذا دون علم بالبرمجة
وما أدراك أنه عندما يتنهي إختراق السيرفر مثلا يقوم بإنشاء مدير ثاني و يرسله لبريد الصانع الأصلي ؟
لا ننسى أن معظم البرامج الإختراقية لا تنفع إلا بعد تطويعها و تحويرها (حتى MetaSploit !! أحيانا يتوجب تطويع الثغرة قليلا لكي تعمل ﻷن بعض الثغرات لن تشمل كل الحالات [فايروال-تشفير بيانات …إلخ])
وفي النهاية في الزيادة بركة
وكل علم فيه خير و خبرة (إلا في دراسة التاريخ و الجغرافيا وهذافي رأيي أيضا)
دمتم في حفظ الرحمن
بما لاشك فيه ان الهكر لابد ان يتقن لغات البرمجة وليس فقط ان يجيد استخدامها بل يكون شخص محترف فيها ,, ولديه خبرة في اكثر من لغة برمجة ,,بحيث يكون هكر محترف ,,
اما الهكر الذي لا يفقه اي شي بامور البرمجة فهو ليس هكر اصلا ,, لان من غير المعقول
ان تخترق نظام او اي شي بدون ان تعرف كيف يعمل هذا الشي ,, الا اذا كنت تحترق عن طريق اخطاء اكتشفها غيرك وادوات طورها غيرك ,, فهذا ليس الهكر
بما لاشك فيه ان الهكر لابد ان يتقن لغات البرمجة وليس فقط ان يجيد استخدامها بل يكون شخص محترف فيها ,, ولديه خبرة في اكثر من لغة برمجة ,,بحيث يكون هكر محترف ,,
اما الهكر الذي لا يفقه اي شي بامور البرمجة فهو ليس هكر اصلا ,, لان من غير المعقول
ان تخترق نظام او اي شي بدون ان تعرف كيف يعمل هذا الشي ,, الا اذا كنت تحترق عن طريق اخطاء اكتشفها غيرك وادوات طورها غيرك ,, فهذا ليس الهكر
………………..
صحيح هذا مختصر الكلام…البرمجة هي كل شيء..إذا انت مبرمج وكنت لأكثر من لغة ياسلام…هذا هو يعطيك القدرة على معرفة كيف تعمل اغلب الأنظمة المسايرة في العالم مثل أنظمة مايكروسفت XP Vista 7 كيف هي تكون وكيف هي قواعد بياناتها…وعندما تكون مبرمج محترف تستطيع ان تعمل ماتريد..عندها يمكنك ان تصمم أنظمة خاصة فيك تكون مصممة خصيصا لبرمجتك الخاصة ولتطوير أنظمتك والتحكم في أنظمة من انظمة العالم وتحليلها والقدرة على تشفير نظامك الخاص بواسطة خبرتك في أنظمة التشير للأنظمة المتصلة خاصة قواعد البيانات..وكيف تحميها من العابثين او الإستخبارات الوصول إليها وتكون عندها مبرمجا …هذا برأيي كيف يجب ان اكون حتى اتسمى بمسى مبرمج …..تسلمو على الموضوع الجميل وصراحه أعجبتني المناقشات في أمور مثل هذه..الله يديمكم وبإذن الله للأحسن…
بالتأكيد تعلم لغة برمجة او أكثر شيء ضروري فهو يساعد المخترق وحتى المسؤول عن الحماية في فهم ديناميكية العمل ، اما الشخص الذي يدعي انه قرصان وهو فقط يطبق
ما يتعلم من الدروس بالحرف فهذا ليس قرصان ، ولا يمكنة أن يأتي بأساليب جديدة
وطرق مطورة وحيل إبداعية لأنة بكل بساطة ليس لدية ادنى معلومة عن ما يفعل …
مشكورين يااا أخوة الاسلام على الموضوع القيم
لكن هل من الممكن ذكر بعض اللغات البرمجية الاساسية من اجل اخذها بعين الاعتبار
لعلى ذالك يفيد الكثير من ممارسين هاته التقنيات البرمجية والمساعدة في الحماية ان كنت انا او غيري من مسيرين شبكات ونطمح من أن نكون أمنة ونأدي عمل متقن
…..
السلام عليكم
شكرا لطرح هدا الموضوع للنقاش
نعم لغة البرمجة جد مهمة و السبب هو أنها تتركك تفكر وتتمعن حول كيفية عمل الالة
و تعلم لغة برمجة و اتقانها يجعل دينامية تفكيرك جد ألية و منسجمة مع الالة
لكن يبقى التساؤال المطروح لدى الجميع هو ماهي اللغة التي نبدأ بها ؟
هنا الجواب لا يكون من طرف العامة بل من طرف الشخص و رغبته تم اختصاصه
مثلا لو كان هناك شخص يريد أن يكون مختص في مجال Vulnerability فاللغة اللازم تعلمه هي PHP
وهكدا يعني حسب الاختصاص
و أنا من هنا أشكر الاخ عبد المهيمن لأنه قال صراحة فكرة جد جميلة و هي البدأ بلغة تفسيرية
و أنا أعرف أنا أخي عبد المهيمن من المحبين للروبي لآنه انتج لنا ادوات جميلة بتلك اللغة
وشكرا
اضن ان تعلم كل من بايتون و الاسمبلي
افضل
•هل اتقان البرمجة أمر ضروري أم يمكن للشخص أن يكون Penetration Tester ناجح دون أن يجيد البرمجة.
اولا البرمجة شي ضروري بس بيقدر يكون Penetration Tester جيد ولكن ليس لدرجة النجاح لكن انت بالسؤالك قلت(Penetration Tester ناجح) لذلك البرمجة شي ضروري لنجاحه
•كيف ستساعد البرمجة مختبر الاختراق في عمله وهل ترى أن تعلّم لغة برمجة واحدة أمر كافي.
عن طريق القدرة على فهم الاوامر اما لغة برمجة واحدة قد لاتكون كافية بعض الشئ ولكن قد تفي بالغرض
لان المبدأ واحد تقريبا (لست اقصد ان كل الغات واحدة ولكن كلها تسير في نفس الطريق متل الاوامر الشريطة ….)
•ما هي اللغة أو اللغات التي تعتقد أنه يجب على مختبر الاختراق تعلّمها ولماذا؟
في رأي ان يتعلم لغة الجافا – بي اش بي – html – Python– والسي بلس بلس (رغم انها بعيدة على طريق اختراق المواقع) لانه في اتحادها يستطيع الشخص أي يقرأ الاوامر وكانها كلمات فتبدو مفهومة كتير لحد انها تشبه الكلمات او المفردات
وشــــــــــــــــــــــــك
اعتقد في وقتنا الحالي اهم شي هي برمجه وانصح اي جديد في هذا المجال ان يتوجه مباشرة الى لغة php الانها اول لغة تجمع وتعتبر هي الاوسع والاشمل
السلام عليكم
انا مبرمجه بلغة ال java وبحاجه ماسه جدا لبرامج open source بلغة الجافا اوي اي لغه اخرى لتعلم منها والاستفاده لفهم كيف اقوم بعمل برنامج Penetration Testing لفحص نقاط ضعف الويب وخاصة SQl injection وهذا النقاش مفيد جدا هل من الممكن مراسلتي على [email protected]
السلام عليكم اعتقد انه على مختبر الاختراق ان يكون ملم ولو بلغة برمجة واحدة لان ذلك سوف يسهل عليه معرفة الاكواد وطريقة عمل كل منها
انا جديد في هذا الميدان وانا اتعلم لغة windev وهي اسهل لغات البرمجة وكمبتدئ وجدت سهولة في تعلمها ولهذا انصح كل مبتدئ في البرمجة ان يتعلمها ثم ان ينتقل الى لغات اخرى
هذا راي وشكرا
me too programming is veryy good for hacker
خلاصة القول: الهاكر المحترفون هم مبرمجون محترفون .