מילון מושגים:
Kali Linux - הפצת Linux המיועדת לבדיקות אבטחה וחדירות, הכוללת אוסף כלים לבחינת מערכות.
TCP - פרוטוקול תקשורת אמין שמוודא שכל חבילות המידע מגיעות ליעד בשלמות ובסדר הנכון.
UDP - פרוטוקול תקשורת מהיר ללא אישור קבלה, המתאים לשידורי וידאו, קול ומשחקים שבהם מהירות חשובה מאמינות.
LAN - רשת מקומית שמחברת מכשירים בטווח מצומצם, כמו בבית או במשרד.
Linux - מערכת הפעלה בקוד פתוח מבוססת ליבת Linux, נפוצה מאוד בשרתים וקיימת בהפצות רבות כמו Ubuntu.
טרמינל - חלון או תוכנה שמספקים ממשק שורת פקודה להקלדת פקודות למערכת ההפעלה.
WinRM - שירות של Windows לניהול מרחוק של מחשבים, להרצת פקודות וסקריפטים דרך הרשת.
מעטפת - תוכנה שמפרשת פקודות של המשתמש ומעבירה אותן למערכת ההפעלה, למשל Bash או PowerShell.
שרת פרוקסי - Proxy
ב-Windows עם Chisel
בשיעור זה אנו רוצים לעשות שרת פרוקסי שיכניס אותנו לרשת פנימית דרך Windows. זה הולך להיות שרת Chisel שיקבל חיבור מה-Kali שלנו ב-HTTP בפורט 80, הוא יצפין את הכל עם SSH וייתן לי להעביר דרכו אל הרשת הפנימית את כל הפאקטים שלי ב-TCP וב-UDP.
נושאי הסיכום המוצגים בשיעור:
1. הרעיון של שרת הפרוקסי: למעשה כל מה שנרצה נוכל לגלגל דרכו אל הרשת הפנימית, כאשר מבחוץ זה ייראה כמו HTTP רגיל. והוא הולך לעבוד כשרת SOCKS, כשרת פרוקסי, כדי לא לפתוח כל פורט בנפרד, כמו שעשינו בהרצאה הקודמת, שפתחנו פורט מסוים ליעד פנימי מסוים. שרת פרוקסי, שרת SOCKS, ייתן לי אפשרות לפתוח את כל הפורטים לכל היעדים בתוך ה-LAN הפנימי, אני לא אצטרך לציין כל פורט בנפרד. אז אנחנו הולכים להקים על שרת Windows פרוקסי סרבר בעזרת Chisel.
2. הורדת הכלי: אנחנו מורידים פה בגיטהאב את הגרסה AMD 64-Bit. יש לנו כבר 7-Zip מותקן כאן, ומחלצים את ה-Chisel. הנה ה-Chisel שלנו, ועכשיו אפשר להתחבר לשרת. גם בשרת אני אכנס לאתר של Chisel ואני אוריד את הגרסה המוכנה. שימו לב, אני לא מקמפל לבד כמו שעשינו בהרצאה הקודמת. אני מראה לכם איך להוריד גרסה מוכנה ולהשתמש בה, כי אני רוצה שתדעו גם לקמפל וגם להוריד Releases מוכנים, גרסאות מקומפלות שאני סומך עליהן שהן קמפלו אותן ולא הכניסו לי איזה סוס טרויאני בפנים.
3. הכנת הקובץ בלינוקס: אני מחפש Linux AMD 64-bit, מוריד אותו, לוחץ כאן למעלה על החץ של ההורדות ופותח את התיקייה הזאת. אני בקאלי, בתיקיית ההורדות, ואני יכול לחלץ את הזיפ הזה. עושים קליק ימני, אקסטראקט היר, ויש לנו את ה-Chisel. אני עושה קליק ימני, open terminal here, ויכול לעשות file chisel, לראות שזה קובץ ELF של 64 ביט. אני רואה שה-Chisel הזה לא ניתן להרצה, אין לו איקסים, אי אפשר להריץ אותו. וזה targz, זה הקיבוץ שלו, אני יכול למחוק אותו כאן, לעשות move to trash. ועכשיו יש לי רק Chisel אחד, רק צריך לעשות Change Mode פלוס X כדי שהקובץ הזה יקבל את הרשאות ההרצה, את ה-Xים, וזאת הפקודה.
4. הרצת השרת עם ה-reverse: יש לנו Chisel מוכן, בואו נריץ אותו. אנחנו מריצים את השרת על פורט 9001, צ'יסון מקף סרבר, צ'יסון בתצורת שרת בתוך קאלי. הוא יחכה לחיבור בפורט 9001, יעבוד במצב SOCKS אבל ברוורס. זה אומר שהשרת יצא החוצה דרך הקליינט. לא הקליינט דרך השרת, אלא רוורס, שרת דרך הקליינט. זאת אומרת, שרת מחכה לחיבורים של הקליינטים, ברגע שהם מתחברים אליו, הם פתאום מחליפים תפקיד, פתאום כל התקשורת עוברת דרך הקליינט החוצה. זאת המשמעות של הרוורס, ואני מתחיל להמתין לקליינטים שיתחברו אליי בפורט 9001. אפשר גם לראות שבאמת יש לנו פה האזנה, לסנטסטאט בשמו החדש ss, ורואים שיש האזנה בפורט 9001 ל-Chisel.
5. הפעלת הקליינט אצל הקורבן: בואו נלך לקליינט שיתחבר בפורט 9001, ואנחנו אומרים כאן במחשב של הקורבן, אתה הקליינט, אתה מתחבר לשרת ב-HTTP, ל-IP כזה וכזה, פורט 9001, וברגע שתתחבר, אתה הולך להיות השרת, דרכך ייכנסו פנימה. לכן יש פה רוורס, ותפתח בקאלי פורט 1080 מקומי. כרגע אין שם 1080 מקומי, תסתכלו כרגע. אם אני אעשה פה 1080, אני אראה שאין פורט כזה. ברגע שיתבצע החיבור, הוא יפתח 1080 ויעשה SOCKS. בגלל שזה רוורס, זה יהיה שרת SOCKS, שרת פרוקסי פנימה. אני עושה Enter פה, הוא עושה Connecting to WebSocket כזה וכזה, אפשר גם לראות בשרת שהוא אכן התחבר והתחיל להאזין בפורט 1080. אפשר גם לראות שצ'יסל כרגע מאזין גם בפורט 1080 ותופס את הפאקטים, ומעביר אותם לשם, וגם ב-9001 מחכה לעוד קורבנות. יכול להיות שעוד קורבנות יפתחו עוד טאנלים.
6. הכנת Proxychains: טוב, איך אנחנו מנצלים את זה? איך אנחנו משתמשים בסוקס הזה, בפרוקסי הזה? כמובן עם פרוקסי צ'יינס. נוודא שהוא מותקן כאן בתחנה, עושים עדכון לקאלי ומתקינים פרוקסי צ'יינס. אני מזכיר לכם שפרוקסי צ'יינס זאת תוכנה שמכניסה בכוח פאקטים לתוך הפרוקסי שלי, במקרה שהתוכנה לא יודעת לעבוד עם שרת פרוקסי ביוזמתה. אני פשוט חוטף את הפאקטים של תוכנה כלשהי ומכניס אותם בכוח לתוך שרת פרוקסי. בקיצור, פרוקסי צ'יינס יודע להכניס בכוח פאקטים לתוך HTTP, SOCKS4 או SOCKS5, שכל זה תקנים שונים של שרתי פרוקסי, כאשר בסופו של יום מתבצע טאנלינג לתוך הרשת הפנימית.
7. ההגדרות של השרשרת: פה סטריק צ'יין אומר, אתה חייב לעבור דרך כל שרתי הפרוקסי שאני אציין לך. אם בסטריקט צ'יין אחד השרתים בדרך לא עובד, אז כל התקשורת נופלת. לעומת זאת דינמיק צ'יין, אני יכול להפעיל אותו ולסגור את זה, אומר שאם אחד השרתים בדרך נפל, פשוט תתעלם ממנו, תדלג מעליו ותלך לשרת הבא ברשימה. ורנדום צ'יין אומר כל פעם לעבור דרך שרת אחר בצורה אקראית. אני הכי אוהב את הדינמיק צ'יין, זה אומר שהוא הולך לפי הסדר, אם מישהו לא עובד בדרך פשוט מדלגים מעליו לשרת הבא. אבל מה שהכי חשוב לי זה השורה האחרונה, פה אני רוצה להכניס הכל בתקן של סוקס 5, לפורט 1080. צ'יסל תומך בתקן של סוקס 5 החדש, ולכן אני שם סולמית על השורה הקודמת של ברירת המחדל ומכניס את השורה הזאת. זה אומר שהאפליקציה של פרוקסי צ'יינס תחטוף את הפקטים ותשלח אותם לתוך IP 127.0.0.1, ל-IP של עצמי, לפורט 1080. יופי.
8. בדיקה עם nmap ועם EvilWinRM: בואו נראה שזה אכן עובד, ואנחנו עושים nmap עבור פורטים מסוימים. שימו לב, מאוד חשוב לרשום את שני המתגים, מינוס N ומינוס PN. מינוס PN שלא יעשה פינגים לפני כן, כי פינג לא עובר ואז הוא יחשוב שהשרת מת, ומינוס N שלא יהיו לנו בעיות עם ה-DNS. ואני אומר לו אילו כתובות IP לסרוק, שימו לב, זה הכתובות IP פנימיות, אין לי את הכתובות האלו, אני לא יכול להגיע אליהן. אבל פרוקסי צ'יינס יחטוף את ה-nmap ויעביר אותם לתוך הטאנל. ואנחנו ממש יכולים לראות איך פרוקסי צ'יינס חוטף את הפאקטים ומעביר אותם פנימה. בלי החטיפה הזאת, המחשב שלי לא היה מגיע ליעד הזה. פרוקסי צ'יינס חטף אותם, הכניס אותם לתוך הטאנל, זה יצא בצד השני, קיבל את התשובות, ויש לנו פה תוצאה. לדוגמה, ב-IP130 הפורטים האלו סגורים והפורטים האלו פתוחים, אתם יכולים לראות ממש פה closed וopen. וב-IP10 הפורטים האלו כן פתוחים. זאת אומרת, אני עובד בעזרת פרוקסי צ'יינס עם רשת מרוחקת, כאילו אני יודע להגיע אליה ישירות. אני יכול גם לעשות כמובן WinRM, לנהל את התחנה דרך Windows Remote Management מרחוק. שימו לב, אני חוטף את הפאקטים, מכניס אותם לתוך הטאנל, והם מגיעים ליעד הפנימי. הפאקטים של התוכנת EvilWinRM, ניהול מרחוק של שרת, והנה אני בתוך השרת, יכול בפאוורשל שלו להריץ פקודות. זה הכל עובד דרך פורט 445. זה הכל, תודה רבה.
סיכמנו את הקמת שרת הפרוקסי ב-Windows בעזרת Chisel, מהורדת הכלים לשרת וללינוקס ומתן הרשאות הרצה, דרך הפעלת השרת במצב reverse שפותח פורט SOCKS מקומי, הגדרת Proxychains בתקן SOCKS5 והבנת סוגי השרשראות, ועד לסריקת הרשת הפנימית וניהול מרחוק בעזרת EvilWinRM דרך המנהרה. בשיעור הבא נעסוק בנושא יצירת Reverse Shell
ב-Windows עם Netcat. זה הכל, תודה רבה.
בשיעור הבא נעסוק בנושא יצירת Reverse Shell
ב-Windows עם Netcat.
SR13040HE