PracticU

התקנה של Frida

בלי כתוביותעם כתוביות
PracticU › קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting › התקנה של Frida
מילון מושגים:
מעטפת - תוכנה שמפרשת פקודות של המשתמש ומעבירה אותן למערכת ההפעלה, למשל Bash או PowerShell.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
SSL - פרוטוקול להצפנת תקשורת ברשת ולאימות זהות השרת. קודמו של TLS, והשם עדיין נפוץ בשימוש.
תעודה דיגיטלית - מסמך מוצפן שמאשר את זהותו של אתר או שרת וקושר אותו למפתח ציבורי, ומונפק על ידי רשות אישורים.
HTTPS - הגרסה המאובטחת של HTTP, שמצפינה את התקשורת בין הדפדפן לשרת בעזרת TLS ומאמתת את זהות האתר.
GitHub - שירות ענן לאחסון מאגרי קוד מבוססי Git, המאפשר שיתוף פעולה, מעקב גרסאות וניהול פרויקטים.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
USB - תקן חיבור אוניברסלי לחיבור התקנים למחשב, כמו זיכרון נייד, מקלדת או מדפסת.

התקנה של Frida
בשיעור זה נתקין את הכלי Frida, שמאפשר להתערב בקוד שרץ בזיכרון המכשיר בזמן ריצה ולשנות אותו, כמו להדביק פלסטר על התוכנה בזמן שהיא עובדת. נשתמש בו בהמשך כדי לעקוף הגנות שהמתכנתים הטמינו, ובינתיים נעבור את תהליך ההתקנה המלא בשני הצדדים, במחשב ובתוך הטלפון.
נושאי הסיכום המוצגים בשיעור:
1. נקודת הפתיחה: בשיעור הקודם נכנסנו בעזרת adb shell אל שורת הפקודה שבתוך הטלפון, הרצנו את מנהל החלונות והפעלנו בתוך אפליקציית InsecureBank v2 את מסך שאחרי ההתחברות ישירות, וכך עקפנו את מסך ההתחברות, כי המתכנת הצהיר בקובץ המניפסט שאפשר לגשת לחלון הזה מבחוץ.
2. מה נעקוף עם Frida: המטרה הבאה היא להתגבר על זיהוי מכשיר פרוץ שורש, Rooted Device. Frida משנה תוכנה שרצה בזיכרון המכשיר תוך כדי הריצה שלה, ובעזרתו אפשר לעקוף גם הגבלות אחרות, למשל הגבלת SSL שבה התוכנה דורשת תעודה דיגיטלית של חברה מסוימת ובודקת שהשרת הוא השרת הנכון, או את זיהוי השורש עצמו, שבגללו אפליקציות רבות מסרבות לפעול על מכשיר פרוץ.
3. העיקרון הכללי: כשמישהו בונה הגנה בתוך תוכנה, מאתרים את הקוד שלה ועוקפים אותו בזמן הריצה, וכך עושים עקיפה לכל ההגנות הקיימות.
4. התקנת פייתון: Frida כתובה כולה בפייתון, ולכן דרוש פייתון במחשב. הדרך הפשוטה ביותר להתקין אותו היא חנות האפליקציות של מיקרוסופט, בדומה לחנות של הטלפונים, שבה פייתון 3 זמין בחינם. בוחרים פייתון 3 ומתקינים, בלי צורך להירשם לחשבון ובלי התקנה על מכשירים אחרים. שימו לב שפייתון 2 ופייתון 3 שני עולמות שונים לחלוטין, פייתון 2 כבר אינו נתמך, ובתוך פייתון 3 ההבדלים בין גרסאות הם שדרוגים קטנים בלבד. פקודת הגרסה מאשרת שפייתון 3.9 מותקן.
5. התקנת pip: pip הוא מנהל החבילות של פייתון, חנות האפליקציות שלו, שמתקין ספריות אוטומטית בדיוק כפי שמתקינים אפליקציות בטלפון. את קובץ ההתקנה שלו מורידים מהאתר הרשמי בעזרת Save As מהדפדפן, או ישירות בשורת פקודה בעזרת curl, שעובד גם בווינדוס ומוריד את הקובץ מכתובת HTTPS. מריצים את ההתקנה משורת פקודה שהופעלה כמנהל, כי איננו בטוחים אילו הרשאות ידרשו, ואז פקודת העזרה של pip מאשרת שהוא פועל.
6. התקנת Frida Tools: בעזרת pip מתקינים את ערכת הכלים של Frida בפקודת התקנה אחת, במקום התקנה ידנית מורכבת מה GitHub. שרשרת התלות פשוטה, כדי ש pip יעבוד דרוש pip, וכדי ש pip יעבוד דרוש פייתון.
7. מהי Frida לפי התיעוד: באתר התיעוד שלה היא מוגדרת ערכת כלים לקוד דינמי, Dynamic Instrumentation Toolkit, כלומר עבודה על קוד שרץ בזיכרון המכשיר ומשתנה תוך כדי העבודה. היא יודעת לשחק גם עם קוד שמוזרק אליה, ואת הסקריפפים כותבים בשפת JavaScript, שפת הדפדפן, שהיא השפה שהכלי מבין. היא פועלת על אנדרואיד, על iPhone, על Windows ועל Mac, כלומר לא רק על תוכנות של טלפונים אלא גם על תוכנות שרצות במחשב רגיל.
8. הצד השני שנשכח: חלק חשוב בתיעוד שקל לשכוח, פרידה חייבת לרוץ גם בתוך הטלפון עצמו. מורידים את קובץ השרת שלה, מעתיקים אותו אל הטלפון ומריצים אותו שם, בנוסף לכלי שהותקן במחשב.
9. הורדת קובץ השרת: בעמוד ה GitHub של הפרויקט נכנסים אל עמוד ה Releases, שם יושבות הגרסאות שכבר הודרו לשפת מכונה ולא קוד המקור, לוקחים את הגרסה האחרונה, ובתוך ה Assets שלה מחפשים את קובץ פרידה השרת המתאים. קיימים שם קבצים לכל הפלטפורמות, וחשוב לבחור את זה שתואם לברזל שלנו.
10. איך יודעים איזו פלטפורמה: טלפונים אמיתיים הם לרוב ARM, והמכונה הווירטואלית שלנו היא x86. מוודאים זאת בעזרת adb shell עם getprop, שמציג את כל המאפיינים של המכשיר, ומסננים את הפלט עם findstr, המקבילה של grep בווינדוס, אל עבר השורה של רשימת הארכיטקטורות, ושם נראה בבירור x86. אפשר גם להריץ את הפקודה ישירות דרך adb shell בלי להיכנס פנימה, הפקודה רצה ומיד יוצאת.
11. חילוץ והכנת הקובץ: לאחר ההורדה לא לשכוח לחלץ, כי הקובץ מגיע מכווץ. מתקינים את תוכנת 7 Zip בגרסת ה MSI ה 64 ביטית, התקנה אוטומטית של ווינדוס, ומחלצים את קובץ השרת אל תיקייה. את שם התיקייה מקצרים כדי שיהיה נוח להקליד, ופותחים בה שורת פקודה דרך שורת הכתובת של הסייר.
12. העברת הקובץ אל הטלפון: בעזרת adb push דוחפים את קובץ השרת אל תיקיית ה temp של הטלפון, כי אליה תמיד יש הרשאת כתיבה ואין בעיית הרשאות.
13. הרשאת ההרצה בטלפון: בתוך המכשיר, בתיקיית ה temp, לקובץ יש קריאה וכתיבה אך אין הרשאת הרצה, כי בהעתקה ברירת המחדל אינה מעניקה אותה. מוסיפים אותה בעזרת chmod עם x ואז מריצים את קובץ השרת, ומרגע זה צד השרת של Frida רץ בתוך הטלפון. שורת הפקודה שהריצה אותו אסור לסגור, כי השרת חייב להמשיך לרוץ.
14. בדיקת התקשורת: במחשב פותחים שורת פקודה חדשה ומריצים frida ps עם המתג של חיבור USB, ומתקבלת רשימת התהליכים שרצים בתוך הטלפון, כשהופעת השם של תהליך הזיגוטה מעידה שמדובר בתוך אנדרואיד. הריצה הראשונה נכשלה מפני שהקובץ לא נמצא, ומתברר שקובצי ה exe של פרידה יושבים בתיקיית ה Scripts שבתוך תיקיית הפייתון שהותקנה.
15. הכלים שבתיקיית ה Scripts: שם נמצאים בין השאר frida עצמו, frida ps, pip וכלי העזר. פותחים שורת פקודה בתוך התיקייה הזאת, מריצים שוב את רשימת התהליכים מול המכשיר המחובר ב USB והכול עובד.
16. עוד שתי אפשרויות שימושיות: הפקודה עם המתג שמציג אפליקציות רצות מראה את האפליקציות שרצות בטלפון ברגע זה, והפקודה עם המתג השני מציגה את כל האפליקציות, גם אלה שמותקנות ולא רצות, שם רואים את InsecureBank מותקנת בלי מזהה תהליך. לבסוף מוסיפים גם את תיקיית ה Scripts אל ה PATH של משתני הסביבה, כדי שכלי פרידה יעבדו מכל מקום, ופותחים שורת פקודה חדשה שתכיר את השינוי.
בשיעור זה הותקנו פייתון ו pip במחשב, דרכם הותקנה ערכת הכלים של Frida, הורד קובץ השרת המתאים לפלטפורמה של המכשיר אחרי בדיקת הארכיטקטורה בעזרת getprop, הוא הועבר אל הטלפון בעזרת adb push, קיבל הרשאת הרצה והופעל, והתקשורת בין הכלי במחשב לבין השרת שבתוך הטלפון נבדקה בהצלחה עם רשימות התהליכים והאפליקציות. בשיעור הבא נעסוק בנושא כתיבת סקריפט Frida עבור UnCrackable.
SR12580HE

