קלאטו באראדה Nikto
המאמר מתמקד בהרצת בדיקות מול אתרי WEB באמצעות Nikto על גבי Kali אשר מבוסס על Windows 10.
“קלאטו באראדה ניקטו” וכן לא מדובר על מלחמת הכוכבים, אלא על Nikto אחר שמוצא חולשות ובעיות אבטחה קריטיות ואולי עלול לגרום לארגון לעמוד מלכת.
השלב הראשון במתודולוגיה של Cyber Kill Chain היא איסוף המידע Reconnaissance ובמהלכו אנו מבצעים בדיקות שונות אשר כוללות בין היתר: חיפוש מטרת תקיפה, פרטים אודות המטרה, מערכות שדרכם ניתן לתקוף, מערכות אשר מכילות חולשות או בעיות אבטחה וכן הלאה.
איסוף המידע נחלק לשניים:
- איסוף אקטיבי – מצב שבו התוקף מבצע פעולות איסוף בצורה ישירה מול המטרה כדוגמת סריקת פורטים, סריקת שרתים, מציאת חושלות וכן הלאה.
- איסוף פסיבי – מצב שבו התוקף מבצע פעולות איסוף בצורה לא ישירה ולא מול מערכות ארגוניות של המטרה.
הערה: החברה שפיתחה את Cyber Kill Chain היא לוקהיד מרטין ובמקור Kill Chain שימש כמונח צבאי, ובמהלך השנים התפתחה המתודולוגיה של אבטחת מידע.
אלה הם שלבי תקיפה במתדולוגיה Cyber Kill Chain של Lockheed Martin.
איסוף מידע ובדיקות Nikto
מכיוון שהשלב הראשון של Cyber Kill Chain הוא איסוף המידע ישנם כלים, מערכות וצורות שונות לאיסוף מידע על מטרת התקיפה ובהתאם למטרת התקיפה והמערכת שאנו רוצים לבצע מולה את התקיפה. כלים רבים ושימושיים נמצאים גם בהפצת Kali ובאמצעות כלי Nikto לסריקת בעיות אבטחה אשר יכול לשמש גם לאיסוף המידע.
Nikto הוא כלי לביצוע סריקות אתרי WEB ומציאת חולשות, וכן מציאת הגדרות לא נכונות (misconfiguration) וחיפוש בעיות אבטחה, אך לצד שכל אלה ניתן להשתמש בו גם לאיסוף מידע על אתרי WEB שכן המידע שניתן להפיק באמצעות Nikto הוא בעל ערך.
כאמור Nikto הוא רכיב אשר סורק ומבצע בדיקות מקיפות נגד שרתי אינטרנט עבור רכיבים רבים, בין היתר, מעל ל 6700 סוגי קבצים ואפליקציות מסוכנות, בדיקות עבור גרסאות מיושנות של מעל 1250 סוגי שרתים, ובעיות ספציפיות לגירסה על מעל 270 שרתים. בנוסף, Nikto בודק אם קיימים פריטי תצורת שרת כגון נוכחות של קבצי אינדקס מרובים, אפשרויות שרת HTTP ואף ינסה לזהות שרתי אינטרנט ואפליקציות מותקנות.
חשוב להדגיש כי Nikto מיועד לביצוע בדיקות וסריקות של בעיות אבטחה מול אתרי WEB. הפעלת Nikto היא פעולה פשוטה ומדובר על כלי שמגיע מוכן באופן יחסי עם מאגר חולשות, מאגר סיכונים ושרתים שעמם הוא מבצע את הבדיקה.
Nikto מבוסס הינו כלי מבוסס WEB וקוד פתוח המאפשר לבצע בדיקות אבטחה שונות על גבי אתרי WEB ומכיל 7000 סוגי בעיות בקבצים (מבוססים CGI), מכיל 1200 שרתים המבצעים בדיקות שונות לשרתים שאינם נמצאים עם עדכונים קריטיים.
בנוסף לכך Nikto מבצע בדיקות קונפיגורציה של אתרי WEB הכוללים בין היתר: אפשרויות HTTP, בדיקת קובתי Index, בדיקת Headers וכן הלאה. מטרת Nikto היא לאסוף את המידע ולזהות בעיות אבטחה, לאחר שהמידע נאסף באמצעות דוח של Nikto אנו יכולים לקחת את הממצאים לשלב הבא.
האפשרויות והיכולות של Nikto מאפשרות לבצע את הפעולות הבאות ולקבל את המידע על סמך הנקודות הבאות:
- בדיקת שרתים שאינם מעודכנים (Outdated)
- שמירה של הדוח בפורמטים שונים (XML, HTML וכן הלאה)
- תמיכה מול HTTP Proxy
- אפשרויות לעריכת דוחותת
- סריקה של פורטים רבים בו זמנית
- בדיקה לפי קבות קונפיגורציה
- בדיקה מול Subdomain
- תמיכה מול Plugin שונים (כיום ישנם כמעט 40)
- בדיקת סוגי אוטנטיקציה
- בדית Headers לאתקינים או שאינם מוגדרים בצורה לא נכונה
התקנת Nikto
התקנת כלי Nikto היא פעולה פשוטה שאורכת מספר דקות בודדות ולאחר מכן ניתן להתחיל בריקה של אתרי WEB. בכדי להתקין את Nikto יש לבצע את הפעולות הבאות:
מתוך ממשק Kali נריץ את הפקודה הבאה
sudo apt-get install nikto
לאחר מכן נריץ את Nikto ונקבל את הפרמטרים השונים
הערה: ישנם מצבים בהם אין אפשרות להתקין את Nikto בגלל עדכונים חסרים של Perl ולכן יש לבצע עדכונים בהתאם.
בדיקות אבטחה
לאחר שהתקנו את Nikto נוכל להתחיל באיסוף המידע וזיהוי בעיות אבטחה מול אתרי WEB, הרצת הפרמטרים השונים של Nikto נעשים בהתאם לבדיקת מול אותו אתר WEB.
למשל בדוגמה שלפנינו הרצתי בדיקה פשוטה מול האתר של Portal.office.com ועם הפרמטרים הבאים:
nikto -h portal.office.com -s
בצילום המצורף ניתן לראות רק חלק מינורי מתוך הבדיקה שמבוצעת ע”י Nikto אך בשלב ראשון ניתן לזהות פרטים רבים אודות האתר (מידע על XSS, מידע על סוג השרת, סוגי הגנה וכן הלאה) ואפילו זיהוי חולשה קריטית.
ישנם דרכים נוספות לבצע בדיקה וסריקה עם Nikto למשל:
הצגת פרטים מפורטים באמצעות הוספת פרמטר Verbose ולמעשה נריץ את הפקודה
nikto -Display -v -h aws.amazon.com
או לחלופין נריץ את הפקודה לביצוע בדיקה ספציפית עם הפרמטר -Tuning 9 (בדיקת SQL Injection)
סוגי הבדיקות שניתן לבצע באמצעות Nikto הם:
- 0 – File Upload
- 1 – Interesting File / Seen in logs
- 2 – Misconfiguration / Default File
- 3 – Information Disclosure
- 4 – Injection (XSS/Script/HTML)
- 5 – Remote File Retrieval – Inside Web Root
- 6 – Denial of Service
- 7 – Remote File Retrieval – Server Wide
- 8 – Command Execution / Remote Shell
- 9 – SQL Injection
- a – Authentication Bypass
- b – Software Identification
- c – Remote Source Inclusion
- x – Reverse Tuning Options
לסיכום
בדיקת בעיות אבטחה מול אתרי WEB אינו רק הרצת כלי מסוים כדוגמת Nikto אלא תהליך מורכב מעט יותר אשר כולל מספר שלבים של: סריקת פורטים, סריקת חולשות, סריקת בעיות קונפיגורציה, בדיקה קבצים שונים וכן הלאה. רק לאחר השלבי הבדיקה ניתן לבצע ניתוח של המידע, כאשר בניתוח המידע ניתן לראות בצורה מעמיקה יותר את הבעיות והממצאים.
Nikto הוא אחד מבין מספר כלים קיימים של סריקת אתרי WEB הקיימים בהפצת Kali לביצוע סריקה ובדיקות על שרתי WEB אך הוא יכול לשמש ככלי באיסוף מידע וזיהוי בעיות.
פרטים נוספים לגבי הכלי Nikto | Penetration Testing Tools (kali.org)