כותרת Penligent

דחוף: Windows PowerShell 0-Day (CVE-2025-54100) ניתוח מעמיק ומדריך תיקונים קריטיים

מבוא: כאשר "הסכין השוויצרי" חותך אותך

ב-9 בדצמבר 2025, מרכז התגובה לאבטחה של מיקרוסופט (MSRC) הפיל פצצה במהלך "יום התיקונים" החודשי שלו: קריטי פגיעות 0-Day ב-Windows PowerShell, מעקב כ CVE-2025-54100.

עם ציון CVSS של 7.8 (גבוה), פגיעות זו משפיעה על חלק נרחב ממערכת ההפעלה Windows — החל משרתים ישנים ועד לגרסאות Windows 11 העדכניות ביותר. מכיוון ש-PowerShell משולב עמוק במבנה מערכת ההפעלה, פגיעות זו מספקת לתוקפים הזדמנות מסוכנת ל"Living-off-the-Land" (LotL), המאפשרת להם להפעיל קוד זדוני באמצעות כלי מערכת מקוריים ואמינים.

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

Windows PowerShell 0-Day CVE-2025-54100

ניתוח טכני מעמיק: המכניקה של CVE-2025-54100

כדי להבין את חומרת הבעיה, עלינו לבחון את החולשה הבסיסית: CWE-77 (נטרול לא תקין של אלמנטים מיוחדים המשמשים בפקודה).

הלוגיקה של הפגיעות

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

תרחיש תקיפה (הוכחת היתכנות רעיונית)

הצהרת אחריות: הקוד הבא מיועד למטרות חינוכיות בלבד.

דמיינו סקריפט ניהולי לגיטימי שנועד לקרוא קבצי יומן בהתבסס על קלט המשתמש:

PowerShell

`# תבנית פגיעה $UserInput = Read-Host "הזן שם קובץ יומן"

Windows PowerShell 0-Day CVE-2025-54100 PoC

הקלט מחובר ישירות למחרוזת הפקודה

Invoke-Expression "Get-Content C:\Logs\$UserInput"`

בתרחיש סטנדרטי, משתמש נכנס ל-app.log.

עם זאת, אם תוקף מנצל את CVE-2025-54100 במערכת שלא עברה תיקון, הוא יכול להזין:

app.log; Start-Process calc.exe

הפרסר, שלא הצליח לנטרל את הפסיק (;), מפרש זאת כשתי פקודות נפרדות:

  1. קרא את היומן: Get-Content C:\\Logs\\app.log
  2. ביצוע מטען: התחל תהליך calc.exe (בתקיפה אמיתית, זה יהיה תוכנת הורדת כופר או משואת C2).

וקטור התקיפה: "מקומי" אך קטלני

מיקרוסופט מסווגת זאת כווקטור תקיפה "מקומי". משמעות הדבר היא שתוקף זקוק בדרך כלל ל:

  • גישה ברמה נמוכה למערכת, או
  • לשכנע משתמש להפעיל קובץ זדוני (הנדסה חברתית/פישינג).

לאחר שהצליחו, הם יכולים לנצל הזרקה זו כדי להגדיל את ההרשאות שלהם או לנוע לרוחב הרשת.

Windows PowerShell 0-Day CVE-2025-54100 PoC

מטריצת התיקונים: זיהוי העדכונים הקריטיים

מיקרוסופט פרסמה עדכוני אבטחה דחופים. מנהלי IT צריכים לתת עדיפות מיידית ל-KBs הבאים באמצעות WSUS, SCCM או הורדה ידנית.

גרסת מערכת ההפעלהחומרהמזהה תיקון KB קריטיהערות פריסה
Windows Server 2025גבוהKB5072033נדרשת הפעלה מחדש
Windows 11 (24H2 / 25H2)גבוהKB5074204עדכון מצטבר
Windows Server 2022גבוהKB5074204התקנה בעדיפות
Windows Server 2019גבוהKB5074353
Windows 10 (22H2)גבוהKB5071546עדכון אבטחה בלבד זמין
Windows Server 2012 R2בינוניKB5071544ESU (תמיכה מורחבת) בלבד

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

"תפסתי אותך": תיקון סקריפטים פגומים לאחר תיקון

