WinorDLL64: דלת אחורית מארסנל לזרוס העצום?

WinorDLL64: דלת אחורית מארסנל לזרוס העצום?

צומת המקור: 1975596

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

חוקרי ESET גילו את אחד המטענים של הורדת Wslink שגילינו עוד בשנת 2021. קראנו למטען הזה WinorDLL64 על סמך שם הקובץ שלו WinorDLL64.dll. Wslink, בעל שם הקובץ WinorLoaderDLL64.dll, הוא טוען לקבצים בינאריים של Windows, שבניגוד למעמיסים אחרים, פועל כשרת ומפעיל מודולים שהתקבלו בזיכרון. כפי שהניסוח מרמז, מטעין משמש ככלי לטעינת מטען, או את התוכנה הזדונית בפועל, על המערכת שכבר נפגעה. וקטור הפשרה הראשוני של Wslink לא זוהה.

מטען Wslink הלא ידוע בתחילה הועלה ל-VirusTotal מדרום קוריאה זמן קצר לאחר פרסום הפוסט בבלוג שלנו, ופגע באחד מכללי ה-YARA שלנו המבוססים על השם הייחודי של Wslink WinorDLL64. לגבי Wslink, הטלמטריה של ESET ראתה רק מספר זיהויים - במרכז אירופה, צפון אמריקה והמזרח התיכון.

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

בשנת 2021, לא מצאנו שום נתונים המצביעים על כך ש-Wslink הוא כלי של שחקן איום ידוע. עם זאת, לאחר ניתוח מקיף של המטען, ייחסנו WinorDLL64 לקבוצת Lazarus APT עם ביטחון נמוך בהתבסס על אזור היעד וחפיפה הן בהתנהגות והן בקוד עם דגימות לזרוס ידועות.

פעילה לפחות משנת 2009, הקבוצה הידועה לשמצה זו, המתושרת לצפון קוריאה, אחראית לתקריות בעלות פרופיל גבוה כגון פריצת Sony Pictures Entertainment ועשרות מיליוני דולרים שודדי סייבר ב-2016, ה WannaCryptor התפרצות (המכונה גם WannaCry) בשנת 2017, והיסטוריה ארוכה של התקפות משבשות נגד תשתית ציבורית וקריטית בדרום קוריאה מאז 2011 לפחות. US-CERT וה-FBI קוראים לקבוצה הזו קברה הסתרה.

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

פוסט זה בבלוג מסביר את הייחוס של WinorDLL64 ללזרוס ומספק ניתוח של המטען.

קישורים ללזרוס

גילינו חפיפות הן בהתנהגות והן בקוד עם דוגמאות של לזרוס מבצע סוד רפאים ו שתל Bankshot מתואר על ידי מקאפי. התיאור של השתלים במאמרי GhostSecret וגם ב-Bankshot מכיל חפיפות בפונקציונליות עם WinorDLL64 ומצאנו חפיפת קוד מסוימת בדגימות. בפוסט זה בבלוג נשתמש רק ב- FE887FCAB66D7D7F79F05E0266C0649F0114BA7C דוגמה מ-GhostSecret להשוואה מול WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), אלא אם צוין אחרת.

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

1. ויקטימולוגיה

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

איור 1. דווח על קורבן דרום קוריאני, כאשר mstoned7 הוא החוקר מ- Ahnlab

2. תוכנות זדוניות

  • המדגם האחרון של GhostSecret שדווח על ידי McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) הוא מפברואר 2018; ראינו את המדגם הראשון של Wslink בסוף 2018 וחוקרים עמיתים דיווחו על להיטים באוגוסט 2018, אותם חשפו לאחר הפרסום שלנו. לפיכך, דגימות אלו נצפו בפרק זמן קצר יחסית בנפרד.
  • אל האני כותרות עשירות ב-PE מצביעים על כך שאותה סביבת פיתוח ופרויקטים בגודל דומה שימשו בכמה דגימות ידועות אחרות של לזרוס (למשל, 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). מצאנו חפיפה זו באמצעות הכללים הבאים המכסים רק את הדגימות הללו של Wslink ו-Lazarus, שהוא אינדיקטור עם משקל נמוך. בדקנו אותם הציד הרטרו של VirusTotal וקורפוס הקבצים הפנימי שלנו.

