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
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
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:
rel. 0.2.6
1. Introduction
2. Attack modes
4. Other useful information
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 snapshotThis 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
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.
PrerequisitesIn 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 manualrel. 0.2.6
1. Introduction
2. Attack modes
- 2.1 test
- 2.2 fingerprint
- 2.3 bruteforce
- 2.4 escalation
- 2.5 resurrectxp
- 2.6 upload
- 2.7 dirshell
- 2.8 backscan
- 2.9 revshell
- 2.10 icmpshell
- 2.11 dnstunnel
- 2.12 metasploit
- 2.13 sqlcmd
- 2.14 Other attacks
4. Other useful information
Visit website -