רגע לפני שמתחילים.
במדריך תגלו את יסודות Reverse Shell ו-Bind Shell.
תראו כיצד לעצור Buffer Overflow בעזרת ASLR ו-Stack Canary.
נכיר את טכניקת ROP שמצליחה לעקוף הגנות זיכרון.
נמשיך ל-Memory Forensics כדי לאתר Rootkitים חמקניים.
נראה איך Metasploit מייעל שלבי Post Exploitation.
לבסוף נטעם מעולם Reverse Engineering באמצעות Ghidra ונלמד על DLL Hijacking.
התוכן מותאם גם למי שנמצא בהכנה למיוני גאמא סייבר ומשלב הבנה תיאורטית עם תרגול מעשי.
ידע מעמיק בתחום אבטחת המידע מאפשר להתמודד עם פרצות מגוונות ולהבין טכניקות מתקדמות המשמשות תוקפים ומגנים כאחד.
בכל פעם שמגלים חולשה בתוכנה או במערכת, תהליך הלמידה כיצד לנצל אותה וגם כיצד להגן מפניה הוא קריטי.
בשורות הבאות נצלול אל עולמות כמו Reverse Shell, Bind Shell, Buffer Overflow, Reverse Engineering ועוד.
נסקור גם את חשיבות הכלים והתהליכים כגון Metasploit, ROP ונלמד על דרכי הסתרת קוד זדוני בעזרת Rootkit.
כל אלה יספקו בסיס רחב לכל מי שעוסק בתחום אבטחת המידע או מעוניין להתקדם בו.
הכנה למיונים גאמא סייבר היא הזדמנות מצוינת לחקור לעומק את עקרונות ההגנה וההתקפה בסייבר.
עולמות האבטחה המקצועיים משלבים טכניקות מגוונות.
בין היתר, יש שימוש רב בניצול פגיעויות בתוכנות, מניפולציות על זיכרון, ורכיבי מערכת הפעלה כדי להשיג גישה לא מורשית.
יחידה 8200 מבצעת מחקרים רבים בהקשר לאבטחת מידע, וחשוב להכיר את הכלים והתהליכים הבסיסיים כדי להבין את האיומים הקיימים.
גאמא סייבר מעניקה אפשרות ללמוד כיצד תוקף חושב, איך הוא מפעיל Shell מרחוק, מהי העלאת הרשאות וכיצד ניתן להסוות נוכחות של נוזקה.
Reverse Shell הוא מצב שבו המערכת הנתקפת יוצרת חיבור יזום אל מחשב התוקף.
במקום שהתוקף יתקשר לשרת הפגיע, השרת עצמו "מתקשר בחזרה" לתוקף.
טכניקה זו מסייעת לעקוף חומות אש או מערכות שמחכות לחיבור נכנס ומונעות אותו.
ברגע שהחיבור נוצר, התוקף מקבל שליטה בטרמינל מרחוק ויכול להפעיל פקודות על המערכת הנתקפת.
שיטה זו נפוצה בבדיקות חדירה כיוון שהרבה פעמים החיבור היוצא מהמערכת לא נחסם או לא מזוהה כחריג.
בשונה מReverse Shell, בBind Shell המערכת הנתקפת מאזינה ביציאה מסוימת וממתינה להתחברות מצד התוקף.
כאן לא נוצרת התקשרות יזומה החוצה, אלא התוקף ניגש אל הפורט הפתוח בשרת.
החיסרון הוא שלעיתים חומות אש יחסמו ניסיונות חיבור נכנסים.
היתרון הוא פשטות החיבור כאשר היציאה בשרת פתוחה או כאשר אין הגבלות משמעותיות על התקשורת הנכנסת.
במצב הזה, אם השרת חשוף או שהפורטים מוגדרים נכון, התוקף יוזם את החיבור ויכול לקבל גישה לפקודות על המערכת.
Buffer Overflow מתרחש כאשר תוכנית כותבת יותר נתונים ממה שהאזור המשוריין בזיכרון מסוגל להכיל.
המושג "דריסת זיכרון" מתאר מצב שבו נתונים פולשים לתוך אזורים המיועדים לערכים חשובים כמו כתובות החזרה של פונקציות.
באמצעות ניצול התקלה הזו, תוקף יכול לשתול קוד זדוני ולהריצו ברגע שהתוכנית חוזרת מפונקציה כלשהי.
היכולת הזו מעניקה גישה נרחבת לתוקף, ולעיתים אף מאפשרת שליטה מלאה במערכת אם מנגנוני ההגנה אינם מופעלים כראוי.
בדרך כלל, תוקף שמבקש לנצל פגיעות עובר כמה שלבים ברורים.
תחילה הוא מגלה את החולשה בתוכנה או במערכת.
אחר כך הוא מפתח או מתאים Exploit שמנצל בדיוק את אותה פגיעות.
לאחר שהפעולה מצליחה, התוקף משגר Payload שמבצע פעולה מסוימת, למשל פתיחת Reverse Shell.
לבסוף, מגיע שלב הPost Exploitation שבו התוקף או בודק האבטחה מנסה לבסס הרשאות גבוהות ולבצע פעולות נוספות כמו איסוף מידע.
Reverse Engineering מאפשר לחוקרי אבטחה להבין איך תוכנה פועלת מאחורי הקלעים גם ללא קוד המקור הרשמי.
בניתוח בינארי או קבצי הרצה, אפשר לגלות פונקציות פנימיות, מנגנוני הגנה ואף חולשות אבטחה.
כלי דוגמת IDA Pro, Ghidra וRadare2 עוזרים לפרק את הקוד לרמה נמוכה ולהבין את הלוגיקה המעשית של התוכנה.
כך ניתן לאתר פרצות ולהתאים Exploits יעודיים או לחקור נוזקות כדי לפתח אמצעי הגנה יעילים.
Rootkit הוא אוסף כלים או תוכנה שמטרתם לספק לתוקף שליטה סמויה כמעט לגמרי במערכת.
כאשר הRootkit פועל ברמת הליבה של מערכת ההפעלה, הוא יכול להסתיר תהליכים, קבצים ופעולות מעיני המשתמש ומהתוכנות המגינות.
ברגע שתוקף מצליח להתקין Rootkit, הסיכון גדול מאוד, מכיוון שהיכולת לזהות אותו מוגבלת מאוד.
בפועל, הסרה של Rootkit דורשת לעיתים סריקות מעמיקות, ולא פעם צריך לאתחל את המערכת מסביבה חיצונית ולא אמינה על ידי התוקף.
Metasploit הוא כלי מרכזי לבדיקות חדירה ואבטחת מידע.
זוהי פלטפורמה שמכילה מאגר עצום של Exploits, Payloads וכלים נוספים המאפשרים אוטומציה של תהליך התקיפה.
אפשר לטעון גרסאות שונות של Shellcode, להריץ מודולים מותאמים, ולהשתמש בכלים רבים שמגיעים כחלק מהפלטפורמה.
כך ניתן לבצע באופן מסודר סריקה, זיהוי חולשות, שלבי Post Exploitation ועוד, והכול במקום מרכזי אחד.
כדי להתמודד עם הצפות זיכרון, מפעילים כמה טכניקות משלימות.
ASLR Address Space Layout Randomization מערבבת את כתובות הטעינה של מודולים, כך שקשה יותר לחזות את המיקום המדויק של קוד קריטי.
שימוש בדגל NX bit מוודא שאזורים מסוימים בזיכרון לא יהיו ניתנים להרצה, ומונע הזרקת קוד למקומות שלא יועדו לכך.
כמו כן, כדאי לכתוב קוד מאובטח שבודק את אורך הקלט ומונע כתיבה החורגת מגודל המערך.
שילוב של שלושת המנגנונים האלה מוריד מאוד את הסיכון להצלחת מתקפת Buffer Overflow.
השגת Shell מרוחק מייצגת נקודת מפתח במתקפה, כיוון שהיא מאפשרת הרצת פקודות ישירות על מערכת היעד.
דרך Shell זה ניתן להעתיק קבצים, לשנות הרשאות ולבצע כמעט כל פעולה מערכתית.
בבדיקות חדירה, פותחים לא פעם Reverse Shell או Bind Shell כדי להמשיך לחקור את המערכת לעומק ולאסוף מידע קריטי.
גם אם תוקף מצליח לחדור למערכת בהרשאות משתמש מוגבל, הוא ירצה להעלות אותן למשתמש ברמה הגבוהה ביותר.
זה נקרא Privilege Escalation.
כאשר משתמשים מצליחים לעבור מהרשאות רגילות להרשאות גבוהות כמו מנהל או root, הם מקבלים שליטה נרחבת מאוד.
כך ניתן להתקין או להסיר תוכנות, לשנות קבצי מערכת קריטיים ולהסתיר פעולות זדוניות באופן מתוחכם הרבה יותר.
מעבר לASLR, ישנו מנגנון בשם Stack Canary שמוסיף ערך מיוחד במחסנית הזיכרון לפני כתובת החזרה.
בזמן החזרה מהפונקציה, המערכת בודקת אם הערך השתנה.
אם אכן זוהתה חריגה, זה סימן לBuffer Overflow, והתוכנית תיסגר לפני שניתן יהיה לנצל את ההצפה.
כך מקבלים שכבת הגנה נוספת המונעת דריסה ישירה של כתובת החזרה.
לצד ASLR, הדבר מקשה מאוד על ניצול הצפה לתוקף.
Rootkits ברמת הליבה עשויים להסתיר תהליכים, קבצים ושירותים מכלים רגילים.
כשמריצים תוכנת אנטי וירוס או בודקים את מערכת הקבצים באופן שגרתי, הRootkit יכול לשכתב את הפלט ולהסתיר את עצמו.
ניתוח זיכרון ישיר המכונה Memory Forensics מאפשר לבחון את הזיכרון כמו שהוא בפועל, בלי תלות במנגנוני הדיווח של מערכת ההפעלה.
כך ניתן לחשוף מבנים חשודים המאותתים על נוכחות Rootkit, גם אם הוא הסתיר היטב את עקבותיו ברמת הקבצים.
בשלב שאחרי החדירה, Metasploit מציע מגוון כלים המאפשרים לחוקר או לתוקף להעמיק שליטה.
אפשר להריץ מודולים מוכנים לאיסוף מידע כמו Hashdump, לנסות הקלטת הקשות ולחפש סיסמאות נוספות במערכת.
המודולים הללו מסייעים בביסוס שליטה ובהבנת מבנה המערכת הקיימת.
במקום לבנות כל כלי מאפס, מתבססים על המודולים הרבים הקיימים כבר בMetasploit.
במתקפות Buffer Overflow מורכבות, לא תמיד ברור היכן ניתן למקם את הShellcode בזיכרון.
לשם כך משתמשים בטכניקה המכונה Egg Hunter.
התוקף משלב תחילה חתימה ייחודית "ביצה" בShellcode, ומטמיע קוד קצר שסורק את הזיכרון כדי למצוא את החתימה הזו.
כאשר הוא מוצא את ה"ביצה", הוא מעביר את הריצה אל הShellcode עצמו, וכך התוקף לא חייב לדעת מראש את הכתובת המדויקת בזיכרון.
Ghidra הוא כלי ריברס הנדסה רב עוצמה שפותח בקוד פתוח.
הוא מאפשר לפרק קבצים בינאריים לרמת שפת מכונה, וכן להפיק ייצוג קריא יותר של הקוד.
מעבר לפירוק, הוא מספק Decompiler שנראה כמו שפת תכנות גבוהה, כך שאפשר להבין בקלות יחסית את הלוגיקה הפנימית של קובץ ההרצה.
כלי זה שימושי מאוד לחוקרי נוזקות, בודקי חדירה ומומחי אבטחה שרוצים לדעת איך תוכנה פועלת ומה הנקודות התורפה שלה.
כאשר NX bit מופעל, לא ניתן להריץ קוד מאזורי זיכרון שנחשבים "לא הרצים".
עם זאת, תוקפים פיתחו שיטה שנקראת Return Oriented Programming ROP.
בשיטה הזו לא מזריקים קוד חדש, אלא משתמשים בגזירי פקודות קיימות בזיכרון המכונה Gadgets כדי להרכיב זרימת ביצוע מלאה.
כך מצליחים לעקוף את המגבלה, כי המערכת חושבת שמריצים קוד קיים ולא קוד מוזרק.
ROP נחשב למסובך יותר ליישום, אך הוא מוכיח את עצמו כיעיל מאוד מול מנגנונים כמו NX bit.
מעבר לניתוח סטטי, שבו מסתכלים על הקוד או מבצעים פירוק, יש ערך רב בהרצת נוזקה בSandbox ובדיקת ההתנהגות בזמן אמת.
זה נקרא ניתוח דינמי.
בודקים אילו קבצים נוצרים, לאן הנוזקה מנסה להתחבר ברשת, ואילו מפתחות רג'יסטרי מתעדכנים.
לאחר מכן משווים את הממצאים למה שרואים בפירוק הסטטי.
השילוב בין שני העולמות מספק תובנה מלאה יותר על הנוזקה, ומסייע בזיהוי השיטות החבויות שעשויות לא להופיע בקוד באופן גלוי.
אחת הבעיות הגדולות עם Rootkits היא שהם יכולים לשנות את הקריאות הרגילות למערכת, ולהסתיר קבצים ותהליכים כך שכלי סריקה שגרתיים לא יבחינו בהם.
לכן, במקרים רבים יש צורך לאתחל את המערכת מסביבה חיצונית לא נגועה, כמו Live CD או התקן USB מאובטח.
במצב זה, הRootkit לא פועל כיוון שהליבה שלו לא נטענת, ואז אפשר לראות את הקבצים האמיתיים שעל הדיסק.
כך מתאפשר לזהות ואף למחוק את הרכיבים הזדוניים שברמת הקרנל.
במתקפות Buffer Overflow מתקדמות או בROP, לפעמים נוצרת צורך להשתמש באזור זיכרון אחר לניהול הStack.
Stack Pivoting הוא הרעיון להזיז את מצביע הStack לאזור חלופי, למשל בHeap או במקום שהשליטה עליו גמישה יותר.
באופן כזה, התוקף יכול להניח שם מבני נתונים או כתובות חשובות ולהריץ את הROP ביעילות, תוך עקיפה של מנגנוני ההגנה שמניחים שהStack נשאר באזור הידוע.
במערכות Windows הרבה תוכנות טוענות קבצי DLL ממסלולים מוגדרים מראש.
אם התוקף מציב קובץ DLL זדוני הנושא שם זהה לDLL מקורי במקום שהמערכת תחפש ראשון, התוכנה תטען דווקא אותו.
כך ניתן להריץ קוד זדוני עם ההרשאות של התוכנה הנגועה.
זוהי תקיפת DLL Hijacking, והיא מתבססת על אופן חיפוש קבצי DLL בנתיבים המוגדרים.
בסיכומו של דבר, הבנת הטכניקות העיקריות של Reverse Shell, Bind Shell, Buffer Overflow, Rootkit וMetasploit מעניקה נקודת פתיחה מצוינת לעוסקים בכל תחומי אבטחת המידע.
הידע הזה חיוני לא רק לצורך התקפה, אלא גם להגנה אפקטיבית נגד תוקפים מתוחכמים.
בכל שלב שבו מזהים חולשה או תקלה, חשוב להבין את עקרונות העבודה של מערכת ההפעלה, שיטות ההסוואה והאופן שבו זיכרון מנוהל.
כך ניתן למנוע נזק גדול ולשמור על סביבה בטוחה יותר.