PracticU

ביצוע Pivoting עם SSH -L
התוקף יוזם תקשורת לקורבן

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › ביצוע Pivoting עם SSH -L התוקף יוזם תקשורת לקורבן
מילון מושגים:
שרת אינטרנט - תוכנה או מחשב שמקבלים בקשות HTTP ומגישים דפי אינטרנט ומשאבים ללקוחות.
כתובת ציבורית - כתובת IP ייחודית וגלויה באינטרנט, שדרכה אפשר להגיע למכשיר או לרשת מבחוץ.
NAT - מנגנון שמתרגם כתובות IP פרטיות לכתובת ציבורית אחת, כדי לאפשר למחשבים ברשת פנימית לגשת לאינטרנט.
Kali Linux - הפצת Linux המיועדת לבדיקות אבטחה וחדירות, הכוללת אוסף כלים לבחינת מערכות.
SMB - פרוטוקול של Windows לשיתוף קבצים ומדפסות ברשת ולגישה למשאבים מרוחקים.
RPC - מנגנון שמאפשר לתוכנית לקרוא לפונקציה שרצה במחשב אחר ברשת כאילו היא מקומית.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
ipconfig - פקודת Windows שמציגה ומנהלת את הגדרות הרשת של המחשב, כמו כתובת ה-IP ושער ברירת המחדל.

