محاولة نقل طارق للعمل على Python3

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

أقوم حالياً بمحاولة نقل طارق للعمل من Python2x الى Python3 وأتمنى إن كان هناك من يستطيع أن يقوم بعمل تجارب معي حول ذلك … لقد قمت بتصحيح الكود ليتوافق مع Python3 ولكن هناك مشاكل صراحة … أول هذه المشاكل هي إنه scapy الذي يعتمد عليه طارق لا يعمل على Python3 وبالتالي عليك أن تعدل على Path للبايثون وتضيف له المسار الموجود فيه الموديول scapy … يمكن عمل ذلك بواسطة:

import sys
sys.path.append('/usr/lib/python2.6')
sys.path.append('/usr/lib/pymodules/python2.6')
sys.path.append('/usr/local/lib/python2.6/dist-packages')
import scapy

غير ذلك سوف تحصل على رسالة خطأ إنه الموديول غير موجود … لا أريد أن أضع التعديل في الكود الرسمي الآن وأقصد تعديل عملية الـ import ولكن الكود الجديد لطارق موجود وبالإمكان عمل checkout له مباشرة من موقع طارق … كذلك هناك مشاكل عدة في الموديول StringIO أحتاج الى إصلاحها …
Continue reading

Securing a Linux Box with Tariq

وصلتني إستفسارات عدة بخصوص طريقة تركيب وتشغيل طارق Tariq ويبدو إنه هناك لبس بسيط في طريقة عمل البرنامج ولهذا لم يعرف الجميع كيفية تشغيله … سأشرح في هذا الموضوع طريقة تركيب Tariq وكيفية الإستفادة منه … الشرح الذي في هذا الموضوع تم تطبيقه على توزيعة Debian الأخيرة (Debian 6 – Squeeze) … سأقوم بشرح الأمور البسيطة التي في طارق وبعدها نتوسع في مواضيع أخرى لأني أنوي ترقيته والتعديل على بعض الأمور فيه …

قبل أن أشرح طريقة إستخدام طارق (Tariq) … أود أن أشرح بشكل مبسط جداً طريقة عمله الهيكلية أو التقنية … أولاً طارق (Tariq) عبارة عن نظام لعمل الـ Port Knocking وأمور أخرى أكثر تقدماً من مجرد كونه طارق على المنافذ والتي نعرفها في التقنيات الموجودة حالياً، وسأوضح ذلك في مواضيع أخرى إن شاء الله … طريقة عمل طارق (Tariq) هي من خلال إعطائك أمر له ليقوم بتنفيذه … يأخذ هذا الأمر ويقوم بتشفيره بواسطة مفتاح العميل ومن ثم يقوم بإخفاءه بداخل صورة معينة … بعد ذلك يتم إرسال هذه الصورة مُجزئة على أجزاء بسيطة بداخل عدد الدقات التي ستقوم بها … طبعاً يفضل أن لا تكون الصورة كبيرة الحجم، وذلك لأنك وقتها ستحتاج الى وقت أكثر لترسل التعليمة المراد تنفيذها، وكذلك ستحتاج الى إما زيادة عدد الدقات، أو الى إرسال حٌزم كبيرة الحجم وذلك بحكم تقسيم الصورة على الحزم المرسلة … هذه العملية الى الآن تمت على العميل … حين يستلم طارق (Tariq) الدقات يراعي إنها أولاً تحمل بيانات ومن ثم يراعي إنها جائت وفق دقات معينة تم الإتفاق عليها وكذلك بالترتيب الذي تم الإتفاق عليه … الى هنا طارق لم يحلل ما في داخل الحزم المرسلة … بعد ذلك يعيد إرسال لنسميه تأكيد الى العميل، والتأكيد عبارة عن رقم عشوائي … هذا الرقم العشوائي يكون مُشفر بواسطة مفتاح عميل طارق العام ويُرسل بواسطة حٌزمة Packet الى العميل مرة أخرى لكي يقوم العميل بإثبات إن هذا الأمر فعلاً هو من قام بإرسالها له … العميل يستلم الحزمة، وكونها مٌشفرة بمفتاحه العام يقوم بفكها ثم يقوم بإرسال هذا الرقم مرة أخرى الى الخادم ليؤكد إنه نعم أنا صاحب الطلب والرجاء تنفيذ طلبي … هكذا تمت عملية الـ Mutual Authentication أو البعض يسميها 2Way Authentication … إذا تحقق كل هذا، يقوم طارق بتجميع الحزم وإستخراج الصورة منها … ثم يستخرج النص أو الأوامر المطلوبة منه تنفيذها من خلال فك تشفير النص المخفي بداخل الصورة بإستعمال المفتاح العام للعميل … هذا بإختصار شديد آلية عمل طارق … والكود المصدري للنظام موجود بإمكانكم تحميله والإطلاع عليه وتعديله أو العمل معي على تحسينه حسب ما ترونه … بالنهاية هو مفتوح المصدر ويخضع لرخصة GPL … وكذلك هو منشور في موقع Port Knocking الرسمي ضمن قائمة التطبيقات التي تمت في هذا المجال … هذا النظام سيفيدك في فتح المنافذ وغلقها وتنفيذ الأوامر والعمليات التي تحتاجها بدون أن تقوم بفتح الخدمة للجميع … يرجى مراجعة أنظمة Port Knocking وما هي فائدتها بهذا الخصوص أو للإستفادة أكثر …

