PracticU

העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver
מילון מושגים:
דרייבר - תוכנה שמאפשרת למערכת ההפעלה לתקשר עם רכיב חומרה מסוים, כמו כרטיס מסך או מדפסת.
קרנל - ליבת מערכת ההפעלה, שמנהלת את החומרה, הזיכרון והתהליכים ומתווכת בינם לבין התוכנות.
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
Wireshark - כלי ללכידה ולניתוח של תעבורת רשת, המציג את החבילות העוברות לצורך אבחון ובדיקה.
USB - תקן חיבור אוניברסלי לחיבור התקנים למחשב, כמו זיכרון נייד, מקלדת או מדפסת.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
טרמינל - חלון או תוכנה שמספקים ממשק שורת פקודה להקלדת פקודות למערכת ההפעלה.

העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver
בשיעור זה נעלה הרשאות ממשתמש רגיל עד לרמת System על ידי ניצול חולשה בתוך דרייבר. הדרייבר פועל ברמת הקרנל, בליבה של מערכת ההפעלה, ויש לו הרשאות על כל המערכת, ולכן באג בתוכו הוא שער מצוין. ההדגמה מתבצעת על Windows 7 סרוויס פאק 1 בן 32 סיביות, אך כל העקרונות תקפים גם בווינדוס 10 ובווינדוס 11.
נושאי הסיכום המוצגים בשיעור:
1. הכנת הקורבן: מדמים לקוח תמים שהתקין בעבר את Wireshark בגרסה 2.2.5, תוכנה לסניף תקשורת רשת, ובגרסה הזאת מותקן דרייבר שיש בתוכו באג. הלקוח לא יודע דבר, הוא הוריד תוכנה ממקור רציני ושכח ממנה, והדרייבר הפגום יושב אצלו בזיכרון עד היום.
2. דרישת קדם: לפני ההתקנה דרוש עדכון אחד של Windows, מספר KB ספציפי שמורד מאתר מיקרוסופט בגרסת x86 למערכת של 32 סיביות. זה העדכון היחיד שמבצעים במכונה, ואחרי ההתקנה נדרשת הפעלה מחדש.
3. הורדת הגרסה הפגועה: באתר של Wireshark לא מתקינים את הגרסה הנוכחית אלא יורדים אל רשימת כל הגרסאות הישנות, בוחרים בגרסת Windows 32 ביט ומחפשים בעזרת Ctrl F את קובץ ההתקנה של גרסה 2.2.5.
4. התקנה עם הדרייבר הפגום: במהלך ההתקנה מסמנים את האפשרות של התקנת דרייבר ה USB, USBPcap, שנדרש לתפיסת תקשורת שעוברת דרך כרטיס רשת USB. זהו הדרייבר הבעייתי, והלקוח התמים סימן אותו בתמימות בזמנו מבלי לדעת שיש בו באג.
5. בדיקת הדרייבר במכונה: אחרי ההתקנה מריצים את הפקודה driverquery, שמציגה את כל הדרייברים המותקנים, ומעבירים את הפלט בצינור אל findstr שמסנן רק את השורות שמכילות את שם הדרייבר. כך מאומת שהדרייבר הפגום אכן מותקן והקורבן מוכן.
6. איסוף מידע על המכונה: התוקף כבר נמצא בתוך CMD מרוחק של הקורבן, ומריץ systeminfo כדי לאסוף מידע כללי על המערכת. הפלט מראה שמדובר ב Windows 7 סרוויס פאק 1 בן 32 סיביות ומציג את רשימת העדכונים, וניתן להעביר את הפלט בצינור אל findstr כדי לקבל רק את השורות שמעניינות.
7. זיהוי גרסת הדרייבר: מריצים driverquery עם המתג המורחב שמציג גם את קובץ ה sys של כל דרייבר, מאתרים את הדרייבר החשוד, ומחפשים את קובץ ה INF שלו בעזרת dir עם חיפוש בתתי תיקיות. קובץ ה INF נקרא בעזרת type, שהוא המקבילה של cat בעולם הלינוקס, וממנו מתגלה שגרסת הדרייבר היא 1.1.0.
8. חיפוש אקספלויט מקביל: בקאלי לינוקס מריצים searchsploit מול בסיס הנתונים של חורי האבטחה הידועים עבור USBPcap, ומגלים שקיים אקספלויט בדיוק לגרסה 1.1.0 על Windows 7 סרוויס פאק 1 בן 32 סיביות, בדיוק מה שמותקן אצל הלקוח. לחולשה יש מספר זיהוי בקטלוג ה CVE הציבורי, והיא התגלתה בשנת 2017.
9. מקור האקספלויט: האקספלויט מתקבל כקובץ קוד בשפת C, ולכן יש להפוך אותו לקובץ exe לפני ההרצה. קוראים אותו בעזרת cat ומעבירים את הפלט בצינור אל more כדי לדפדף בו דף דף, ורואים בו את התיאור ואת הפקודות בשפת C.
10. בחירת מהדר: לא מתקינים את Visual Studio, אלא מהדר קל משקל מפרויקט GCC, הארגון שמנהל את המהדרים של שפת C ו C++. לווינדוס קיימים כמה פרויקטים מתאימים, ונבחר MinGW W64 שמותאם לווינדוס ומורד מאתר SourceForge כקובץ התקנה.
11. העיקרון של הידור בצד: במציאות את המהדר מתקינים ואת הקוד מהדרים על מחשב של התוקף בצד, בסביבה זהה לזו של הקורבן, ואל הקורבן נשלח רק קובץ ה exe המוכן. בהדגמה זו הכל מתבצע על אותה מכונה לשם הנוחות.
12. המהדר בנתיב ה PATH: פותחים את הטרמינל המיוחד של MinGW, שההבדל היחיד שלו הוא שהוא מוסיף את תיקיית ה bin של המהדר אל הנתיב של ה PATH, ולכן הפקודה gcc עובדת מכל מקום ולא רק מתוך תיקיית ההתקנה שלו.
13. הידור והרצה: נכנסים לתיקיית Downloads, מהדרים בעזרת gcc עם הפרמטר שקובע את שם קובץ הפלט, מתעלמים מהאזהרות, ומקבלים קובץ exe חדש. לפני ההרצה whoami מראה שהמשתמש הוא אלכס ו whoami עם המתג של ההרשאות מראה שאין הרשאות מיוחדות.
14. התוצאה: מריצים את האקספלויט, הוא מבקש לחיצה על מקש כלשהו, ונפתח CMD חדש שבו whoami מראה שהמשתמש הוא System, המשתמש החזק ביותר במערכת, ורשימת ההרשאות שלו ארוכה ומלאה. החולשה בדרייבר ברמת הקרנל העניקה שליטה מלאה במערכת.
בשיעור זה נוצלה חולשה מוכרת בדרייבר USBPcap שהגיע יחד עם גרסת Wireshark ישנה, האקספלויט המתאים נמצא ב searchsploit, הודר מקוד C בעזרת MinGW והורץ מתוך ה CMD של הקורבן, והעניק CMD חדש בהרשאות System. בשיעור הבא נעסוק בנושא העלאת הרשאות - הסבר נוסף, חלק 1.
SR12560HE