ביצוע Pivoting עם SSH -L
התוקף יוזם תקשורת לקורבן
בשיעור זה אנו מבצעים Pivoting בעזרת SSH, על שרת הקורבן שלנו, שהוא שרת ווב שיש לו רגל חיצונית עם כתובת ציבורית, כרטיס רשת שמחובר ב-Bridge, ועוד כרטיס רשת פנים-ארגוני שמחובר ב-NAT, עם כתובת פנימית. אנו רוצים מבחוץ לעבור דרכו פנימה, שיתפקד כמו הראוטר, וזה נקרא Pivoting.
נושאי הסיכום המוצגים בשיעור:
1. הכלי SSH: למטרה זאת נשתמש ב-SSH, כלי שמותקן בכל הלינוקסים היום, ואפשר לנצל אותו ל-Pivoting. מפעילים אותו בשרת הקורבן ומגדירים שיעלה בכל הפעלה מחדש של המערכת. כך התוקף, שהצליח איכשהו לפרוץ, מתחבר מה-Kali שלו מהבית אל הקורבן ב-SSH ומנהל אותו מרחוק, ובעצם מנצל את הכלי שמנהלי הרשת עצמם משתמשים בו לניהול הלינוקסים שלהם בארגון.
2. ההתחברות הרגילה: בחיבור SSH רגיל כותבים את שם המשתמש ואת השרת שאליו מתחברים. לאחר ההתחברות אנו כבר לא ב-Kali שלנו אלא בתוך הלינוקס של שרת הקורבן, וכל פקודה שנריץ תרוץ שם, כלומר שלטנו בקורבן. יוצאים עם exit חזרה אל ה-Kali שלנו.
3. הכתיבה שמבלבלת: הפקודה שמאפשרת יצירת מנהרות כתובה בסדר שמבלבל, איזה פורט בהאזנה, נקודתיים, איזה IP ופורט ביעד, כלומר במה אתה מאזין ולאן אתה מעביר. בהדגמה מגדירים להאזין בפורט מסוים ולהעביר את התעבורה אל כתובת היעד בפורט השיתופים שלה, וכך למשל פורט 445 מקומי מועבר אל פורט 445 ביעד, ופורט 446 מקומי אל פורט 445 אצל הדומיין קונטרולר. אחרי ההרצה הכלי מתחבר ב-SSH ופותח את הפורטים.
4. המתג שמדלג על הפקודה: בזכות המתג שמציין בלי פקודה, הכלי לא נתן את הפקודה אחרי פתיחת הפורטים. אם מורידים את המתג הזה, הוא יעשה את כל העבודה וגם ייתן פקודה לכתיבת פקודות, כלומר אפשר להתחבר ליעד וגם לפתוח פורטים ביחד, ועם המתג הוא מתחבר, פותח פורטים אבל לא נותן פקודה.
5. הוכחת המנהרות: בטאב חדש בודקים את הפורטים ב-Kali ורואים מי יושב על הפורטים שפתחנו, והתשובה היא SSH. כלומר, SSH עשה לנו Tunneling מהפורטים המקומיים שלנו אל הפורטים ביעד. בעקבות זאת אנחנו לא צריכים לפנות לכתובת ה-IP של היעד, אלא לפנות ל-127.0.0.1, לפנות לפורט של עצמנו, ו-SSH דרך המנהרה יעביר את זה פנימה.
6. היתרון הגדול, הצפנה: SSH מוצפן, ואם יש אצל הקורבן חומת אש, היא לא תראה את מה שעובר בתוך הרשת, כיוון ש-SSH מוצפן.
7. שימוש בכלי SMB: כדי לבדוק שזה אכן עובד, מריצים כלי SMB קליינט שמתחבר אל עצמנו, אל ה-IP של עצמנו, אל הפורט שפתחנו, וכשמתחברים אל עצמנו, המנהרה של SSH תיקח אותנו אל היעד, ושם ניתן שם וסיסמה בפורמט של דומיין סלש משתמש אחוז סיסמה, שכך כותבים שם משתמש בכלי SMB קליינט. ובאמת הצלחנו להגיע אל הדומיין קונטרולר. אפשר גם לנסות להגיע לשרת קבצים נוסף, הרי פתחנו שני פורטים, גם 445 וגם 446, כאשר אחד מהם מגיע אל שרת הקבצים והשני אל ה-DC אל השיתוף שם. את הפורט השני פונים אליו בצורה מפורשת עם מתג של פורט, וכשפונים לפורט ברירת המחדל לא צריך לכתוב כלום. שוב פונים ל-IP של עצמנו כדי ש-SSH יעשה לנו מנהרה לצד השני, ואכן מצליחים להגיע אל שרת הקבצים ואל השיתוף הספציפי שלו.
8. פעולות בתוך השיתוף: אני יכול להתחבר לתוך השיתוף ולהוריד קבצים, ואפשר לעשות עם כלי SMB קליינט בשתי צורות, גם לכתוב לו לאן להתחבר ישירות וגם עם מתג המשתמש, שזו עוד צורת כתיבה. אחרי ההתחברות אנו בתוך שרת הקבצים ביעד ההוא, ועכשיו אפשר לעשות כל מיני פקודות כמו ls ולראות את כל השיתופים שיש לו שם בפנים, ואפשר לעשות סימן שאלה לראות את כל הפקודות שקיימות. עושים פקודת קבלת קובץ וגונבים לו קובץ בגודל מסוים, ואפשר להעלות לו קובץ עם פקודת put.
9. שליטה מלאה דרך השיתופים: יותר מזה, שפת SMB גם מאפשרת להריץ פקודות, שזה PSExec, כיוון ש-SMB, השפה של השיתופים, מאחורי הפורט שלה, של 445, יש גם RPC של התוכנות, ואפשר גם לשלוט על השרת דרך פורט 445 שפתחנו לעצמנו. מנתקים את האנטי-וירוס שלא יפריע לנו, ומוסבר שפורט השיתופים מאחוריו עומדים גם פייפים, והפייפים האלה הם בעצם שליטה על תוכנות, ואחת התוכנות שאפשר לשלוט בהן מרחוק דרך פייפ של השיתופים היא השירותים. מיקרוסופט עשו זאת בכוונה כדי שמנהל רשת יוכל לנהל את השירותים מרחוק דרך כלי ניהול, לעשות התחברות למחשב אחר ולנהל במחשב המרוחק בתוך הרשת שלו את השירותים, והחיבור הזה למחשב האחר מתבצע דרך פורט 445, וכדי שבאותו פורט יעבדו מלא תוכנות עשו בתוך פורט 445 של השיתופים פייפים לכל תוכנה, ואחת התוכנות היא השירותים. אנו מנצלים את הדבר הזה כדי לעלות את ה-CMD שלנו לשם ולהפעיל אותו דרך שירות. כלומר, PSExec של impacket הולך להתחבר אל 127.0.0.1 עם שם משתמש וסיסמה של האדמיניסטרטור ביעד, לעלות לשם קובץ דרך שיתוף ולהפעיל אותו כשירות בשם מסוים בתחנה המרוחקת, והכל דרך פורט 445, ויש לנו CMD אל תוך היעד, אנחנו שולטים בו. בודקים מי אנחנו ורואים שאנו אדמיניסטרטור, ובעצם SYSTEM, שהוא יותר מאדמיניסטרטור, כיוון ששירות פועל עם הרשאות של SYSTEM. אפשר גם לראות את השירות הזה בממשק אחרי ריענון, PSExec העלה אותו דרך השיתוף, ואחר כך דרך אותו פורט של השיתוף השתמש בפייפ, התחבר לתוכנה של השירותים, רשם אותו שם והפעיל אותו. מאחורי הקובץ הזה זה ה-CMD הפשוט שמעביר הכל אלינו, ושימו לב, השירות הופעל עם הרשאות של Local System, שהוא המשתמש של ה-Windows עצמו, של מערכת ההפעלה עצמה, המשתמש הכי חזק, ה-Local System הזה, וזה נראה בהגדרות הלוגון שלו, שם אפשר לקבוע אם זה יהיה לוגון SYSTEM או משתמש אחר שיפעיל את ה-exe הזה. בקיצור, PSExec העלה לשיתוף של אדמין דולר, שהוא תיקיית ה-Windows ביעד, את הקובץ הזדוני שלנו שהוא ה-CMD, והפעיל אותו דרך פייפים בתוך פורט 445, יצר שירות ממנו והפעיל את השירות, ובסוף קיבלנו עם פורט אחד שליטה מלאה על המחשב. כמובן שצריך לדעת את השם והסיסמה של האדמיניסטרטור במחשב היעד, ואנחנו כרגע לא מתעסקים באיך גנבתי את הסיסמה, איך שלחתי לו מייל זדוני, איך התחכמתי איתו, כל זה לא נבדק עכשיו, הדבר היחיד שמעניין אותנו הוא איך אפשר לעבור דרך שרת אחד לשרת אחר, וזה מה שאנחנו עושים בהרצאה הזאת, עוברים דרך פורט מקומי אצלנו אל היעד שם, והכל בזכות SSH Tunneling.
10. אימות וסריקה דרך המנהרה: עושים hostname ורואים שאנחנו באמת שם, ו-ipconfig מראה שאנחנו ברשת הפנימית, 192.168 בהדגמה. עושים יציאה וב-Kali שלנו רואים שאין לנו שום כרטיס רשת בטווח הפנימי, יש לנו רק את הטווח החיצוני, אבל הגענו לרשת הפנימית, וזו המשמעות של Pivoting או Tunneling. דרך אגב, אפשר דרך nmap לסרוק את רשת היעד, האם הפורטים פתוחים שם או סגורים. אומרים ל-nmap לסרוק אצלנו מקומית את פורט 445, 446 וגם 88 של קרברוס, ולגלות את גרסת ה-Windows של היעד, ואף שאנו משתמשים ב-nmap על עצמנו, למעשה זה יעבור אל היעד האמיתי שלנו בגלל ה-SSH Tunneling, ונגלה איזה Windows יש שם או איזה שרת עומד מאחוריו. רואים בפלט שפורט 445 פתוח, 446 פתוח, כיוון שעשינו להם רי-דירקט, ו-88 לא עשינו לו רי-דירקט וההפניה הזו סגורה. בקיצור, הכלי של SSH עם המתג מגלגל את כל הפורטים המקומיים שלנו, שאנו מציינים לו בצורה מפורשת, אל יעד מסוים, ואז אפשר לנצל את כל הכלים הקיימים, כולל nmap או כל כלי אחר, לפנות פשוט אל ה-IP של עצמנו בדרך מנהרה מוצפנת, והיא תעבור אל היעד ותגיד לנו האם היעד פתוח או סגור וכו'. כך עובד SSH עם המתג הזה, שעושה Tunneling של פורט אל פורט.
סיכמנו את ה-Pivoting בעזרת SSH, מההתחברות אל שרת הקורבן שמגשר בין הרשת החיצונית לפנימית, דרך פתיחת מנהרות פורט-אל-פורט מוצפנות, השימוש בכלי SMB לגישה לשיתופים ולגניבת קבצים, הרצת PSExec דרך הפייפים של השיתופים לשליטה מלאה ב-SYSTEM, ועד לסריקת הרשת הפנימית בעזרת nmap דרך המנהרה. זה הכל, תודה רבה.
SR13008HE