الآن ندخل في عملية إستعمال طارق (Tariq) وقبل كل شيء ستحتاج عزيزي القاريء الى تركيب الحزم التي بالأسفل سواء للخادم أو للعميل … وعملية تركيبهم على دبيان وباقي التوزيعات اليوم أصبحت جداً بسيطة:

* Python >= 2.6
* python-imaging  - Python Imaging Library (PIL)
* GnuGP
* Scapy
* نواة حديثة تستخدم iptables مثال على ذلك هو نواة (2.6)

Continue reading

طارق – جاهز للتحميل !

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

قبل قليل أنتهيت من كتابة بحثي ورسالتي للدكتوراه حول الـ Port-Knocking وقمت برفع برنامج طارق Tariq بالكامل لمن يود تجربته وإستعماله … أو يطلع على الكود الخاص به … الكود بسيط جداً مكتوب بلغة بايثون بإستعمال Scapy لأغراض الـ Sniffing وأيضاً لأغراض الـ Packet Crafting … حيث يعتبر هو أساس المشروع بالكامل :)

لمن يود تحميله يمكنه ذلك من خلال الرابط التالي : DOWNLOAD

وإن كان هناك اي سؤال أو إستفسار حوله لا تترددوا في ذلك … طبعاً ساجيب حسب وقت فراغي ولهذا سامحوني على قلة التفاعل هذه الفترة …

دمتم بود …

لا تقلل من قيمة أبسط عمل تقوم به !

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

لي فترة من الزمن غائب عن كل شيء، سواءاً مدونة، مجتمع لينوكس ومجتمع الحماية وكل الأصدقاء والأحبة … ولكن للظروف أحكام … أخذت إجازة لكم يوم من عملي وذلك للتفرغ لإنهاء رسالتي ولهذا قطعت عن نفسي كل شيء متأملاً أن أنهي ما بدأت، للأسف لم أنتهي لكنني قطعت شوطاً كبيراً … أنهيت الجزء الأول، الثاني، الثالث (اليوم أخلصه) ويبقى علي الجزء الرابع الذي فيه التجارب والارقام … والجزء الخامس عبارة عن صفحة واحدة أو صفحتين بأقصى تقدير فيها الإستنتاجات حسب وجهة نظري الشخصية بالإضافة الى الأعمال التي أنوي القيام بها بالمستقبل حول المشروع وأفكار تطويره … أيضاً أنهيت الكثير من التفاصيل حول المشروع في صفحة الويكي الخاصة به، والتي تجدونها هنا … لم أنتهي منها بعد، لكن إن شاء الله سانهيها وبعد ذلك أضع الكود لمن يريد التجربة :) على كل حال ليس طارق هو سبب هذه التدوينة بصراحة !

الكثير منا بعض الاحيان يفكر بالقيام بعمل ما ولكنه يقول بإنه سخيف أو تافه وما الى ذلك من تقليل من ذلك العمل … رأيت كلام مثل هذا كثير في مجتمع لينوكس العربي وأراه بشكل كثير في حياتنا العملية كذلك … مثلا يقول لك لماذا أكتب عن الأمر الفلاني، فهو أمر سخيف وبسيط … لكنه نسي إن هذا الأمر السخيف بنظره والبسيط هو أمر جديد ومميز لغيره … ونفس الشيء لمن يقوم بعمل ما … تجده كونه هو قام بالعمل لا يفكر بإن عمله ذات أهمية أو إنه عمل كبير ويعتقد بإنه مجرد عمل بسيط لن يكون محل فائدة لأحد … هذه الأفكار خاطئة حسب رأيي الشخصي … فما هو بنظرك سخيف أو بسيط، هو بنظر غيرك عمل كبير ومفيد جداً … وأيضاً لا تنسى بإن مستوى العلم عندك ليس هو نفسه عند غيرك … غيرك ممكن يكون جديد على هذا المجال ولهذا هو مبتديء وعملك بالنسبة له سهل عليه الكثير من الوقت للتعلم أو للإستفادة، هذا إن تكلمنا مثلا عن الدروس والمقالات التعليمية … اما في جانب البرامج، فإنه نفس الشيء ربما برنامجك هذا البسيط في نظرك هو مميز جداً لي ولغيري …
Continue reading