Metasploit Minus Metasploit - Rapid7€¦ · msf5 > banner.:okOOOkdc' 'cdkOOOko:..xOOOO OOOOOOOc cOO OOOOOOOx.:OOO OOOOOk, ,kOOOOO OOOOOO: 'OOOOOO OOOOO: :OO OO'

Post on 21-Sep-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

MetasploitMinus Metasploit

Building APIs and abstractions for the future

Adam Cammack and James Barnett

Who We Are● Engineers on the Metasploit team● Made possible by our awesome community

msf5 > banner .:okOOOkdc' 'cdkOOOko:. .xOOOOOOOOOOOOc cOOOOOOOOOOOOx. :OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO: 'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO' oOOOOOOOO.MMMM.oOOOOoOOOOl.MMMM,OOOOOOOOo dOOOOOOOO.MMMMMM.cOOOOOc.MMMMMM,OOOOOOOOx lOOOOOOOO.MMMMMMMMM;d;MMMMMMMMM,OOOOOOOOl .OOOOOOOO.MMM.;MMMMMMMMMMM;MMMM,OOOOOOOO. cOOOOOOO.MMM.OOc.MMMMM'oOO.MMM,OOOOOOOc oOOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOOo lOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOl ;OOOO'MMM.OOOO.MMM:OOOO.MMM;OOOO; .dOOo'WM.OOOOocccxOOOO.MX'xOOd. ,kOl'M.OOOOOOOOOOOOO.M'dOk, :kk;.OOOOOOOOOOOOO.;Ok: ;kOOOOOOOOOOOOOOOk: ,xOOOOOOOOOOOx, .lOOOOOOOl. ,dOd, .

msf5 > banner .:okOOOkdc' 'cdkOOOko:. .xOOOO OOOOOOOc cOO OOOOOOOx. :OOO OOOOOk, ,kOOOOO OOOOOO: 'OOOOOO OOOOO: :OO OO' oOOOO OoOO OOOOOOo dOOOO OOx lOOOOOOOO. OOOOOl .OO OO. cO .OOc. MMM OOOc oOOOOOO. .OOOO.MMM:OOO O OOOo lOOOOO.MMM.OO MMM:OOOO.MMM OOOl ;OOOO'MMM MMM:OOOO.MMM;OOOO; .dOOo’WM cccxOOOO.MX’xOOd. ,kOl M.dOk, :k OOOOO.cOk: ;kOOOO : ,xOOO , .lOO . ,dOd, .

msf5 > banner .:okOOOkdc' 'cdkOOOko:. .xOOOOOOOOOOOOc cOOOOOOOOOOOOx. :OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO: 'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO' oOOOOOOOO. .oOOOOoOOOOl. ,OOOOOOOOo dOOOOOOOO. .cOOOOOc. ,OOOOOOOOx lOOOOOOOO. ;d; ,OOOOOOOOl .OOOOOOOO. .; ; ,OOOOOOOO. cOOOOOOO. .OOc. 'oOO. ,OOOOOOOc oOOOOOO. .OOOO. :OOOO. ,OOOOOOo lOOOOO. .OOOO. :OOOO. ,OOOOOl ;OOOO' .OOOO. :OOOO. ;OOOO; .dOOo .OOOOocccxOOOO. xOOd. ,kOl .OOOOOOOOOOOOO. .dOk, :kk;.OOOOOOOOOOOOO.cOk: ;kOOOOOOOOOOOOOOOk: ,xOOOOOOOOOOOx, .lOOOOOOOl. ,dOd, .

Be Flexible

Handle ALL the Cases● Different types of tasks

○ Scanning○ Exploiting○ Post-exploit gathering

● Network traffic should be re-routable● Exploit traffic should be malleable● Payloads should support transformations

Separate Modules and Payloads● Modules should only know enough to trigger the exploit● Maintain a wide library of payloads● C2 for a wide library of payloads● Large number of module/payload combinations

Current Architecture

Everything Touches the DB● Very Rails-oriented● Tightly coupled to the database● ONE MSF per database● Searching and filtering haphazardly organized

Modules Are Plugins● Read into memory, modified, and eval’d● Loaded multiple times at startup● Everything executes in the context of everything else● Shared functionality via mixins● And then there’s the datastore...

Networking Is Complicated● All listeners go through the switch board● Pivoting through sessions and proxies● Socket, service, and client abstractions● Ring buffers for sessions

Isolating Modules

Modules as Processes● Enhanced isolation● Parallelism● Support for any language

Modules as Processes

Full Isolation● OS process per task● Communicates via JSON over stdin/stdout● Network transparency

Better Performance● Separate file descriptor pool● Separate memory space● No GIL - separate● Horizontal scaling

How it Works+------------+| Metasploit || | Describe yourself +-------------------+| +-------------------> | some_module.py || | | || | | || | Some metadata | || | <-------------------+ || | | || | +-------------------+| || |+------------+

How it Works+------------+| Metasploit | Do a thing with| | these options +-------------------+| +-------------------> | some_module.py || | | || | | || | A bit of status | || | <-------------------+ || | | || | Moar status | || | <-------------------+ || | | || | I found a thing | || | <-------------------+ || | | || | +-------------------++------------+

Isolating Data Storage

Objectives of Project Goliath

● Make the Metasploit datastore portable

● Improve the data model

● Make sessions shareable

Datastore As a Service

● Collaborate with others

● Host data store anywhere

● Integrate with other tools

Architecture

Data Model Improvements

● Flexibility

● Searchability

● Re-usability

Session Sharing

● Separate session management from framework

● Share sessions among team members

● Host session manager in the cloud

Demo

Questions?https://blog.rapid7.com/2017/12/28/regifting-python-in-metasploit/https://www.metasploit.comhttps://github.com/rapid7/metasploit-frameworkhttp://garfieldminusgarfield.net

top related