
הטקסט המלא של הדקות הראשונות בהרצאה «העלאת הרשאות - הסבר נוסף (חלק 2)» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב אז דיברנו על user account control ודיברנו על טוקנים ודיברנו על לוגונים ובואו נראה איך אנחנו יכולים להשתמש בידע הזה שצברנו כדי לבצע קצת privilege escalation. אני מזכיר עוד פעם privilege escalation זה בעצם לעבור מהרשאות של יוזר אחד להרשאות של יוזר קצת יותר חזק ומשם להרשאות של יוזר קצת יותר חזק עד שבסופו של דבר אנחנו
מגיעים להרשאות הסופיות שלנו. הכלי הראשון שאני רוצה להראות זה כלי שנקרא psexec. psexec זה כלי שנמצא כחבילת מ-sysinternals, אותה חבילה מגניבה שבתוכה מצאנו גם את process explorer מהוידאו הקודם.
אפשר להוריד את זה מאתר של מייקרוסופט, פשוט תחפשו sysinternals בגוגל, אתם תמצאו לינק ותורידו שם חבילה של כלים, באמת כלים די מעניינים. psexec זה בעצם אחד הכלים החשובים יותר שיש שם.
מה ש-psexec יודע לעשות הוא בעצם יודע להריץ תוכנות או על מחשב מקומי או על מחשב מרוחק למה זה מעניין להריץ תוכנה על מחשב מרוחק מי שראה את הסרט הקודם יודע שברגע שאני מריץ תוכנה על מחשב מרוחק אני בעצם עושה נטוורק לוגון וככה אני עוקף את יוזר אקאונט קונטרול אז בואו רגע ננסה לראות מה פי אס אק זק באמת יודע לעשות אז אני אפתח cnd ואני אכנס לדסק טופ
ואני אריץ פה פקודת דיר כדי לראות שפי אס אק זק באמת נמצא פה אקסק ואני אריץ אותו פי אקסק נקודה אקסי לחצתי על טאבו עשה לי השלמה אוטומטית ואני רוצה לראות לסימן שאלה את כל העזרה של מה שהדבר הזה יודע לעשות שימו לב שברגע שפעם ראשונה כלי של סיס אינטרנל שנפתח פעם ראשונה תמיד תמיד תמיד מראה את האינד יוזר לייסנס אגרימנט שלו
לוחצים פעם אחת אגרי וזהו נפטרים מזה אז מה שבעצם פי אקסק יודע לעשות הוא יודע לעשות כל מיני דברים מעניינים ביניהם הפרדת מעבדים למשל להריץ רק על CPU 2 ועל CPU 4 להעתיק את התוכנה לצד השני כדי לגרום לה לרוץ להריץ את התוכנה באופן אינטראקטיבי בואו נראה את הקצת התעסקויות עם מה שנקרא PSXX אז נתחיל קודם כל מהדרך הבסיסית ביותר להריץ PSXX אז אני כותב
PSXX מינוס S מה זה מינוס S? מינוס s זה בעצם אומר, תריץ את התוכנה using the system account. מה זה system account? system account זה בעצם חשבון במערכת ההפעלה, שהוא built-in במערכת ההפעלה, שאנחנו לא יכולים להגיע אליו לעולם, אגב, בתור יוזרים רגילים.
יוזר רגיל לא יכול לרוץ כסיסטם, נקודה. האלמנטים היחידים שיכולים לרוץ בסיסטם כווינדוס זאת מערכת ההפעלה עצמה, היא משתמשת בחשבון הזה כדי לבצע כל מיני פעולות, כמו למשוך פוליסות מדומיין קונטרולר, או להריץ כל מיני משימות מתוזמנות וסרוויסים רצים כסיסטם.
אם אני כותב pshxec -s: cmd, pshxec הולך לבצע את הדבר הבלתי אפשרי עבורנו, וזה להריץ תוכנת cmd בתור סיסטם. סיסטם יש לו הרשאות מעל לאדמיניסטרטור, לפחות ברמה המקומית.
אנחנו צ'יק צ'אק נקבל איזשהו failure access denied. ולמה access denied? כי תראו מה הוא צריך. הוא מנסה להתקין סרוויס, מקומית פה על המערכת והוא אומר לי פה שהוא נכשל בלהתקין את הסרוויס הזה שזה לא מפתיע כי אם אני אעשה whoami/all ההרשאה שאני צריך כדי להתקין סרוויס זה קודם כל להיות חבר מלא בקבוצת האדמיניסטרטורים המקומית ודבר שני
אנחנו צריכים את הscload and unload device drivers שאותה אני מקבל רק בטוקן המלא שלי זאת אומרת שאם אני גורם ליוזר אדמיניסטרטיבי להריץ את פסק זק עבורי זה לא יעבוד ולמה כי כי יוזר אדמיניסטרטיבי שמכיר קצת איך ווינדוס עובד לעולם לא יריץ פי אקס אקזק בתור אדמיניסטרטור.
אבל אנחנו כבר יודעים שכל העסק הזה של יוזר אקאונט קונטרול מבוטל מתי? כשעושים לוגוין דרך הרשת. אז אני אעבור למחשב אחר, שגם פה יש לי עותק של פי אקס אקזק, ואני רץ כרגע עם איזשהו יוזר דומייני שנקרא יוני, היוזר הזה הוא האדמיניסטרטור המקומי בשרת המרוחק.
הוא האדמיניסטרטור המקומי פה. ברמת המחשב הזה, אני חושב שהיוזר הזה הוא גם האדמיניסטרטור המקומי, אבל הוא לא האדמיניסטרטור דומייני.
דבר ראשון שאני צריך לעשות זה להשיג לעצמי אדמיניסטרטור מקומי. עכשיו, אתם בטח שואלים את עצמכם, רגע, אתה כבר האדמיניסטרטור? עכשיו, זה נכון, אבל זה רק לרמות ההדגמה.
יכול להיות שכבר השגתי את השם המשתמש של היוזר הזה, אולי אם ראיתם וידאוים קודמים, עשינו קצת וידאוים על איך לנחש סיסמאות של משתמשים, ברוטפורס ודברים כאלה.
אז יכול להיות שכבר השגתי את הסיסמה שלו. אבל המצב האמיתי הוא שאני לא אהיה בתוך הדומיין, אני כנראה אהיה איפשהו בחוץ, ורק עשיתי ברוטפורס על איזשהו שרת FTP והשגתי שם משתמש סיסמה.
השלב הבא זה יהיה להריץ PSXX לשרת הזה, ולנסות באמת לקבל את ההרשאות האדמיניסטרטיביות שמגיעות לנו. אז ברגע שאני אריץ px-exec-s\IP של שרת מרוחק cnd מה שבעצם אני עושה כרגע, אני אומר לו תריץ כסיסטם על השרת המרוחק את תוכנת cnd ואני לוחץ
על enter, סליחה זה נמצא בתוך שולחן העבודה, ללחץ למעלה. מה שהוא עושה עכשיו הוא מתחבר לשרת המרוחק ומנסה להתקין אצלו את הסרוויס מרחוק.
עכשיו שימו לב שהוא עושה נטוורק לוגון לשרת, אנחנו יכולים לדעת שמדובר בנטוורק לוגון מהסיבה שכתבנו פה וכשיעשה נטוורק לוגון הוא יקבל את ההרשאות של אותו יוזר יוני אבל ברגע שעושים נטוורק לוגון אנחנו בעצם מבטלים את כל הקטע של יוזר אקאונט קונטרול אם אני אריץ עכשיו את הפקודה who am I?
אז אני רואה שקיבלתי את כל הפריבליג'ים שהאדמיניסטרטור אמור לקבל וכשאני אסתכל על מי אני, אני למעשה יוזר שנקרא anti-authority system איפה אני נמצא?
אני נמצא ב-SRV1 זאת אומרת עשיתי נטוורק לוגון lsrv1 וקיבלתי שם את ההרשאות המלאות זאת אומרת פי אקסק התחבר לשם תחת ההרשאות של יוני יוני אדמיניסטרטור מקומי על אותו מחשב אבל עקפנו את יוזר אקאונט קונטרול הוא התקין שם סרוויס ודרך הסרוויס הזה הוא פתח את ה-CMD בואו נראה מה היה קורה אם הייתי מריץ את
אותה פקודה מבלי לכתוב את המינוס s הקטנצ'יק הזה אז אם אני כותב את אותה פעולה בלי המינוס s אז הוא פשוט משאיר אותי בתור היוזר שאני מחובר.
אז אם אני כותב whoami, אני יוני, אבל whoami/all, אנחנו צ'יק צ'אק נראה שבאמת אני אקבל את כל הפריבילג'יז שיוני אמור לקבל בתור אדמיניסטרטור מקומי שעמד על אותו המחשב, וזה כמובן בגלל שuser account control מבוטל.
בואו נראה את הסרוויס ש-psxzק מתקין. אז אם הוא פותח services.msc, pxzק, סטארטד. ברגע שאני אסגור את ה-CMD, אז PSXX יוצא והוא מוחק את הסרוויס שלו מההשארת המרוחק.
PSXX מינוס I. I בעצם אומר ל-PSXX להריץ תוכנה בסשן האינטראקטיבי של אותו יוזר. מה הכוונה? אני מחובר פה כיוני, ואני משתמש ב-PSXX כיוני.
ואני רוצה להריץ בסשן האינטראקטיבי של יוני ב-10.10.11 את התוכנה CMD.