לדלג לתוכן

סריקת רשת דומיין כבודק חדירות

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

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

שלב 1: סריקת רשת ללא גישה למשתמש דומייני

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

גילוי טווחי כתובות IP ודומיינים

שימוש ב-nmap

nmap -sn 192.168.1.0/24   # גילוי מכשירים ברשת
nmap -p 53 --open 192.168.1.0/24  # חיפוש שרת DNS

הפקודות למעלה עוזרת לנו לחפש ip-ים שאיתנו בsubnet, וסורקת שרתי dns של הדומיין.

גילוי דומיינים עם reverse lookup

for i in {1..254}; do host 192.168.1.$i; done

הפקודה למעלה תריץ לולאה בbash שיודעת להשתמש בפקודה host שיודעת לעשות reverse lookup ולראות לאיזה דומיין הip מצביע.

איסוף מידע על עמדות קצה

שימוש ב-enum4linux

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

enum4linux 192.168.1.100

הפקודה enum4linux יודעת לסרוק את כל השירותים הדיפולטים בווינדוס, (smb, rpc וכו) ולהביא את כל המידע שניתן להביא מהם, שמות / משתמשים ועוד.

שימוש ב-smbclient

הפקודה smbclient היא לקוח לsmb.

smbclient -L \\192.168.1.100 -N

באמצעות הדגל -N אנחנו יכולים לקבל רשימה של share-ים ציבוריים.

זיהוי domain controller-ים

nslookup -type=SRV _ldap._tcp.dc._msdcs.<domain>

על פי שם הדומיין של הרשת, הפקודה הבאה יודעת לבצע שאילתת dns כדי להביא ip-ים ברשת שמזוהיים כהdomain controller.

שלב 2: סריקת רשת עם גישה למשתמש דומייני

אם הצלחנו להשיג גישה למשתמש כלשהו, האפשרויות שלנו מתרחבות משמעותית.

שליפת מידע מהדומיין

שימוש ב-net

net user /domain    # הצגת כל המשתמשים בדומיין
net group "Domain Admins" /domain    # הצגת מנהלי הדומיין

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

שימוש ב-ldapdomaindump

תזכורת: פרוטוקול ldap מאפשר לנו לשלוף מידע באמצעות שאילתות.
בdomain controller-ים כדי לשלוף מידע על הactive directory ועל כל הדומיין, עושים זאת באמצעות פרוטוקול ldap.
כל תת פקודה בnet עם הדגל "/domain" מביאה את המידע באמצעות לתשאל את הDC עם ldap.

ldapdomaindump -u 'DOMAIN\user' -p 'password' 192.168.1.100

הפקודה ldapdomaindump יודעת להביא עם ldap את כל המידע שאפשר להביא על הדומיין מהdc.

שימוש ב-csvde

בגדול עוד כלי לשליפות ldap כמו ldapdomaindump רק שפה אפשר לעשות שאילתות יותר מדוייקות על פי סוג האובייקט הדומייני שעליו נרצה לשלוף.

csvde -f users.csv -r "(&(objectClass=user))" 

ניתוח מבנה הרשאות עם BloodHound

ובדיוק כמו ldapdomindump, הכלי BloodHound הוא כלי שיודע לשלוף את כל המידע עם ldap מהdc על הדומיין, רק שBloodHound הוא כלי מיוחד בשביל בודקי חדירות, שיודע למפות עם גרף את כל המשתמשים, הקבוצות והמחשבים ויודע להראות מה הדרך הקצרה ביותר, או המחשבים שאצטרך להריץ עליהם קוד כדי להגיע לדומיין אדמין בכמה שיותר קלות.
כלי זה מומלץ ביותר, קראו עליו ולמדו להשתמש בו! הוא יעזור לכם בניתוח של הדומיין והאפשרויות.

neo4j console &
bloodhound-python -u user -p pass -d domain.local -c All

- שימו לב שהכלי עובד על database בשם neo4j, אז קודם תצטרכו להריץ אותו ורק אז את הכלי.

סריקה עם PingCastle

בגדול כלי ענק עם המון פיצ'רים שמאפשר לנו לסרוק את רשת הדומיין ואפילו יודע לזהות פגיעויות בקונפיגורציה!
נסו להריץ ברשתות שאתם נתקלים בהן.

pingcastle.exe --healthcheck --server DC1.domain.local