PracticU

עקיפה של זיכוי ROOT בעזרת GUI FRIDA

בלי כתוביותעם כתוביות
PracticU › קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting › עקיפה של זיכוי ROOT בעזרת GUI FRIDA
מילון מושגים:
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.
GUI - ממשק משתמש גרפי: ממשק מבוסס חלונות, אייקונים וכפתורים, בניגוד לשורת פקודה טקסטואלית.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
הוק - נקודת חיבור שמאפשרת להריץ קוד מותאם בשלב מסוים של תהליך. ב-React, מנגנון לניהול מצב ויכולות ברכיבים.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
ASCII - תקן לקידוד תווים שמייצג אותיות, ספרות וסימנים כמספרים, ומשמש בסיס לייצוג טקסט במחשב.

עקיפה של זיהוי ROOT בעזרת GUI FRIDA
בשיעור זה אנו מתחברים מחדש לממשק הגרפי של FRIDA, מריצים את סקריפט עקיפת היציאה כדי לעקוף את זיהוי ה-ROOT, ומתחילים לחקור את התוכנה בעזרת הוק של כל הפונקציות. אנו לומדים לסנן קלאסים, לזהות פונקציות Native, ולהשתמש ב-Call Trace כדי לראות מי קורא למי ומה מועבר בין הפונקציות, עד להגעה למסקנה שהסוד חבוי בפונקציה שרצה בספרייה חיצונית.
נושאי הסיכום המוצגים בשיעור:
1. רקע מההרצאה הקודמת: התקנו בטלפון את FRIDA Loader שמריץ את שרת FRIDA בתוך המכשיר, ובווינדוס התקנו את הממשק הגרפי ששולח לו פקודות.
2. הבעיה שהייתה לנו: התוכנה המקורית נסגרה אחרי לחיצה על OK כשזוהה ROOT, ועקפנו אותה בעזרת סקריפת FRIDA מוכן.
3. Spawn והפעלת הסקריפט: בחרנו אנדרואיד, בחרנו את התוכנה להרצה, יצרנו אותה מאפס בעזרת Spawn, וטענו לפני ההרצה את סקריפט עקיפת ה-Exit.
4. סקריפט עקיפת System Exit: הסקריפט כותב מימוש חדש לפונקציית היציאה של ספריית המערכת, כך שבמקום לסגור את התוכנה היא רק שולחת הודעה למסך.
5. הפעלה ובדיקה: לאחר ההרצה מופיעה הודעת Root Detected אבל הלחיצה על OK כבר לא סוגרת את התוכנה, והפלט מוצג בקונסולה של הממשק הגרפי.
6. טעינת כל הקלאסים: בשלב הראשון של החקירה טוענים רשימה של כל הקלאסים שיושבים בזיכרון של התהליך, כולל מחלקות עזר רבות, ובתוך כל קלאס יש פונקציות.
7. סינון הקלאסים: אי אפשר לעבוד עם כל הקלאסים, לכן מסננים רק את הקלאסים של התוכנה עצמה שנמצאים בסוף הרשימה, לפי מילת מפתח, או בוחרים אחד אחד.
8. הצגת הפונקציות: בכרטיסיית Methods מוצגות כל הפונקציות שבתוך הקלאסים שנבחרו, כולל סימון Native לפונקציות שיוצאות מג'אווה לספרייה חיצונית.
9. משמעות Native: פונקציה Native היא פונקציה שממומשת בקובץ ספרייה חיצוני ולא בתוך קוד הג'אווה, ומשם מגיעה התשובה.
10. Hook All Methods: מבצעים הוק לכל הפונקציות שנבחרו, נכנסים קלט ולוחצים על כפתור האימות, ורואים בפלט שההוק נכנס לפעולה.
11. Call Trace ומעקב אחר קריאות: בחלון ההיסטוריה רואים אינדקס, מי קרא למי ואילו פרמטרים הועברו, וכך מזהים שפונקציית האימות קראה לפונקציה שהעבירה את הקלט בקודי ASCII הלאה.
12. הגעה לגבול הג'אווה: המעקב נעצר בפונקציה ה-Native, כי משם והלאה הביצוע יוצא מעולם הג'אווה לספרייה החיצונית, ושם חבוי הסוד שיש לחקור.
13. הקדמה ל-Ghidra: את הפונקציה שבספרייה החיצונית חקרנו בעבר בעזרת IDA, והפעם נכיר את המתחרה הרציני Ghidra, אחת משתי התוכנות העיקריות בשוק, שבעזרתה נחקור את הפונקציה ואת הספרייה שנטענה.
14. סיכום ביניים: למדנו לעקוף את זיהוי ה-ROOT, לסנן קלאסים ולהוק את הפונקציות שלהן, ולעקוב אחר שרשרת הקריאות עד לספרייה החיצונית שבה נמשך החקירה.
בשיעור הבא נעסוק בנושא התקנת Ghidra ותוסף JNI.
בסוף השיעור התנסינו בעקיפת זיהוי ה-ROOT בעזרת הממשק הגרפי של FRIDA, ובשימוש במעקב קריאות כדי לאתר את הפונקציה שמסתירה את הלוגיקה בתוך הספרייה החיצונית.
SR12600HE

