PracticU

יצירת תעודה דיגיטלית ויצירת Payload

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › יצירת תעודה דיגיטלית ויצירת Payload
מילון מושגים:
תעודה דיגיטלית - מסמך מוצפן שמאשר את זהותו של אתר או שרת וקושר אותו למפתח ציבורי, ומונפק על ידי רשות אישורים.
בייט - יחידת מידע המורכבת משמונה ביטים, ומסוגלת לייצג תו בודד או מספר בין 0 ל-255.
אנטי וירוס - תוכנה שמזהה, חוסמת ומסירה תוכנות זדוניות מהמחשב, ומנטרת פעילות חשודה.
OpenSSL - ספרייה וכלי בקוד פתוח למימוש הצפנה, יצירת מפתחות ותעודות וניהול TLS/SSL.
RSA - אלגוריתם הצפנה אסימטרי נפוץ, המבוסס על זוג מפתחות ציבורי ופרטי, לשם הצפנה וחתימה דיגיטלית.
ביט - יחידת המידע הקטנה ביותר במחשב, שערכה 0 או 1. שמונה ביטים מרכיבים בייט.
מפתח פרטי - המפתח הסודי בהצפנה אסימטרית, שנשמר אצל בעליו בלבד ומשמש לפענוח או לחתימה דיגיטלית.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.

