
הטקסט המלא של הדקות הראשונות בהרצאה «סריקת פורטים - UDP» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזו אני רוצה להראות לכם את הביתיות של סריקת פורטים ב- UDP בואו נפעיל וייר שארק ונעקוב אחרי הכבל נראה מה קורה שם תוך כדי סריקה של UDP ולמה זה לפעמים מצליח ולפעמים זה לא מצליח אז אני מתחיל לתפוס את כל הפאקטים ואני מסנן אותם מראש כדי שלא יהיה לנו בלאגן UDP פורט 67 שזה שרת DHCP אני לא רוצה את כל הפאקטים על
המסך אני רוצה רק פאקטים של DHCP דבר ראשון אני רוצה להראות לכם ש DHCP עובד זה אומר שהוא מחלק כתובות IP נעשה ifconfig נראה שיש לי פה כתובת 128 נעשה dhclient -r נראה שבאמת שחררנו את הכתובת אתם רואים באמת שחררנו את הכתובת IP אין לי אותה כרגע וdhclient בלי -r עוד פעם קיבלנו כתובת
אנחנו ממש רואים שאנחנו מקבלים ומשחררים כתובת IP והשארת עובד ועונה לי אתם רואים השארת כן עונה לי אז אנחנו רואים שה UDP עובד אבל אם אנחנו רוצים לסרוק את הפורט 67 עם Nmap שזאת תוכנת סריקה הכי טובה והכי פופולרית בשוק אתם תראו משהו מאוד מאוד מוזר אני אומר לו תסרוק לי פורט 67 ב-UDP מול כתובת IP מסוימת תראו הנה הוא פה סורק ונותן לי תשובה מאוד
מאוד מוזרה שפורט 67 ב-UDP או שהוא פתוח או שהוא פילטר מסוננס מה זה השטויות האלה, או שהוא פתוח או שהוא סגור.
זאת אומרת שה-N-MAP הזה לא יודע לקבוע האם הפורט פתוח או סגור, שזה מאוד מאוד מוזר. למה הוא כותב דבר כזה? למה הוא אומר, תשמע, אני לא יודע לקבוע? כי תראו מה קרה, הוא שלח לו פאקט ולא קיבל תשובות.
אתם רואים? מ-28, שזה אנחנו, שלחנו לי 254 פאקט ב-UDP 67 ולא קיבלנו שום תשובה. הוא לא יודע לקבוע האם לא קיבלנו תשובה, הפורט סגור או שלא קיבלנו תשובה כי לא בנינו את הפאקט באופן תקין וזה הקטע של UDP שחייבים לבנות פאקט כמו שצריך כדי שהשרת יענה לך אם אתה לא בונה אותו כמו שצריך השרת פשוט לא עונה לך וזה בדיוק מה שקרה כאן לעומת
זאת אם היינו מתשאלים את הפורט 53 שזה שרת DNS היינו מקבלים תשובה שונה למה היינו מקבלים תשובה שונה? זאת אומרת כאן הוא לא יודע בפורט 67 הוא לא יודע אם הוא פתוח או סגור אבל בפורט 53 שהוא גם UDP שימו לב הוא גם UDP ואני שואל את גוגל האם פורט 53 פתוח הוא אומר לי 53 פתוח למה 53 פתוח ו-67 או שהוא פתוח או שהוא סגור למה
פה אי אפשר לקבוע וכאן כן אפשר לקבוע וההבדל הוא שבפורט 53 הוא יודע ב-DNSית לבנות פאקט כמו שצריך.
אתם יכולים לראות פה שהוא שלח פאקט לשרת 888 בפורט 53, ובגלל שהפאקט נבנה כמו שצריך הוא ישר ענה לו. זאת אומרת בסריקת UDP חייבים לשלוח פאקט בצורה תקנית אחרת התוכנה מתעלמת ממך.
אם אתה יודע לדבר בשפת ה-DNS נניח ב-UDP בפורט 53 בצורה תקינה אז יענו לך ואם אתה לא יודע לדבר בצורה תקינה ב UDP 67 שזה שפה DHCP לא יענו לך וזאת בדיוק כל הבעיה שב UDP בסריקה חייבים לדבר בצורה תקנית בצורה של אפליקציה שעומדת מאחורי הפורט חייבים לדעת בדיוק מה אפליקציה רוצה מאחורי הפורט עכשיו תשאלו אותי למה ב-TCP לא הייתה לנו בעיה הזאת למה ב-TCP פורט נניח פורט 80 לא נתקלנו
בבעיה כזאת והתשובה היא שב-tcp בפורט 80 יש לנו תקן של מערכת ההפעלה אנחנו לא תלויים באפליקציה זאת אומרת שאם אנחנו באים לגלוש לאן שהוא נניח לאתר אינטרנט 192.168.147 יש פה הרבה פאקטים בואו נסנן קצת כמה פאקטים נלחץ פה על 147 apply filter end selected אני מוסיף את ה-port end שיהיה גם port 80 וגם IP address 147, גם שיסתנן לפי port וגם לפי IP. ואני רואה
פה שלפני שהתחלנו להעביר את המידע ב-HTTP התקין ברמת האפליקציה, לפני כן פתחנו סשן מול מערכת ההפעלה, זה נקרא לחיצת יד משולשת של TCP, SIN, SIN-ACK ו-ACK.
לפני ששלחנו מידע ברמת האפליקציה, לפני הגט הזה. אז בגלל שקודם כל עשינו לחיצת יד משולשת ורק אחרי זה שלחנו את המידע אנחנו יכולים בקלות לסרוק את הפורט 80 או כל פורט אחר ב-TCP כי יש מערכת הפעלה שהיא מדברת באופן תקני ללא שום קשר לאפליקציה שתעמוד אחרי זה.
זאת אומרת, קודם עושים תקשורת מול מערכת הפעלה ועושים לחיצת יד משולשת ורק אחרי זה מעבירים מידע ספציפי בשפת האפליקציה הספציפית.
זה יכול להיות אתר ווב, זה יכול להיות כל אפליקציה שמקבלת תקשורת, כל תוכנה שמקבלת תקשורת. אבל קודם כל אני מדבר עם מערכת ההפעלה, ובגלל שאני קודם כל מדבר עם מערכת ההפעלה, אני יודע בדיוק לפי איזה תקן לדבר איתה.
לעומת זאת ב- UDP, נניח פורט 67, אם אני לא מדבר בצורה תקנית עם האפליקציה, כמו שזה קרה פה, הוא פשוט לא עונה לי. זאת אומרת שאם אני אדבר איתו בצורה לא תקנית כי אין לי פתיחת סשן, פתיחת שיחה ברמת מערכת ההפעלה אני תלוי אך ורק באפליקציה ואז אם אני אשלח פאקט לא תקין לאפליקציה כמו שזה קרה כאן אני לא יכול לקבוע
האם הוא לא ענה לי בגלל שהפורט סגור או שהוא לא ענה לי בגלל שאני לא יודע לדבר בשפה שלו כי אין פה הקמת ערוץ תקשורת מסודר מול מערכת ההפעלה אני ישר שולח פאקט בשפה של אפליקציית היעד מערכת ההפעלה ב UDP מעבירה את המידע ישירות לאפליקציה היא לא מתערבת בתקשורת ואז הכל תלוי באיך האפליקציה מגיבה לפאקט שאני שולח.
ואם אני שולח פאקט לא תקין, כי אני לא יודע איך לדבר בשפה של אותה אפליקציה, בפרוטוקול של אותה אפליקציה שעומדת מאחורי הפורט, אז היא פשוט לא עונה לי.
ואם היא לא עונה לי, אני לא יודע אם היא לא עונה כי היא לא שומעת אותי ואין שם בכלל תוכנה שעובדת, או שהיא לא עונה לי כי פשוט אני לא יודע לדבר בשפה שלו.
ולכן סריקת פורטים היא מאוד מאוד בעייתית, ב UDP חייבים לדעת מול מי מדברים ואיך לדבר ולכן NMAP ברירת מחדל סורק רק TCP ואנחנו יכולים להגיד לו לסרוק גם TCP וגם UDP אם אנחנו נגיד לו לסרוק גם TCP וגם UDP בוא נראה מה יקרה בכבל רשת שלנו נעשה לו פה למטה שיגלול כל הזמן למטה ונריץ את זה פסט סלקשן בוא נגיד לו לסרוק גם TCP וגם UDP והנה הוא מתחיל לסרוק אתם רואים
TCP קודם כל הוא הוא סורק את ה-TCP ואחרי זה הוא סורק את ה-UDP ואז הוא נותן לי פה, שימו לב לאיזה תשובה מעניינת, 1,000 פורטים או שהם פתוחים או שהם סגורים, זה אני לא יודע לקבוע, כנראה שזאת התשובה של UDP ו-996 פורטים סגורים בוודאות וארבע פתוחים, זה TCP.
אז החלק הזה של TCP הוא מאוד מאוד ברור, החלק הזה של UDP עם 1,000 פורטים או שהם סגורים או שהם פתוחים ממש לא ברור. כמובן שב-UDP אם הוא כן יודע לדבר בשפה של תוכנת היעד, כמו ב-DNS, אז הוא כן יכול לתת לי תשובה.
זאת אומרת, אם אני מתשאל אותו בפורט 53, שהוא יודע איך לדבר עם ה-DNS בפורט 53, אז הוא יודע להגיד לי שזה אופן. כן, UDP פורט 53, ראינו את זה, נכון? הנה, הוא שאל אותו, והנה הוא ענה לו. דבר אחרון שאני מראה לכם זה מה עושים אם כל הפורטים סגורים ואף אחד לא עונה לי.
אם אף אחד לא עונה לי ואף אחד לא רוצה לדבר איתי, אני יכול לרדת לרמה הכי נמוכה בתקשורת, שזה רמת הברזלים,