כל הזכויות שמורות לטל בן שושן – Shushan.co.il
Nmap המאמר המלא – ביצוע סריקה ועקיפת IDS\IPS
*עקיפה IDS\IPS נמצא בסוף המאמר
כאשר אנחנו רוצים לסרוק את הרשת בה אנו נמצאים, זאת על מנת לאתר אילו מהם פעילים, איזה פורטים פתוחים במחשבים הפעילים, אנו נרצה להשתמש ב NMAP, NMAP הוא כלי לאיסוף מידע, פורטים, סריקות של מחשבים ברשת.
כאשר אנחנו מדברים על פרוטוקול TCP ו UDP אנחנו מדברים על פרוטוקול אחד אמין ואחד לא אמין (שגר ושכח)
כאשר מתבצעת פעולת ה Three-way handshake מתבצע בתחילתו Syn כאשר השלב הבא הוא ACK + SYN
מחשב 1 שולח Syn למחשב 2
מחשב 2 מקבל את הSyn אז שולח למחשב 1, Syn + ACK ( ה ACK הוא להגיד לו שהוא קיבל את ה"שיחה" וSyn נוסף הוא לפתוח את השיחה בינהם
בסיום השיחה כאשר אחד מהם ירצה לסיים את השיחה כולה הוא ישלח דגל Fin המורה לו על סיום השיחה.
גילוי מחשבים פעילים
Arguments
-iL
-iL IpList.txt
אפשרות זו טוענת לסריקה קובץ שהכנתם עם רשימת כתובות IP למשל
nmap -sS -iL IpList.txt
-iR
מאפשר לנו לבצע סריקה של כתובות IP ראנדומליות ולבדוק האם יש פורט פתוח בכתובת IP, לא משנה איזה כתובת
תוכלו להשתמש בפקודה: על מנת לחפש האם יש שרתים כלשהם ברשת שפתוח בהם פורט 80
nmap -Pn -sS -p 80 -iR 0 –open
–exclude \ –excludefile file.txt
על ידי פקודה זו נוכל לבטל \ לדלג על סריקה של כתובות מסוימת, אם זה רשימה בתוך קובץ טקסט או כתובות IP מסוימים
nmap -sS 192.168.1.10 –excludefile file.txt
nmap -sS 192.168.1.10 –exclude host1 host2 …
list scan -sL
בתצורה זו ה nmap לא יבצע פינג או ישלח Packet מכל סוג שהוא, בתצורה זו הוא מבצע שאילתת DNS הפוכה על מנת לגלות את שם התחנה \ הדומיין גם את השם שמאחורי כתובת ה IP
nmap -sL shushan.co.il
ניתן יהיה לראות את שם השרת עליו מאוחסן האתר – vultr!
-sn
סריקה זו אומרת לnmap, אל תבצע סריקת פורטים, אלא תציג רק אילו "מחשבים" פעילים או לא
למשל הפקודה
nmap -sn 192.168.1.1-254
בסוף, הוא יציג לכם סריקה של 254 הוסטים ,כמה מהם פעילים ואילו בדיוק מהם פעילים
ניתן להשתמש גם בפקודה
nmap -sn -n -v 192.168.10-254
-n הצג את הקפיצות ליעד ( יציג לנו בצורה אנכית את הכתובות אחת אחת)
-v קיצור של verbose , יציג את כל המידע על הסריקה
-Pn
בתצורה זו NMAP מדלג על סריקה האם המחשבים פעילים או לא (הוא מדלג על שלחת ה SYN), בנוסף הוא משתמש ב Probing וככה למעשה יכול לנסות לקבוע אם הפורט פתוח או לא הוא פשוט מריץ על כל הטווח את בדיקת הפורטים ורק בסוף יציג תוצאה
נשתמש בתכונה זו תמיד אם הHost מוצג ג Down כיוון שאין פינג אליו, לרוב אם פיירוואל חוסם ICMP אז התחנה למעשה כן "קיימת ברשת" ולכן נשתמש במצב זה ב-Pn
nmap -Pn 192.168.1.1-254
-PS
בתצורה זו הNMAP יבצע בדיקה האם המחשב פעיל על ידי שליחה של SYN בודד אחד,אם השרת ישלח בחזרה אלינו דגל מסוג RST זה אומר שהפורט סגור, אם הפורט פתוח המטרה (השרת) ישלח לנו כעת SYN + ACK כמו שהסברתי למעלה, מאותו הרגע המכונה שלנו עם ה NMAP תחזיר למטרה \ שרת דגל מסוג RST ובכך "תשבור" את ה Threeway Handshake
nmap -PS 192.168.1.1-254
-PA
בתצורה זו הNMAP שולח ACK ו SYN במקום SYN בלבד ובכך בודק אם הפורט פתוח או סגור, אם סגור המטרה תשלח לנו RST אם פתוח הוא ישלח SYN ואם סגור נקבל מהמטרה RST. על ידי שליחה של גם SYN + ACK אנחנו מעלים את הסיכוי לדלג על ה FW שנאמר מבצע חסימה של SYN מתמשכים.
nmap -PA 192.168.1.1-254
-PU
בדיקה זו מבצעת בדיקה האם הHost פעיל או לא על ידי שליחה של UDP Ping, כאשר המטרה מחזירה שגיאה ICMP port unreachable זה אומר שהפורט סגור, אם הוא מקבל חסימה או חוסר תגובה, זה אומר שהמכונה למעלה
nmap -PU 192.168.1.10-254
-PY
אפשרות זו שולחת SCTP Packet במצב זה הוא שולח דגל INIT בלבד, אם הפורט בתחנה סגור הוא יקבל INIT-ABORT ואם הוא פתוח הוא יתחיל ב SCTP ובתהליך הפרוטקול שלו שהוא Fourway-HandShake
-PE, -PP, -PM
בתצורה זו כאשר nmap שולח בדיקה האם המטרה פעילה או לא הוא יכול לבצע זאת על ידי פינג שהוא ICMP, למעשה ברגע ששלחנו למטרה ICMP מסוג Eco Request אנחנו צריכים לקבל מהמטרה Eco Reply, לרוב ברגע שהIPS \ FW מבין שמבוצע סריקה מסוג זה הוא חוסם את הסריקה.
-PO
אפשרות זו בודקת אם המחשב פעיל ואת הפורטים על ידי שליחה של IP Ping זו תצורה יחסית חדשה בNMAP והוא משלב את הסריקה של TCP ו UDP ו SCTP בכך מיישם אותם בסריקה אחת.
-PR
נפוץ מאוד בסריקה של רשת LAN שבה אתם נמצאים, שכן המחשב שלכם מקבל ARP מכל המחשבים המחוברים ברשת, בתצורה זו הוא שולח ARP Request על מנת לקבל תשובות משאר המחשבים ברשת וכל מחשב שפעיל אמור לשלוח חזרה הודעה וברגע שהוא מצא את המחשבים הפעילים הוא יבצע עליהם סריקת פורטים
–disable-arp-ping
על מנת לבטל לחלוטין סריקה של ARP על ידי NMAP יש להקיש את הפקודה הזו
–traceroute
על מנת לראות מה הקפיצות ליעד ניתן להשתמש בפקודה זו
-n
יבטל את בדיקת ה DNS לכל Host ו Host
-r
יבצע בדיקת DNS לכל ההוסטים
–system-dns
יבצע בדיקה של ה Hosts שאנחנו סורקים מול שרת הDNS של המחשב
חיפוש פורטים פתוחים
ל NMAP קיימים 6 קטגוריות של פורטים
Open
התוכנה \ אפליקציה מקבל חיבורי TCP \ UDP או SCTP וזו המטרה הראשית בחיפוש פורטים פתוחים וסריקתם ואילו המטרה הנגדית היא של פיירוואל שמטרתו היא לחסום את הפורטים האלו למי שאינו מורשה
Closed
הפורט פתוח אך אין שום שירות שמאזין לו, כדאי לבדוק לאחר זמן מה אם אותו השירות שמשתמש בפורט הזה עלה, שכן פתחו את הפורט הזה לשימוש אבל אין שום אפליקציה פעילה.
זהה למצב בו פותחים פורט בפיירוואל אבל אין שום אפליקציה שמשתמשת בפורט הזה ולכן הוא פתוח אבל סגור.
Filtered
פורטים אלו חסומים ב FW או על ידי כלים אחרים ויוצגו כ Filtered, למעשה הNAMP לא מסוגל לקבוע אם הפורט חסום או סגור
Unfiltered
הוא מייצג שהפורט לא זמין, זאת אומרת שהוא אינו מצליח לקבוע אם הפורט פתוח או לא ורק סריקת ACK (סריקה מסוג -sA שנדבר עליה בהמשך) יכולה להציג פורטים בתצורה הזו ורק סריקה "שקטה" כמו SYN שהוא sS או FIN יכולים לגלות אם הפורט הזה פתוח או לא
Open|Filtered
כאשר NMAP לא מצליח לקבוע אם הפורט ה Filtered או פתוח הוא מציג את זה בתצוגה הזו, זאת אומרת שהפורט פתוח אבל הוא לא יודע אם יש שירות מאחוריו או לא.
Closed|Filtered
NMAP לא מצליח לקבוע האם הפורט סגור או Filtered ועל כן יש להשתמש בסריקה שקטה
סריקת פורטים
-sS
זה סריקה מסוג Syn והוא הנפוץ ביותר, הוא מהיר ביותר ויכול לסרוק אלפי פורטים בכמה שניות ובכל זאת להישאר "מוסתר" מפני מערכות IPS אשר נמצאות ב Firewall וזאת על ידי כך שהוא אינו מסיים את פעולת ה TCP במלואה ולא שולח דגל Fin
והסריקה לרוב נקראת "חצי סריקה" בגלל שהוא לא פותח תקשורת TCP מלאה ונעצר ב SYC+ACK
בצורה זו NMAP ישלח SYN + Port שאותו נרצה לבדוק ואז השרת ישלח לנו SYN +ACK אבל, באותו הרגע נשלח לו RST על מנתל סיים את ההתקשרות ובכך לא לסיים את ה TCP threeway handshake וזה למה זה חצי סריקה
בצעתי סריקת -sS
כעת אפעיל Wireshark ואבדוק את החבילה
ניתן להבחין שאני שולח RST שכן אני רוצה לבצע חצי סריקה
-sT
כאשר לא ניתן להשתמש ב-sS בסריקת SYN ניתן להשתמש בסריקה פחות טובה שהיא סריקת TCP Connect, על ידי סריקה זו ה NMAP שולח בקשת TCP בתצורה בה הNMAP מבקש מהשרת עצמו ליצור איתו קשר במה שנקרא System Call לרוב עדיף להשתמש בSYN Scan
בגלל שהקשה היא בקשה מלאה היא רועשת יותר, שכן מערכת IPS\IDS תזהה אותו, זאת אומרת שהוא שולח SYN ומספר הפורט שהוא רוצה לבדוק (הקאלי) והשרת שולח SYN+ACK
- אם השרת שולח ACK+RST אנחנו יודעים שהפורט פתוח
- אם הוא שולח RST ישר אחרי, אנחנו יודעים שהפורט סגור
כאן הרצתי סריקת sT מלאה
כעת פתחתי WireShark ובדקתי אילו Packet עברו
ניתן להבחין שנשלח ACK + RST וכך אנחנו יודעים שהפורט פתוח
-sU
סריקה זו למעשה סורקת את הרשת בפורטים של UDP, יש הרבה שמוותרים על סריקה זו, אך זו טעות שכן אפליקציות כמו SNMP פועלות בטווח זה (161) ולרוב משלבים את הסריקה יחד כך:
nmap -sU -Ss 192.168.1.1-254
-sV
יבצע סריקה לגירסה של הפורט אותו הוא מחפש
-sY
סריקה זו היא מסוג SCTP והוא פרוטוקול יחסית חדש לTCP ו UDP ויש אפליקציות מסוימות שמשתמשות בפרוטוקול זה שמשלב בין TCP לUDP ובכך יעיל יותר.
-sN -sF -Sx
-sF
סריקת FIN הNMAP שולח דגל FIN ישר ואם המטרה לא מחזירה כלום, הפורט פתוח ואם הוא שולח RST+ACK אז הפורט הוא סגור
XMAS Scan
סריקת XMAS, או בשמה השני סריקת "עץ חג המולד" משתמש בחולשה בTCP שאם שולחים את שלושת הדגליםFIN PSH ו URG ומקבלים חזרה RST זה אומר שהפורט סגור ואילו אם לא נקבל תשובה כלל, הפורט למעשה פתוח
בצעתי את הסריקה
פתחתי Wireshark וניתן להבחין בדגלים FIN PSH URG
-sA
בדיקה מסוג ACK ששולח דגל מסוג ACK ובכך בודק אם הכתובת שהיא כתובת של FW היא Stateful או Stateless
Stateless- אומר שהפיירוואל לא פותח את הPacket כולה וקורא רק את ה Heder
Stateless – אומר שהפיירוואל פותח את כל ה Packet ובדוק את התוכן וכך קשה יותר לעקוף אותו
הוא שולח רק ACK ובכך מחכה לקבל RST על כל פורט שמחזיר RST הוא מבין שהפורט פתוח אך אינו יודע אם יש שירות מאחוריו.
-sW
הוא דומה מאוד ל-sA הוא שולח דגל ACK אבל בהודעת ה RST שמגיעה חזרה הוא בודק את ה Windows Size שם בחלק מהאפליקציות אם חוזר 0 זה אומר שהפורט סגור ואם חוזר 1 זה אומר שהפורט פתוח
-sM
הM מייצגת מימון, כן כן ישראלי בשם אוריאל מימון שעל שמו נקרא אופציה זו והוא זה שגילה אותה
הוא גילה שמערכות מסוג BSD (יוניקס) כאשר נשלח FIN\ACK והפורט פתוח, הן פשוט מפילות את החבילה ולא שולחות RST ובכך כל חבילה שNAMP יפיל בתצורה זו יהיה פורט למעשה פתוח.
NULL Scan
הוא שולח חבילת TCP ריקה, ללא סימוני דגלים אם המטרה לא מחזירה כלום אז הפורט פתוח ואם הוא שולח RST/ACK אז הפורט סגור
ניתן לבצע את החיפוש בפקודה
nmap -sN -v 192.168.31.63
–scanflags
יהיה סריקה עצמאית למשל
–scanflags ackfin
ישלח ACK ו FIN
למשל
–scanflags syn
יבצע את אותה הפעולה כמו -Ss
-sI
סריקה מתקדמת בה ניתן להזין כתובת IP של מכונה אחרת לה יש לנו גישה והסריקה תבוצע מהמכונה הזו ותוחזר אלינו
IDLE Scan – Zombie Scan
על מנת להתחמק מIDS\IPS נשתמש בזומבי, מהקאלי שלנו נריץ סריקת לגילוי פורט 80, נבצע Source Spoofing בכך שנכניס ב Source IP כתובת של שרת\מחשב אחר ובכך המטרה תחזיר את ההודעה לשם
-D
יבחר רנדומלית כתובות IP לביצוע Spoof IP וכך המטרה תחשוב שהבקשה הגיע מכתובות אחרות
nmap -D 192.168.31.5,192.168.31.6 192.168.31.63
192.168.31.63 – זה הכתובת שאנחנו סורקים, שאר הכתובות שהזנתי הוא יכניס כ Source IP
נוכל גם להקיש
nmap -D RND 192.168.31.63
RND הוא קיצור של Random , כך ה NAMP יזין כתובות רנדומליות
חיפוש IDLE יבוצע כך:
nmap -sI 192.168.31.99 192.168.31.63
ניתן לבצע חיפוש ע"פ זמן כך:
nmap -T4 -A -v 192.168.31.63
-T מ 1-5 ומגדיר מה המהירות של סריקת הפורטים – כך זה יראה למערכת ה IDS כאילו הגיע Traffic רגיל
-A בודק את הגרסה של המערכת ומידע נוסף
טווחים
-p
חיפוש של טווח פורטים מסוים למשל
nmap -sS -p1-1000 192.168.1.10
יבצע סריקה של הפורטים מ 1 עד 1000
–exclude-ports
על ידי פקודה זו נוכל להגדיר לו אילו פורטים לא לסרוק
-F
ברירת המחדל של סריקת NMAP (של כמות הפורטים שהוא סורק) זה 1000 על ידי התוספת -F הוא יבצע סריקה של 100 הפורטים הנפוצים ביותר ולא 1000 ובכך הסריקה תיהיה מהירה יותר
-r
יבצע את הסריקה והתוצאה לפי סדר נומרי מ 1 עד 1000 אם הגדרתם סריקה רגילה
גילוי שירותים \ שמות וגרסאות \ מערכות הפעלה
-Sv
מבצע סריקה של השירות, את השם שלו ואת הגירסה שלו אם הוא מצליח לקבל מהפורט הפתוח והאפליקציה אשר משתמשת בפורט זה
–allports
יבצע בדיקה לכל הפורטים וינסה לברר את שמם וגרסתם
-O
מנסה לגלות את גרסת מערכת ההפעלה שאותה אנו סורקים
nmap -O 192.168.31.63
NSE – Nmap Scripting Engine
הוא למעשה סקריפט סריקה של NMAP ניתן להוריד או להשתמש בסקריפטים קיימים של סריקה
-sC
מבצע סריקה של הסקריפט ברירת המחדל
–script
בחירת סקריפת סריקה
nmap –script "http-*"
יבצע סריקה בעזרת כל סקריפט שמתחיל ב http
nmap –script "not intrusive"
יפעיל את כל הסקריפטים של הסריקה חוץ מאלו הנחשבים כ"מוגזמים"
פקודות נוספות
-v
יציג את כל פעולות הסריקה
-d
יציג תקלות או בעיות אם קיימות בזמן הסריקה
–reason
יציג מה קבע שהפורט \ המטרה הזו פתוחה או פעילה, אם זה SYN קבע זאת? האם זה ACK קבע זאת?
–open
הצג רק פורטים פתוחים שבהם נוכל להשתמש
-oX
-oX tal.xml
ייצא את המידע לקובץ XML שאותו ניתן למשל לטעון ל Metasploit או להשתמש בו באפליקציות אחרות של איסוף מידע.
–stylesheet
–stylesheet tal.xml
בתצורה זו גם כאן המידע מיוצא לקובץ XML שאותו ניתן לפתוח ב Firefox בתצוגה נוחה.
ניסיון לעקוף IDS\IPS
Packet Fragmentation – בצורה זו הNAMP מתחמק מהצורה התבניתית של גילוי ע"י IDS וכל זה כי אנו מחלקים את ה Fragment ליותר חלקים קטנים, הוא כנראה יתעלם מהם עקב כך שזה דורש כוח עיבוד גדול יותר, בכללי מערכות IDS כיום כן יכולות להבחין בתצורה זו
nmap -f 192.168.1.10
מלכודת (זומבי, הסברתי גם למעלה) – NMAP יגדיר כתובות בעצמו לביצוע IP Spoofing וכך המטרה והFW יחשבו שזה תחנה אחרת מבצעת את הסריקה, כמובן שאם הSpoof IP מגיע מרשת שלא מחוברת לרשת ממנה הגיע הבקשה רוב הFW ידעו ויחסמו את הסריקה
ההבדל בינו לבין Spoofing Source IP זה שהFW כן מקבל את הכתובת המקורית שלכם, אבל גם את הכתובת "שזייפתם"
נניח פורט 135 ונסרוק את הכתובת 192.168.1.10
nmap -D 192.168.1.20 -p135 192.168.1.10
Spoof Source IP Address – בתצורה זו התוקף יזייף את כתובת ה IP וכאילו הסריקה מבוצעת מכתובת מסויימת גם כאן הFW יכול לגלות שהפורט ממנו הגיע הכתובת המזוייפת לא שייכת לו ולחסום אתכם בטענה של IP Spoofing
nmap -S 192.168.1.100 192.168.1.10
Spoof Source Port – בתצורה זו התוקף יזייף את ה Source Port הכוונה היא שאם בFW יש חוק כמו 53 שכן מאפשר גישה, איתו נוכל לבדוק אם הגישה פתוחה
nmap --source-port 139 192.168.1.10
Scaning Time- מהירות הסריקה בהחלט יכולה לקבוע אם מבוצעת סריקת NMAP , למעשה מערכת ה IDS\IPS בודקת, אם תוקף מנסה לבצע 1000 SYN אל פורטים במחשב מסוים ברשת אז מבוצעת סריקה, אבל החישוב הוא בתוך כמה זמן , אם הסריקה תהיה איטית יותר אז מערכת ה IDS\IPS לא יבחין בסריקה
T0 – פאראנואיד מחכה 5 דקות בין כל שליחת Probe – לרוב לא מתגלה על ידי IDS\IPS
T1 – ימתין 15 שניות
T2 – ימתין כמה שינות
T3 – סריקה רגילה
T4 – סריקה מהירה
T5 – הכי מהירה – פה כבר IDS IPS יגלה אתכם דיי מהר
nmap -T2 -sS 192.168.1.10