יצירת תעודה דיגיטלית ויצירת Payload
בשיעור זה מתחילים את מסלול ההצפנה של ה payload: מותקנת סביבת פיתוח, נוצרת תעודה דיגיטלית מותאמת, ונוצר payload חד שלבי שמטמיע את התעודה, כהכנה להצפנתו בשיעורים הבאים. הדגש הוא על ההבנה של הסיבות לכל בחירה.
נושאי הסיכום המוצגים בשיעור:
1. התקנת הסביבה במקביל: התקנת וויז'ואל סטודיו אורכת זמן רב, ולכן מפעילים אותה ובזמן ההתקנה עובדים על שאר השלבים במחשב המעבדה האחר. חשוב לבחור בוויז'ואל סטודיו המלא, סביבת הפיתוח המלאה, ולא בוויז'ואל סטודיו קוד, כלי הקל שרץ גם על לינוקס. גרסת ה Community חינמית למפתח בודד וכוללת הכול.
2. בחירת הרכיבים: מתוך רשימת הרכיבים העשירה של סביבת הפיתוח, שכוללת פיתוח לענן, לפייתון, לשרתים, לטלפונים ולמשחקים, מסמנים רק את שני הרכיבים הדרושים, פיתוח שולחן עבודה ב C Sharp ופיתוח C Plus Plus לדסקטופ. ההתקנה היא כתריסר ג'יגה בייט.
3. מדוע נדרשת תעודה דיגיטלית: ברגע החיבור של ה payload אל שרת השליטה התקשורת אינה מוצפנת עדיין, והתעודה עצמה נראית בקו. תעודה שנוצרה על ידי הכלים המובנים של קאלי היא מזויפת ומוכרת, והאנטי וירוס יודע לעלות עליה. לכן יוצרים תעודה משלנו שתעבור לפחות את הבדיקות השטחיות.
4. התעודה גם מגינה על ה payload: מטמיעים בתוך ה payload את התעודה של השרת, כך שהוא יודע מראש איזו תעודה השרת אמור להציג לו, וכך נמנעת גם חטיפת החיבור באמצע, התקפת איש האמצע, על הקשר בין ה payload לשרת השליטה.
5. יצירת התעודה בעזרת OpenSSL: יוצרים מפתח RSA פרטי בגודל 4096 ביט, תעודה בתוקף לשנה, עם פרטי הנושא שרוצים. מתקבלים שני קבצים, קובץ Key שמכיל את המפתח הפרטי הסודי, וקובץ Crt, תעודה דיגיטלית שכוללת את פרטי השרת, מי חתם עליה ואת המפתח הציבורי. מה שהמפתח הפרטי סוגר, הציבורי פותח, ולהפך, זהו זוג מפתחות משלים.
6. איחוד המפתחות לקובץ Pem: משרשרים את שני הקבצים אל קובץ אחד בשם Pem, בסדר חובה, מפתח פרטי קודם ואחריו התעודה הציבורית. את הקבצים הנפרדים מוחקים, ונותר קובץ אחד שכולל את שני המפתחות, שישמש גם את ה payload וגם את המאזין.
7. מטרת התעודה בהקשר שלנו: לא משנה שאף גוף אמין לא חתם על התעודה, היא כאן רק כדי לעבור את הבדיקה השטחית שעושים חלק מהאנטי וירוסים, שהחיבור מתבצע אל תעודה אמיתית ולא אל התעודה המוכרת של הכלים המובנים.
8. payload חד שלבי במקום דו שלבי: את ה payload מייצרים בגרסת Non Staged, שבה כל הקוד יושב במקום אחד, בלי חיבור ראשוני קטן שמוריד את ההמשך. בגרסה הדו שלבית ה payload הראשוני הוא כ 500 עד 700 בייטים בלבד, ואחרי החיבור מורידים כ 200 אלף בייטים.
9. מדוע חד שלבי בטוח יותר כאן: בגרסה הדו שלבית מטעינים DLL מוכר מהאינטרנט ישירות לזיכרון, וברגע הטעינה אפשר לחטוף סריקה, כי האנטי וירוס עוקב אחר פניות למערכת ההפעלה. בגרסה החד שלבית כל הקוד כבר יושב מוצפן אצל הלקוע מרגע ההפעלה, וכל החשיפה מתרכזת ברגע ההפעלה היחיד. החסרון, הקובץ גדול יותר.
10. פרטי ה payload: מייצרים payload x64 reverse HTTPS לכתובת ולפורט של שרת השליטה, כאשר מחוץ לרשת המעבדה יינתן הכתובת החיצונית, ומטמיעים בו את התעודה. הפלט מגיע לקובץ בשפת C Sharp בתיקיית הבית, ובגודל של כמגה בייט בגלל כל העטיפות והתיאורים שסביבו, כאשר ה payload עצמו הוא כ 200 אלף בייטים של שפת מכונה.
11. שתי דרכים ליצירה ואפשרויות מתקדמות: את ה payload אפשר ליצור במסוף הכלי עצמו, מתוך מודול מסוג payload, ואז קיימות הפקודות להצגת האפשרויות הרגילות והמתקדמות ולקביעת כל שדה בנפרד, או בפקודת ייצור אחת. בין האפשרויות המתקדמות, מזהה ייחודי ל payload כדי ששרת השליטה יקבל חיבורים רק מ payload מוכרים, ולא מכל מי שיש לו כלי דומה, וכן היכולת להתמודד אוטומטית עם הווים שהאנטי וירוס שותלים בתהליך כדי לסרוק אותו.
12. מה שהכלי יודע ומה שאנחנו לא נשתמש בו: הכלי יודע לקודד את ה payload ולארוז אותו בכל מיני פורמטים, ואף להצפין, אבל ההצפנה שלו ידועה לכולם ולכן אינה שווה. אנחנו לוקחים את הפורמט של C Sharp בלבד ואת ההצפנה נבנה לבד.
13. העברת הקבצים לסביבת הפיתוח: בתיקיית הבית מופעל שרת קבצים פשוט, ומתוך הדפדפן של ווינדוס נגישים אליו ומעתיקים את קובץ ה payload אל סביבת הפיתוח, שם ייבנה סביבו מנגנון הצפנה ופתיחה.
14. הסיכום וההמשך: הושלמו שני שלבים, תעודה דיגיטלית מותאמת ו payload חד שלבי המטמיע אותה. השלב הבא, בניית המצפין ב C Sharp, ואחריו שמירת הקובץ המוצפן, הרצתו, והקמת המאזין שמקבל את החיבורים.
בשיעור זה הותקנה סביבת הפיתוח עם שני הרכיבים הדרושים, נוצרה תעודה דיגיטלית מותאמת עם זוג מפתחות שאוחדו לקובץ אחד, ונוצר payload חד שלבי x64 reverse HTTPS שמטמיע את התעודה, מתוך הבנה מדוע עדיף חד שלבי על פני דו שלבי בסביבה מוגנת.
בשיעור הבא נעסוק בנושא הצפנת Payload.
SR12527HE