rich_signature.length == 80 ו
pe.rich_signature.toolid(175, 30319) == 7 ו
pe.rich_signature.toolid(155, 30319) == 1 ו
pe.rich_signature.toolid(158, 30319) == 10 ו
pe.rich_signature.toolid(170, 30319) >= 90 ו
pe.rich_signature.toolid(170, 30319) <= 108

ניתן לתרגם את הכלל הזה לסימון הבא שהוא קריא יותר ומשמש את VirusTotal, שבו אפשר לראות את גרסת המוצר ומזהה ה-build (VS2010 build 30319), מספר וסוג קובצי המקור/אובייקט בשימוש ([LTCG C++] כאשר LTCG מייצג יצירת קוד זמן קישור, [ASM], [ג]), ומספר היצוא ([EXP]) בכלל:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 build 30319 ספירה ב [ 90 .. 108 ]

  • המאמר של GhostSecret תיאר "רכיב ייחודי לאיסוף נתונים והתקנת שתלים שמאזין ביציאה 443 לחיבורי שרת בקרה נכנסים" שפעל בנוסף כשירות. זהו תיאור מדויק של התנהגות הורדת Wslink, מלבד מספר היציאה, שיכול להשתנות בהתאם לתצורה. לסיכום, למרות שהיישום שונה, שניהם משרתים את אותה מטרה.
  • הטוען מוירטטאלי על ידי קוד וירטואליזר של Oreans, שהוא מגן מסחרי שנמצא בשימוש בתדירות גבוהה על ידי לזרוס.
  • המעמיס משתמש ב- MemoryModule ספריה לטעינת מודולים ישירות מהזיכרון. הספרייה אינה נמצאת בשימוש נפוץ על ידי תוכנות זדוניות, אך היא פופולרית למדי בקרב קבוצות המתואמות לצפון קוריאה כגון לזרוס וקימסוקי.
  • חפיפה בקוד בין WinorDLL64 ל-GhostSecret שמצאנו במהלך הניתוח שלנו. התוצאות והמשמעות בייחוס מופיעות בטבלה 1.

טבלה 1. קווי דמיון בין WinorDLL64 ל-GhostSecret ומשמעותם בייחוס שניהם לאותו שחקן איום

קווי דמיון נוספים בין WinorDLL64 ל-GhostSecret פְּגִיעָה
חפיפת קוד בקוד אחראי לקבל ארכיטקטורת מעבד נמוך
חפיפת קוד במניפולציה הנוכחית של ספריות נמוך
קוד חפיפה בקבלת רשימת התהליך נמוך
חפיפת קוד בשליחת קבצים נמוך
חפיפת התנהגות בתהליכי רישום נמוך
חפיפת התנהגות במניפולציה הנוכחית של ספריות נמוך
חפיפת התנהגות ברישום הקבצים והספריות נמוך
חפיפת התנהגות בנפחי רישום נמוך
חפיפת התנהגות בקריאה/כתיבה של קבצים נמוך
חפיפת התנהגות ביצירת תהליכים נמוך
התנהגות ניכרת חפיפה בהסרה מאובטחת של קבצים נמוך
חפיפה ניכרת של התנהגות בסיום תהליכים נמוך
חפיפה ניכרת של התנהגות באיסוף מידע מערכת נמוך

חפיפת קוד בפונקציונליות שליחת הקבצים מודגשת באיור 2 ובאיור 3.

איור 2. GhostSecret שולח קובץ

איור 3. Wslink שולח קובץ

ניתוח טכני

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

איור 4. הדמיה של התקשורת של Wslink

הדלת האחורית היא DLL עם ייצוא בודד ללא שם שמקבל פרמטר אחד - מבנה לתקשורת שכבר תואר ב עמוד הבלוג הקודם. המבנה מכיל TLS-context - שקע, מפתח, IV - והתקשרויות לשליחה וקבלה של הודעות מוצפנות עם 256 סיביות AES-CBC המאפשרות ל-WinorDLL64 להחליף נתונים בצורה מאובטחת עם המפעיל דרך חיבור שכבר נוצר.

