Exploit Ranking
James Lee edited this page Feb 24, 2017
·
17 revisions
Pages 106
- Home
- 2017 Roadmap
- Adding Release Notes to PRs
- Committer Keys
- Committer Rights
- Common Metasploit Module Coding Mistakes
- Contact
- Contributing to Metasploit
- Creating Metasploit Framework LoginScanners
- Debugging Dead Meterpreter Sessions
- Decommissioning Redmine
- Downloads by Version
- Evading Anti Virus
- Exploit Ranking
- Generating Module Documentation
- Git cheatsheet
- Git Gotchas
- Git Reference Sites
- GSoC 2017 Mentor Organization Application
- GSoC 2017 Project Ideas
- GSoC 2017 Student Proposal
- Guidelines for Accepting Modules and Enhancements
- How payloads work
- How to add and update gems in metasploit framework
- How to check Microsoft patch levels for your exploit
- How to clean up files using FileDropper
- How to deprecate a Metasploit module
- How to do reporting or store data in module development
- How to get Oracle Support working with Kali Linux
- How to get started with writing a Meterpreter script
- How to get started with writing a post module
- How to get started with writing an auxiliary module
- How to get started with writing an exploit
- How to log in Metasploit
- How to obfuscate JavaScript in Metasploit
- How to parse an HTTP response
- How to Send an HTTP Request Using HTTPClient
- How to send an HTTP request using Rex::Proto::Http::Client
- How to use a Metasploit module appropriately
- How to use a reverse shell in Metasploit
- How to use command stagers
- How to use datastore options
- How to use exim_gethostbyname_bof.rb (Exim GHOST Buffer Overflow)
- How to use Msf::Auxiliary::AuthBrute to write a bruteforcer
- How to use msfvenom
- How to use PhpEXE to exploit an arbitrary file upload bug
- How to use Powershell in an exploit
- How to use Railgun for Windows post exploitation
- How to Use the FILEFORMAT mixin to create a file format exploit
- How to use the Msf::Exploit::Remote::Tcp mixin
- How to use the Seh mixin to exploit an exception handler
- How to use WbemExec for a write privilege attack on Windows
- How to write a browser exploit using BrowserExploitServer
- How to write a browser exploit using HttpServer
- How to write a check() method
- How to write a HTTP LoginScanner Module
- How to write a module using HttpServer and HttpClient
- How to zip files with Rex::Zip::Archive
- Indentation Standards
- Information About Unmet Browser Exploit Requirements
- Issue Labels
- Keeping in sync with rapid7 master
- Landing Pull Requests
- Loading External Modules
- Merging Metasploit Payload Gem Updates
- Metasploit development environment
- Metasploit Hackathons
- Metasploit Loginpalooza
- Metasploit module reference identifiers
- Meterpreter
- Meterpreter Configuration
- Meterpreter HTTP Communication
- Meterpreter Paranoid Mode
- Meterpreter Reliable Network Communication
- Meterpreter Sleep Control
- Meterpreter Stageless Mode
- Meterpreter Timeout Control
- Meterpreter Transport Control
- Meterpreter Unicode Support
- Meterpreter Wishlist
- Msftidy
- Nightly Installers
- Oracle Usage
- Payload Rename Justification
- Payload UUID
- Powershell Extension
- Python Extension
- Remote Branch Pruning
- Reporting a Bug
- Resuscitating Dead Pull Requests
- Rex Layout
- Rolling back merges
- Setting Up a Metasploit Development Environment
- Setting Up a Metasploit Development Environment Ubuntu 14.04
- Style Tips
- The ins and outs of HTTP and HTTPS communications in Meterpreter and Metasploit Stagers
- Uberhandler
- Unstable Modules
- Using Git
- Using Metasploit
- Using Rubocop
- Weekly Wrapup
- What does my Rex::Proto::SMB Error mean?
- Why Ruby?
- Writing External Metasploit Modules
- Writing Module Documentation
- Show 91 more pages…
Metasploit Wiki Pages
- Home Welcome to Metasploit!
- Using Metasploit A collection of useful links for penetration testers.
-
Setting Up a Metasploit Development Environment From
apt-get installtogit push. - CONTIBUTING.md What should your contributions look like?
- Landing Pull Requests Working with other people's contributions.
- Using Git All about Git and GitHub.
- Contributing to Metasploit Be a part of our open source community.
- Meterpreter All about the Meterpreter payload.
Every exploit module has been assigned a rank based on its potential impact to the target system. Users can search, categorize, and prioritize exploits based on rankings.
The ranking is implemented by adding a Rank constant at the top of the class declaration in a module:
class MetasploitModule < Msf::Exploit
Rank = LowRanking
def initialize(info={})
...
end
...
endThe ranking values are one of the following, in descending order of reliability:
| Ranking | Description |
|---|---|
| ExcellentRanking | The exploit will never crash the service. This is the case for SQL Injection, CMD execution, RFI, LFI, etc. No typical memory corruption exploits should be given this ranking unless there are extraordinary circumstances (WMF Escape()). |
| GreatRanking | The exploit has a default target AND either auto-detects the appropriate target or uses an application-specific return address AFTER a version check. |
| GoodRanking | The exploit has a default target and it is the "common case" for this type of software (English, Windows 7 for a desktop app, 2012 for server, etc). |
| NormalRanking | The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect. |
| AverageRanking | The exploit is generally unreliable or difficult to exploit. |
| LowRanking | The exploit is nearly impossible to exploit (or under 50% success rate) for common platforms. |
| ManualRanking | The exploit is unstable or difficult to exploit and is basically a DoS. This ranking is also used when the module has no use unless specifically configured by the user (e.g.: exploit/unix/webapp/php_eval). |
The ranking value is available the module Class object as well as instances:
modcls = framework.exploits["windows/browser/ie_createobject"]
modcls.rank # => 600
modcls.rank_to_s # => "excellent"
mod = modcls.new
mod.rank # => 600
mod.rank_to_s # => "excellent"
