בבית ספר תיכון בארצות הברית עברו שבע דקות בין הבקשה הראשונה ששלח התוקף לשרת ההדפסות לבין הרגע שבו הייתה בידיו שליטה מלאה על הדומיין. וכשהקמפיין המלא יצא לדרך, 11 ארגונים לפחות נפרצו בתוך 26 שניות. את שני הנתונים האלה פרסמו חוקרי GreyNoise ב-9 בספטמבר, בדוח על קמפיין שמנצל שתי חולשות בתוכנת ניהול ההדפסה PaperCut NG/MF. לפי הספירה שלהם הקמפיין הגיע ל-440 שרתים לפחות, ב-395 ארגונים מזוהים ב-48 מדינות.

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

שרת הדפסות שמדבר עם ה-Active Directory

PaperCut NG ו-MF הן תוכנות שרת לניהול הדפסה בארגונים, והן פופולריות במיוחד במוסדות חינוך. הפרט שהופך אותן למטרה טובה הוא לא ההדפסה עצמה. לפי GreyNoise, שרת האפליקציה הוא יישום Java שרץ בווינדוס כברירת מחדל עם הרשאות SYSTEM, ובדרך כלל מחובר לדומיין ומשולב עם ה-Active Directory כדי לדעת מי המשתמשים. כלומר מי שמצליח להריץ קוד בתוך התהליך הזה מתחיל מההרשאות המקומיות הגבוהות ביותר, על מכונה שכבר נמצאת בפנים.

השרשרת שמובילה לשם מורכבת משתי חולשות שפורסמו באוגוסט. הראשונה, CVE-2026-81578 בציון 8.8, היא כשל בבקרת גישה בממשק הניהול: בקשות מרוחקות ללא אימות שמכוונות לפונקציות ניהוליות מפעילות פעולות בצד השרת עוד לפני שבדיקת ההרשאות הושלמה, וכך תוקף לא מזוהה יכול לשנות חלק מהגדרות המערכת. השנייה, CVE-2026-82078 בציון 9.4, יושבת בדיוק בהמשך: השרת טוען מחלקות של דרייברים למסד הנתונים לפי שם שמגיע מההגדרות, בלי לבדוק אותן מול רשימת דרייברים מאושרים. מי ששינה את ההגדרות בשלב הקודם יכול להצביע על קוד Java שכבר קיים בשרת ולגרום להרצתו בהקשר האבטחה של תהליך PaperCut. שני הציונים והתיאורים לקוחים מבולטין האבטחה של PaperCut מ-27 באוגוסט.

ב-31 באוגוסט הוסיפה CISA את שתי החולשות לרשימת החולשות המנוצלות בשטח שלה, עם תאריך יעד לתיקון ב-14 בספטמבר. (ומי שסופר, אלה החולשות הרביעית והחמישית של PaperCut שנכנסות לרשימה הזאת.)

מה נשאר פתוח בשרת של התוקף

החקירה של Blackpoint התחילה מאירוע אמיתי אצל לקוח, שרת PaperCut חשוף לאינטרנט שנפרץ, ומשם הובילה לתשתית בכתובת 45.142.193[.]132. שם חיכתה תיקיית HTTP פתוחה. GreyNoise עוקבת אחרי הכתובת הזאת מתחילת יולי 2026, בגלל שימוש בה נגד מוצרים של Palo Alto, Ubiquiti, Citrix, SonicWall ו-Proxmox VE.

מבנה התיקייה נראה כמו כל פרויקט פיתוח: ספריות בשמות state, work, artifacts ו-output, לצד סקריפטים ייעודיים ל-PaperCut, וארכיון של פרויקט קודם באותו נושא. מה שהפך אותו למעניין היה דווקא קובצי ה-Markdown בספריית ה-state. הם לא תיעדו פקודות, אלא הקשר: מה כבר הושלם, מה חסום, מה ההשערה הבאה, ואיפה נמצאים הקבצים הרלוונטיים. אחד מהם, מ-31 באוגוסט, מציין שהפרויקט "בונה את ריכוז החומר שהמשתמש ביקש". אחר, מאוחר יותר, מתעד שסריקה ארוכה "הופסקה על ידי המשתמש", ומיד אחריו מפורטים שינויי ההנדסה הבאים: להוסיף סינון מקדים זול יותר, לקצר את זמני ההמתנה, ולא לבזבז את הבדיקה הכבדה על מערכות שלא נראות כמו PaperCut מלכתחילה.

