Presented at
BSides Austin 2018,
March 9, 2018, 3:30 p.m.
(60 minutes).
What do you get when you take a million-line, open-source security project and remove all its code?
With Metasploit Framework, the answer used to be "not much": a couple of test payloads, some dangling database tables, and a few dusty modules stashed in your home directory. While our monolithic design has served well for over a decade, Metasploit has also become the victim of its own success: tight coupling between components has made adding new features increasingly difficult. As the open-source security ecosystem grows more diverse, it is clear that Metasploit needs to evolve in order to continue being fun and hackable for the next generation of coders and researchers.
Last year, the Metasploit team rethought how modules run and how to store and query data, giving careful thought to documentation, usability, testability, automation, and performance. The fruits of this labor include new Python modules, improved performance, better usability, and reduced start time.
During this presentation we will cover the challenges we face isolating modules and data and the solutions we are working on. We will demonstrate new open-source additions to Metasploit: a Python module, a pivoting proxy, and a way to store and query data without the console.
Presenters:
-
Adam Cammack
Adam Cammack and James Barnett are Software Engineers for Metasploit at Rapid7. Adam is relatively new to security, coming from application development with emphasis on distributed computing and systems programming. He enjoys breaking things (then fixing them) and abusing protocols. Adam has spoken at DerbyCon, Austin Hackers Anonymous, and Rapid7 trainings.
-
James Barnett
James is a sysadmin turned developer and has spent the last 3 years applying his real-world experience to enhancing Nexpose and Metasploit. He has also applied his knowledge to Metasploitable3, and the principles learned to expanding Metasploit Framework through the Goliath API project.
Links:
Similar Presentations: