September 25, 2009

Sqlninja & Metasploit

Sqlninja is one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best open-source tools to automate SQL injection exploitation against MS SQL Server databases. If you combine it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best open-source network penetration testing framework, Metasploit, you get an extremely powerful web application pen-testing toolkit for total database p0wnage!

This week I have been preparing a sqlninja demo focused on its integration with Metasploit for next week "Web App Pen-Testing" SANS webcast, scheduled for October 1. During cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 webcast I'll cover a sneak preview of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SEC542 "Web Penetration Testing and Ethical Hacking" course I will be teaching in London later this year, and run a demo using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest publicly available sqlninja version, 0.2.3-r1, including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 quick fix detailed below (0.2.3-r1p).

Sqlninja is a Perl-based tool that can make use of Metasploit capabilities to upload and run a Meterpreter or VNC server payload on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target MS SQL server through SQL injection flaws on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target web application. The integration of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tools accepts both direct and reverse TCP connections to/from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database server and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pen-tester system. It uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "msfpayload" tool to generate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload that will be executed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database server (metxxxxx.exe), and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "msfcli" tool to establish (or wait for) a connection with that payload.

Due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 extensive number of modules available in Metasploit nowadays, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 msfcli execution takes around 20 seconds in a BTv4 virtual machine to load cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole Metasploit module tree:

# ./msfconsole -v
Framework Version: 3.3-dev
# ./msfconsole
=[ msf v3.3-dev [core:3.3 api:1.0]
+ -- --=[ 404 exploits - 248 payloads
+ -- --=[ 21 encoders - 8 nops
=[ 188 aux
...

# time /pentest/exploits/framework3/msfcli
[*] Please wait while we load cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module tree...
...
real 0m18.568s
user 0m13.402s
sys 0m4.683s
#

As a result, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current sqlninja Metasploit module may fail due to a race condition mainly on reverse mode, and specifically, due to timing issues of when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module initiating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection(client role) executes versus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module listening for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection (server role).

The patch released in this post fixes this race condition by adding specific (client & server) timeouts to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bind_tcp and reverse_tcp connections. The timers for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bind case try to ensure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server (msfpayload) starts before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client (msfcli) tries to establish a connection. The timers for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reverse case try to ensure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server (msfcli) starts before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client (msfpayload) initiates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reverse connection. The values for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timers are conservative and set a difference of 25 seconds between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client initialization.

Due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reverse Metasploit payload does not retry cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client connection, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r end is not listening when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection is initiated, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection never succeeds and cannot be established. Additionally, I've seen cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target DB system going up to near 100% (a non-desirable DoS condition during a professional pen-test).

The patch can be applied by renaming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original 0.2.3-r1 "sqlninja" Perl file to "sqlninja.original" and running:

$ patch sqlninja.original -i sqlninja.patch -o sqlninja

The new timers ($client_delay (30 secs) and $server_delay (5 secs)), defined at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sqlninja main file, can be changed to accommodate future Metasploit startup delays, or even be converted into sqlninja configuration options within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sqlninja.conf file. The patch changes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sqlninja version to 0.2.3-r1p, to indicate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch has been applied.

Enjoy it, (sql) ninja pen-testers!

Labels:

3 Comments:

Anonymous Anonymous said...

Gracias Raúl

10:39 PM  
Blogger Jose Selvi said...

Hi Raul, nice post ;)

sqlmap has similar feature creating and using metasploit payloads through databases command execution features. I saw it on SOURCES Conferences last week in Barcelona and It seems to work great.

Did you try sqlmap vs sqlninja? Which gives you more confidence?

Thanks!

8:30 AM  
Blogger Raul Siles said...

Jose,
Both are great tools to automate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exploitation of SQLi flaws. The main differences, without going into too much details, are that sqlmap is a Python based tool, it provides extensive blind SQL injection capabilities, can use multiple injection points (such as cookies or UA), and supports multiple DB, like MySQL, Oracle, PostgreSQL and MS SQL Server. As a result it is a more complex tool.

BTW, we cover sqlmap, and even have an sqlmap exercise, on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SEC542 course mentioned on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post.

9:30 AM  

Post a Comment

<< Home