זה בדיוק המבנה של זיכרון מתמשך של סוכן קוד, כזה שנועד לאפשר לשיחה הבאה להמשיך מאיפה שהקודמת נעצרה. Blackpoint מצאו בסביבה של המפעיל גם את Hindsight, שכבת זיכרון מתמשך לסוכני AI, ואת AionUI, ממשק לתיאום עבודה של סוכנים. מבחינת הקצב, GreyNoise מודדים שהתוקף עבר מסביבת עבודה ריקה להרצת קוד ראשונה מול קורבן אמיתי בפחות מארבע שעות, ולחשבון מנהל דומיין ראשון בתוך שעתיים נוספות.

אז מה ה-AI באמת עשה כאן?

רשימת המטרות הרחבה ביותר שהתאוששה, קובץ בשם papercut_master.txt, הכילה 4,107 כתובות IP ייחודיות, והיא הייתה רק אחד המקורות. סקריפט מיזג ארבעה מאגרים לרשימת עבודה אחת, בהם מאגר שהגיע מ-Netlas.io, שירות סריקה של האינטרנט שלפי GreyNoise התוקף השתמש בו עם מפתח API שזוהה, ובסך הכול נורמלו הנתונים למלאי של יותר מ-15,000 צירופים ייחודיים של כתובת ופורט. הכלכלה של הקמפיין פשוטה: ניצול עולה זמן, בדיקה זולה עולה שנייה, ולכן השלב היקר הופעל רק על מה שכבר עבר סינון. סקריפט אחד פנה ל-endpoint שנקרא app, זה שדרכו נטען ממשק ה-web של PaperCut, עם 32 עובדים במקביל, וחילק את התוצאות למערכות PaperCut, מערכות שנענות ומערכות שלא. סקריפט מאוחר יותר העלה את המספר ל-80 עובדים, ובתיאור שלו נכתב במפורש שתפקידו לסנן לפני הרצת קוד יקרה. קובץ נפרד החזיק 28 קודי מדינה שהוסרו מרשימת המטרות המותרות.

כאן מתחיל החלק שקשה לעשות ידנית. בנקודת בקרה מ-1 בספטמבר תיעד הפרויקט 517 מטרות שנכנסות למריץ הקמפיין, ועוטף ההרצה הוגדר ל-200 חוטים במקביל ולעד 100 סבבים, כשהוא שומר את התוצאות המוצלחות ומחזיר לסבבים הבאים רק מה שנכשל או לא הושלם. סקריפט נפרד בדק אם השלבים המאוחרים באמת הסתיימו, כולל גישת מנהל, אימות החשבון שנוצר ואיסוף מידע מה-Active Directory. מערכת יכלה להיות במצב שבו הרצת הקוד עובדת מצוין והיא עדיין נספרת כלא גמורה.

קובץ סיכום כישלונות מאותו יום מסדר 291 מטרות שנכשלו לפי מה שבדיוק השתבש, ולא לפי "נכשל". הקבוצה הגדולה, 161 מערכות, הגיעה לשלב ההפעלה אבל הפלט הצפוי מעולם לא הוגש. 60 הריצו קוד ונכשלו ביצירת חשבון המנהל, 56 דחו את עדכון ההגדרות, ו-12 חרגו מזמן ההמתנה. גם ה-60 האלה פורקו שוב, בין השאר ל-19 שהחזירו שגיאת הרשאות של ווינדוס ולשבע מערכות שאינן ווינדוס שבהן הפקודה הרלוונטית פשוט לא קיימת.

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

מהשרת אל השליטה בדומיין

עד כאן איך הקמפיין מגיע לשרת. מה שקרה אחרי זה מסביר למה 440 שרתי הדפסה הם בעיה גדולה בהרבה מ-440 שרתי הדפסה. מתוך הקורבנות, GreyNoise סופרים 280 מקרים של חילוץ פרטי אימות ו-147 מקרים שבהם נאספו סודות של מערכת ההפעלה או של הדומיין.

החוקרים תיארו שלושה מסלולים אל בקר הדומיין. כשהשרת הפרוץ היה חבר בדומיין, התוקף חילץ פרטי אימות מזיכרון תהליך LSASS ומהרישום, והשתמש בהם מול הבקר בלי לפענח סיסמה. כשהקורבן לא התקין את התיקונים ל-CVE-2021-42278 ול-CVE-2021-42287 משנת 2021, נעשה שימוש בשיטת noPac. וכשהשרת ישב על בקר הדומיין עצמו או רץ תחת חשבון service עם הרשאות מנהל דומיין, התוקף פשוט הוסיף את החשבון שיצר לקבוצת מנהלי הדומיין.