פרקי ההרצאה: ביצוע Pivoting עם SSH -L התוקף יוזם תקשורת לקורבן

  1. 00:00

    הכרת סביבת הפיבוטינג

  2. 00:59

    התחברות לשרת ב-SSH

  3. 01:55

    פתיחת פורטים עם SSH-L

  4. 02:50

    בדיקת הפורטים שנפתחו

  5. 03:29

    בדיקת החיבור ליעד

  6. 04:10

    גישה לשרת הקבצים

  7. 04:46

    עבודה בתוך השיתוף

תמלול ההרצאה: ביצוע Pivoting עם SSH -L התוקף יוזם תקשורת לקורבן

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

  1. 00:02

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

  2. 00:23

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

  3. 00:44

    אז אני מפעיל אותו ועושה לו Enabled, זה אומר שכל ריסטארט הוא יופעל, ועכשיו אני יכול להתחבר מקאלי שלי כאקר מהבית לתוך הקורבן ב-SSH.

  4. 00:56

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

  5. 01:14

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

  6. 01:29

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

  7. 01:39

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

  8. 01:55

    תאזין ב-446 ותעביר את זה ל-IP כזה וכזה ל-445. תאזין ב-445 ותעביר ל-IP כזה וכזה פורט 445. אני עושה Enter, הוא מתחבר עכשיו ב-SSH ופותח לי את הפורטים.

  9. 02:12

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

  10. 02:24

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

  11. 02:36

    מינוס n זה no סינדי. פתחתי פה טאפ חדש ואני רוצה להראות לכם בדיקה של הפורטים בקאלי ותסתכלו מי יושב על הפורט של 445 ו446 ssh זאת אומרת ssh עשה לי tunneling מ-445 ו-446 המקוריים שלי לתוך 445 ו-446 ביעד.

  12. 03:01

    אני למעשה לא צריך לפנות לכתובת IP של היעד, אני צריך לפנות ל-127.001. זאת אומרת, אני כאקר פונה לפורט של עצמי ו-SSH דרך הטאנל יעביר את זה פנימה.

  13. 03:17

    היתרון הגדול של הסיפור הזה הוא ש-SSH מוצפן ואם יש אצל הקורבן Firewall הוא לא יראה את מה שעובר בתוך הרשת כי SSH מוצפן ועכשיו אני רוצה לבדוק שזה אכן עובד אני מריץ איזה בי קליינט שהתחבר לעצמי לIP של עצמי כאקר לפורט 446 וכשאני מתחבר לעצמי הטאנל של SSH ייקח אותי ליעד וכשאני אגיע ליעד שלי אני אתן לו שם בסיסמה.

  14. 03:49

    זה שם של domain / שם של user אחוז הסיסמה. ככה כותבים את ה-user name בפקודת smb-client. domain / user אחוז הסיסמה. ובאמת הצלחתי להגיע ל-dc.

  15. 04:06

    אני יכול גם לנסות להגיע לעוד שרת קבצים. הרי פתחנו שני פורטים, אתם זוכרים, כן? גם 445 וגם 446, 445 ל-130 שזה פייל סרבר ו-446 מגיע ל-DC שזה IP של 10 לשיתוף שמה.

  16. 04:26

    אז יש לנו שתי פורטים פתוחים, לזה פונים בצורה מפורשת מינוס P446, כשפונים ל-445 לא צריך לכתוב כלום כי זאת ברירת מחדל. ושוב אני פונה ל-IP של עצמי כדי ש-SSH יעשה לי טאנלינג, לצד השני ואני אכן מצליח להגיע לפייל סרבר פרוג'קט איקס אז אני מצליח להגיע לכל מיני שיתופים גם dc גם פייל סרבר ופותח פורטים בצורה מפורשת עם מינוס

  17. 04:55

    l אני יכול ממש להתחבר לתוך השיתוף הזה ולהוריד קבצים אני יכול לעשות פה smb client לכתוב לו לאן להתחבר גם בצורה כזאת אפשר וגם עם מינוס l זאת עוד צורת כתיבה עם איזה user עושה enter ואני בתוך שרת הקבצים ביעד ההוא, ועכשיו אפשר לעשות כל מיני פקודות כמו ls ולראות

לקורס המלא: מבדקי חדירה ל‑Active Directory

ההרצאה הקודמת: ביצוע Pivoting עם Rinetd

ההרצאה הבאה: ביצוע Pivoting עם SSH -R - הקורבן יוזם תקשורת לתוקף

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

  • AZURE SSH
  • הגדרת SSH
  • תקשורת בתוך קוברנטיס - Kubernetes
  • הקמת תשתית תקשורת מאפס

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

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