אבטחה בדרך כלל באה על חשבון הנוחות. העדכונים עבור CVE-2025-54100 (במיוחד בתוך KB5074204 ו KB5074353) להנהיג בקרות אבטחה מחמירות יותר על בקשות אינטרנט.

הבעיה: Invoke-WebRequest כשלים

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

"לא ניתן לנתח את תוכן התגובה מכיוון שמנוע Internet Explorer אינו זמין, או שתצורת ההפעלה הראשונית של Internet Explorer אינה שלמה."

זה קורה מכיוון שמיקרוסופט סוף סוף מנתקת את הקשר בין PowerShell למנוע הניתוח הישן של Internet Explorer כדי לצמצם את שטח התקיפה.

התיקון: שינוי מבנה הקוד

עליך לעדכן את הסקריפטים שלך כדי להפסיק להסתמך על IE לניתוח DOM. הפתרון הוא לאלץ את השימוש ב- ניתוח בסיסי מצב.

הקוד השבור (מורשת)

PowerShell

# זה מסתמך על מנוע IE, אשר כעת מוגבל או הוסר $response = Invoke-WebRequest -Uri "" Write-Output $response.Content

הקוד המאובטח (שיטות עבודה מומלצות)

PowerShell

# מוסיף את המתג -UseBasicParsing לצורך מהירות, אבטחה ותאימות $response = Invoke-WebRequest -Uri "" -UseBasicParsing Write-Output $response.Content

טיפ למנהלים:

השתמש בחיפוש regex ב-IDE שלך (VS Code / ISE) כדי לסרוק את מאגר הסקריפטים שלך:

  • מצא: Invoke-WebRequest\\s+(?!.*-UseBasicParsing)
  • פעולה: הוסף שימוש בניתוח בסיסי למקרים אלה.

הגנה מעמיקה: מעבר לתיקון

תיקון הוא תגובה. כדי להגן מפני התקפות 0-day עתידיות, עליך לאמץ אסטרטגיית "הגנה מעמיקה" עבור PowerShell.

א. אכיפת מצב שפה מוגבלת

עבור משתמשים שאינם מנהליים, PowerShell צריך לפעול ב- מצב שפה מוגבלת. דבר זה מגביל באופן משמעותי את היכולת לקרוא ל-Windows APIs או לקמפל קוד .NET שרירותי.

PowerShell

`# אמת את המצב הנוכחי שלך $ExecutionContext.SessionState.LanguageMode

תפוקה יעד למשתמשים רגילים: ConstrainedLanguage`

ב. הפעל רישום חסימת סקריפטים

התוקפים אוהבים את PowerShell מכיוון שהוא פועל בזיכרון (ללא קבצים). כדי לתפוס אותם, עליך לרשום את הקוד הממשי שמבוצע.

  • נתיב GPO: תצורת מחשב > תבניות ניהול > רכיבי Windows > Windows PowerShell > הפעל רישום חסימת סקריפטים של PowerShell.

ג. כללי זיהוי SIEM

עדכן את כללי הניטור של SOC שלך כדי לסמן ניסיונות ניצול פוטנציאליים:

  • היררכיית תהליכים: התראה אם powershell.exe נוצר על ידי יישומי Office (Word, Excel).
  • טיעונים חשודים: חפש פקודות מעורפלות מאוד או שימוש ב- פקודה מקודדת.
  • מזהה אירוע 4104: סרוק את יומני בלוק הסקריפט למילות מפתח כמו Invoke-Expression או IEX בשילוב עם שיחות רשת.

סיכום

החשיפה של CVE-2025-54100 משמשת כתזכורת חדה: זהות ותצורה הן הגבול החדש. הפתרון המיידי הוא יישום עדכוני KB של חודש דצמבר (KB5072033/KB5074204), אך הפתרון לטווח הארוך טמון בחיזוק הסביבה שלך מפני שימוש לרעה בכלים מקוריים.

תוכנית הפעולה שלך:

  1. ביקורת: סרוק את הרשת שלך כדי לאתר נקודות קצה של Windows שלא עודכנו.
  2. תיקון: הטמיעו את עדכוני האבטחה של דצמבר באופן מיידי.
  3. שינוי מבנה: עדכן את סקריפטי האוטומציה שלך כדי להשתמש ב- שימוש בניתוח בסיסי.

הישמרו על עצמכם, ושמרו על הקונכיות שלכם.

שתף את הפוסט:
פוסטים קשורים