תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    ניתוח חולשת PwnKit (תגובות)

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

      כאן ניתן להגיב על מאמר זה

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

      WWW תגובה 1 תגובה אחרונה תגובה ציטוט 4
      • הוזכר על-ידי  yossiz yossiz 
      • WWW
        WWW @yossiz נערך לאחרונה על ידי

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

        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

        תגובה 1 תגובה אחרונה תגובה ציטוט 4
        • nigun
          nigun נערך לאחרונה על ידי

          לא הבנתי מה נמצא בargv[0] כשאני מריץ pkexec בשורת הפקודה בלי פרמטר

          מייל: ynigun@pm.me

          WWW yossiz 2 תגובות תגובה אחרונה תגובה ציטוט 1
          • WWW
            WWW @nigun נערך לאחרונה על ידי

            @nigun אמר בניתוח חולשת PwnKit (תגובות):

            לא הבנתי מה נמצא בargv[0] כשאני מריץ pkexec בשורת הפקודה בלי פרמטר

            שם הקובץ.

            WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

            nigun תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • nigun
              nigun @WWW נערך לאחרונה על ידי

              @www
              איזה? pkexec?

              מייל: ynigun@pm.me

              WWW תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • WWW
                WWW @nigun נערך לאחרונה על ידי WWW

                @nigun אמר בניתוח חולשת PwnKit (תגובות):

                pkexec

                כן.
                ככה זה בכל קובץ שאתה מריץ.
                אתה כותב בשורת הפקודה:

                filname arg1 arg2
                

                מתקבל מערך:

                { 
                0: filname,
                1: arg1,
                2: arg2
                }
                

                WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                תגובה 1 תגובה אחרונה תגובה ציטוט 3
                • yossiz
                  yossiz @nigun נערך לאחרונה על ידי yossiz

                  @nigun
                  יש מוסכמה, שמי שמריץ את התוכנה שם ב-argv[0] את השם של הקובץ של התוכנה, כלומר אם אתה מריץ pkexec מתוך bash אז bash (בתור תוכנה שמכבדת את המוסכמה הזו) תכניס את המילה pkexec ב-argv[0].

                  אבל חשוב להבין שזו רק מוסכמה. אין משהו שמחייב את זה. אפשר להכניס שם מחרוזת אקראית, או אפשר להכניס שם null pointer שמסמן את סוף מערך ה-argv.

                  ניצול החולשה מסתמכת על זה שהכנסת שם הקובץ הוא אופציונאלי.

                  אגב, משהו מעניין,

                  יש הרבה פקודות שמנצלים מוסכמה זו כדי שתוכל לקבל התנהגויות שונות מאותה פקודה, ההתקנה של הפקודה מתקינה כמה קישורים לאותו קובץ (hardlinks) ולכל אחד שם שונה, והפקודה מחליטה לפי השם ב-argv[0] איך להתנהג.
                  דוגמה לזה הוא busybox

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

                  תגובה 1 תגובה אחרונה תגובה ציטוט 6
                  • MusiCode
                    MusiCode נערך לאחרונה על ידי

                    מה הכוונה "משאבים משותפים"?

                    yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • yossiz
                      yossiz @MusiCode נערך לאחרונה על ידי

                      @musicode אתה מתייחס למילים אלו שלי:

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

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

                      מקווה שזה יותר ברור עכשיו. תודה על ההערה.

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

                      תגובה 1 תגובה אחרונה תגובה ציטוט 3
                      • צדיק תמים
                        צדיק תמים נערך לאחרונה על ידי

                        @yossiz אמר בניתוח חולשת PwnKit:

                        תשתמשו בשפות בטוחות. בשפה אחרת באג זה היה נשאר באג, ולא היה מגיע לכדי חולשה.

                        לא הבנתי, זה שזה הגיע לחולשה זה מעלה או חיסרון? ובאיזה שפה מדובר פה? סליחה על הבורות.

                        אם הדיבוג הוא התהליך בו מוציאים באגים מהתוכנה, התכנות חייב להיות התהליך בו מכניסים אותם פנימה (פינת הקפה)

                        yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • yossiz
                          yossiz @צדיק תמים נערך לאחרונה על ידי

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

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

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

                          תגובה 1 תגובה אחרונה תגובה ציטוט 3
                          • WWW
                            WWW נערך לאחרונה על ידי

                            @yossiz

                            pkexec תיקח תוצאה זו ותכניס אותה חזרה ל... משתנה הסביבה הראשונה. יוצא שהצלחנו להזריק משתנה הסביבה לא בטוחה לתוך התהליך. משתנה הסביבה נראית כך עכשיו: GCONV_PATH=./xxx:.‎

                            לא הבנתי למה?

                            WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                            yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 1
                            • yossiz
                              yossiz @WWW נערך לאחרונה על ידי

                              @www על איזה חלק בדיוק אתה שואל?

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

                              WWW תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • WWW
                                WWW @yossiz נערך לאחרונה על ידי

                                @yossiz אמר בניתוח חולשת PwnKit (תגובות):

                                @www על איזה חלק בדיוק אתה שואל?

                                איפה ראינו שהוא מחזיר את התוצאה למשתנה הסביבה הראשון?

                                WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                yossiz תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • yossiz
                                  yossiz @WWW נערך לאחרונה על ידי

                                  @www

                                  610   path = g_strdup (argv[n]);
                                  ...
                                  629   if (path[0] != '/')
                                  630     {
                                  ...
                                  632       s = g_find_program_in_path (path);
                                  ...
                                  639       argv[n] = path = s;
                                  

                                  שורה 639 מכניס את המצביע למחרוזת החדשה שהוחזרה על ידי g_find_program_in_path לתוך argv[n] שכנתבאר נמצא ב-envp[0]

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

                                  תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                  • 1 / 1
                                  • פוסט ראשון
                                    פוסט אחרון
                                  בא תתחבר לדף היומי!