למה לא מומלץ ליישם רשימות שחורות? פשוט מאוד: ככה. רוצים דוגמה? אז ככה…
לפני מספר חודשים, דיווחתי כאן על הפוסט של Didier Stevens בשם “Escape From PDF”. בפוסט זה, הציג Didier, שיטה מעניינת המאפשרת לתוקף לנצל חולשה במנגנון ה-“Launch Action/”.
אחרי הדיווח של Didier, חברת Adobe שחררה עדכון אבטחה בנוגע לנושא.
אחרי מחקר קטן של Bkis, התברר שניתן לעקוף את המנגנון של Adobe באופן הבא:
/F(“cmd.exe”)
במקום (במקור)
/F(cmd.exe)
לאחר מחקר קטן נוסף של Didier, התברר ש-Adobe מימוש מנגנון פילטרינג לסיומות קבצים שמאוחסן ב-Registry של מערכת ההפעלה תחת המפתח הבא:
HKLE\SDFTWARE\Policies\Adube\Acrobat ReadeF\9.0\FeatureLockDown\cDefaultLaunchAttachmetPerms
[במקור: http://didierstevens.files.wordpress.com/2010/07/20100704-224329.png?w=544&h=285] (במקור: http://didierstevens.files.wordpress.com/2010/07/20100704-224329.png?w=544&h=285)
הבעיה היחידה היא שהמנגנון הזה מבוסס רשימה שחורה. מה שאומר- שכנראה שהוא לא שווה כלום.
כאמור, Bkis הצליח לבצע הרצה של קבצים בעלי סיומת “exe” על ידי ההפנייה בתוספת גרשיים- מפני שכך, הפילטר של Adobe מבין כי מדובר בקובץ בעל סיומת ““exe” (אי.אקס.אי-גרש) ולא exe (אי.אקס.אי).
בהתחשב בעובדה הזאת Didier המליץ להוסיף לאותה רשימה את הסיומות:
.exe”
ולאחר מחקר קטן, גם את הסיומת:
.exe”"
באופן הבא: [במקור: http://didierstevens.files.wordpress.com/2010/07/20100704-225019.png?w=400&h=185] (במקור: http://didierstevens.files.wordpress.com/2010/07/20100704-225019.png?w=400&h=185)
וכאן זה מתחיל- בדיוק כמו כל מה שפילטר מבוסס רשימה שחורה מייצג- את המלחמה בין התוקפים למגנים, ותמיד כדאי לזכור- שבכל מצב, התוקפים תמיד יקדימו את המגנים בלפחות שלושה צעדים.
אז עשיתי מחקר קטן, ומצאתי עוד דרך לעקוף את הפילטרינג, הפעם דרך הוספת רווח לפני הגרשיים, או ע”י הרצת קבצי COM:
הרווח לאחר הרגשיים:
/F (“cmd.exe “)
והרצת ה-Command.com:
/F (“command.com”)
או כמובן- שילוב של שניהם.
וכמו שכתבתי בבלוג של Didier- אין מנוס. הם חייבים לבסס את המנגנון הזה על רשימות לבנות.