Home אבטחת מידעPenetration Testing - Defense הסבר על Reverse Engineering וביצוע חקירה על Wannacry 2.0

הסבר על Reverse Engineering וביצוע חקירה על Wannacry 2.0

by Tal Ben Shushan 26/05/2018 0 comment
הסבר על Reverse Engineering וביצוע חקירה על Wannacry 2.0

הסבר על Reverse Engineering וביצוע על Wannacry 2.0

**אזהרה – במאמר זה מופעל WannaCry 2.0 – אין אני לוקח אחריות על כל תוצאה שמבוצעת דרך מדריך זה – קראו את כל המאמר כולו על מנת להבין את הסיכון **


כדאי לקרוא את המאמר:

הסבר על סוגי מתקפות בעולם הסייבר


במאמר זה אני אסביר על Reverse Engineering, ונבצע אותו על על Wannacry 2.0 ובכך להבין כיצד הוא עובד, לאיפה הוא פונה, מה המנגנון מאחורי ה Ransomware ומה הפך אותו לכזה מפורסם.

Reverse Engineering

על מנת לבצע  Reverse Engineering לרוגלה, ווירוס, תוכנת כופר וכו’ עלינו ליצור תחילה – סביבה

הדוגמאות יהיו על Ransomware .

על הסביבה להיות:

  • מאובטחת – סביבת VM, הנמצאת ברשת נפרדת ומכונה פיזית שלמה בה ניתן לקחת סיכון זה
  • Static Analyze  – בדיקת הווירוס \ כופר עוד לפני הפעלתו, כיצד מתפשט, צורת ההפעלה שלו, הHash שלו והשוני בין גרסאותיו
  • Dynamic Analyze – הפעלת הווירוס \ כופר באותה סביבה מבוקרת ובדיקתה, לאיפה הכופר פונה? מה הוא מנסה לעשות? מה הכתובות שהוא מנסה לפנות? האם הוא מפעיל Exploits על מנת להרחיב את עצמו וכו’
  • שליטה מלאה תחילה – תחילה הפעילו את תוכנת הכופר \ ווירוס בסביבה ללא אינטרנט ומותקנת ברוב הפעמים על מערכת כמו לינוקס, כך שאם הווירוס יודע לזלוג יהיה לו קשה לבצע את זה בין סביבות שונות

ל Reverse Engineering, ארבע סביבות בדיקה ואבחון

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

בעיות ברצה ובדיקת Malware

  • ה Malware מודע לסביבה ואז אינו פועל בסביבת VM (לרוב לא מדויק, כיוון שרוב השרתים בעולם הם בסביבת VM)
  • הוא מודע לזה שהוא בסביבת ניסוי ולא רץ
  • לא ידוע כלל וכלל מה הוא עושה ולכן מסוכן להריצו גם בסביבת ניסוי שלא “סגורה” עד הסוף

SandBox

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

כעת נשתמש ב hybrid-analysis

נכנס לאתר

https://www.hybrid-analysis.com

נעלה אליו את WannaCry

כעת נתחקר את הקובץ, נבחין

  • 100/100 זדוני
  • נקבל את ה SHA256 של הקובץ
  • נבין שכבר ב15/03/2018 משתמש אחר העלה את הקובץ ובוצע עליו SandBox מלא

נקבל חיווי שרוב האנטי ווירוסים מודיעים שזה ווירוס

כעת נפתח את החלון האמצעי בו בוצע ה Sandbox ומה שבאמת מעניין אותנו מבחינת בדיקת הקובץ

  • הבדיקה בוצעה על Windows 7 64Bit Service Pack 1
  • קיבלנו חיווי שהקובץ הוא Ransomware

