
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Meterpreter בתוך Metasploit» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, ברוכים הבאים להרצאה על מטרפריטר שזה כלי מדהים שמשתמשים בו אחרי הפריצה. מה הוא יודע לעשות? הוא יודע להריץ הרבה פקודות, לשלוף האשים, יודע לתקוף מכונות דרך מכונה אחרת.
זה נקרא פיבוטינג. המטרפריטר הזה מדהים. קודם כל, הוא רץ רק בזיכרון כדלל אינג'קשן. זאת אומרת שהוא לא שם שום קובץ בארדיסק. הוא מתחבר לפרוצס, לתוכנה שעובדת כבר במחשב ונהיה כמו תוסף רק בזיכרון בלי הארדיסק לתוכנה שעובדת.
זה אומר אנטיווירוס שעוקב אחרי הארדיסק לא רואה שם שום דבר חדש ואנטיווירוס שעוקב אחרי תהליכים בזיכרון גם לא רואה שום פרוצס חדש. הוא כביכול מצטרף לתוכנה שכבר עובדת ורצה ולכן קשה מאוד לעלות אליו.
שנקרא DLL Injection in memory והוא יודע לעשות המון המון המון דברים אנחנו תכף נראה את היכולות שלו כי זה מאוד מאוד חשוב מה אפשר לעשות אחרי התקיפה אחרי שנכנסנו פנימה מה אנחנו עושים בפנים אז מטרפריטר יודע להריץ פקודות יש לו את הפקודות שלו שהוא יודע להריץ אותן אנחנו הולכים לראות אותן הוא יודע להריץ
מודולים מיוחדים שנקראים פוסט מודולס וגם סקריפטים אני הולך להראות לכם את כל זה אנחנו נתחיל מזה שנריץ את המטאספלויט פרימוורק הוא יריץ לנו שתי פקודות סודו msdb init יתחיל את הדאטאבייס ויפעיל את המסד נתונים שיהיה לנו יותר נוח לעבוד ויריץ msf קונסול
אנחנו עושים קאלי דאטאבייס already started ודאטאבייס כבר קיים נהדר אנחנו בפנים אז לפני שאנחנו נגיע למטרפריטר עצמו רציתי להראות לכם עוד כמה פקודות בואו אני אראה לכם איזה שתי פקודות שרציתי להראות לכם סט גלובל וסרוויסס מינוס אר הוסט מה זה הדבר הזה תראו נניח אני נכנס לאיזשהו מודול עושה use באיזשהו מודול דרך אגב איך ידעתי את השם של המודול מאיפה לקחתי
אותו מי שלא היה איתנו בהרצאות קודמות יכול לראות שעשינו search על שם של מודול זאת אומרת עושים search כותבים מה אנחנו מחפשים נניח singbreeze כי אנחנו גילינו שיש אפליקציה שנקראת singbreeze ואחרי שעשינו search גילינו את השם של המודול אנחנו יכולים לעשות use בשמו המלא שזה השם המלא שלו אוקיי אז
לוקחים את השם המלא אחרי הsearch ועושים use ונכנסים לתוך המודול יפה עכשיו כשאנחנו בתוך המודול יש לנו ב-show options כל מיני דברים שצריך להגדיר אותם אני עושה ctrl- להקטין את הרזולוציה כי זה יותר מדי אז ככה show אני רואה פה שבתוך המודול של סינג בריז יש לנו משתנה שחייבים למלא אותו שהוא required שהוא נדרש שהוא חובה שנקרא ה-host remote host איזה כתובות IP
אנחנו רוצים לתקוף ולמטה פה יש לנו את ה-payload מה יקרה אחרי התקיפה אחרי התקיפה יהיה לנו מטר פריטר reverse dcp זה ה-payload זה הפצצה שתתפוצץ אחרי שנחדור פנימה שאלה איך אנחנו ממלאים את זה אז ראינו עד עכשיו סט ושם של ההוסט זה אפשר לעשות את זה ככה ולמלא אחד לעומת זאת אני יכול לעשות סרוויסס לראות בדאטה בייס את כל מה שעד עכשיו גילינו זאת אומרת
בסרוויסס אנחנו רואים את כל הפורטים הפתוחים אני יכול להגיד לו תראה לי רק את אלו עם פורט 80 תחשבו שיש הרבה מחשבים אז הוא יראה לי את כל המחשבים עם פורט 80 ועכשיו הדבר הכי מעניין בסרוויסס מינוס h יש אופציה מאוד מאוד מעניינת שנקראת מינוס מינוס אה הוסט מה היא תעשה בתוך הסרוויסס מינוס פי שמונים אחרי זה אני כותב
מינוס מינוס אה הוסט היא תעשה סט אה הוסט היא תגדיר את המשתנה אה הוסט פרום דה רזולט אוף דה סורג' זאת אומרת הפקודת סרוויסס תתחבר לתוך המודול ותכניס לשם איזשהו משתנה ואז תראו איזה דבר מדהים קורה show options לפני שאני מפעיל אתם יכולים לראות פה שההוסט פה ריק אני לוקח את הפקודה הזאת וכותב לו services -p80 == ההוסט ותראו לתוך ההוסט נכנס הערך הזה
זה יפה מאוד שהוא לבד מהסריקה לוקח את ה-IP הרי איך דברים נכנסים לסרוויסס? מסריקה שעשינו דרך nmap או איזשהו סקאנר אחר מודול אחר של סקאנר שמובנה ב-MetaSploit בקיצור זה מה שרציתי להראות לכם שההוסט יודע לקבל דברים מתוך הסרוויסס ועוד סד גלובל מה זה סט גלובל? זאת אומרת שאם אני אעבור עכשיו למודול אחר,
סתם דוגמה, מודול של סין, אתם רואים עברתי ממודול אחד לשני, ב-show options לא יופיע לי פה ה-host, אתם רואים? ה-host ריק. זה שרתים שצריך לתקוף.
עכשיו אין לי כוח כל פעם לכתוב בכל מודול את ה-IP של הקורבן שלי או את הטווח טובות ה-IP של הקורבנות. אני יכול לעשות סט ג'י.
ברגע שאני עושה פקודה סט ג'י הוא עושה לי סט גלובל. סט גלובל ואז ברגע שהוא עשה לי את הסט גלובל הזה זה גם כאן נקבע אתם רואים בשואו אופשנס הוא גם פה נכנס אבל נניח אני לוקח מודול אחר לגמרי שעוד לא היינו בו תראו בשואו אופשנס פתאום מופיע לי פה הוסט למרות שלפני כן לא היינו אף פעם במודול הזה למה כי עשינו משתנה גלובלי אז יש לנו כמה דרכים איך לקבוע ערך של הוסט של הקורבן או סט גלובל לכל המודולים
או לשלוף מתוך הסרוויסים לדוגמה מינוס p80 מינוס מינוס rhost זה ככה לידע כללי רציתי שתדעו מה זה סט גלובל דרך אגב איך אני יודע את כל זה אם תעשו help בוא נעשה clear שיהיה לנו קל לגלגל help עזרה ופה נעשה shift page up עד הסוף למעלה פה בצד אתם רואים פה אפשר לגלול ככה למעלה אתם רואים בhelp כללי של כל הפקודות
הבסיסיות יש לנו פה סט רגיל וסט גלובל Set a Global Variable to a Value. קובע ערך קבוע לכל המודולים. אז תדעו איך להשתמש בזה. טוב, בואו נחזור ל-Meter Preter.
מה יודע לעשות מטר פריטר? וזה הכי הכי הכי מדהים והכי מעניין. אנחנו עושים use בסינג בריז באפר אוברפלואו. בי.או.אף זה באפר אוברפלואו, קליר, שואו אופשיאנס.
רואים שיש לנו פה 147 נקבע, פורט 80 עובד. פריטר רוורס tcp שיחזור ב tcp אני יכול לעשות רוורס htp שיחזור אליי ב htp איך שאני רוצה באיזה פרוטוקול שבא לי זה לא משנה עשיתי פיילורד כזה אז יש לנו show options ואנחנו רואים רוורס htp זאת אומרת לפני כן הוא היה עובד בפרוטוקול
tcp עכשיו הוא יעבוד בפרוטוקול htp תלוי איך אנחנו רוצים את התקשורת לדוגמה אני חושד ש-HTTP ייראה לה firewall כאילו זאת תקשורת רגילה ותקנית, הקליינט ההוא, הקורבן, מתחבר לאיזשהו שרת ב-HTTP.
בואו נעשה צ'ק, נראה שזה אכן עובד, The target appears to be vulnerable, שהוא חשוף לחולשה, ואנחנו יכולים להריץ exploit, או שאנחנו יכולים להריץ פקודת run.
מריצים, הוא מתחבר בפורט 80 לשם, פורץ אותו, שותל שם מטר פריטר רוורס-HTTP, והוא מתחבר אליי חזרה. עכשיו, מה המטרה שלנו? להבין איך מטרפריטר הזה עובד.
בואו נעשה לדוגמה פקודת help, ואנחנו מקבלים את כל העזרה של מטרפריטר. שימו לב, אנחנו בתוך המטרפריטר, זה אומר שאנחנו בתוך הקורבן. כשאנחנו בתוך הקורבן, אנחנו לא סתם ב-CMD, אנחנו ב-CMD יותר משוכלל שנקרא מטרפריטר.
אז איזה פקודות יש לו? אז help מראה לי את כל הפקודות הקיימות. לדוגמה, לעשות hashdump, לקחת את כל הסיסמאות, להעלות לעצמך הרשאות, לנגן משהו ברמקולים של הקורבן, לתפוס משהו מתוך ה-Webcam.
אתם רואים שזה הרבה יותר מ-CMD פשוט. לעשות קייס קן, מה זה קייס קן? זה למעשה לסרוק את כל מה שהוא מקיש במקלדת. אני יכול לראות סקרין שייר, לראות את כל מה שקורה אצלו במסך.
אני יכול לעשות סקרין שוט, אני הולך להראות לכם איך עושים את זה. אבל שימו לב, כל הפקודות האלו אני חייב להיות בתוך הפרוצס, הרי אנחנו מתחברים לאיזשהו תהליך של היוזר.
תכף אני אראה לכם איך עוברים בין פרוצס לפרוצס בזיכרון, אבל כדי שכל זה יעבוד אנחנו חייבים להיות בפרוצס של המשתמש ולא בפרוצס של סיסטם עצמו, כי כל התהליכים של המשתמש הם מחוברים רק לפרוצסים של המשתמש, זה נקרא security context.
יש לנו עוד פקודות שקשורות כלליות למערכת, כמו להריץ משהו, לקחת את ה-Process ID, איפה אני יושב כרגע בזיכרון, לתוך איזה Process התחברתי כרגע.
אני יכול לראות את כל ה-Processים שרצים כרגע בזיכרון, ולעשות ריבוט למחשב, ולשנות לו את ה-Registry של המחשב, לעשות לו שאט-דאון למחשב, לקבל את המידע על כל המחשב.
זה כל הפקודות שמובנות ב-Meter Printer. מה עוד מעניין? Shell. מה זה פקודת Shell? זה ה-CMD הרגיל. זאת אומרת, אם אני אכתוב שאלה אני אכנס ל-CMD הרגיל, אני הולך להראות לכם את כל זה.
יש לנו את כל הפקודות שקשורות לנטוורקינג, לתקשורת. כמו ifconfig או IPconfig שמראים לי את כל כתובות ה-IP של המשתמש. אני יכול לעשות port forward וזה נקרא pivoting, לעבור דרך המחשב הזה לרשת אחרת.
נניח שאני לא יכול להגיע לאיזושהי רשת אבל הוא כן יכול להגיע, אני יכול דרכו ללכת הלאה. אני יכול לעשות port forward או ראוטינג דרכו.
אני הולך להראות לכם את ה-pivoting הזה בהמשך כנראה. אני יכול לעלות אליו מסמכים וקבצים, אני יכול לראות באיזה תיקי אני נמצא, ליצור תיקיות, לראות קבצים, להוריד ממנו קבצים, כל מה שאני רוצה אני יכול לעשות אצלו.
זה נקרא File System Commands, כל מיני פקודות שקשורות ל-File System, למערכת קבצים שלו, כמו ליצור תיקיות, למחוק תיקיות, לעבור בין התיקיות, להוריד דברים, להוסיף דברים.
הלאה, יש לנו קבוצה ענקית של Core Commands. מה זה Core Commands? פקודות בסיסיות שקשורות למטרפריטר עצמו כמו ה-help הזה שאנחנו רואים, כמו אקזיט, כמו לצאת, כמו בייגראונד.
בייגראונד זה אומר לחזור חזרה למטה ספלויט הרגיל, לצאת מהמחשב שבו אנחנו נמצאים כרגע זמנית, להתרחק ממנו זמנית. אני הולך להדגים לכם את כל הפקודות האלו, אל תדאגו כי זה מאוד מאוד חשוב שתדעו איך להשתמש בהן.
ויש לנו פקודת מיגרייט, זה אומר לעבור בין פרוצס לפרוצס בזיכרון. בואו נתחיל להשתמש בכל זה, זאת הייתה הקדמה כללית לכל הפקודות שיש לנו. אנחנו עכשיו עושים clear ואני הולך להדגים לכם כמה פקודות.
אין פה clear, אוקיי, אין cls, אין clear, אין. אז אנחנו בפנים. מה הפקודה הראשונה שרציתי להדגים לכם? סיס אינפו.
אני חדרתי, אני יכול להריץ סיס אינפו, זה פקודות של מטר פריטר עצמו, שזה יותר משוכלל מ-CMD הרגיל. הנה בבקשה, בסיס אינפו המטר פריטר כותב לי שחדרתי לוינדוס 10 וכל מיני נתונים כמו שם של המחשב אני יכול לעשות של, אני רץ קצת קדימה ולעבור ל-CMD רגיל, עכשיו אני ב-CMD הרגיל של המחשב
אבל זה פחות מעניין אותי, אז אני יוצא ממנו וחוזר חזרה ל-Mרפריטר, מעין תוכנה ראשית ששתולה בזיכרון של ההוא דרך אגב, איפה היא שתולה?
היא שתולה בתוך הפרוצס מסוים, תכף נגלה איזה פרוצס אנחנו יושבים אבל אנחנו כרגע, Get User ID, אנחנו כרגע יוזר שנקרא System שזה היוזר הכי חזק שקיים במערכת אם אני אעשה help אני יכול לראות שיש לנו פה get process ID אתם רואים get the current processing identifier באיזה process אני יושב
עכשיו אז אני יכול לעשות כזה דבר get process ID ואני יכול לראות שאני נמצא בתהליך כרגע מטר פריטר הזה התחבר במחשב לפרוצס שנקרא 2716 זה ה-ID שלו אם אני אריץ פקודה PS הוא יראה לי מה זה כל הפרוצסים שיש כמו Task Manager, ואני מחפש ב-Task Manager שלו, בואו נעלה למעלה קצת,
Process ID, אתם רואים, 2716. בואו נחפש בעמודה הזאת 2716, למזלנו זה מסודר לפי זה, 2716, הנה הוא.
או, תראו בתוך מה אנחנו יושבים, בתוך סינגבריז. נכון? כי פרצנו דרך סינגבריז, אז אנחנו בתוך הזיכרון של הסינגבריז, אנחנו בתוך התוכנה הזאת בלי שמישהו מגלה אותנו. למה אף אחד לא מגלה?
כי לא נגענו בארדיסק ולא הרצנו אף פרוצס חדש במחשב, אף תוכנה חדשה במחשב. אנחנו למעשה יושבים בתוך הסינג בריז הזה, שתלנו בפנים את המטר פריטר ואנחנו שולטים על המחשב.
אז פה הרצתי פקודה, ככה אני כותב לכם את כל הפקודות, גט פי איי די, גט פרוצס איי די, וגיליתי באיזה פרוצס אני נמצא ואז הרצתי איי פי אס.
מה עוד אני יכול לעשות? לדוגמה, פקודה מאוד מאוד חשובה, IP קונפיקט. אני רואה את כל כתובות ה-IP של המחשב, נניח שהוא יכול להגיע לאיזושהי רשת שאני לא יודע להגיע אליה, אני יכול לראות את זה, של, זה מריץ לי את ה-CMD הרגיל, הראיתי לכם אקזיט, אני יוצא מ-CMD הרגיל וחוזר חזרה למטרפריטר.
אני יכול לעשות דאונלוד לקבצים שלו במחשב,