BinaryVision

Tag: רשתות

Crowdsourcing – תיעדוף IPv6

by on ינו.14, 2012, under כללי

אני רוצה לעשות בדיקה מהירה על מהירויות הגלישה על IPv6 אחרי שראיתי כמה נתונים מפתיעים.
בבקשה תגיבו עם הממוצע של ה ping ים הבאים (ושם הספקית/תוכנית
ping -n 10 maia.nix.co.il
ping -6 -n 10 v6.maia.nix.co.il

אין צורך להדביק הכל, רק את ה Avg של שני המקרים. משתמשי לינוקס תשתמשו ב ping6 במקום.

11 Comments :, , , more...

גלישה חינם בבתי מלון

by on אוג.16, 2010, under כללי

אחרי 7 בתי מלון ב- 11 יום החלטתי לפרסם כמה טיפים למטיילים בעולם. המלצה חמה בבריטניה למלונות הרשת Ramada, גם מאוד נחמדים וגם אינטרנט חינם.

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

הרעיון בגדול הוא, למצוא מישהו ששילם (בעיקר ע"י ניסוי וטעייה או ניחושים מושכלים) ולהשתמש בזיהוי כרטיס הרשת שלו. להחליף כתובת mac ב- Windows זה סיפור מהתחת, לא תמיד אפשרי, במיוחד בעדכונים האחרונים של הדויורים וגם הדרך משתנה מכרטיס לכרטיס. מה שכן, Windows שימושי בשלב ראשוני מאוד עם התוכנה Cain, שמאפשרת לסרוק את ה subnet ולמצוא משתמשים פעילים ברשת (ip, mac וייצרן בקובץ hosts.lst). ההבדל המהותי הוא שב- arp -a למשל, לא רואים שום דבר חוץ מה- default gateway, כש- cain מייצר מפה שימושית מאוד אותה אני ממליץ לקחת ל ubuntu לשלבים הבאים של התהליך.

למי שלא מצא מספיק אנשים, או שלא רוצה לעבור ל windows, השיטה השנייה, היותר איטית אבל בהחלט יותר מדויקת (ונסתרת) היא להסתכל מי מדבר עם ה AP באוויר, וכך למצוא כתובות של קליינטים. אני ממליץ על שילוב של aircrack-ng עם wireshark. קודם נפתח ממשק למוניטור (נניח שהתחנות שמעניינות אותנו על ערוץ מס' 6 והכרטיס הוא wlan0) הפקודה היא: airmon-ng start wlan0 6 (מפסיקים עם airmon-ng stop mon0).

להבדיל מ- Windows, ב Ubuntu קיבלתי תמיכה מלאה בשינוי מאק ו injection ב aircrack ישר מהקופסה כמו שאומרים. אחרי שפתחתי ממשק mon0, פתחתי wireshark (מ root) והתחלתי לתפוס תעבורה מ mon0. עשיתי סינון לא לרשום broadcasts וכו'. הלוג עצמו שימושי, אבל יותר פשוט ללכת ל statistics ולבחור wlan. שם, רואים את כל התחנות ואת הקליינטים שמדברים איתן, וכמות המידע שעוברת בניהם. מכאן גם אפשר לקבל רשימה של כתובות mac ויצרנים.

עכשיו שיש רשימת יצרנים (אני תמיד ממליץ להתחיל מ apple, בדר"כ אנשים עם יותר כסף משכל), אפשר להתחיל לנסות להתחבר. בשביל לשנות mac צריך לנתק לרגע את ה network (קליק ימני על האייקון באובונטו Disable Network), ואז מתוך root, נשנה את ה mac שלנו ככה: ifconfig wlan0 hw ether aa:aa:aa:aa:aa:aa אפשר גם בלי הנקודתיים. כמובן שבסוף נעשה שוב קליק ימני ונדליק את ה network. השינוי הוא שינוי זמני ולא נשמר אחרי Restart.

אחלה, התחברנו לרשת עם mac של מישהו אחר, עכשיו בוא נבדוק אם יש לנו אינטרנט נקי ע"ש השירות של מיקרוסופט או אקמאי, אם אין redirection האינטרנט מוכן, אם לא, מנסים mac אחר.

wget -O /dev/null http://www.msftncsi.com/ncsi.txt

wget -O /dev/null http://whatismyip.akamai.com

נגמרו הכתובות או הסבלנות? עוד קצת sniffing, אולי על ערוץ אחר יכול להוביל לתוצאה יותר חיובית.

אם המחשב המקורי עדיין מחובר יהיה קצת חורים שחורים בגלישה. בדר"כ רשתות כאלה משדרות יותר מ AP אחד (למשל spectrum, wifizone) ולמרות שזו אותה רשת, ברמת ה AP זה לא, לכן אפשר להתחבר פשוט לרשת השנייה (המשתמש המקורי מתחבר לאחת, אתם מתחברים לשניה) ואז כולם שמחים.

ברגע שמתרגלים: התהליך לוקח פחות מ- 5 דקות. זהו, תהנו מחופשה עם אינטרנט on the house.

עדכון: למרות שלא יצא לי לבדוק בתנאי אמת, הנה תחליף לסריקת ה- arp עם cain:

nmap -sP -PR 10.1.0.1-255

16 Comments :, , , , , more...

המלצה על מוצר Firewall בייתי

by on ינו.20, 2010, under כללי

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

PC Tools Firewall Plus 6.0.0.88 ו- Comodo Internet Security 3.13, שניהם מוצרים חינמיים אז אין בעיה להוריד ולבדוק. Online Armor Premium קיבל ציון 99% אבל הוא לא נתמך ב64 ביט, אז אין לי מה לבדוק אותו.

התחלתי מ PC Tools, הלוגו הזכיר לי מאיפה אני מכיר את החברה: הם עשו קופה בזמנו עם מוצרי ה Anti-Spyware, ותיקוני ה- Registry. אחרי שהתקנתי את המוצר הוא שאל אותי אם אני סומך על Google Talk ו mIRC, הסיבה שהוא התפל דווקא עליהם היא שהתוכנות לא חתומות, שזה סבבה כל עוד מי שרוצה לפרוץ אליך לא מוכן לבזבז 1000 דולר על חתימה. ניסיתי להריץ netcat ועוד כמה תוכנות אינטרנט לא חתומות, ולהפתעתי זה עבד. מוזר, אין שום שאלות מהתוכנה. ניסיתי להריץ shell של vnc connect back, גם עובד. מדאיג.

או קיי, אז אולי הוא ברמה של Windows Firewall חשבתי לעצמי, הוא בטח יקפוץ אם התוכנה תעשה listen ל 0.0.0.0, אבל מסתבר שממש לא. בניתי קוד חדש לבדיקה, לא חתום ולא כלום, דחפתי אותו בכוונה ל Startup ב Registry רק כדי לראות אולי PC Tools יבין את הרמז, אבל הרמז לא נקלט. כנראה שאני קורא את התוצאות הפוך, בטח באתר התכוונו ל- "100%" פריץ.

טוב, נמשיך עם Comodo, גם הוא קיבל ציון 100, וגם הוא חינמי.

ההתקנה שלו די גדולה, ומתחילה מ WinZip SFX, משהו שלא ראיתי משנת 1999 אז כשהסרט מאטריקס הראשון יצא. אחרי זה ההתקנה רצתה לדחוף לי 3 toolbars, ורצתה להחליף לי שרתי DNS.

אחרי ההתקנה, comodo התחיל לשאול שאלות, רובן מפגרות, כמו האם מותר לגעת לתהליך מערכת בג'יסטרי, בלי להגיד לי מה התהליך או מה ברג'יסטרי. אחרי משהו כמו 50 שאלות מתוכן 48 שבאמת לא היה צריך לשאול, הוא התחיל לעבוד. הוא בהחלט שם לב ל- VNC ולקוד שבניתי.

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

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

11 Comments :, , more...

Reversing, והכוח של זה

by on אפר.08, 2009, under כללי

בהמשך לפרק הקודם, היום אני הולך להראות לכם מה מצאתי במערכת הקבצים של ה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 Comments :, , , , , , , more...

מסע אל בטן הנתב

by on מרץ.22, 2009, under כללי

יש התקדמות!
אני אשתדל לקצר כי יש ממש הרבה דברים שעשיתי, ואני מקווה שהקיצור לא יפגע בעניין והבנה של אנשים,
אם יש שאלות תמיד אפשר לשאות בתגובות, או בערוץ IRC.
בחרתי להשתמש בSlax 6.0.9 כדי לקמפל את הFirmware.

קימפול הסורס מהאתר של Edimax

הוראות פשוטות, פותחים את הtgz, נכנסים פנימה, לתוך תיקיית toolchain, ופותחים את הtgz שם לתוך "/" כך שישתלב במערכת.
מוחקים את build.tmp מהתיקיית מקור, ומריצים את NAS-BUILD.
כמובן ששום דבר לא פועל ישר בלינוקס, וצריך להתעסק עם כל החרא הזה.
אז נתחיל…
דבר ראשון אחרי הסתכלות בNAS-BUILD הבנתי שהוא עושה סוג של Clean וConfigure אם הוא לא מוצא את build.tmp.
עד כאן טוב ויפה חוץ מהעובדה שאפילו בזה הוא נכשל…
הוא נופל לי על זה שהוא לא מוצא את הפקודה rcsclean, ששייכת לחבילת ניהול קוד או משהו כזה.
טוב לא נורא, מורידים את slackpkg מתוך הRepository של Slackware, ומתקינים עם pkgtool שכבר יש בSlax.
אחרי הגדרת slackpkg שכלל בחירת Mirror, והורדה והתקנה של gnupg, ועדכון המפתח gpg שלו, אפשר להתקין את מה שאנחנו צריכים.

slackpkg update
slackpkg install gnupg
slackpkg update gpg
slackpkg install rcs

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

  • busybox-1.00-pre2 לא מתקמפל

צריך להכנס לתיקייה שלו בתוך AP ולערוך את .config ולשנות את CONFIG_LFS=y לCONFIG_LFS=n.

  • busybox-1.1.0 לא מתקמפל

אותו דבר כמו הקודם, רק הפעם צריך להפוך לn גם את FDISK_SUPPORT_LARGE_DISKS.

  • dosfstools-2.11 לא מתקמפל

צריך לערוך את Makefile בתיקייה שלו בתוך AP/dosfstools-2.11 ולהוריד את התוספת של OFFSET_BITS=64 (כל הערך החל מ-D)

  • libpcap-0.7.2 לא מתקמפל

צריך להתקין את bison ואת flex בעזרת slackpkg

  • ppp-2.4.1 לא מתקמפל, צועק על pcap_parse

צריך ללכת לתיקייה של AP/libpcap-0.7.2 לערוך את הMakefile כך שהשורות שמכילות את lex ואת yacc יכלו את הערכים הבאים:

LEX = lex -Ppcap_
YACC = yacc -p pcap_
  • vsftpd-2.0.4 לא מתקמפל

צריך לערוך את הקוד מקוד שנמצא בAP/vsftpd-2.0.4/sysutil.c
ולעשות Comment-Out לקוד שמגדיר את הDefines בקבוצה של OFFSET_BITS=64…

יש! זה התקמפל!!!! (אצלי לפחות)
ובנה את הImage שיושב בimage/NAS_Router/NAS-1.21.bin.
רגע…… 1.21??? הבינארי מהאינטרנט מהאתר של Edimax שזה 2.21, והוא גם יותר גדול.
כלבים, המקור לא מעודכן,
עד כאן!!

Reversing של הBinary של הFirmware

אחרי מעבר על כל NAS-BUILD וכל הסקריפטים שהוא משתמש בהם,
הבנתי שהFirmware מורכב מKernel ומהRoot File System שמחוברים יחד באיזה פורמט לא ברור שמיוצר ע"י קובץ בינארי. (cvimg)
בואו נראה לאיפה נכנס הקרנל שייצרנו בעצמו לתוך הimg שהצלחנו ליצור.
אפשר לראות שכל הקרנל (bzImage) בשלמותו יושב בתוך הimg הסופי ומתחיל באיזה כותרת, שמכילה את הגודל שלו, ומסתיים בעוד תוספת של 4 בתים כחלק מהגודל שכתוב בגודל.
ז"א את הקרנל אנחנו יודעים איך להוציא, ניגש לעניין.
פותחים את הimg הבינארי מהאתר עם עורך Hex ושולפים מתוכו את הKernel אחרי הכותרת, ועד האורך שמצויין פחות 4 בתים.
האורך שכתוב לנו זה 00120C18.
עכשיו צריך לראות איך שולפים את המערכת קבצים, לפי הסקריפטים שמייצרים את הimg שאנחנו הצלחנו ליצור,
הוא מייצר את המערכת קבצים בתור קובץ Image שמכיל מערכת קבצים ext2, אחרכך מכווץ אותו עם lzma ופשוט מחבר אותו לסוף הFirmware.
אז בואו נוציא את המערכת קבצים מהבינארי של Edimax.
הולכים למקום אחרי הKernel ומתחילים להעתיק משם עד סוף הקובץ החוצה עם עורך Hex, ושומרים את זה כקובץ נפרד.
מעבירים אותו ללינוקס, פותחים את הכיווץ בעזרת אותו lzma (פרמטר d) ומקבלים קובץ בגודל 11 מגה בערך.
משמעותית יותר גדול ממה שהיה לנו (8 פתוח, 1.5 מכווץ)
עכשיו אפשר למפות את הקובץ בתור כונן בלינוקס וסופסוף לראות מה יש שם.

mkdir /mnt/rootfs
mount -o loop extracted_rootfs.img /mnt/rootfs

בואו נכנס ונראה מה יש שם.
כמה דברים שקופצים ישר לעין:

  • יש תקייה ב/ שקוראים להweb שמכילה את כל המקור של האתר! 🙂
  • תיקייה /bin מלאה בסקריפטים לשימוש בחומרה והחלת הגדרות וכו'
  • תיקייה /etc גם מכילה דברים מעניינים יותר ממה שהיה לנו.

האפשרויות שעומדות בפני

  • יש לי את המקור ASP של האתר! אני יכול לחפש באגים בסקריפטים ולנסות להריץ Shell Commands.
  • יש לי את המערכת קבצים העדכנית, וקומפילר שמסוגל לקמפל למעבד שיש שם (RDC 3210), להוסיף תוכנות לא אמורה להיות בעיה גדולה מדי.
  • אולי אני אתקין עליו Python? 🙂
  • ראיתי שיש שם כבר Busybox עם telnetd שאפשר להריץ ברגע שיהיה לי Shell Command Execution.
  • עדיף לי בינתיים למצוא איך לשבור אותו בלי להתקין Firmware חדש כדי לא להסתכן בBricking של המכשיר, אז פוסט הבא יהיה כנראה על באגים בממשק Web של Edimax…

שאלות? תגובות?

10 Comments :, , , , , , , more...

פרוייקט פריצת נתב

by on מרץ.20, 2009, under כללי

מבוא

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

מטרות

  • השגת גישה של SSH לרואטר שלי

שבירת הממשק Web
שידרוג הFirmware למשהו שאני אבנה

  • קימפול דברים חדשים למכשיר

BitTorrent
aMule

  • לראות אם אפשר להתקין ממשק נורמלי לראוטר

OpenWRT
DD-WRT

ביצוע

מה כבר יש באינטרנט?

יש כבר Firmware קיים לכל מיני נתבים שמאפשר להחליף את הFirmware למשהו OpenSource ופתוח.

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

האם אפשר לדפוק את הממשק Web

חשבתי לנסות לפרוץ אליו דרך הממשק Web ולהשיג הרצת קוד.
אחרי שחרשתי על הממשק Web, ראיתי שאין כלכך איפה לתת פקודות.
אז בדקתי איזה שרת Web הוא מריץ וחשבתי לנסות לפרוץ אותו עם איזה Remote Code Execution.
ואז הבנתי, זה לא x86, אין לי מושג איך אני מריץ שם קוד, איזה קוד, יש שם בכלל מחסנית?!
במציאות הוא רץ על מעבד RDC 3210.

מה עם קוד מקור למערכת

למזלי, המערכת מריצה לינוקס לכן חלקים נכבדים שם בקוד פתוח,
אז יש הורדה מהאתר של Edimax של הקוד מקור של המערכת.
http://www.edimax.com/images/Image/OpenSourceCode/Wireless/Router/BR-6215SRg/NAS-GPL-BR-6215SRg.tar.gz
עכשיו צריך לשחק איתו ולראות אם אני מצליח למצוא שם איך לפרוץ אותו,
או איך לקמפל את כל הסיפור הזה מחדש עם השינויים שאני רוצה להכניס.

בפעם הבאה

  • נראה אם אני מצליח לקמפל את כל המערכת ממצב של קוד מקור למצב של Firmware Image שאפשר לעשות איתו Upgrade.
  • אם כן, אני צריך למצוא איפה הוא מרכיב את הRoot Filesystem, להוסיף לשם שרת SSH אם אין
  • לערוך סקריפטי עלייה ולהוסיף שם הפעלה של שרת SSH
  • לוודא שבiptables יש לי גישה לפורט 22
4 Comments :, , , , , , more...

אבטחה ופרצות ברשת ה GSM

by on מרץ.11, 2009, under כללי

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

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

מתקפה אקטיבית

מה צריך?
1. לב GSM + סט אנטנות, רכיבים אלה ימלאו את תפקיד התא ברשת ה GSM
2. מחשב – שימלא את תפקיד הבקר והמרכזייה ברשת הGSM
כל מי שיש לו את הציוד הזה יכול לפתוח רשת GSM משלו, הוא אומנם לא יוכל באמת למתג שיחות או לחבר אותכם לאנשהו (לפחות לא בלי איזה האק מגעיל ומכשיר נוסף ברשת אחרת), אבל הוא יוכל לגרום לפלאפון שלכם (או כל פלאפון אחר) להאמין שזה אפשרי,

וזה כל מה שהפלאפון שלכם צריך בשביל להתחבר לרשת GSM.

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

איך זה קורה?!
אז למה בעצם שהפלאפון שלי יעבור לתדר ביקון אחר שהוא לא של הרשת? בתכלס, אין בזה שום הגיון עד שמביטים בצד הטכני של הסיפור הזה.. פלאפונים במצב IDLE (כלומר שלא משדרים), מחוברים לרשת,  או יותר נכון "קוראים" נתונים מהרשת (מהתדר ביקון), פעם בכמה זמן (הסבר הלא טכני של הפעולה) הפלאפון מתחבר למאית שנייה לרשת, מודיע שהפלאפון עדיין דלוק (המנוי עדיין מחובר), מודיע על המיקום שלו וזהו, אם  פעולה זאת לא תתבצע פעם בזמן מוגדר הרשת תחשוב שהמכשיר כבוי – ממש כמו PING.
אז איך בעצם פלאפון מתנייד? פלאפון עובר מביקון לביקון עם התחשבות בתדר ביקון שהוא קולט הכי טוב, ככה במהלך נסיעה קצרה בת"א הפלאפון הממוצע עובר בערך 5 תדרי ביקון שונים.  מכיוון שכל תדרי הביקון בעולם עוברים באוויר, כל הנתונים שלהם פתוחים לכלל הציבור ואינם מוצפנים, ולכן לחקות תדר ביקון זה דבר מאוד מאוד פשוט… סה"כ Copy/Paste  של הנתונים מהאוויר.

ולמה שהפלאפון שלי יעבור דווקא לתדר ביתי שמישהו משדר כשיש באוויר כל כך הרבה תדרים של רשתות גדולות שמוגברות ומשודרות בעוצמה הרבה יותר גבוהה? כאן הקסם מתחיל. כל ביקון משדר נתון מסויים שנקרא CRO (Cell Reselect Offset), הנתון הזה נועד לווסת את השימוש ברשת לתאים השונים. לדוגמא, בואו נדמיין קניון גדול עם המון אנשים, ליידו (ממש 20 מטר ממנו) יש תדר ביקון וכל המשתמשים בקניון מתחברים לאותו תדר ביקון, למה? כי הוא הכי קרוב והפלאפון קולטים אותו הכי חזק? אבל זהו לא מצב אידיאלי, הרשת לא רוצה שהעומס יהיה על תדר אחד.
הרשת רוצה שהעומס יתחלק בין כל התאים שלה, ולכן היא תשים תא קצת יותר רחוק (100 מטר מהקניון) ותשים לו CRO גבוהה, מה שיגרום למכשיר לחשוב שהוא קולט את התדר הזה אותה העוצמה כמו את התדר הקרוב (אם לא יותר טוב) ולכן העומס מהקניון יתחלק בין שני התאים הקרובים לקניון. אבל מה? הרשתות הישראליות הגאוניות שלנו החליטו לא לווסת עומסים אלא פשוט לשים הרבה תאים בכל מקום, ולכן הן לא משתמשות בנתון ה
CRO, מה שנותן לכל טמבל את האפשרות לפתוח תדר משלו עם CRO גבוה ולגנוב את כל ת"א במידה וירצה בכך.

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

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

מתקפה פאסיבית

מה צריך ?

USRP – סורק תדרים שאנחנו יכולים לתכנת

איזה טארהבייט של Rainbow tables – כדי לפצח את ההצפנה מסוג A5

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

איך זה קורה?

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

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

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

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

IMSI DETACHING

טוב, אם לא הבנתם או קראתם עד עכשיו אז אני אזכיר לכם שה IMSI הוא המזהה שלכם ברשת ה GSM.

הוא לא קשור ל IMEI של המכשיר אלא קשור לסים שאיתו אתם נרשמים ברשת.

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

איך זה קורה ?

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

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

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

זהו,

זה הכל אולי בעתיד אני אוסיף עוד מתקפות ועוד מידע אבל בינתיים אני חושב שכתבתי מספיק 🙂

עוד מידע מעניין:
http://www.scribd.com/doc/7227619/Cracking-a5-THC-Wiki
http://wiki.thc.org/gsm
http://openciphers.cvs.sourceforge.net/openciphers/gsm/a5/

8 Comments :, , , , , more...

הקדמה לרשתות GSM

by on פבר.26, 2009, under כללי

GSM – Global System for Mobile Communications – הבסיס

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

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

המרכזיה (MSC – Mobile Switching Center)

כמו בכל רשת סטנדרטית, צריך להיות איזשהו רכיב שממתג את השיחות, בגדול, זהו תפקידה העיקרי של המרכזיה, המרכזיה בנוסף למיתוג שיחות, מחזיקה בתוכה כמה רכיבים קטנים עליהם אפרט:
HLR (Home Location Registry) – המרכזיה הביתית, המחזיקה את כל האינפורמציה של המשתמשים "הביתיים" של הרשת, לדוגמא, אם אתה לקוח של אורנג', המרכזיה הביתית של אורנג' מחזיקה את כל האינפורמציה שלך, כשאני אומר כל האינפורמציה אני מתכוון החל מכל הנתונים הטכניים של המכשיר שלך עד למס' כרטיס האשראי  שלך, הכל.
VLR (Visitor Location Registry) – המרכזיה המארחת. נסעת פעם לכיוון אילת וקיבלת הודעה שנכנסת לרשת הירדנית? זה אומר שנרשמת במרכזיה המארחת הירדנית. תפקידה של המרכזיה המארחת היא לתקשר עם הרשת הביתית שלך (דרך סיבים כלשהם), לשמור את האינפורמציה שלך ואת זמני השימוש שלך (בשביל לחייב אותך בהמשך דרך הרשת הביתית שלך..). או בעצם, לשמור את כל המידע הלא קבוע ברשת.
OMC (Operation and Maintaince Center) – בגדול, מרכז תחזוקה ותפעול של הרשת, כל בעיה ברשת נרשמת בלוגים ואף לרוב מטופלת בצורה אוטומטית ע"י הרכיב הזה.
AUC (Authentication Center) – מרכז אימות הנתונים של הרשת, שם מתבצע תהליך האימות של משתמש מול הרשת המארחת שלו. עליו תשמעו עוד בהמשך :>.

הרכיב הבא הוא הבקר, התקשורת בינו לבין המרכזיה מתבצעת דרך פרוטוקול שנקרא A ועובר בשיטת ריבוב E1*.

הבקר (BSC – Base Station Controller)

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

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

התא (BTS – Base Transceiver Station)

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

הרכיב הבא והאחרון בשרשרת הלוקלית של רשת GSM הוא בעצם משתמש הקצה, נקרא לו MS  (Mobile Station) ונפרט עליו מיד, אבל לפני אגיד שהMS מתקשר עם התא בפרוטוקול שנקרא P, ברשת GSM מתוקנת זהו הפרוטוקול היחיד שעובר באוויר.
תדר בפרוטוקול P  מחולק ל8 Time Slots, ההמוספרים מ0 עד 7, שתמיד בTS0 עובר לו תדר הביקון עליו דיברנו בקצרה.

משתמש הקצה MS (Mobile Station)

הגענו עד למשתמש הביתי ברשת הGSM, אותו אפשר לחלק בצורה די ברורה לשני חלקים:
ME – Mobile Equipment –  מכשיר הפלאפון + אנטנות, המכשיר מחזיק עליו זהות חשובה שנקראת IMEI, זהות שאמורה להיות יחידה בעולם (כמובן אם לא היו צורבים). 5 הספרות הראשונות בזהות הזאת אמורות להצביע על מודל המכשיר שבידך. את ה IMEI אפשר להשיג ע"י לחיצת *#06* או לפתוח את המכשיר באיזור הבטריה ולקרוא את המס' הסידורי שלו (הIMEI).
SIM – Subscriber Identification Module – או בעצם הזהות שלנו מול הרשת.. מחזיק את כל הזהויות שלנו בתור משתמשי רשת, IMSI (המספר שאנחנו לא רואים אבל מזהה אותנו כמשתמשים מול הרשת), Ki (הקוד זיהוי הראשי שלנו מול הרשת, או בעצם הדרך של הרשת לאמת את זהותנו).

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

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

אבטחה ברשת GSM

ברכיבי הAUC+HLR של המרכזיה נשמרים טבלאות של צימודים של IMSI (אמרנו שזהו המזהה שלנו מול הרשת או בעצם המס' שלנו) + Ki (המספר אימות שלנו שידוע לאף אחד חוץ מאיתנו ומהרשת) ועוד כל מיני אינפורמציה שאינן רלוונטיות ללמסמך זה כרגע.
תהליך הזיהוי מתבצע בצורה הבאה (זהו פירוט לא טכני וללא הודעות ספציפיות, אלא ההליך מוסבר בעברית כפי שהוא קורה):
1. המשתמש אומר לרשת "הלו? אני צריך להזדהות, אני מוציא שיחה/שולח SMS/מתחבר לאנשהו. יאללה בואי נתחיל את תהליך הזיהוי.."
2. המרכזיה הביתית אומרת למשתמש "אין בעיה סחבק, אנחנו מתחילים", בשלב זה המרכזיה יוצרת מס' רנדומלי באורך 128 ביטים, שולחת אותו למשתמש (כמובן שהמס' גם על הדרך עובר בפרוטוקול P שעובר באוויר כמו שאמרנו).
3. המשתמש מקבל את המספר הרנדומלי, לוקח את זהות ה Ki שלו + את הIMSI שלו + את המספר הרנדומלי שהרשת יצרה ומכניס את כל המשתנים האלה לאלגוריתם אינקריפציה חד כיוונית (סגנון HASH) שנקרא A5. משם מתקבלים שני מספרים, הראשון הוא SRES שנוצר למטרה היחידה של להצפין את הגל האלקטרומגנטי שעובר באוויר + מספר הזיהוי הסופי שלנו. האינפורמציה נשלחת למרכזיה הביתית.
4. המרכזיה בגדול עשתה את אותו התהליך שהמשתמש עשה, עכשיו היא קיבלה את האינפורמציה מהמשתמש ויכולה להשוות, ולראות אם המשתמש הוא באמת מי שהוא טוען שהוא.. אפשר לשים לב למודעות הקטנה לאבטחה, הKi לא עובר באוויר בשום שלב. אבל הנה הקטע ההזוי..
5. בהנחה שהרשת זיהתה את המשתמש היא שולחת לו הודעת Authentication Success וממשיכים בפעולה שהמשתמש רצה לעשות, ואם הזיהוי נכשל היא שולחת Authentication Failed ומנסים עוד פעם..
הזוי לא?! כלומר הרשת מוגנת מפני פריצות, כפי שבטח שמתם לב היא השולטת הגדולה בהליך האימות, סלולר זה לא אינטרנט, זה קצת מסובך פשוט לחסום את מי שמנסה לעשות לך BRUTEFORCE. אבל מה איתי? משתמש הקצה? אני לא צריך איזשהו אימות לגבי זה שאני מדבר עם הרשת שלי באמת? או שאני פשוט אמור לזרום עם מה שמביאים לי..
בגדול ברשתות המבוססות על תקן UMTS (דור שלישי) כל העיניין הזה תוקן, כלומר, גם הרשת צריכה להזדהות מול המשתמש כנותנת השירות. אבל בGSM העיניין לא מתבצע ככה, מה שהופך את כל העיניין לפריץ, יש לכם רעיונות פריצה? תכתבו לנו בתגובות.. אם לא אני פשוט אתן לכם קצת חומר למחשבה במאמר הבא שיעלה לקראת הסופ"ש (או במהלכו)..

  • E1 – שיטת ריבוב לנתוני טלפוניה המעבירה 2.048 מביט לשנייה ומחולק ל32 ערוצי זמן (PCM). כל PCM מחולק ל8 TS. כל TS מסוגל להעביר 8 קילובי\ט לשנייה. PCM0 וPCM16 הם ערוצי סינכרון ואיתותים בהתאמה ואינם משמשים להעברת נתוני שיחה.
    • ראוי לציין שלא אני כתבתי את המאמר, אלא אדם חביב שאינו מעוניין בפרסום שמו 🙂 תודה
8 Comments :, , , , , more...

הקמת NAS ושינוי תשתיות

by on פבר.07, 2009, under כללי

BR-6215SRg Front

BR-6215SRg Front

מצאתי איפה לקנות את הNAS שרציתי,
קניתי Edimax BR-6215SRg!

מה יש לו:

  • 4 כניסות RJ45 בשביל LAN שעובדות בתור Switch
  • עוד כניסה RJ45 בשביל WAN שאפשר לחייג בו לADSL וכו'
  • Wifi 802.11b and 802.11g עם כל האבטחה של ימינו. מסוגל לעבוד בתור AP וגם WDS
  • שני כניסות USB 2.0 לחיבור כוננים חיצוניים, Disk On Key, או מדפסות

הרשת שלי לפני השינויים

BR-6215SRg Back

BR-6215SRg Back

  • מודם USB/ETH של B-Focus שקיבלתי מבזק, שכרגע מחייג בעצמו ומתנהג כראוטר (מריץ DHCP,DNS)
  • Switch שמחובר אל המודם, ויש לו עוד 7 יציאות
  • מחשב נייח שמחובר עם כבל לSwitch
  • רואטר אלחוטי של Level One שמחובר ביציאת Ethernet היחידה שלו לSwitch
  • מחשב נייד שמחובר אלחוטית לLevel One.

כולם מקבלים IP ישירות מהמודם B-Focus, וגולשים מולו.

מה רציתי לעשות

  • להפטר מהכמות האינסופית של מכשירים מיותרים וכבלים מיותרים
הרשת הישנה

הרשת הישנה

  • להוסיף Storage ענק לשימוש הרשת (ראה ערך "טרה של צרות")
  • אולי להריץ שרת יעודי על החומרה החדשה, להוריד טורנטים?

מבנה הרשת החדשה

  • מודם B-Focus שעובד בתור Bridge מחובר לפורט WAN של המכשיר NAS
  • מחשב נייח שמחובר לאחת מהיצאיות רשת של הNAS
  • מחשב נייד שמחובר אלחוטית לאותו הNAS
  • איכסון חיצוני שמחובר דרך USB גם כן לNAS
  • ברגע שאני אמצא את הכבל של המדפסת, גם היא תחובר לNAS

דברים שאני לא כלכך מרוצה מהם

הרשת החדשה

הרשת החדשה

  • אין חיבור SSH ללינוקס שמורץ בתוך הEdimax, אני אצטרך לפרוץ אותו או משהו, וזה לא יהיה קל (Blind + Not x86).. אולי אני אוכל לתת לו Firmware אחר או משהו…
  • הכונן קשיח החיצוני אף פעם לא נכבה, גם כשאף אחד לא משתמש בו
  • עדיין צריך את המודם המסריח של בזק, לפי מה שראיתי יש מצב שאולי אני אצליח להפתר ממנו אם אני אחליף את החיבור לקיר במשהו שמסתיים בRJ45 ולא RJ11. ואז צריך רק לראות שהWAN Port מסוגל לחיות עם זה בצורה ישירה..

לסיכום

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

6 Comments :, , , more...

מחפש משהו?

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