העמוד נטען רגיל, ואז מתחלף. במקום התוכן מופיע חלון האימות המוכר של Cloudflare Turnstile, עם הלוגו, תיבת הסימון "Verify you are human" והספינר שמסתובב. מי שלוחץ עליה מקבל הוראה קצרה על המסך: לפתוח את Windows Terminal או PowerShell ולהדביק שם פקודת "אימות" שכבר הועתקה ללוח בלי שביקש. הפקודה עצמה מנוסחת כדי להרגיע, ומדפיסה בדרך הודעות סטטוס צבעוניות בשם Cloudflare, כולל שורת "I am not a robot" ירוקה בסוף.

עד כאן זו עוד גרסה של ClickFix, השיטה שבה התוקף לא פורץ לשום דבר אלא פשוט מבקש מהמשתמש להריץ בעצמו את הפקודה שתדביק אותו. מה שקורה אחרי ההדבקה הוא הסיפור. חוקרי Microsoft Threat Intelligence פרסמו ב-28 באוגוסט ניתוח של קמפיין שהם מכנים TerminalFix, ובו במקום נוזקת גניבת מידע אחת נפרסת שרשרת שלמה: קובץ חתום של מיקרוסופט שטוען DLL זר, מטענים מוסתרים בתוך תמונות PNG, סריקה מסודרת של ה-Active Directory, ולבסוף מנהרה מוצפנת שמאפשרת לתוקף להגיע מהאינטרנט לכל שרת שהמחשב הנגוע רואה. נעבור על השרשרת שלב אחרי שלב, ונסיים בחלק שמדאיג יותר מכל השאר: מה בדיוק מקבל התוקף בסוף.

אז למה דווקא Windows Terminal?

רוב קמפייני ClickFix שנראו עד היום שולחים את המשתמש לחלון ההרצה של Windows, זה שנפתח ב-Win+R. הכיוון הזה מוכר מספיק כדי שמוצרי הגנה יחפשו אותו, ובעיקר הוא צר: שורת הרצה אחת. Windows Terminal, לעומת זאת, בולע סקריפט מרובה שורות ומריץ אותו כמו שהוא, וזאת בדיוק הסיבה שמיקרוסופט מציינת למעבר. בצד המשתמש זה גם נראה פחות חשוד, כי חלון טרמינל עם פלט צבעוני נראה כמו עבודת IT שגרתית ולא כמו משהו שהודבק מאתר.

המעבר הזה לא התחיל השבוע. כבר בפברואר האחרון זיהתה מיקרוסופט קמפיין שהנחה קורבנות לפתוח את Windows Terminal ישירות בקיצור המקלדת שלו, ובסופו הותקנה נוזקת גניבת מידע מסוג Lumma. את ClickFix עצמה מיקרוסופט ניתחה לעומק עוד באוגוסט 2025, ואז דיווחה שצוותי Defender Experts רואים אלפי מכשירים נפגעים מהטכניקה מדי חודש. מה שהשתנה ב-TerminalFix הוא לא הפיתיון אלא מה שמגיע אחריו.

הקובץ החתום שסוחב איתו DLL זר

הפקודה המודבקת מורידה ארכיון ZIP, פורסת אותו לתיקייה בעלת שם אקראי תחת C:\ProgramData ומפעילה בשקט קובץ אצווה בשם 1.bat. בתוך הארכיון יש שני קבצים בלבד, ושם מתחיל הטריק.

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

הקובץ הלגיטימי הוא LockScreenContentServer.exe, רכיב חתום של מסך הנעילה של ווינדוס, שתלוי בספרייה בשם dui70.dll. הקובץ שיושב לצידו בארכיון מתחזה לאותה ספרייה ומצהיר על עצמו כ-"Windows DirectUI Engine", אבל הוא לא חתום, וחותמת הזמן שלו זויפה לשנת 2104. המטען האמיתי לא יושב בקוד של ה-DLL אלא בתוך אזור המשאבים שלו, מעורפל, ומפוענח כולו בזיכרון בזמן הטעינה בלי שנכתב אי פעם לדיסק. ברשימת הסימנים המזהים שמיקרוסופט פרסמה מופיעות תשע גרסאות שונות של אותו dui70.dll, מה שמרמז על החלפות תכופות כדי לברוח מחתימות.