בכל שלושת המסלולים הסתיים התהליך באותה פעולה. התוקף התחזה לבקר דומיין נוסף וביקש מהבקר האמיתי לשכפל אליו את בסיס נתוני החשבונות, טכניקה שנקראת DCSync. התוצאה היא עותק מלא של הקובץ NTDS.DIT, כלומר פרטי האימות של הארגון כולו. ארגז הכלים היה כמעט כולו כלים פומביים מ-GitHub, בהם Mimikatz, Impacket, NetExec, Certipy, BloodHound ו-Rubeus, לצד קבצים ייעודיים שנכתבו ב-Rust לקריאת סודות LSA ולהעתקת ענפי רישום. GreyNoise מציינים גם את Ligolo-ng, כלי מנהור פומבי שהושתל תחת שם ונתיב שנראים תמימים כדי לשמור על גישה מתמשכת.

למרות כל זה, מנהל דומיין הושג ב-12 ארגונים בלבד. בענף, 204 מתוך 440 הקורבנות היו מוסדות חינוך, ובחתך המדינות ארצות הברית מובילה עם 98 קורבנות. GreyNoise מעריכים שזה משקף את בסיס הלקוחות של PaperCut יותר מאשר בחירה מכוונת.

הסוכנים שסטו מההוראות

הפרט המשונה בדוח נוגע דווקא לרשימת המדינות שאסור לגעת בהן. אותה רשימה של 28 מדינות, שנשמרה מקמפיינים קודמים, כללה בין השאר את רוסיה, סין, איראן, ברזיל, דרום אפריקה וניגריה. בטבלת הקורבנות של GreyNoise יש בכל זאת נפגעים בסין, בקזחסטן, בברזיל, בדרום אפריקה, בניגריה, בזימבבואה, בנמיביה ובפקיסטן. "לא ברור למה הסוכנים של התוקף סטו מההוראה", כתבו ב-GreyNoise, "אבל זו דוגמה טובה לסוכנים שיצאו משליטה". החוקרים מייחסים את הפעילות לגורם דובר רוסית ככל הנראה, ומתארים מאות סוכנים שרצו על Codex של OpenAI כמעטפת הרצה, כשהמודל שמאחוריהם הוא של DeepSeek. GreyNoise מדגישים במפורש שלא היו אלה מודלים של OpenAI.

יש גם נתון אחד שמושך לכיוון ההפוך. באחד המקרים שבהם התוקף ניסה לתקוף שרת PaperCut, חומת האש ליישומי web של Cloudflare עצרה אותו. "קשיחות בסיסית של סביבות עדיין משנה מול איומים מבוססי AI", כתבו החוקרים. מה שעדיין לא ברור הוא מה התוקף מתכוון לעשות עם הגישה: GreyNoise כותבים שלא ידוע אם מדובר בפיתוח גישה שתימכר או תועבר לגורמים אחרים, או בהכנה לגניבת מידע או לכופרה בהמשך. בעבר, מציינים החוקרים, חדירות דרך PaperCut הובילו לסחיטה.

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

מי שמריץ אצלו PaperCut NG או MF בהתקנה עצמאית צריך להיות על גרסאות 26.0.5, 25.0.13 או 24.1.10, שהן גרסאות התחזוקה שהחליפו את תיקוני החירום שיצאו בסוף אוגוסט. תאריך היעד ברשימת CISA הוא 14 בספטמבר, וזה שעון סביר גם למי שאינו גוף פדרלי אמריקאי. עדכון לבדו לא עונה על השאלה השנייה, אם השרת כבר נפרץ בין 31 באוגוסט להיום, ולשם כך הבולטין של PaperCut מפרט סימנים לבדיקה, ובראשם קובץ server.log חסר או קטוע ושורות שגיאה מסוימות על דרייבר מסד נתונים שלא נמצא. ואם השרת היה מחובר לדומיין, השאלה כבר לא מסתכמת בשרת: מי שהריץ שם קוד הגיע לפרטי האימות, ולכן פריצה מאומתת דורשת החלפת סיסמאות ומפתחות, לא רק שדרוג גרסה.