Metasploit can be found in every pen tester's tool kit. Ditto for most hackers. That means many are now thinking through how a new version of Metasploit – the first major release since 2011 – is going to change their research and testing workflow.
Metasploit 5.0, released earlier this month by Rapid7, offers a host of new features and capabilities, along with the promise of a faster, more regular update cycle for the product. "We're on a new release schedule, so there'll be new releases, hopefully every year, which kind of brings us to putting things out quicker and being more agile," says Cody Pierce, principal product manager at Metasploit.
New capabilities carried with the first of the new-cycle releases begin with support for three languages: Go, Python, and Ruby. "If you're a Go developer, or if you're a Python developer, you can now write in the native language that you're comfortable with," Pierce says. "So if you want to write an exploit, or a scanner, or an integrated tool, there are now three languages. We're kind of taking down those barriers to entry."
The development support continues with a new framework, JSON-RPC API, a common Web services framework that exposes all available APIs. "We're already seeing people that are building new tools on top of it because it's so much easier to integrate with," Pierce says. That active tool-building activity is a critical consideration for the Metasploit team.
"We have the best community. Our community is always contributing new tools and new scanners, new exploits, and new payloads," Pierce says. Another new capability, the database as a RESTful service, is intended to make those contributions even easier.
"If you're building a tool for penetration testing, we don't want you to worry about a database. We don't want you to worry about your payloads or those fundamental things," Pierce explains. "We want the framework to take care of that for you and let you just do the exciting work, or the novel research, or building the tool you actually want to build."
He expects some of the new tools to use expanded capabilities, such as the evasion modules and libraries now included with Metasploit 5.0. Pierce also believes that new tools and capabilities will come to the community because of the service-oriented nature of the new metashell. Multiple consoles can be deployed and draw on resources hosted essentially anywhere the Internet can reach.
At the heart of the new release and the new cadence is bringing capabilities out from the project development community and to the wider user base. "If you're a contributor, if you're a community member, you can always pull from the unstable branch on GitHub," Pierce says. "I think that with the release cadence, what we're saying is that we're committed to bringing more stable features to the general public, and doing that more often, so that all these cool things that are sometimes buried in the unstable branch get into the stable branch faster."