העובדות הבאות מובילות אותנו להאמין בביטחון רב שהספרייה היא אכן חלק מ-Wslink:

  • המבנה הייחודי משמש בכל מקום באופן המצופה, למשל, הקשר TLS ופרמטרים משמעותיים אחרים מסופקים בסדר הצפוי להתקשרות הנכונות.
  • השם של ה-DLL הוא WinorDLL64.dll ושמו של וסלינק היה WinorLoaderDLL64.dll.

WinorDLL64 מקבל מספר פקודות. איור 5 מציג את הלולאה שמקבלת ומטפלת בפקודות. כל פקודה קשורה למזהה ייחודי ומקבלת תצורה המכילה פרמטרים נוספים.

איור 5. החלק העיקרי של לולאת קבלת הפקודה של הדלת האחורית

רשימת הפקודות, עם התוויות שלנו, נמצאת באיור 6.

איור 6. רשימת הפקודות

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

טבלה 2. סקירה כללית של פקודות דלת אחורית

קטגוריה מזהה פקודה פונקציונלי תיאור
חדש 0x03 בצע פקודת PowerShell WinorDLL64 מורה למתורגמן PowerShell להפעיל ללא הגבלה ולקרוא פקודות מקלט סטנדרטי. לאחר מכן, הדלת האחורית מעבירה את הפקודה שצוינה למתורגמן ושולחת את הפלט למפעיל.
0x09 דחוס והורד ספרייה WinorDLL64 חוזר רקורסיבי על ספרייה שצוינה. התוכן של כל קובץ וספרייה נדחס בנפרד ונכתב לקובץ זמני שנשלח לאחר מכן למפעיל ואז מוסר בצורה מאובטחת.
0x0D נתק הפעלה מנתקת משתמש מחובר שצוין מההפעלה של שירותי שולחן עבודה מרוחק של המשתמש. הפקודה יכולה גם לבצע פונקציונליות שונה על סמך הפרמטר.
0x0D רשימת הפעלות רוכש פרטים שונים על כל הפעלות במכשיר הנפגע ושולח אותם למפעיל. הפקודה יכולה גם לבצע פונקציונליות שונה על סמך הפרמטר.
0x0E מדידת זמן חיבור משתמש ב-API של Windows גטיקונט כדי למדוד את הזמן הנדרש כדי להתחבר למארח מוגדר.
שונים 0x01 קבל מידע על המערכת רוכש פרטים מקיפים על המערכת של הנפגע ושולח אותם למפעיל.
0x0A הסר קבצים בצורה מאובטחת מחליף קבצים שצוינו בגוש של נתונים אקראיים, משנה את השם של כל קובץ לשם אקראי ולבסוף מסיר אותם בצורה מאובטחת אחד אחד.
0x0C להרוג תהליכים מפסיק את כל התהליכים ששמותיהם תואמים דפוס שסופק ו/או עם PID ספציפי.
זקן 0x02/0x0B צור תהליך יוצר תהליך כמשתמש נוכחי או כמשתמש שצוין ובאופן אופציונלי שולח את הפלט שלו למפעיל.
0x05 הגדר/קבל ספרייה נוכחית ניסיונות להגדיר ולאחר מכן לרכוש את הנתיב של ספריית העבודה הנוכחית.
0x06 רשימת כרכים חוזר על כוננים מ-C: ל-Z: ורוכש את סוג הכונן ושם אמצעי האחסון. הפקודה יכולה גם לבצע פונקציונליות שונה על סמך הפרמטר.
0x06 רשימת קבצים בספרייה חוזר על קבצים בספרייה שצוינה ורוכש מידע כגון שמות, תכונות וכו'. הפקודה יכולה גם לבצע פונקציונליות שונה על סמך הפרמטר.
0x07 כתוב לקובץ מוריד ומוסיף את כמות הנתונים המוצהרת לקובץ שצוין.
0x08 קרא מתוך קובץ הקובץ שצוין נקרא ונשלח למפעיל.
0x0C רשום תהליכים מקבל פרטים על כל התהליכים הרצים במכשיר של הנפגע ובנוסף שולח מזהה של התהליך הנוכחי.

