ברוכים הבאים לאזור הבלוגים הטכנולוגיים של ITsafe



קריאה מהנה


המוסד 2018 חלק 3

החלק השלישי:

תחילת אתגר 3 של המוסד
האתגר מתחיל בקובץ לא ידוע שיורד כאשר לוחצים על הlink.

אם נפתח את הקובץ נקבל את התוכנה busybox, תוכנה ידועה שמכילה בתוכה ערכת כלי linux שימושיים בדרך כלל נפוץ בקרב מערכות embedded.

נריץ את הקובץ ונראה שכתוב שיש לנו hint בתיקיית tmp, ניתן לראות שמדובר בגרסה ערוכה של busybox.
מסך busybox
אם אנחנו נריץ Busybox אמיתי מהספריות של לינוקס נראה שאין את השורה הזאת כברירת מחדל:
רשימת פקודות של ה-busybox
כך שכנראה יש משהו מיוחד בגרסת הbusybox שהורדנו, לאחר הרצת כל הפקודות נראה שערכו את הפקודה ps:
הפקודה ps אינה מציגה את התהליך שרץ
כך שהמטרה ברורה, עלינו להגיע לקובץ של התהליך 1337 כדי לנתח אותו על מנת שנקבל את הרמז הבא שלנו באתגר.

כך שעלינו להגיע לתהליך באמצעות השימוש בbusybox שהורדנו, ננסה להשתמש בls ולהציג את כל הקבצים בתיקייה tmp:
הפקודה ls מקודדת שמות תיקיות
ניתן לראות שערכו את פקודת הls והיא מוסיפה 1 לכל תו לפי האינדקס שלו במילה כך שלתו הראשון מתווסף 1 ולתו השני מתווסף 2 וכו..