פרקי ההרצאה: יצירת תעודה דיגיטלית ויצירת Payload

  1. 00:00

    השלבים להצפנת ה-Payload

  2. 00:37

    התקנת Visual Studio

  3. 01:34

    בחירת רכיבי הפיתוח

  4. 02:32

    יצירת תעודה דיגיטלית

  5. 03:23

    למה צריך תעודה אמיתית

  6. 03:55

    בדיקת השרת באמצעות התעודה

  7. 04:49

    עטיפה ב-C# והמרה ל-EXE

  8. 06:44

    קבצי Key ו-Cert

תמלול ההרצאה: יצירת תעודה דיגיטלית ויצירת Payload

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

  1. 00:02

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

  2. 00:23

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

  3. 00:42

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

  4. 01:12

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

  5. 01:45

    אנחנו הולכים לדבר עוד דקה אני פשוט רוצה פה שהוא יתחיל לעבוד בוא נעשה לו פה מקסימיז כן זהו אז תראו יש פה רכיב sp.net ל-web development יש פה פיתוח לענן פיתוח לפייתון פיתוח שרת ב-node.js פיתוח לדסקטופ, לשולחנות העבודה ב-C-Sharp, זה מה שאני צריך, .NET Desktop Development, גם C++ אני אצטרך בעתיד,

  6. 02:12

    וכל השאר אני כבר לא צריך. לדוגמה, C++ לטלפונים ולאייפונים ולגיימינג ולדאטאבייסים, זה כל מיני רכיבים בסביבת פיתוח. אני שם רק שני Vים, על C-Sharp ו-C++ לדסקטופ.

  7. 02:28

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

  8. 02:55

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

  9. 03:18

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

  10. 03:33

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

  11. 03:47

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

  12. 04:00

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

  13. 04:24

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

  14. 04:45

    אנחנו נעטוף אותו כדי שהוא יוכל להעריץ אותו הרי את הפיילוד הזה צריך להפעיל אז תוכנת אקזה שאנחנו נעשה תפעיל את הקוד הזדוני הזה היא בעצם תפתח את ההצפנה ותריץ את הפיילואוד אחרי זה נהפוך את הפיילואוד הזה לקובץ אקזה כי ב-C-Sharp הוא מייצר לנו קובץ DLL ואנחנו נהפוך אותו לאקזה ואחרי זה אנחנו ניצור

  15. 05:11

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

  16. 05:34

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

  17. 06:05

    openSSL שיודעת לייצר תעודות דיגיטליות אני אומר לה תייצרי לי NewKey בגודל 4096 זה הגודל של המפתח התעודה תהיה בתוקף ל-365 ימים ונותן לה את כל המידע שצריך מה ה-Subject מה השם של השרת שאמור להיות אתם יכולים פה לכתוב מה שאתם רוצים.

  18. 06:28

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

  19. 06:42

    לפני שאני מתחיל, אני רוצה לראות, אין לנו כלום, אתם רואים? קלי שלי ריק לחלוטין, יפה. אני מדביק את הפקודה הזאת, עושה Enter, הוא עושה Generate RSA Private Key, Writing New Private Key לכאן, בואו נראה מה קרה עכשיו.

  20. 06:59

    עכשיו יש לנו שתי קבצים CRT ו-Key. בתוך קובץ Key יש לנו את ה-Private Key. אתם רואים הסיומת שלו וההתחלה שלו. זה המפתח הפרטי הסודי שלי ואמרנו שיש לנו גם Cert.

  21. 07:14

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

  22. 07:26

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

  23. 07:52

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

  24. 08:16

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

  25. 08:35

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

  26. 08:59

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

  27. 09:27

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

  28. 09:53

    ומטעין את ה-DLL הזה לזיכרון, וברגע הטעינה של ה-DLL

לקורס המלא: קורס סייבר למתחילים אונליין

ההרצאה הקודמת: שינוי חתימה של Payload

ההרצאה הבאה: הצפנת Payload

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

  • יצירת תעודה דיגיטלית בלינוקס - openssl
  • תעודה דיגיטלית - חינם SSL
  • התקנה של תעודה דיגיטלית - UCP SSL Certificate
  • חיבור לענן ב-SSH - עם תעודה דיגיטלית - פרויקט NodeJS

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

  • קורס SOC - מיישם הגנת סייבר
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting