PracticU

חתימה דיגיטלית על קובץ APK עם jarSigner

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

חתימה דיגיטלית על קובץ APK עם jarSigner
בשיעור זה נחתום דיגיטלית על קובץ ה APK החדש שבנינו בשיעור הקודם, שבו ערכנו את קוד ה smali וסגרנו את הקובץ מחדש. ההתקנה שלו נכשלה בגלל היעדר תעודה דיגיטלית, ולכן נייצר תעודה ונחתום בעזרת שני הכלים keytool ו jarsigner, שאותם נקבל יחד עם התקנת Android Studio.
נושאי הסיכום המוצגים בשיעור:
1. המצב שבו אנחנו: בשיעור הקודם פתחנו קובץ APK, שינינו את קוד המקור שלו שעבדנו עליו בשפת smali, וסגרנו אותו מחדש. פקודת ההתקנה שלו מחזירה שוב ושוב הודעת שגיאה שאי אפשר להתקין את הקובץ מפני שחסרה תעודה, ולכן צריך לייצר תעודה דיגיטלית ולחתום עליו.
2. שני הכלים הדרושים: לייצור תעודה דיגיטלית משמש הכלי keytool, ואת החתימה עצמה מבצע jarsigner. במקום להתקין כל כלי בנפרד, מורידים את Android Studio, סביבת הפיתוח של אפליקציות אנדרואיד, שהיא חינמית, גדולה וחזקה, ושבתוכה נמצאים הכלים האלה.
3. מהי Android Studio: זוהי סביבת פיתוח, כמו עורך טקסט משוכלל בשילוב דבאגר ומהדר, שבה מתכנתים כיום אפליקציות אנדרואיד. היא יודעת להריץ קוד שורה שורה, לבדוק מה קורה בזיכרון המכשיר תוך כדי הביצוע, לזהות פקודות שגויות וגם לייצר מכשירים וירטואליים משלה. בשיעור זה לא נעבוד עם הסביבה עצמה, אנחנו זקוקים רק לקובץ ה keytool שלה ול jarsigner שלה, ואפילו לא נפעיל אותה לאחר ההתקנה.
4. איפה הכלים יושבים: אחרי ההתקנה נוצרה תיקיית Android שבתוכה סביבת ה Java Runtime, ובה קובץ keytool.exe. שווה לדעת שגם Burp וגם JADX שהותקנו קודם הביאו איתם keytool משלהם, ולא משנה באיזה מהם נשתמש, העיקר שיהיה לנו קובץ keytool.exe. כאן נשתמש לדוגמה בזה של JADX, ואותו היה אפשר לקבל גם משם בלי להתקין סביבה שלמה.
5. ייצור המפתח: מריצים את keytool עם הפקודה של יצירת מפתח, עם ההגדרות של שם קובץ מחזיק המפתחות, שם הכינוי של המפתח, אלגוריתם RSA, אורך המפתח ותקופת התוקף שלו. הכלי מבקש סיסמה למחזיק המפתחות ואז פרטי זיהוי, שם ושם חברה, שהמידע הזה ייכתב על התעודה, מאשרים את הפרטים ונוצר קובץ מחזיק המפתחות בתיקייה הנוכחית.
6. ארגון הקבצים: את קובץ מחזיק המפתחות מעבירים אל תיקיית העבודה שלנו. בתוך תיקיית ה patch יושבת תיקיית ההפצה שבה נמצא ה APK החדש, מוציאים אותו אל שורש תיקיית ה patch, ואת התיקייה הפתוחה של הפרויקט מוחקים, כי סיימנו לערוך ולקחת ממנה את ה APK.
7. אימות ה APK החדש: לפני החתימה פותחים את קובץ ה APK החדש ב JADX ומאמתים שהשינויים שלנו בפנים, כל ההחזרות של פונקציות בדיקת השורש מחזירות שקר, בדיוק כפי שערכנו.
8. איתור jarsigner: את קובץ ה jarsigner מאתרים בעזרת פקודת dir עם חיפוש בכל תתי התיקיות מהתיקייה הראשית, שתראה רק קובץ בשם המבוקש, וכך מתקבל הנתיב המלא של הכלי.
9. החתימה עצמה: מריצים את jarsigner עם הפרמטרים של קובץ מחזיק המפתחות, שם הכינוי של המפתח שבתוכו, שכן בתוך מחזיק אחד עשויים להיות כמה מפתחות, ואת שם קובץ ה APK שיש לחתום עליו. הכלי מבקש שוב את סיסמת מחזיק המפתחות, מודיע שהתעודה חתומה על ידי עצמה, ומסיים. לא יראה שום שינוי ויזואלי בקובץ, הוא נשאר אותו קובץ, אך כעת הוא חתום דיגיטלית, ואת קובץ ה APK הלא חתום אפשר להשליך לפח.
10. ההתקנה שעובדת: מוודאים שהטלפון מחובר בעזרת adb devices, ואם קיימת גרסה קודמת של האפליקציה מסירים אותה קודם. מריצים את adb install על הקובץ החתום, וההתקנה מצליחה. האפליקציה עובדת על הטלפון הפרוץ בלי שום פרידה ובלי זיהוי שורש. בדרך מודגמת גם הסרה דרך שורת הפקודה, adb uninstall עם מזהה החבילה, ואז התקנה מחדש.
11. הסיכום: ייצור תעודה וחתימה הם למעשה שתי פקודות בלבד, אחת מייצרת מפתח והשנייה חותמת, ואת Android Studio הורדנו רק כדי לקבל את הכלים מבלי להסתבך עם הורדות בנפרד. בשיעור הבא נעסוק בנושא דיבאג של קובץ APK בתוך Android Studio ללא קוד מקור.
בשיעור זה הותקנה Android Studio כדי לקבל את הכלים keytool ו jarsigner, יוצר קובץ מחזיק מפתחות עם תעודה דיגיטלית משלנו, אימתנו את תוכן ה APK החדש ב JADX, חתמנו עליו בעזרת jarsigner והתקנתו בעזרת adb install עברה בהצלחה, והאפליקציה המתוקנת פועלת על הטלפון הפרוץ בלי פרידה. בשיעור הבא נעסוק בנושא דיבאג של קובץ APK בתוך Android Studio ללא קוד מקור.
SR12593HE

פרקי ההרצאה: חתימה דיגיטלית על קובץ APK עם jarSigner

  1. 00:00

    הצורך בחתימת ה-APK

  2. 00:41

    ייצור תעודה עם Keytool

  3. 01:16

    הורדת Android Studio

  4. 01:52

    היכרות עם סביבת הפיתוח

  5. 02:27

    איתור Keytool במחשב

  6. 03:03

    יצירת מחזיק המפתחות

תמלול ההרצאה: חתימה דיגיטלית על קובץ APK עם jarSigner

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

  1. 00:02

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

  2. 00:30

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

  3. 00:43

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

  4. 01:03

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

  5. 01:21

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

  6. 01:38

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

  7. 01:52

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

  8. 02:15

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

  9. 02:30

    סטארט שלא יתחיל מבחינתי, ואני רואה שיש לי פה תיקיית אנדרואיד. או, יש לנו גם GRE שיש לו גם KeyTool, גם Borp הביא לנו KeyTool אקזה, וגם Jadax הגיע איתו.

  10. 02:45

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

  11. 02:58

    בסופו של דבר אנחנו צריכים שיהיה לנו פה KeyTool.exe. כן, יש את הקובץ, נהדר. איזה פקודה מריצים קיטול אקזייט ג'נרט קי מינוס וי מינוס קיסטור השם של המחזיק מפתחות אליאס איזה אלגוריתם rsa מה אורך המפתח לכמה זמן הוא יהיה בתוקף בקיצור מייצר לנו מפתח בוא נראה מה הסיסמה הוא רוצה סיסמה למחזיק מפתחות

  12. 03:26

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

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

ההרצאה הקודמת: איך לפרוץ ולשנות קובץ APK עם apktool

ההרצאה הבאה: דיבאג של קובץ APK בתוך Android Studio ללא קוד מקור

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

  • איך פועלת חתימה דיגיטלית?
  • חתימה דיגיטלית - DTR - Image Sign
  • שינוי חתימה של Payload
  • Generate Signed APK

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

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