סיכום

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

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

ESET Research מציע דוחות מודיעין פרטיים של APT והזנות נתונים. לכל שאלה לגבי שירות זה, בקר באתר ESET Threat Intelligence עמוד.

IoCs

SHA-1 שם זיהוי ESET תיאור
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A dump זיכרון של מטען Wslink שהתגלה WinorDll64.

טכניקות MITER ATT & CK

שולחן זה נבנה באמצעות גרסה 12 של מסגרת ATT&CK. אנחנו לא מזכירים שוב טכניקות מהמעמיס, רק את המטען.

טקטיקה ID שם תיאור
פיתוח משאבים T1587.001 פיתוח יכולות: תוכנות זדוניות WinorDLL64 הוא כלי מותאם אישית.
הוצאה לפועל T1059.001 מתורגמן פקודות וסקריפטים: PowerShell WinorDLL64 יכול לבצע פקודות PowerShell שרירותיות.
T1106 ממשק API מקומי WinorDLL64 יכול לבצע תהליכים נוספים באמצעות ה CreateProcessW ו CreateProcessAsUserW ממשקי API.
התחמקות הגנה T1134.002 מניפולציה של אסימון גישה: צור תהליך עם אסימון WinorDLL64 יכול לקרוא לממשקי API WTSQueryUserToken ו CreateProcessAsUserW כדי ליצור תהליך תחת משתמש שהתחזה.
T1070.004 הסרת אינדיקטור: מחיקת קובץ WinorDLL64 יכול להסיר בצורה מאובטחת קבצים שרירותיים.
גילוי פערים T1087.001 גילוי חשבון: חשבון מקומי WinorDLL64 יכול למנות הפעלות ולפרט את שמות המשתמשים והלקוחות המשויכים, בין היתר.
T1087.002 גילוי חשבון: חשבון דומיין WinorDLL64 יכול למנות הפעלות ולפרט שמות דומיינים משויכים - בין השאר.
T1083 גילוי קבצים וספריות WinorDLL64 יכול להשיג רישומי קבצים וספריות.
T1135 גילוי שיתוף ברשת WinorDLL64 יכול לגלות כונני רשת משותפים.
T1057 תהליך גילוי WinorDLL64 יכול לאסוף מידע על תהליכים רצים.
T1012 רישום שאילתות WinorDLL64 יכול לשאול את הרישום של Windows כדי לאסוף מידע מערכת.
T1082 גילוי מידע מערכת WinorDLL64 יכול להשיג מידע כגון שם המחשב, מערכת ההפעלה וגרסת ה-service pack העדכנית ביותר, ארכיטקטורת המעבד, שם המעבד וכמות השטח בכוננים קבועים.
T1614 גילוי מיקום מערכת WinorDLL64 יכול להשיג את שם המדינה המוגדר כברירת מחדל של הקורבן באמצעות GetLocaleInfoW ה-API.
T1614.001 גילוי מיקום מערכת: גילוי שפת מערכת WinorDLL64 יכול להשיג את שפת ברירת המחדל של הקורבן באמצעות ה GetLocaleInfoW ה-API.
T1016 גילוי תצורת רשת מערכת WinorDLL64 יכול למנות מידע על מתאם רשת.
T1049 גילוי חיבורי רשת מערכת WinorDLL64 יכול לאסוף רשימה של יציאות האזנה.
T1033 גילוי בעל מערכת/משתמש WinorDLL64 יכול למנות הפעלות ולפרט את שמות המשתמשים, הדומיינים והלקוחות המשויכים - בין השאר.
אוספים T1560.002 ארכיון נתונים שנאספו: ארכיון באמצעות ספריה WinorDLL64 יכול לדחוס ולחלץ ספריות באמצעות ה quicklz סִפְרִיָה.
T1005 נתונים מהמערכת המקומית WinorDLL64 יכול לאסוף נתונים על המכשיר של הקורבן.
פְּגִיעָה T1531 הסרת גישה לחשבון WinorDLL64 יכול לנתק משתמש מחובר מהפעלות שצוינו.

בול זמן:

עוד מ אנחנו חיים אבטחה