פרקי ההרצאה: עקיפה של זיכוי ROOT בעזרת GUI FRIDA

  1. 00:00

    חזרה על ההתקנה

  2. 00:54

    סקריפט עקיפת היציאה

  3. 02:05

    טעינת רשימת המחלקות

  4. 03:00

    סינון המחלקות הרלוונטיות

  5. 03:39

    סקירת הפונקציות במחלקות

  6. 04:17

    הוקים על כל הפונקציות

תמלול ההרצאה: עקיפה של זיכוי ROOT בעזרת GUI FRIDA

הטקסט המלא של הדקות הראשונות בהרצאה «עקיפה של זיכוי ROOT בעזרת GUI FRIDA» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:27

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

  3. 00:45

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

  4. 01:03

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

  5. 01:17

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

  6. 01:34

    אז כל מה שכתבתי שם ב-send נשלח כאן למסך, הוא למעשה מעריץ את הפקודות במקומי בתוך ה-CMD. אתם רואים הרמס? ככה הוא מעריץ אותם כאן במסך הזה, נראה את כל ה-output.

  7. 01:47

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

  8. 02:02

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

  9. 02:17

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

  10. 02:30

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

  11. 02:41

    איפה הם? הנה, פה למטה. הם האחרונים. אז אני אומר לו, מעניינים אותי רק קלאסים שמתחילים במילה כזאת.

  12. 02:49

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

  13. 03:00

    רגע, לא עוד קלאסס. פילטר בתוך הפילטר אני כאן במקום כל אלו שפה אני שם רק את השם הזה ואז אני יכול לשים v ליד מה שמעניין אותי אם אני רוצה את כולם ואין לי כוח לשים v אז למעלה כאן למעלה יש hook all classes that starts with לקחת את כל הקלאסים שמתחילים במילה מסוימת אז או שאני לוקח פה את כולם זאת מילת המפתח או שאני בוחר

  14. 03:29

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

  15. 03:57

    פונקציות שימו לב יש native native זה אומר שזה הולך לתוך dll חיצוני לתוך קובץ s o חיצוני לספרייה חיצונית משם זה מגיע זה לא בתוך ג'אווה זה בספרייה חיצונית זה נקרא native אוקיי אז אנחנו הטענו לזיכרון את הרשימה של כל הפונקציות שמעניינות אותנו מתוך הקלאסים עכשיו הוא שואל

  16. 04:19

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

לקורס המלא: קורס האקינג לאנדרואיד אונליין

ההרצאה הקודמת: התקנת ממשק גרפי ל-GUI FRIDA

ההרצאה הבאה: התקנת Ghidra ותוסף JNI

הרצאות קשורות מקורסים אחרים

  • עקיפה של AMSI
  • בדיקות של GUI
  • מבוא ל-GUI ב-JMeter
  • שורש הבעיה - Root Cause

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP