<>
Wednesday, September 5, 2012

sqlninja - a SQL Server injection & takeover tool

Sqlninja is an exploitation tool to be used against web apps based on MS SQL Server that are vulnerable to SQL Injection attacks, in order to get a shell also in very hostile conditions.

qlninja is a tool targeted to exploit SQL Injection vulnerabilities on a web application that uses Microsoft SQL Server as its back-end.
Its main goal is to provide a remote access on the vulnerable DB server, even in a very hostile environment. It should be used by penetration testers to help and automate the process of taking over a DB Server when a SQL Injection vulnerability has been discovered.


Features
The full documentation can be found in the tarball and also here, but here's a list of what the Ninja does:
  • Fingerprint of the remote SQL Server (version, user performing the queries, user privileges, xp_cmdshell availability, DB authentication mode)
  • Bruteforce of 'sa' password (in 2 flavors: dictionary-based and incremental)
  • Privilege escalation to sysadmin group if 'sa' password has been found
  • Creation of a custom xp_cmdshell if the original one has been removed
  • Upload of netcat (or any other executable) using only normal HTTP requests (no FTP/TFTP needed)
  • TCP/UDP portscan from the target SQL Server to the attacking machine, in order to find a port that is allowed by the firewall of the target network and use it for a reverse shell
  • Direct and reverse bindshell, both TCP and UDP
  • ICMP-tunneled shell, when no TCP/UDP ports are available for a direct/reverse shell but the DB can ping your box
  • DNS-tunneled pseudo-shell, when no TCP/UDP ports are available for a direct/reverse shell, but the DB server can resolve external hostnames (check the documentation for details about how this works) 
  • Evasion techniques to confuse a few IDS/IPS/WAF
  • Integration with Metasploit3, to obtain a graphical access to the remote DB server through a VNC server injection
  • Integration with churrasco.exe, to escalate privileges to SYSTEM on w2k3 via token kidnapping
  • Support for CVE-2010-0232, to escalate the privileges of sqlservr.exe to SYSTEM
Platforms supported
Sqlninja is written in Perl and should run on any UNIX based platform with a Perl interpreter, as long as all needed modules have been installed. So far it has been successfully tested on:
  • Linux
  • FreeBSD
  • Mac OS X
The following versions are available:

0.2.6-r1

The newest official version, with all the latest cool stuff! Download it and find some bugs :)

0.2.5

This is the previous version. It lacks a few new cool features but it has been tested a bit more extensively. Use it if you have problems with 0.2.6 (and please report those problems so I can fix them)
SVN snapshot
This is the hemorrhaging edge version! It is less documented, and likely to have a few bugs, so not for the faint hearted. Come on, give it a try, show chicks how brave you are, and report some bugs!

To download the latest snapshot, use the following command:

$ svn co https://sqlninja.svn.sourceforge.net/svnroot/sqlninja
If your AV complains, it is because the Churrasco executable in the tarball is recognized as a virus. So nothing to worry about.
Prerequisites
In order to use sqlninja, the following Perl modules need to be present:
  • NetPacket
  • Net-Pcap
  • Net-DNS
  • Net-RawIP
  • IO-Socket-SSL
You will also need the Metasploit Framework 3 on your box to use the metasploit attack mode, and also a VNC client if you use the VNC payload.
You also need a brain. Not strictly a Perl module, but it helps.
Sqlninja user manual

rel. 0.2.6
1. Introduction
2. Attack modes
3. Configuration file
4. Other useful information
Visit website -


0 comments:

Post a Comment

:) :)) ;(( :-) =)) ;( ;-( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ $-) (b) (f) x-) (k) (h) (c) cheer
Click to see the code!
To insert emoticon you must added at least one space before the code.

Welcome Back Visitor! Your Last Visit Was on Wed, Apr 9, 2025 01:33:52 PM
 
TOP