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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. רשתות
  3. API לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP

API לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP

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

    יצרתי לעצמי API שאני יכול ממחשב מרוחק לגשת לIP (הקבוע) של המחשב שלי ולפתוח לעצמי פורט שיחובר לפורט 3389 עבור חיבור לשולחן עבודה מרחוק.
    הרעיון הוא שכל הזמן אין פורט שמופנה לRDP, ורק בעת הצורך פותחים או סוגרים את החיבור
    זה נועד לתוספת אבטחה.
    להלן הקוד
    זה נכתב בהתאם לראוטר D-LINK 225
    הרעיון הוא שעבור פתיחת פורט ניגשים לכתובת של הדף
    http://31.31.31.31/openport.php?action=open
    ועבור הסגירה ניגשים כך
    http://31.31.31.31/openport.php
    כמובן יש לשנות לכתובת הIP הנכון
    וכן להשים את שם הקובץ בו שמרתם את הקוד
    וכן יש לוודא ששמתם את שם המשתמש והסיסמא הנכונים של הראוטר
    וכן לוודא שהמחשב המארח נמצא בכתובת 10.0.0.1 או להחליף בקוד לכתובת הנכונה
    ניתן לשנות את הפורט המאזין לכל פורט אחר כמובן

    <?php
    
    $username = 'Admin';
    $pass = 'Admin';
    
    $header = 'Content-Type: application/x-www-form-urlencoded'.
        "\r\n" . 'Cookie: username=' . $username . '; password=' . $pass . '';
    
    $opts = array('http' =>
        array(
            'method'  => 'GET',
            'header'  => $header,
            'follow_location' => false
        )
    );
    
    $context  = stream_context_create($opts);
    
    $Login = file_get_contents('http://10.0.0.138/login.cgi?web_login_name=' . $username . '&web_login_pass=' . $pass . '&loginfo=on&loginId=Login', FALSE, $context);
    
    $form = file_get_contents('http://10.0.0.138/scvrtsrv.html', FALSE, $context);
    $form = explode('&sessionKey=', $form);
    $sessionKey = explode("'", $form[1])[0];
    //print_r($sessionKey);
    $eStart = '5546'; //תחילת פורט נכנס
    $eEnd = '5546'; //סיום פורט נכנס
    $iStart = '3389';
    $iEnd = '3389';
    if (isset($_GET['action']) && $_GET['action'] == 'open') {
        $open = 'http://10.0.0.138/scvrtsrv.cmd?action=add&srvName=RDP&dstWanIf=ppp1.1&srvAddr=10.0.0.1&proto=1,&eStart=' . $eStart . ',&eEnd=' . $eEnd . ',&iStart=' . $iStart . ',&iEnd=' . $iEnd . ',&sessionKey=' . $sessionKey;
        $open2 = file_get_contents($open);
        print_r($open2);
    } else {
        $delete = 'http://10.0.0.138/scvrtsrv.cmd?action=remove&rmLst=10.0.0.1|' . $eStart . '|' . $eEnd . '|TCP|' . $iStart . '|' . $iEnd . ',&sessionKey=' . $sessionKey;
        $delete2 = file_get_contents($delete, FALSE, $context);
        print_r($delete2);
    }
    
    $LogOut = file_get_contents('http://10.0.0.138/logout.cgi', FALSE, $context);
    
    dovidD איש ימיניא upsilon01U 3 תגובות תגובה אחרונה
    6
    • ח חוקר

      יצרתי לעצמי API שאני יכול ממחשב מרוחק לגשת לIP (הקבוע) של המחשב שלי ולפתוח לעצמי פורט שיחובר לפורט 3389 עבור חיבור לשולחן עבודה מרחוק.
      הרעיון הוא שכל הזמן אין פורט שמופנה לRDP, ורק בעת הצורך פותחים או סוגרים את החיבור
      זה נועד לתוספת אבטחה.
      להלן הקוד
      זה נכתב בהתאם לראוטר D-LINK 225
      הרעיון הוא שעבור פתיחת פורט ניגשים לכתובת של הדף
      http://31.31.31.31/openport.php?action=open
      ועבור הסגירה ניגשים כך
      http://31.31.31.31/openport.php
      כמובן יש לשנות לכתובת הIP הנכון
      וכן להשים את שם הקובץ בו שמרתם את הקוד
      וכן יש לוודא ששמתם את שם המשתמש והסיסמא הנכונים של הראוטר
      וכן לוודא שהמחשב המארח נמצא בכתובת 10.0.0.1 או להחליף בקוד לכתובת הנכונה
      ניתן לשנות את הפורט המאזין לכל פורט אחר כמובן

      <?php
      
      $username = 'Admin';
      $pass = 'Admin';
      
      $header = 'Content-Type: application/x-www-form-urlencoded'.
          "\r\n" . 'Cookie: username=' . $username . '; password=' . $pass . '';
      
      $opts = array('http' =>
          array(
              'method'  => 'GET',
              'header'  => $header,
              'follow_location' => false
          )
      );
      
      $context  = stream_context_create($opts);
      
      $Login = file_get_contents('http://10.0.0.138/login.cgi?web_login_name=' . $username . '&web_login_pass=' . $pass . '&loginfo=on&loginId=Login', FALSE, $context);
      
      $form = file_get_contents('http://10.0.0.138/scvrtsrv.html', FALSE, $context);
      $form = explode('&sessionKey=', $form);
      $sessionKey = explode("'", $form[1])[0];
      //print_r($sessionKey);
      $eStart = '5546'; //תחילת פורט נכנס
      $eEnd = '5546'; //סיום פורט נכנס
      $iStart = '3389';
      $iEnd = '3389';
      if (isset($_GET['action']) && $_GET['action'] == 'open') {
          $open = 'http://10.0.0.138/scvrtsrv.cmd?action=add&srvName=RDP&dstWanIf=ppp1.1&srvAddr=10.0.0.1&proto=1,&eStart=' . $eStart . ',&eEnd=' . $eEnd . ',&iStart=' . $iStart . ',&iEnd=' . $iEnd . ',&sessionKey=' . $sessionKey;
          $open2 = file_get_contents($open);
          print_r($open2);
      } else {
          $delete = 'http://10.0.0.138/scvrtsrv.cmd?action=remove&rmLst=10.0.0.1|' . $eStart . '|' . $eEnd . '|TCP|' . $iStart . '|' . $iEnd . ',&sessionKey=' . $sessionKey;
          $delete2 = file_get_contents($delete, FALSE, $context);
          print_r($delete2);
      }
      
      $LogOut = file_get_contents('http://10.0.0.138/logout.cgi', FALSE, $context);
      
      dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      @חוקר לדעתי זה רכיב מסורבל ולא מספיק בטוח.
      אני מסתפק בסיסמה קשה,
      אבל אם כבר תכבה את השירות של הRDP במחשב.

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

        @חוקר לדעתי זה רכיב מסורבל ולא מספיק בטוח.
        אני מסתפק בסיסמה קשה,
        אבל אם כבר תכבה את השירות של הRDP במחשב.

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

        @dovid אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

        אבל אם כבר תכבה את השירות של הRDP במחשב.

        זה דורש כנראה גישה לAPI של ווינדוס.
        אין לי שמץ של מושג איך לגעת בזה

        yossizY תגובה 1 תגובה אחרונה
        1
        • ח חוקר

          @dovid אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

          אבל אם כבר תכבה את השירות של הRDP במחשב.

          זה דורש כנראה גישה לAPI של ווינדוס.
          אין לי שמץ של מושג איך לגעת בזה

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

          @חוקר אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

          זה דורש כנראה גישה לAPI של ווינדוס.

          לא צריך API. אם זה אפשרי כלל, אפשר לעשות את זה באמצעות פקודות, אבל מסיבה לא ברורה מייקרוסופט לא תומכים בכביית שירות RDP.
          https://www.windows-commandline.com/start-terminal-services-command-line/

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

          תגובה 1 תגובה אחרונה
          3
          • yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי
            #5

            נסיתי לבדוק קצת יותר (באמצעות procmon), ובעז"ה מצאתי את המתכון להשבית ולהפעיל שירות RDP על ידי פקודה:
            השבתה:

            reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
             /t REG_DWORD /d 1 /f
            

            הפעלה:

            reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
             /t REG_DWORD /d 0 /f
            

            (השירות תמיד מופעל אבל הוא מאזין לשינויים במפתח רג'יסטרי ההוא והוא מפסיק להאזין כאשר משנים את הערך ל-1)

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

            תגובה 1 תגובה אחרונה
            5
            • ח חוקר

              יצרתי לעצמי API שאני יכול ממחשב מרוחק לגשת לIP (הקבוע) של המחשב שלי ולפתוח לעצמי פורט שיחובר לפורט 3389 עבור חיבור לשולחן עבודה מרחוק.
              הרעיון הוא שכל הזמן אין פורט שמופנה לRDP, ורק בעת הצורך פותחים או סוגרים את החיבור
              זה נועד לתוספת אבטחה.
              להלן הקוד
              זה נכתב בהתאם לראוטר D-LINK 225
              הרעיון הוא שעבור פתיחת פורט ניגשים לכתובת של הדף
              http://31.31.31.31/openport.php?action=open
              ועבור הסגירה ניגשים כך
              http://31.31.31.31/openport.php
              כמובן יש לשנות לכתובת הIP הנכון
              וכן להשים את שם הקובץ בו שמרתם את הקוד
              וכן יש לוודא ששמתם את שם המשתמש והסיסמא הנכונים של הראוטר
              וכן לוודא שהמחשב המארח נמצא בכתובת 10.0.0.1 או להחליף בקוד לכתובת הנכונה
              ניתן לשנות את הפורט המאזין לכל פורט אחר כמובן

              <?php
              
              $username = 'Admin';
              $pass = 'Admin';
              
              $header = 'Content-Type: application/x-www-form-urlencoded'.
                  "\r\n" . 'Cookie: username=' . $username . '; password=' . $pass . '';
              
              $opts = array('http' =>
                  array(
                      'method'  => 'GET',
                      'header'  => $header,
                      'follow_location' => false
                  )
              );
              
              $context  = stream_context_create($opts);
              
              $Login = file_get_contents('http://10.0.0.138/login.cgi?web_login_name=' . $username . '&web_login_pass=' . $pass . '&loginfo=on&loginId=Login', FALSE, $context);
              
              $form = file_get_contents('http://10.0.0.138/scvrtsrv.html', FALSE, $context);
              $form = explode('&sessionKey=', $form);
              $sessionKey = explode("'", $form[1])[0];
              //print_r($sessionKey);
              $eStart = '5546'; //תחילת פורט נכנס
              $eEnd = '5546'; //סיום פורט נכנס
              $iStart = '3389';
              $iEnd = '3389';
              if (isset($_GET['action']) && $_GET['action'] == 'open') {
                  $open = 'http://10.0.0.138/scvrtsrv.cmd?action=add&srvName=RDP&dstWanIf=ppp1.1&srvAddr=10.0.0.1&proto=1,&eStart=' . $eStart . ',&eEnd=' . $eEnd . ',&iStart=' . $iStart . ',&iEnd=' . $iEnd . ',&sessionKey=' . $sessionKey;
                  $open2 = file_get_contents($open);
                  print_r($open2);
              } else {
                  $delete = 'http://10.0.0.138/scvrtsrv.cmd?action=remove&rmLst=10.0.0.1|' . $eStart . '|' . $eEnd . '|TCP|' . $iStart . '|' . $iEnd . ',&sessionKey=' . $sessionKey;
                  $delete2 = file_get_contents($delete, FALSE, $context);
                  print_r($delete2);
              }
              
              $LogOut = file_get_contents('http://10.0.0.138/logout.cgi', FALSE, $context);
              
              איש ימיניא מנותק
              איש ימיניא מנותק
              איש ימיני
              כתב ב נערך לאחרונה על ידי
              #6

              @חוקר
              זה דורש התקנת PHP במחשב?
              וא"כ דורש גם פתיחת פורט 80?

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

                עדיף פייתון, כדי ליצור קובץ נייד.

                בכל אופן, הרעיון טוב.
                רק סיסמא תשלב, כמובן...

                אני עשיתי כזה דבר להוסיף את עצמי לחומת האש בשרת אסטריסק.
                רק צריך להריץ את זה בכל הפעלה וכיבוי של הראוטר...

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

                  @חוקר
                  זה דורש התקנת PHP במחשב?
                  וא"כ דורש גם פתיחת פורט 80?

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

                  @איש-ימיני אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

                  @חוקר
                  זה דורש התקנת PHP במחשב?
                  וא"כ דורש גם פתיחת פורט 80?

                  אכן
                  אצלי כבר מותקן בין כך

                  איש ימיניא תגובה 1 תגובה אחרונה
                  1
                  • ח חוקר

                    @איש-ימיני אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

                    @חוקר
                    זה דורש התקנת PHP במחשב?
                    וא"כ דורש גם פתיחת פורט 80?

                    אכן
                    אצלי כבר מותקן בין כך

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

                    @חוקר
                    איך אני מתקין את זה?

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • איש ימיניא איש ימיני

                      @חוקר
                      איך אני מתקין את זה?

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

                      @איש-ימיני נושא חדש בקשה!

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

                        עדיף פייתון, כדי ליצור קובץ נייד.

                        בכל אופן, הרעיון טוב.
                        רק סיסמא תשלב, כמובן...

                        אני עשיתי כזה דבר להוסיף את עצמי לחומת האש בשרת אסטריסק.
                        רק צריך להריץ את זה בכל הפעלה וכיבוי של הראוטר...

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

                        @musicode אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

                        רק צריך להריץ את זה בכל הפעלה וכיבוי של הראוטר...

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

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

                          זה מאד מזכיר port knocking

                          יש כאן מאמר בעברית

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

                            יצרתי לעצמי API שאני יכול ממחשב מרוחק לגשת לIP (הקבוע) של המחשב שלי ולפתוח לעצמי פורט שיחובר לפורט 3389 עבור חיבור לשולחן עבודה מרחוק.
                            הרעיון הוא שכל הזמן אין פורט שמופנה לRDP, ורק בעת הצורך פותחים או סוגרים את החיבור
                            זה נועד לתוספת אבטחה.
                            להלן הקוד
                            זה נכתב בהתאם לראוטר D-LINK 225
                            הרעיון הוא שעבור פתיחת פורט ניגשים לכתובת של הדף
                            http://31.31.31.31/openport.php?action=open
                            ועבור הסגירה ניגשים כך
                            http://31.31.31.31/openport.php
                            כמובן יש לשנות לכתובת הIP הנכון
                            וכן להשים את שם הקובץ בו שמרתם את הקוד
                            וכן יש לוודא ששמתם את שם המשתמש והסיסמא הנכונים של הראוטר
                            וכן לוודא שהמחשב המארח נמצא בכתובת 10.0.0.1 או להחליף בקוד לכתובת הנכונה
                            ניתן לשנות את הפורט המאזין לכל פורט אחר כמובן

                            <?php
                            
                            $username = 'Admin';
                            $pass = 'Admin';
                            
                            $header = 'Content-Type: application/x-www-form-urlencoded'.
                                "\r\n" . 'Cookie: username=' . $username . '; password=' . $pass . '';
                            
                            $opts = array('http' =>
                                array(
                                    'method'  => 'GET',
                                    'header'  => $header,
                                    'follow_location' => false
                                )
                            );
                            
                            $context  = stream_context_create($opts);
                            
                            $Login = file_get_contents('http://10.0.0.138/login.cgi?web_login_name=' . $username . '&web_login_pass=' . $pass . '&loginfo=on&loginId=Login', FALSE, $context);
                            
                            $form = file_get_contents('http://10.0.0.138/scvrtsrv.html', FALSE, $context);
                            $form = explode('&sessionKey=', $form);
                            $sessionKey = explode("'", $form[1])[0];
                            //print_r($sessionKey);
                            $eStart = '5546'; //תחילת פורט נכנס
                            $eEnd = '5546'; //סיום פורט נכנס
                            $iStart = '3389';
                            $iEnd = '3389';
                            if (isset($_GET['action']) && $_GET['action'] == 'open') {
                                $open = 'http://10.0.0.138/scvrtsrv.cmd?action=add&srvName=RDP&dstWanIf=ppp1.1&srvAddr=10.0.0.1&proto=1,&eStart=' . $eStart . ',&eEnd=' . $eEnd . ',&iStart=' . $iStart . ',&iEnd=' . $iEnd . ',&sessionKey=' . $sessionKey;
                                $open2 = file_get_contents($open);
                                print_r($open2);
                            } else {
                                $delete = 'http://10.0.0.138/scvrtsrv.cmd?action=remove&rmLst=10.0.0.1|' . $eStart . '|' . $eEnd . '|TCP|' . $iStart . '|' . $iEnd . ',&sessionKey=' . $sessionKey;
                                $delete2 = file_get_contents($delete, FALSE, $context);
                                print_r($delete2);
                            }
                            
                            $LogOut = file_get_contents('http://10.0.0.138/logout.cgi', FALSE, $context);
                            
                            upsilon01U מנותק
                            upsilon01U מנותק
                            upsilon01
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @חוקר

                            עדיף לחסום את הפורט במחשב עצמו, ולא בראוטר
                            ואז יהיה אפשר לפתוח רק ל IP שממנו בוצעה הבקשה
                            ולסגור אוטומטי אחרי זמן מסוים
                            (אפשר ב iptables לתת timeout ל rule)

                            ככה זה יהיה יותר מאובטח

                            yossizY תגובה 1 תגובה אחרונה
                            1
                            • upsilon01U upsilon01

                              @חוקר

                              עדיף לחסום את הפורט במחשב עצמו, ולא בראוטר
                              ואז יהיה אפשר לפתוח רק ל IP שממנו בוצעה הבקשה
                              ולסגור אוטומטי אחרי זמן מסוים
                              (אפשר ב iptables לתת timeout ל rule)

                              ככה זה יהיה יותר מאובטח

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

                              @upsilon01 אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

                              (אפשר ב iptables לתת timeout ל rule)

                              הוא משתמש בווינדוס

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

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

                                @upsilon01 אמר בAPI לפתיחת וסגירת פורט 3389 לRDP לעולם החיצוני באמצעות PHP:

                                (אפשר ב iptables לתת timeout ל rule)

                                הוא משתמש בווינדוס

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

                                @yossiz
                                אפשר גם ב windows

                                 netsh advfirewall firewall add rule name= "Open Port 80" dir=in action=allow protocol=TCP localport=80
                                
                                תגובה 1 תגובה אחרונה
                                3
                                תגובה
                                • תגובה כנושא
                                התחברו כדי לפרסם תגובה
                                • מהישן לחדש
                                • מהחדש לישן
                                • הכי הרבה הצבעות


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

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

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