פרקי ההרצאה: העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver

  1. 00:00

    העלאת הרשאות דרך הדרייבר

  2. 00:54

    הכנת הקורבן עם Wireshark

  3. 01:52

    התקנת עדכון הדרוש ל-Wireshark

  4. 02:48

    אתחול המכונה לאחר העדכון

  5. 04:00

    הורדת גרסת Wireshark ישנה

  6. 05:13

    התקנת ה-USBPcap

  7. 06:30

    בדיקת הדרייברים במערכת

  8. 08:37

    זיהוי הדרייבר הפגום

תמלול ההרצאה: העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver

הטקסט המלא של הדקות הראשונות בהרצאה «העלאת הרשאות על ידי ניצול באגים בדרייבר - Kernel Driver» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:27

    פשוט הדוגמה שלי היא על Windows 7 אבל דרייברים לא השתנו גם בווינדוס 10 וכל מה שאני הולך להראות לכם תופס גם על ווינדוס 10, גם על ווינדוס 11 פשוט הדוגמה של הבאג שלי היא על ווינדוס 7 יותר מזה, אני רוצה להגיד לכם שאם אתם רוצים לעשות כמוני אתם צריכים להתקין ווינדוס 7 עם סרוויס פאק 1

  3. 00:49

    ווינדוס 7 32 ביט עם סרוויס פאק 1 32 ביט אז ממה אנחנו מתחילים? אנחנו מתחילים מזה שאנחנו צריכים להכין את הקורבן שלנו ולהתקין על הקורבן שלנו את הווייר שארק גרסה 225. בגרסת 225 יש שם דרייבר שיש בתוכו באג אז תחשבו שלקוח תמים מתקין ווייר שארק כן זה שמסניף את הפאקטים זה שמאזין לכבל רשת התקין ווייר שארק ולא ידע שיש שם דרייבר עם

  4. 01:20

    באג בוא נכין את הסביבה שלנו כדי להתקין את הדרייבר עם הבאג אנחנו צריכים קודם כל להתקין איזשהו Update של Windows, Windows Update 33992 צריך להתקין אותו כי הוא נדרש בשביל ה-WireShark ובשביל הדרייבר שאני צריך.

  5. 01:39

    זה כמו דרישת קדם כזאת. אוקיי, אז אנחנו עכשיו נכנסים לאתר של מיקרוסופט ויש פה למטה את ה-KB הזה שזה מספר עדכון Security Update שהוא נדרש ובדיטיילס אני רואה שזה x86 שזה 32 ביט.

  6. 01:57

    המערכת שלי היא 32 ביט, איך אני דרך אגב יודע שזה 32 ביט? בפרופרטיז אתם יכולים לראות פה סיסטם טייפ 32 ביט, מערכת ההפעלה 32 ביט, אוקיי אז יש לי מערכת ההפעלה 32 ביט, וינדוס 7, סרוויס פק 1, אוקיי אז אני עושה דאונלורד ומעדכן את העדכון הזה של הווינדוס, זה העדכון היחיד שאני עושה, אני לא עושה עוד עדכונים לווינדוס,

  7. 02:24

    זה הדבר היחיד, הנה הוא פה אומר לי האם אתה רוצה לעדכן את ה-KB, אתה knowledge base, kb זה knowledge base, מאגר מידע, כאילו מאמר כזה וכזה, והנה הוא מתקין לי אותו.

  8. 02:36

    כדי שהמכונה תעבוד לי זריז, אני סתם מראה לכם עד שהוא מתקין. אם אתם שואלים אותי למה זה זריז אצלי, אני אספר לכם סוד, כי שמתי פה 4 ג'יגה זיכרון ו-4 מעבדים.

  9. 02:48

    אז גם אתם תשימו 4 ג'יגה זיכרון ו-4 מעבדים כדי שהווינדוס יעבוד לכם מהר. והנה הוא סיים להתקין, ואני עושה לו restart, הפעלה מחדש כדי שהעדכון ייכנס לפעולה.

  10. 03:00

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

  11. 03:24

    אני מחק לכם את הכישורים שלא יבלבלו אתכם במסך ווייר שארק דאונלואוד, הנה אנחנו נכנסים פה לדאונלואוד ולא מתקינים את הגרסה הנוכחית אלא יורדים למטה ויש פה All the Releases, גרסאות ישנות, הולכים לגרסאות ישנות, נכנסים לאיזשהו שרת עם כל ההורדות, פה יש לנו Windows 32-Bit ולא 64-Bit, יש לנו פה גרסאות 3-4,

  12. 03:52

    אנחנו רוצים All Versions, גם את הגרסאות הישנות, ואני לוחץ קונטרול F ומתחיל לחפש 225 אבל אני לא רוצה את הזיפ, אני רוצה את האקזה של ההתקנה הנה מצאתי את האקזה של ההתקנה שלו ואני מוריד אותו יופי, אז הורדנו אותו וויירשר גרסת 225 ל-32 סיביות

  13. 04:15

    ועכשיו נתקין אותו תוך כדי ההתקנה אנחנו נצטרך לסמן שאנחנו רוצים את הדרייבר של USB שתופס את התקשורת דרך USB שאנחנו מכינים את הסביבה כאילו זה לקוח תמים שנכנס לאתר של ווייר שארק והוריד את הגרסה ומאז הוא לא עדכן את זה מספיק שהוא פעם אחת התקין את הווייר שארק הזה לפני המון המון שנים יהיה לו בזיכרון את הדרייבר הפגום הזה

  14. 04:41

    ואנחנו דרכו נוכל להעלות לעצמנו הרשאות הנה הוא סיים להוריד אותו בוא נתחיל התקנה, נעשה לו yes נסגור את הדפדפן ואנחנו עושים על הכל yes, yes, yes, next, next, next ופה ה-v הכי חשוב Install USB Pickup, כי זה הדרייבר הפגום ואנחנו צריכים שהוא יתקין

  15. 05:03

    אותו. זה דרייבר ש-requires to capture USB traffic. אם יש לנו כרטיס רשת דרך USB ואנחנו רוצים לתפוס דרכו את התקשורת, אז כשהוא יוכל לתפוס את התקשורת שעוברת דרך USB צריך לסמן את זה.

  16. 05:17

    אז תחשבו שלקוח תמים מתקין ויירשארק רגיל באותם הימים ושם V על ה-USB Pickup דרייבר. הוא לא עושה שום דבר מסוכן, הוא הוריד תוכנה ממקום טוב, הכל בסדר, הוא פשוט לא ידע שיש שם באג והוא שכח מהתוכנה הזאת הוא התקין אותה וזהו ואנחנו מה אנחנו נעשה אנחנו ננצל את הבאג הזה הנה הוא מתקין את כל הדברים שלו הנה הוא מתחיל להתקין את ה-USB פיקאפ כחלק מהתקנה נקסט אתם רואים זה

  17. 05:44

    היה ב-2013 התוכנה הדרייבר הזה עודכן יש פה את הדרייבר הנה זה הדרייבר הבעייתי שהלקוח לא יודע שהוא בעייתי אבל הוא כאן הדרייבר הבעייתי הזה USB פיקאפ דרייבר נקסט אני עושה על הכל נקסט שימו לב באיזה תיקייה הוא מתקין אותו אוקיי, בקיצור, עשינו את כל ההתקנת ברירת מחדל, הלקוח התמים לא חושד בכלום, רק אני רוצה לבדוק דרך פקודת דרייבר קווירי

  18. 06:11

    שזה באמת עודכן כמו שצריך. פיניש, אה, הוא רוצה ריבוט. אני רוצה להראות לכם מה זה דרייבר קווירי. קודם כל, נריץ את הדרייבר קווירי רגיל. שוב, מה זה דרייבר קווירי? זו תוכנה בתוך C Windows 32, כן?

  19. 06:26

    יופי, ה-Windows עלה לנו, נעשה CMD, ונבדוק שבאמת הקורבן שלנו מוכן, שהדרייבר עלה, הנה יש לנו פה מלא מלא דרייברים, הפקודה דרייבר קווירי מראה לנו המון המון דרייברים, במקום לחפש ידנית בואו נעשה פיינד אסטייר, פיינד אסטייר זאת תוכנה שמסננת שורות, אז את כל הפלט של דרייבר קווירי אני מעביר דרך פייפ,

  20. 06:50

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

  21. 07:02

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

  22. 07:15

    טוב, אז יש לנו לקוח מוכן ותמים שאנחנו הולכים לפרוץ עליו. אז תחשבו ששלחנו לו סוס טרויאני והצלחנו להגיע למצב שיש לנו CMD רגיל.

  23. 07:24

    אין לי כוח עוד פעם לפתוח את ה-CMD מרחוק, תחשבו שזה CMD מרוחק, זה לא משנה לנו, אנחנו כאילו בלקוח תמים פרצנו ל-CMD שלו. אז אנחנו עושים תוכנת סיסטם אינפו, פקודת סיסטם אינפו, ששוב סיסטם אינפו זה קובץ אקזה שנמצא בסיסטם 32, אני מריץ סיסטם אינפו.exe ואני מגלה לאן פרצתי

  24. 07:47

    בכלל, אני אוסף מידע כללי, אני רואה פה שפרצתי ל-Windows 7, אני רואה כאן שה-Windows 7 הזה 32 סיביות ולא 64, אני רואה פה איזה עדכונים יש לו, יש לו הרבה עדכונים שהותקנו.

  25. 08:04

    בקיצור, אני מתחיל לאסוף מידע על התחנה. עוד פעם, אם אני לא רוצה כל כך הרבה מידע, אני יכול לעשות פה את הפלט של System.info להעביר בצינור, בפייפ, ל-FindSTR שיסנן לי שורות מסוימות שמעניינות אותי.

  26. 08:20

    אני מדגים לכם ואז הפלט לא יהיה כזה ארוך אלא רק שלוש שורות Windows 7 32CBיות עם Service Pack 1. יפה מאוד. עכשיו אנחנו אצל הקורבן גילינו, אנחנו כאקרים עכשיו, גילינו שאנחנו נמצאים במערכת כזאת וכזאת.

  27. 08:37

    בואו נבדוק האם יש לו דרייבר פגום. איך אנחנו עושים דרייבר פגום? אמרנו דרך דרייבר query, ואני ישר אריץ את הפקודה שמראה לי את הדרייבר query/v, מראה לי גם את הקובץ sys.

  28. 08:50

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

  29. 09:00

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

לקורס המלא: קורס סייבר למתחילים אונליין

ההרצאה הקודמת: העלאת הרשאות על ידי ניצול באגים בנתיב לקובץ

ההרצאה הבאה: העלאת הרשאות - הסבר נוסף (חלק 1)

הרצאות קשורות מקורסים אחרים

  • העלאת הרשאות - עקיפה של UAC
  • Chrome Driver
  • איך לעקוף הרשאות NTFS על ידי SeBackupPrivilege
  • באגים - Bugs

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting