BinaryVision

Reversing, והכוח של זה

מאת בתאריך 08/04/09, תחת כללי

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

ממשק הWeb

רשימת קבצים

רשימת קבצים

רשימת הקבצים שמצאתי נמצאת כאן בתמונה.

דברים מעניינים שקופצים ישר לעין:

  • x.asp

נראה כאילו הוא אמור להציג סיסמה כלשהיא, ננסה להכנס לדף ישירות דרך הנתב:
http://192.168.2.1/x.asp
ומקבלים לא רק את הסיסמה שלי להתחברות לנתב, אלא גם את הסיסמה של איזשהו משתמש super.
מה?! אתם בטח צוחקים עלי….

x.asp

x.asp

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

  • test.asp

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

  • users

קובץ שמכיל את הרשימה הבאה:

 User1
 User2
 user3
 user4
 user5
 user6
 user7
 user8
 user9

האל יודע למה, בינתיים לא מצאתי לזה שימוש או הגיון.

  • flash.asp

נראה כאילו זה הדף שדרכו אחרי זה עושים flash לחומרה, לפחות כאן אני יכול לראות מה הגרסת Firmware שלי.
שזה 2.15, קצת יותר ישן מהכי חדש שהורדתי מהאינטרנט (2.21), ז"א לפני שאני משחק עם זה בהתבסס על 2.21 צריך לעדכן את הנתב שלי.

  • getflash.asp

מביא קצת יותר פרטים, נותן את הMacים והRegulation Domain (מישהו יודע מה זה?)
אצלי זה עומד על ETST 1-13(Europe)

  • debug.asp

נראה ממש מעניין, מכיל טופס של פקודה command וכפתור apply.
משחקים עם הטופס לא הניבו כלום, הוא כל פעם כותב Invalid value of command.
מה שעוד יותר מוזר זה שאני לא רואה בסורס של debug.asp איפה כל הלוגיקה של מה שקורה אחרי שעושים Submit.
מבדיקה של הטופס עולה כי הוא שולח את זה למקום לא ברור, וגם לא קיים פיזית:

<form action=/goform/formDebug method=POST name="debug">
.
.
</form>

מה זה goform?? מאיפה זה בא?
http://home.postech.ac.kr/~sion/cs499a/webserver/web/over/goforms.htm
מצוין, זה אומר שהטופס הזה מקומפל בתור קוד C לתוך השרת web שלנו.
מצד אחד זה טוב, קוד C בדרך כלל לא כלכך אמין.
מצד שני זה רע, אני אצטרך לעשות Reversing לשרת כדי לראות מה הולך מאחורי כל סקריפט.

Reversing webs

formDebug

formDebug

טוב, אז ניקח את הבינארי של השרת Web, ונראה מה אנחנו יכולים לשלוף ממנו.
לפי מה שהבנתי מהתיעוד, כדי לרשום טופס חדש צריך לקרוא לwebFormDefine.
בואו נראה אם אנחנו יכולים לראות מי קורא לזה ועם איזה פרמטרים.
כמובן שזה מקומפל בלי Symbols, אז זה לא יהיה כזה פשוט, אפשר לנסות לגשת מצד אחר,
כדי לרשום טופס צריך להביא את השם שלו בתור מחרוזת, ז"א אם נוציא את השם של הטופס מתוך debug.asp
אז נוכל למצוא את המקום בקוד שרושם אותו.
השם של הטופס זה formDebug.
מגיעים לפונקצייה שהוא רושם, מסמנים אותה כפוקנצייה שמטפלת בformDebug, ומסתכלים מה היא עושה.
נראה כאילו הפונקצייה בודקת שהפקודה זה "report.txt", ואז מייצרת לוג של הרבה מאד פקודות מערכת, ונותנת אותו להורדה.
כמובן ה"נראה כאילו" לקח כמה זמן להבין, אני לא הולך להציג כאן את כל הקוד, זה פשוט הרבה אסמבלי.
בכל מקרה בדיקה של התיאוריה מול הנתב באמת אישרה את זה, רשמתי בפקודה report.txt, וקיבלתי קובץ להורדה עם מלא מידע.
כל ההגדרות רשת, ההגדרות נתב, כל המידע השותף שמשתנה בזמן הניהול, הוא זרק לי אותו בRaw Text.
נקודה מעניינת שראיתי, שהוא קורא הרבה ל_system בקוד שלו.

המשך עבודה

  • מה הוא עושה עם הסיסמא של super?
  • למצוא עוד דברים מעניינים בממשק Web.
  • למצוא קריאה ל_system שמקבלת מחרוזת שמורכבת מפרמטרים שאני מביא בקלט של הטפסים, כדי לאפשר לי הרצת פקודות ע"י שרשור פקודות לינוקס לפרמטרים בממשק Web.
  • מי שרוצה מוזמן להוריד את דפי הASP והבינארי של שרת הWEB מכאן: http://www.filesonic.com/file/2125608961/Edimax.Web.2.21.zip

אשמח לתגובות, רעיונות או כל דבר אחר שיש לכם להגיד…

:, , , , , , ,
11 תגובות:
  1. TAsn

    חייב להודות שלא קראתי את הכל (אין לי זמן) אבל ממה שקראתי, נשמע מגניב רצח!

  2. Trancer

    מעניין מאוד אחי, עבודה יפה.
    אל x.asp ניתן לגשת גם מכתובת מחוץ ל-NAT?

  3. Fate

    הממשק כולו לא זמין מחוץ לNAT. 🙁
    וגם הקובץ x.asp זה אחרי Authentication,
    ז"א זה טוב רק אם מישהו שמר סיסמה לנתב שלו.
    אבל הסיסמא של super מאד מחשידה,
    אולי איכשהו אפשר לעקוף את זה\להשתמש בה?

  4. באמא שלי

    פוסט אידיוטי……..כאילו מה אתה מראה פה? שאתה עלק מרוורס דפי ASP? פחח

  5. TAsn

    "באמא שלי"
    ילד, הוא רק מראה שממה שהוא חילץ ע"י reversing, הוא השיג מלא מידע שהוא לא היה יכול להשיג אחרת. הוא לא "רוורס דפי ASP" אלא השיג אותם בדרך של reversing.
    הוא בא להראות, שברגע שהוא השיג אותם, הוא קיבל הרבה מידע על החורניות של המערכת.
    או בקיצור, אחד משניים, או שלא קראת את ההודעות הקודמות להודעה הזו, ואז אתה סתם מדבר, או שקראת, ופשוט לא הצלחת להבין.
    בשני המקרים, אני ממליץ לך לקרוא את הפוסטים הרלוונטיים, וגם לקרוא את מה שבלינק הזה: http://xkcd.com/481/
    אני חושב שזה ישפר לך את החיים רבות.

  6. DRagonRage

    רגע אז יש לנו קוד ASP או שהכל זה HTML וכל הלוגיקה מקומפלת ב C?
    או שחצי חצי?
    אתה יכול לפרסם את המקור של X.asp?

  7. נקניקיא

    לגבי הססמא של super
    ייתכן וsuper מופיע ב etc/passwd ואזי זה אומר שזה חשבון SHELL. אני לומד שלכל מיני ראוטרים יש דרך להדליק את הtelnetd דרך פקודות "רגילות", (חפש telnet בדף זה http://www.imstuck.co.uk/router.htm)

  8. Fate

    "באמא שלי",
    אם תשים לב הלוגיקה מאחורי דפי הASP מקומפלת לתוך השרת,
    ולא זמינה בתור קוד ASP רגיל.

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

    לכולם,
    לקחתי את כל תיקיית הWeb, וצירפתי את הבינארי של השרת,ועכשיו זה זמין להורדה:
    http://rapidshare.com/files/223290606/edimax_web_221.rar

    אני גם אעדכן את הפוסט עצמו…

  9. ben

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

    אחלה פוסט Fate… תפרסם עוד קוד מהממשק WEB ברגע שיש..

  10. ben
    • תיקון* – לא שמתי לב שכל הקוד כבר פורסם. תודה.
  11. גיא מזרחי

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

השאר תגובה

מחפש משהו?

תשתמש בטופס למטה כדי לחפש באתר: