Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security Pen-Test
[Top] [All Lists]

RE: custom xp_cmdshell on SQL Server

Subject: RE: custom xp_cmdshell on SQL Server
Date: Mon, 18 Sep 2006 12:31:41 +0200



From: "Victor Chapela" <victor@sm4rt.com>
To: "'Andy Lester'" <pentest1269@hotmail.com>, >
1) The problem with CREATE PROCEDURE is that it has to be the first
statement in a batch query. Within a sql injection you are always, at least,
the second statement after the one you injected into.

Correct. But since I am injecting 'CREATE PROCEDURE' inside an OPENROWSET statement, that should solve the issue, as the SQL code inside the OPENROWSET is executed as a batch in itself (correct me if I am wrong)


2) Sometimes xp_cmdshell seems not to be working (especially if you are
doing it through openrowset which ends up being blind). You may have SQL
Server running with an unprivileged user. Did you try a ping to localhost
and check for the 4 sec delay? That almost always works.

I am running my code as an unprivileged user, but I escalated to 'sa' using OPENROWSET


3) Even if you do get execution by restoring xp_cmdshell, injecting through
openrowset has severe complications when trying complex queries. The best
way I have found to overcome these limitations is by temporarily increasing
privileges of the user you are going through.

' and 1=(select * from
openrowset('SQLOLEDB','DRIVER={SQLServer};SERVER=<server>;UID=sa;PWD=<passwo
rd>',N'select user; declare @u varchar(50); set @u = (select system_user);
exec master.dbo.sp_addsrvrolemember @u, ''sysadmin'''))--

Nice trick !... I will give this a try :)

Thanks

Andy

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http://search.msn.com/



------------------------------------------------------------------------ This List Sponsored by: Cenzic

Need to secure your web apps?
Cenzic Hailstorm finds vulnerabilities fast.
Click the link to buy it, try it or download Hailstorm for FREE.
http://www.cenzic.com/products_services/download_hailstorm.php
------------------------------------------------------------------------

<Prev in Thread] Current Thread [Next in Thread>