נבנה תוכנת עזר שתעזור לנו להשתמש בפקודה ls בצורה נוחה.
קוד פייתון אשר מבצע את אותו קידוד בדיוק
אם נשתמש בפקודה הls עם המילה skm נראה שאנו מצליחים לצפות בתוכן הקבצים בתיקייה tmp שלנו ואף מצאנו את הרמז.
רשימת קבצים ביניהם .readme
אם כך אנו אמורים להצליח לקרוא את תוכן הרמז באמצעות הפקודה cat והנתיב:
`` /skm/.l^Y[cZ`
שקיבלנו מהסקריפט העזר שכתבנו:
תוצאת קידוד קובץ ה-readme הינה .lxsuct
התוצאה תראה כך:
בדיקת קידוד עבור התו a
נראה שכדי להגיע לתו e יש להשתמש בתו ^ ותווים מיוחדים לא מושפעים מהלוגיקה של תו + אינדקס התו.

כך שכנראה שיש לנו טעות בקוד, לכן ניסנו להבין את הלוגיקה בצורה הבאה:
התיקייה a/ אינה קיימת
ניתן לראות שיש חזרה על תווים בגבולות הa-z בלולאה, נבדוק את הטענה על ידי פניה לתו z ונראה האם נקבל a:
קידוד מלא skm/.lxsuct/
כך אחרי שנעדכן את הקוד שלנו נקבל:
Suspicious network activity detected...
על סמך הרמז הסקנו שכנראה התוכנה שהתהליך שלה 1337 שולחת הודעות כלשהם או מבצעות פעולת רשת כלשהי, כך שעלינו לבחון את התיקייה /proc/1337/ כך:
רשימת תיקיות וקבצים בתוך תהליך שנמצא ב-proc כגון exe
נראה שמי שערך את הקובץ busybox ממש השקיע באתגר הזה, כעת נמשוך את הקובץ exe וננסה לחקור אותו בעצמנו כך:
`` ./busybox cat /oply/1337/tlr > aaa`
אם נבחן את הקובץ מקרוב:
תוכן הקובץ
נראה שהקובץ מקבל 2 פרמטרים שהם:

  • -u שם המשתמש
  • -d שימוש בסיסמא ברירת המחדל שהיא Uw1lLN3v3rG3tM3

אם נסתכל בפקודה busybox ps נראה ששם המשתמש הינו admin:
פקודת ps מציגה את שם המשתמש
כך שיש לפנות לכתובת הבאה כדי לקבל את הקובץ:
`` http://35.205.32.11/iso?user=admin&pass=Uw1lLN3v3rG3tM3`

הורדה של קובץ מצד שרת
התוכן של הקובץ הינו:
`` iso.iso`
נפתח את קובץ הiso שלנו ונראה שיש בפנים תמונות ממוספרות מ 1 ועד 7
6 קבצי תמונה ו-thumbs.db שמכיל את כל התמונות בתיקייה ב-cache
אם תסתכלו מקרוב תראו שחסרה התמונה 3 ויש לנו עוד 2 קבצים thumbs.db ו-vault.

בנוסף נריץ binwalk על הקובץ כדי לקבל עוד נתונים על הiso והקבצים שבו:
בחינת הקובץ עם binwalk
נראה שבתיקייה יש גם קבצי html וקובץ מסד נתונים שלsqlite

נמשוך את התיקייה לwindows כדי שיהיה קל יותר לעבוד עם הsqlite

ונפתח את הקובץ vault עם התוכנה SQLiteStudio:
בחינת הקובץ ב-SQLite
ניתן לראות שיש לנו 3 קבצים מוצפנים בתוך מסד הנתונים וקובץ html אחד.

תוכן קובץ הhtml נראה כך:
``

`

אם נסתכל שוב בסיכום הקבצים שיש בתיקייה שביצע binwalk ניתן לראות שחסרים כמה קבצי תמונה, לכן נסתכל על הthumb.db שזה בסה"כ קובץ שבצע cache לthumb של התמונות בתיקייה.

כדי להסתכל על תוכן הקובץ thumb.db נשתמש בתוכנה Thumbs Viewer:
שחזור תמונה מספר 3
ניתן לראות שהתוכנה מראה שהיו 7 קבצי תמונה בתיקייה, ותמונה השלישית נראה שיש לנו סיסמא לקבצים המוצפנים.

כעת נחפש בגוגל אתר שיודע לפענח את ההצפה blowfish cbc, כך הגענו לאתר:
`` http://sladex.org/blowfish.js/`

תוצאת החיפוש בגוגל מראה את האתר שכתוב מעלה
נשתמש באתגר כדי לפענח את שלושת הקבצים ונריץ את קובץ הhtml, התוצאה תראה כך:
שגיאה המראה שאנו לא מצליחים לאתר את key.js בנתיב 127.0.0.1:1337
כמו כן קובץ script.js מקודד וכדי לקרוא אותו נבצע לו unpack:
`` http://matthewfl.com/unPacker.html`

פינעוח הקובץ עם Unpacker
ניתן לראות שיש פנייה לקובץ key.js לשרת מקומי על פורט 1337 אפשר להשתמש בpython ולהגדיר שרת על הפורט הזה כך:
python -m SimpleHTTPServer 1337` או אפשר פשוט לבצע פנייה עצמאית לקובץ בקובץ html כך:

`

העדפנו לערוך את הקובץ ופשוט להפעיל אותו ללא
האתר מקבש סיסמא לאחר פיענוח
כדי פתור את האתגר השתמשנו בchrome developer tool בצורה הבאה:

  1. נשים breakpoint בעת טעינת הקוד של האתגר
    break point בשורה 30
    ונעבור על כל הפונקציות עד אשר נגיע לפונקציה שמציגה את האתגר האמיתי:
    קוד brainfuck
    פונקציה זו טוענת את האתגר שמקודד בפורמט jsFuck, שזה פורמט קידוד לjavascript ב6 תווים בלבד, .

פשוט תריצו את הקוד של האתגר על ידי לחיצה על F8 עד אשר תראו את האתגר נטען:
הרצת הקוד בדפדפן
כעת לחצו על pause ואז על cancel או ok ואז תראו את הקוד של הjsfuck:
בדיקה מול סיסמא פשוטה ב-base64
ניתן לראות שיש בדיקה האם הסיסמא שהכניסו לאחר הפעולה btoa שווה לקטע בbase64, כך שכל שעליכם לעשות או לפענח את הbase64 ולהזין את הסיסמא:
H4pPyB1r7hd4y70I5ra3l!
נזין את הסיסמא וסיימנו את האתגר.
הודעה על הצלחה בפתרון האתגר

Compartilhe este post