המטען שמגיע בתוך תמונות

מכאן ה-DLL מפעיל סקריפט PowerShell שמוריד שלוש תמונות PNG משרתי התוקף. התמונות אמיתיות, במובן שהן נטענות כתמונות, אבל בערכי הפיקסלים שלהן מקודדים בייטים של קובץ. הפונקציה שמחלצת אותם קוראת את ארבעת ערוצי הצבע והשקיפות של כל פיקסל ומרכיבה מהם רצף בייטים; שמונת הבייטים הראשונים מקודדים את אורך המטען כמספר שלם ברוחב 64 ביט, וכל השאר הוא תוכן הקובץ. לשיטה הזאת קוראים סטגנוגרפיה, הסתרה של מידע בתוך קובץ תמים.

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

מה הסקריפט מחפש ברשת הארגונית

לפני שהתוקף מגיע לשלב המעניין, הנוזקה דואגת לשימור אחיזה בשתי דרכים בלתי תלויות: מפתח Run תחת HKCU בשם שנראה כמו שירות מערכת, ומשימה מתוזמנת שמריצה מחדש את LockScreenContentServer.exe כל 60 דקות. שני המנגנונים נושאים את אותו שם מתחזה, נגזרת של שם רכיב מסך הנעילה שכבר נוצל קודם, והתיקייה עצמה מוסתרת בעזרת מאפייני קובץ מוסתר ומערכת.

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

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

המנהרה, וזה החלק שמדאיג

השלב האחרון הוא היחיד שמצדיק את כל מה שקדם לו. הנוזקה מורידה סביבת ריצה של פייתון בגרסה 3.14.5 מהאתר הרשמי של השפה, בגרסתה המוטמעת והחתומה, ומפעילה איתה סקריפט בשם client.py דרך pythonw.exe, כלומר בלי חלון גלוי. הבחירה הזאת נוחה לתוקף: כל הלוגיקה הזדונית יושבת בסקריפט אחד, בעוד סביבת הריצה עצמה היא קובץ לגיטימי לגמרי שהורד ממקורו.

הסקריפט יוצר חיבור יוצא מוצפן אל שרת השליטה והבקרה (C2, השרת שממנו התוקף שולח פקודות לנוזקה) בפורט 443, ומשדרג אותו ל-WebSocket. על החוט זה נראה כמו גלישה מוצפנת רגילה אל יעד אחד. אימות התעודה בצד הנוזקה מבוטל לגמרי, וכותרות הדפדפן מוחלפות אקראית בין ארבע מחרוזות מוכרות של כרום, פיירפוקס וספארי. בתוך אותו חיבור יחיד רץ פרוטוקול קטן משלו עם כותרת בת שבעה בתים ושמונה סוגי הודעות, שמאפשר לרבב עליו הרבה חיבורים במקביל.

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

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

מה זה אומר בפועל

אם אתם מנהלים סביבת ווינדוס ארגונית, שתי בדיקות שוות את הזמן כבר היום. הראשונה היא כל מופע של LockScreenContentServer.exe שרץ מתיקייה שאינה C:\Windows\SystemApps, סימן כמעט ודאי לניצול השרשרת הזאת; השנייה היא תעבורה יוצאת אל שמות המתחם שמיקרוסופט פרסמה ברשימת הסימנים המזהים. מחשב שנמצא נגוע צריך להיחשב כנקודת מעבר לרשת ולא כתחנה בודדת, כולל החלפת כל פרטי האימות שהיו נגישים ממנו. ובצד המניעתי יש הגדרה קטנה שמיקרוסופט ממליצה עליה במפורש, והיא כמעט חינם: אפשר להגדיר ש-Windows Terminal יזהיר את המשתמש כשהטקסט שהוא מדביק מכיל יותר משורה אחת.