פרקי ההרצאה: התקנה של Frida

  1. 00:00

    חזרה על עקיפת הלוגין

  2. 00:43

    הכרת הכלי Frida

  3. 01:18

    עקיפת בדיקות SSL ו-Root

  4. 02:13

    עקרון העקיפה בזמן ריצה

  5. 03:06

    התקנת Python מהחנות

  6. 03:41

    הכרת כלי ה-Pip

תמלול ההרצאה: התקנה של Frida

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

  1. 00:02

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

  2. 00:21

    ה-ADB חיבר אותנו לתוך הטלפון והרצנו של ובתוך הטלפון הרצנו אקטיביטי מנג'ר ואמרנו לו לעשות סטארט להפעיל בתוך אפליקציה מסוימת אינסיקיור בנק v2 את המסך של פוסט לוגין וכך עקפנו את החלון של הלוגין פשוט ישר נכנסנו לחלון של פוסט לוגין למה זה אפשרי כי המתכנת כתב שאפשר לגשת לחלון הזה ישירות

  3. 00:51

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

  4. 01:14

    של הדווייס, ואת זה אפשר לעשות בעזרת פרידאן. אנחנו נשתמש בדבר הזה לדוגמה כדי לעקוף הגבלות שונות כמו הגבלת SSL.

  5. 01:25

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

  6. 01:37

    אנחנו יכולים לעקוף את הבדיקה של Root Detection, שהמכשיר פרוץ, Rooted Device, שיש לנו בעצם רוט על האדמיניסטרטור בתוך המכשיר שאנחנו יכולים להיכנס פנימה, שהוא פרוץ לנו.

  7. 01:50

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

  8. 02:13

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

  9. 02:29

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

  10. 02:44

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

  11. 02:55

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

  12. 03:19

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

  13. 03:29

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

  14. 03:39

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

  15. 03:48

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

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

ההרצאה הקודמת: הסבר על JADX

ההרצאה הבאה: כתיבת סקריפט Frida עבור UnCrackable

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

  • התקנה
  • התקנה של DC
  • התקנה של GIT
  • התקנה של JMeter

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

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