
הטקסט המלא של הדקות הראשונות בהרצאה «העלאת הרשאות בלינוקס על ידי ניצול באגים בקרנל - Linux Kernel» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזו אנחנו רוצים לראות איך אפשר להעלות הרשאות בלינוקס מיוזר פשוט לרוט. איך אנחנו משדרגים את עצמנו אחרי שפרצנו למטרה שלנו.
אחרי שהצלחנו למצוא שם חולשה ולפרוץ פנימה, או לחלופין עברנו על כל הסיסמאות האפשריות, עשינו ברוט פורס ופרצנו בכוח לאיזשהו משתמש בתוך התוכנה, בתוך השרת, ואנחנו עכשיו בפנים ורוצים לשדרג את עצמנו לרוט.
אז או שמצאנו חולשה ופרצנו פנימה או שמצאנו סיסמה ופרצנו פנימה בסוף אנחנו בפנים ורוצים לשדרג את עצמנו מיוזר מוגבל ליוזר רוט.
אז היום אנחנו נראה את הטריק איך לעשות את זה על ידי ורנביליטיז חולשות שיש לנו בתוך קרנל בתוך מערכת ההפעלה יש איזשהו פגם במערכת ההפעלה עצמה שאפשר לנצל אותו ולשדרג את עצמך זה ממש פגם בקרנל עצמו של מערכת ההפעלה.
כדי להדגים את זה אנחנו ניקח מכונה וירטואלית שנקראת דרופי מתוך אתר וורנבל האב כאילו אוסף של מכונות פגומות שבכוונה עשו מכונות כדי שנתרגל אותם בכוונה יש פה חורי אבטחה במכונות הווירטואליות האלו שלא נצטרך להקים אותם לבד מאפס אז יש כזה אתר שיש פה אלפי מכונות וירטואליות
ואני בחרתי מכונה שנקראת דרופי ורשן 0.2 ואתם מורידים את זה מפה אתם לוחצים כאן מתחילים להוריד אותה אחרי שאתם מורידים אותה, את המכונה, יורד לכם פייל OVA ואתם יכולים לייבא את זה. זאת מכונה וירטואלית מוכנה שאפשר לייבא אותה ישר לתוך ה-VMWare עם כל ההגדרות שצריך.
אז אנחנו באים ל-VMWare הרגיל שלנו ולוחצים פה פייל אופן ובוחרים את הקובץ הזה שהורדנו. הוא שואל אותי איך לקרוא למכונה, droopy catch the flag, CTF זה catch the flag, תתפוס את הדגל, הצליח להגיע לרות כאילו זה מכונה עם אתגר אוקיי אני עושה אימפורט והוא מייבא לי את המכונה הווירטואלית המוכנה אפשר גם לייבא אותה לתוך
וירטואל בוקס זה פורמט פתוח שכולם תומכים בו וזאת המכונה OVA הדבר היחיד שאני רואה שהיא בברידג' והמכונה הווירטואלית הקיימת אצלי היא בנאט אז אני מעביר אותה לנאט כי אצלי הכל בנאט ואני עושה אוקיי אז עכשיו היא בנאט כי גם זאת בנאט כי גם המכונה הווירטואלית קאלי שיש לי כרגע היא גם בנאט, אבל אני רוצה ששניהם יהיו באותה רשת.
אז בגלל שאני רוצה שיהיו שניהם באותה רשת פיזית, אז אני שם את שניהם בנאט. יופי. הדלקנו את המכונה.
עכשיו אנחנו לא יודעים כלום על המכונה, רק הבאנו אותה. דרך אגב, אם אתם רוצים לראות איך נראים הקבצים שלה, אתם יכולים ללכת פה לתיקייה שהוא עשה אליה אימפורט, ולראות שיש פה קובץ הגדרות, יש VMDK מרדיסק.
יפה מאוד, טוב אז יש לנו פה מכונה וירטואלית שנדלקת, הנה זה עלה לנו והאמת שאנחנו לא יודעים כלום על המכונה הווירטואלית הזאת, נכון? לא יודעים כלום, אז איך אנחנו מתחילים?
תחשבו שהגענו לרשת ואנחנו לא יודעים כלום, אז אנחנו גם לא יודעים כתובת IP שלה, אז אני אעשה פינג, סודו מינוס אס אני עובר לצוות ואני עושה פינג, פינג לכל כתובות ה-IP, SP זה בלי לבדוק פורטים, רק תעשה פינג, רק תסתכל מי קיים, זה צ'יק צ'אק, אני מגלה מי קיים.
את הכתובות האלו אני מכיר, 199 אני לא מכיר. אז אני חושד שזה 199, כי את ה-IP הזה אני לא מכיר. כדי לא לסרוק את כל הרשת, אז אני עושה לו, תסרוק רק את ה-IP המסוים הזה.
מה אני רוצה שתעשה עם ה-IP הזה? תסרוק את כל הפורטים הקיימים. מינוס P זה פורט, מינוס הזה זה אומר כל הפורטים. מ-0 עד 65,535.
כל הפורטים, לא רק את ה-1,000 הכי פופולריים. לא את האלף, אך הם מפורסמים את כל הפורטים. ועבור כל פורט תעשה אגרסיב מוד. זה אומר, תנסה לגלות מה הגרסה, תשלח לשם פאקטים, תראה מה התשובה.
תנסה כמה שיותר מידע לדלות מכל פורט שפתוח. אוקיי, אז אנחנו מריצים סריקה של כל הפורטים ועבור כל פורט סריקה אגרסיבית. וזה לוקח לו זמן, כי הוא צריך 65 אלף פורטים לנסות לבדוק.
אז ייקח לו כמה דקות. האמת שזה לקח לו 10 שניות. תראו את זה, 10 שניות לקח לו. כי יש לו רק פורט אחד פתוח, פורט 80. הנה אנחנו רואים פה 65,534 פורטים סגורים ורק פורט אחד, 65,535, רק פורט אחד פתוח, פורט 80 היחיד שפתוח.
אז יש לנו אתר וב פה, ומה יש לנו בתוך אתר וב? אני רואה שיש לנו מערכת ניהול תוכן, אתר מוכן שנקרא Drupal 7. בואו נראה את הדבר הזה. אם נדליק Firefox וניכנס ל-IP שלו אנחנו נראה אתר אינטרנט מוכן, מנוע מוכן של אינטרנט עם לוגין, פסוורד, מערכת כזאת מוכנה ואם נעשה view page source ונראה את המקור
שהגיע אנחנו נוכל לראות פה שה-N-MAP עלה שזה Drupal. הנה אנחנו רואים שזה באמת Drupal כי הוא עלה על זה. כך הוא עלה. בקיצור יש לנו פה אתר אינטרנט שמבוסס על Drupal שזה מנוע מוכן כמו WordPress כדי לא לכתוב אתר מאפס.
בואו נחפש האם יש חולשות לדרופל הזה שנוכל לפרוץ פנימה אז אנחנו מנקים את המסך ונכנסים ל-MSF קונסול ובתוך ה-MSF קונסול אנחנו נחפש את החולשות של מערכת ווב מוכנה שנקראת דרופל אני בפנים בתוך ה-MSF קונסול עושה search ויש לי פה מלא אקספלויטים אני רואה פה 7 אקספלויטים לדרופל יפה מאוד בגלל הרזולוציה אתם לא רואים
טוב בואו נעשה עוד פעם קצת יותר טוב טוב אין לי פה מספיק מקום במסך, אבל לא נורא. אנחנו רואים פה ציון לכל דבר, ואנחנו יכולים לבחור משהו מתוך האקסלנט, ואני מסתכל לפי השנים.
אני רואה פה 2018, שזה הכי אחרון שהתגלה. בטח הוא גם לא נסגר עדיין. בואו ננסה. בואו ננסה. כמובן שהם יכולים להוציא Update ולסגור חור אבטחה.
בואו נעשה Use במערכת הזאת. עשיתי Use. נכנסתי למודול שלה, ונעשה אינפו. וכתוב פה את ה-CVE, את המספר של החולשה הזאת, זה המספור שלה.
אבל מה שחשוב זה ThisModelExploitDrupalProperty זה... דרופל, באיזה גרסאות הוא תומך? עד 758, אתם רואים?
עד גרסת 758 הוא תומך, ואצלי דרופל 7, נכון? אם אנחנו נעלה למעלה, אנחנו נראה פה שלמעלה למעלה הייתה לנו מערכת של דרופל 7, אתם רואים?
יופי. אז הדבר הזה מתאים לי. החולשה הזאת מתאימה לי והיא אמורה לעבוד אז אני משתמש בחולשה הזאת מזל שיש אותה ובוא נעשה show options אנחנו רואים פה lhost port הוא כבר לבד מילה מה חסר לו IP אתם רואים פה required yes וב-required yes חסר לו רק איזה IP לפרוץ אז אני אומר לו תפרוץ את הIP של 99 סטה host 99 יפה
מאוד בוא נעשה עוד פעם show options אני רואה פה שה-required האלו מלאים, נכון. Required מלא, Required מלא, Required מלא, הכל נראה תקין.
אוקיי, עכשיו אני כותב לו Exploit, תפעיל את הפריצה הזאת, מינוס J זה אומר ב-Background, ו-Z זה אומר, גם אם מישהו מתחבר אליך, אל תתחבר, אני לבד אתחבר ל-Session ברגע שאני ארצה.
להתחבר לבד ל-Session ברגע שאני רוצה, ו-Exploit running as Background, קריאייטד הנה מישהו התחבר אליי סשן וונד אופן זה מה שחיכיתי לראות אותו סשן וונד אופן זה אומר שיחה נפתחה אני עושה אנטר ואני נשאר בממשק הזה ויש לי פה סשנס אני רואה באמת שיש לי שיחה אחת פתוחה מיוזר www.data שזה יוזר מאוד מאוד חלש מהמחשב שנקרא droopy וזה הIP שלו יופי בוא ניכנס לסשן הזה אנחנו בתוך סשן
אנחנו בתוך המחשב המרוחק בגלל שאנחנו במטר פריטר אנחנו יכולים לעשות פקודת סיס אינפו ולקבל את כל המידע ואנחנו רואים שיש לנו לינוקס שקרנל שלו, מערכת ההפעלה שלו 3.13.0 מקף 43 זה פחות חשוב, 3.13.0 זה מה שהכי חשוב לי וזה קרנל, זה מערכת ההפעלה עצומה, הליבה וזה מבוסס על
לובונטו, נהדר. מה היה קורה אם הייתי לא בתוך מטרפריטר? מה היה קורה אם אני הייתי בתוך של, של רגיל, של נטקאט?
אם הייתי בתוך של רגיל, הייתי יכול לכתוב לדוגמה סתם פקודות לדוגמה who.mi ולראות שאני www.data שזה יוזר מאוד מאוד חלש ה-id מראה לי מה השם של היוזר שלי ומה המספר שלו איך אני יודע שזה יוזר חלש?
אני לא יכול לעשות //root ls /root permission denied אין לי אישור גישה לתיקייה הזאת וזאת המטרה שלי לשדרג את עצמי אחרי שפרצתי לעשות privilege escalation אתם רואים ls /root לא מראה לי permission denied כי אני יוזר חלש אוקיי, אז מה אנחנו עושים? קודם כל, בגלל שאני
עכשיו בשל ואני רוצה להראות לכם מה קורה כשאין מטרפריטר, כשאנחנו בנטקאט, זה נראה מגעיל, זה נראה לא נוח, אני מייבא בין באש דרך פייתון, אני עושה פייתון אימפורט pty ומפעיל בין באש.
עכשיו, זה הרבה יותר נחמד, נכון? שאני ככה רואה את עצמי ורואה את השל הזה, אתם רואים? אני רואה שאני יוזר כזה, שטרודל שם של מחשב, ואיזה תיקייה אני נמצא?
תשימו לב באיזה תיקי אני נמצא, VAR, WW זה HTML. יופי, אז קודם כל זאת שורה שאני מפעיל אחרי הנטקאט, אחרי השל, כדי לראות את זה יותר יפה. ls/ מראה לי את כל התיקיות שיש בhard disk.
ls/root לא יראה לי כלום, כי אין לי permission denied, אין לי הרשאות. ואני רוצה לעשות privilege escalation, להעלות את עצמי על ידי באגים בקרנל, אני רוצה לחפש באגים בתוך קרנל, בתוך מערכת ההפעלה.
אני צריך לדעת איזה מערכת הפעלה יש לי פה. אז איזה פקודות בלינוקס הרגיל מראות לי מערכת ההפעלה? אז יש כמה פקודות בסיסיות lsb-release-a lsb-release אני רואה שמדובר באובונטו גרסה 14.04.1 זה מאוד מאוד חשוב לי לדעת איזה גרסה של מערכת ההפעלה הזאת אובונטו trusty אוקיי אובונטו trusty 14.04.1 אבל זה לא אומר לי כלום על
קרנל על הליבה זה מערכת ההפעלה זה כל מיני סרוויסים שיש אבל מה הליבה מה הקרנל? בשביל לדעת מה הקרנל אני עושה uname == help וב-uname אני רואה פה קרנל release אתם