נרד קצת למטה ונבחין

  • 55/63 מנועי אנטי ווירוס סימנו אותו כזדוני
  • בריבוע למטה נבחין שהוא הריץ שרות בשם taskdl.exe ושירות נוסף בשם @wannaDecryptor@.exe (יש עוד שירותים אך אלו הם שירותי ה WannaCry

גם בחלון הזה נקבל חיווי נוסף על מאפייני השירותים שWannaCry רץ

בחלון זה נקבל מידע כללי על הקובץ וסוג ה Packer שעטף את התוכנה (נדבר על Packers בהמשך המאמר)

בהמשך נקבל מידע נוסף על חלקי התוכנה ותמונות של הפעלת ה Wannacry ונבין כי זה בטוח “תוכנת כופר”

בהמשך נבחין בכל השירותים שהוא מריץ

כתובות IP שהוא פונה אליו

לסיכום, hybrid-analysis הוא כלי מצוין להרצת קובץ שאולי הוא זדוני ולבדוק כיצד הוא פועל והאם הוא ווירוס מכל סוג שהוא או לא

Packers

הם כלים שעוטפים את התוכנה, בצורה זו לא ניתן יהיה בקלות לבצע Reverse Engineering.

Reverse Engineering הוא לא תחום באבטחת מידע אלא נכלל בתוכו שכן זה תחום בו רוצה חברה א’ להבין כיצד התוכנה של חברת ב’ עובד ובכך לחקות \ להעתיק את התוכנה.

השיטות הן:

  • כיווץ התוכנה והכנס שינויים שיוצרים בעיה בביצוע  Reverse Engineering
  • הצפנת התוכנה
תוכנה בה ניתן להצפין את התוכנה
https://github.com/peterwankman/cryptpe
על ידי כלי זה יהיה בלתי אפשרי לדעת בחלקים מהקוד ובכך למנוע Reverse Engineering בצורה גבוהה
חברת Oreans (לא חינמי) מאפשרת על ידי הכלי שלה למנוע ככל הניתן Reverse Engineering
https://www.oreans.com/
כלי חינמי לביצוע Packer
https://upx.github.io/

בדיקה ידנית למחשב

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

אך לא זה המקרה, תארו לכם שהצליחו לחדור למחשב שלכם והתקינו בו FileZilla Server, פתחו פורט בראוטר \ פיירוואל והתוקף אפילו לא “פרץ” מרחוק אלא ביצע את זה על המחשב עצמו פיזית (ארגון, עמדה לא מאובטחת וכו’)

מבחינת האנטי ווירוס FileZilla אינו ווירוס ולכן לא ימצא כלום, אך התוקף קיבל גישת FTP מלאה לכונן C ובכך יכול להמשיך לגנוב קבצים מהמחשב שלכם.
צורת חשיבה זו יכול להיות על שיתוף קבצים, תוכנת השתלטות מרחוק מוכרת, RDP וכו’
על מנת לבדוק נתחיל תחילה מNmap המפורסם

נוכל לבדוק על ידי הפקודות

namp -sS -sV 192.168.1.10

או על ידי הפקודה

nmap -sT -sU 192.168.1.10

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

נוכל להשתמש ב netstat

netstat -an

שירות

  • Listening – השירות מאזין לשירות
    למשל ניתן להבחין בתמונה שהמחשב מאזין לפורט 445 (שיתוף קבצים) והכתובת 0.0.0.0 זה שהתקשורת יכולה להגיע מכל כתובת
    הוא גם מאזין בפורט 135 ועוד
  • Established – המחשב שלכם יוצר קשר עם השרת \ מחשב למשל כאן נכנסתי לאתר Ynet ובעצם כל הכתובות כאן קשורות לאתר או לקישורים בתוך האתר
    ניתן להבחין בפורט 443 שיוצא לכתובות (אתר Https) והפורטים החוזרים הם רנדומליים (בגלל PAT \ NAT קראו על זה במאמר אחר באתר)

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

netstat -aob

נבחין בתמונה על הפורטים שהוא ניגש והתוכנה לדוגמא, פרוטוקול 443 https והוא ניגש על ידי Chrome

כך נוכל להבחין בתוכנה לא ידועה ולחקור האם היא צריכה לצאת \ להיכנס בפורט (כן קצת צריך ידע נרחב בפורטים וסוגי התוכנות)

שימוש ב sysinternals ובכלי Proccess Explorer נוכל לבצע סריקה לכל הרכיבים הרצים ברקע של המחשב

נוריד תחילה את Sysinternals

https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite

נפעיל את Proccess Explorer נלחץ על Options ואז VirusTotal

בסיום הסריקה נוכל להבחין באילו שירותים חושד וכמה מנועים מצאו שהוא ווירוס

לחיצה על Show Lower Pane

נוכל לקבל יותר פרטים על הקובץ

חקירת קובץ על ידי Pestudio

נוריד תחילה את התוכנה

https://www.winitor.com/

נתקין אותה ונטען את WannaCry

נבחין בפרטי התוכנה

נבחין שהוא חשוד

סריקה ב VirusTotal מעלים שהוא ווירוס

בלשונית strings נבחין שהוא מריץ שירות בשם taskche.exe שהוא השירות שמריץ WannaCry

 IDA

IDA הוא אחד הכלים הנפוצים ביותר ב Reverse Engineering על ידי חקירת הנוזקה ומעבר על שורות הקוד

בגלל הידע הדרוש בתיכנות (רמה בינונית להערכתי) לא אסביר שורה שורה ובהמשך המאמר ב “הרצת WannaCry” נבדוק את WannaCry על ידי IDA

הרצת WannaCry ובדיקתו ידנית

**אזהרה –  מופעל WannaCry 2.0 – אין אני לוקח אחריות על כל תוצאה שמבוצעת דרך מדריך זה – קראו את כל המאמר כולו על מנת להבין את הסיכון **

** בניתוח שלי אם הורדתם את WannaCry – הבא 84c82835a5d21bbcf75a61706d8ab549, אין לו KillSwitch והוא לא מתפשט דרך Smbv1**

ניתוח קודם של WannaCry שגם נבחין בו במאמר זה:

WannaCry 2.0 Ransomware

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

ברוב המקרים אין דרך ל”שבור” את ההצפנה ולא ניתן לשחזר, בחלק מהRansomwareרים הראשונים המפתח היה בתוך הקוד ובכך הצליחו לשחזר את הקבצים המוצפני, אך השיטות החדשות בהן פונה הווירוס לשרת CNC (שרת שליטה) ורק לאחר ווידוא התשלום הוא משחרר את המפתח, קשה מאוד להשיג את המפתח ולפתוח את ההצפנה

צורת הדבקה:

  • הוא מנסה להשתמש ב EternalBlue SMBv1 (מאמר מלא כיצד לנצל חולשה זו) וברגע שהמחשב פגיע הוא מפעיל את ה Exploit ומדביק את התחנה ב WannaCry
    – הוא מנסה את רשת ה LAN בה הוא נמצא ועובר על כל ה Subnet
    – באופן רנדומלי של כתובות אינטרנט מנסה לבדוק אם פורט 445 פתוח
  • הוא מועבר בפישינג דרך מיילים, קבצים נגועים ברשת וכו’
  • הוא מופעל כשירות מנהל על מנת להישאר באופן קבוע
  • הוא יוצר ערכים ב Registry
  • הוא טוען משרתי TOR את ארנק הביטקוין ושרת המכיל את המפתח הצפנה
  • הוא סוגר את שירותי ה SQL על מנת שיוכל להצפין את מסדי הנתונים ובכך לא להיות “תפוסים” על ידי המערכת

KillSwitch

KillSwitch: מה יכול למנוע מ WannaCry לרוץ על מחשב שלא מוגן, נאמר ללא אנטי ווירוס או המשתמש הוריד את הקובץ ומנסה להפעילו

אז חוקרי אבטחת מידע מהעולם מצאו שיש KillSwitch כזה נוריד את IDA 7.0 ונפתח אותו (נטען אליו גם את WannaCry)

נטען את WannaCry – MD5  db349b97c37d22f5ea1d1841e3c89eb4

  • אני אכוון אתכם ישירות לKillSwitch על מנת לחסוך בזמן, אך הרגע שתבינו את הנושא תוכלו להמשיך ללמוד כיצד עובד Reverse Engineering על ידי IDA

נשאיר אץ הV בrename dll entries וב manual load ולחצו אישור לכל הודעה שתקפוץ

כעת קליק ימני ואז text view

כעת בלשונית search לחצו על text

נסמן רק את ה V האחרון ונחפש http

מצאנו כתובת מוזרה וארוכה נלחץ פעמיים עליה

כעת ננסה לבדוק אם היא מופיעה בעוד מקומות, נלחץ על aHttpwwwIuqerfs קליק ימני

ואז list cross refernce to

OK

בשורה זו נקבל את הכתובת

בכמה שורות מתחת נקבל הודעה שWannaCry פותח את האינטרנט ומנסה לגשת לכתובת

אני עוצר כאן על מנת שננסה להבין כמה דברים:

  • מדוע יש כתובת לא מובנת בתוך הקוד? השאלה הזו צריכה לסקרן אתכם שכן אין באמת סיבה לכתובת עם סיומת com והכתובת לא קיימת
  • הסיבה: אם היינו ממשיכים לחקור היינו מגלים את התהליך הבא:
    1. WannaCry מנסה לגשת לכתובת הזו
    2. אם הוא לא מצליח לגשת לכתובת הזו – הוא מפעיל את עצמו
    3. אם הוא מצליח לגשת לכתובת הזו – הוא חושב שהוא ב SandBox וסוגר את עצמו ולא רץ
  • מההבנה הזו ניתן בהתחלה להגדיר במחשב \ בארגון כתובת כזו וכאשר משתמשים בארגון \ בבית היו מפעילים את הקובץ הוא לא היה רץ
  • יותר מכך, משתמש אחד קנה את הכתובת הזו והפעיל אותה, כך שWannaCry היה מנסה לפעול הוא ישר היה נסגר
  • אחרון חביב, בגרסאות החדשות של ה WannaCry אין את המנגנון הזה יותר.. ולכן אינו תקף

לסיום ההסבר על KillSwitch תמונה משעשעת

*התמונה והזכויות עליה שייכות ל CommitStrip

הפעלת WannaCry וחקירת דינאמית

דרישות:

Proccess Hacker – על ידי תוכנה זו נקבל את האינדיקטורים

Wireshark – על מנת לתפוס את ה Packets ולהבין לאיפה מנסה ה WannaCry לפנות

Regshot – לוקח את ה Registry הנוכחי ולאחר הפעלת הכופרה לוקח שוב את ה Registry ומשווה בינהם

Sysinternals – נחקור את WannaCry גם על ידי Sysinternals

IDA 7.0 – אחד הכלים המפורסמים לReverse Engineering

לפני הפעלת ה WnnaCry חשוב מאוד

  • הגדירו את כרטיס הרשת כ NAT – הכופרה מנסה לבצע SMBv1 Etneral Blue על מחשבים אחרים ברשת
  • בדקו שהמחשבים ברשת שלכם לא חשופים ל Etneral Blue (אפשר לבדוק עם Nessus)

הCert הלאומי (ישראל) פירסם מסמך הנחיות מתוך המסמך אם יש ברשותכם pfsense ובו Snort (או רק Snort, קיים מאמר באתר) תוכלו להכניס את החוק הבא

alert tcp $HOME_NET 445 -> any any (msg:"ET EXPLOIT Possible ETERNALBLUE MS17-010 Echo
Response"; flow:from_server,established; content:"|00 00 00 31 ff|SMB|2b 00 00 00 00 98 07 c0|"; depth:16;
fast_pattern; content:"|4a 6c 4a 6d 49 68 43 6c 42 73 72 00|"; distance:0;
flowbits:isset,ETPRO.ETERNALBLUE; classtype:trojan-activity; sid:2024218; rev:2;)

נפעיל את WireShark על ידי סימון של כרטיסי הרשת והפעלתו

נפעיל את Process Hacker ואז Regshot וניקח את ה Regshot הראשון, לחצו על 1st shot

הגיע רגע האמת, נפעיל את WannaCry

WannaCry יעבור לכל הכוננים במחשב וינסה להצפין את כל הקבצים שמוגדרים לו

לאחר מכן WannaCry יציג טיימר, עד מתי יש לכם לשלם שאם לא תשלמו תוך 7 ימים לא תוכלו להחזיר את הקבצים שלכם ולאחר 3 ימים הסכום יעלה מ300 ל600 דולר

כעת נעבור ל Process Hacker ונשהה את WannaCry, סמנו את כל היישומים של WannaCry ולחצו על Suspend

כעת נעבור על איזה Registry שינה ה WannaCry לחצו על 2nd shot ב regsoht

כעת נשווה את ה Registry הישן לעומת החדש לחצו על Compare

נבחין

  • ב4 ערכים שהתווספו שכולם שייכים ל WannaCry
  • נמחקו 4 ערכים
  • התווספו 374 שינויים לתוך ערכים קיימים

בתחתית נבחין סה”כ שינויים 430

כעת נעבור ל WireShark, נבחין ב Packets מאוד מוזרים

  • נבחין שWannaCry מנסה לגשת בפורט 443, כנראה לשרתי השליטה
  • שרתי השליטה הם אלו שנותנים את ארנק ה Bitcoin
  • בהמשך נבחין שהוא מנסה לגשת בפורט 445 שכן הוא מנסה לחפש מחשבים ברשת הLAN זאת אומרת בכל השרת בה המחשב נמצא נאמר 192.168.1.0/24 על מנת לבדוק אם הם פגיעים ל EternalBlue SMBv1
  • ** אם הורדתם את 84c82835a5d21bbcf75a61706d8ab549 לא תמצאו ניסיון Exploit EternalBlue **

כעת נבדוק את התהליך ונבדוק מה הוא מנסה לעשות, נעבור ל Process Explorer

נלחץ קליק ימני על @WannaCryDecryptor@ ואז Properties

נעבור ל Memory ונלחץ על Strings

לחצו על OK

נבחין שיש תיקייה בשולחן העבודה בשם TorData, כך אנחנו מבינים שWannaCry משתמש ב Tor על מנת לתקשר עם ארנק ה Bitcoin ועם שרת ההצפנה כך הוא מקבל את המפתח משרת שליטה

למטה נמצא כתובות Onion של ה DarkWeb בTor וכנראה כתובות אלו הם שרתי השליטה

כאן נבחין בכתובת ארנק ה Bitcion וב2 השורות מתחת כנראה שרתי Bitcoin ובשורה האחרונה התקנה של Tor שמשם מתקין ה WannaCry את Tor

כעת נפתח את AutoRuns מ Sysinternals

  • נבחין שהוגדרו יישומים של WannaCry שיעלו בזמן עליית מערכת הפעלה
  • בServices נבחין שנפתח שירות חדש שעליו רץ WannaCry על מנת להישאר ולעלות גם לאחר ריסטארט

כעת נלחץ על המאפיינים של השירות Tasksvc.exe

Memory ואז Strings

נלחץ על OK

נבחין בהמון כתובות IP, נייצא אותם על מנת לקבל אינדקטורים של אילו כתובות IP פונה ה WannaCry

נפתח את האתר CyberChef ונעבור ללשונית Regular Expression שם נסמן IPv4

נעתיק את ה RegEx

נחזור לשירות ונלחץ על Filter ואז RegEx (השורה האחרונה)

נדביק את ה RegEx  ואז Ok

כעת נישאר רק עם השורות שבהן יש כתובות IP, כעת נלחץ על Save

נשמור את הקובץ

נעתיק את כל הטקסט

נדביק אותו בInput בצד שמאל ב CyberChef

נסמן ב OutPut Format את List Matches

ובצד ימין למטה נקבל את רשימת כל כתובות ה IP’s שWannaCry מנסה לגשת אליהם והם אינדיקטורים

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

מאמרים קשורים

Leave a Comment