-
Notifications
You must be signed in to change notification settings - Fork 14.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GSOC] Post-exploitation API improvements and pseudo_shell (metashell) module added #10119
Conversation
Can we name this something other than "Vulnerateca Post-Exploitation Framework (VPEF)?" That name is too obscure, already trademarked, turned into an acronym, and exists within a greater framework already. |
Unless I guess Vulnerateca is your company. But this is really a contribution toward Metasploit Framework's post exploitation capabilities, so a generic name will suffice! |
Please note: "Metasploit requires spaces instead of hard tabs" See https://github.com/rapid7/metasploit-framework/wiki/Style-Tips Travis tests are failing early due to |
Ok, thank you very much for the feedback! |
You can push to your branch. The PR will be updated accordingly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool stuff, thank you. We need to ween off specific binaries for more generic and quiet functionality.
The lib code might be better off integrated to the current library calls for access mechanisms so its used by all consumers - the framework is neat that way, you can shim in functionality for tons of existing code underneath.
Far as the modules go, they're not really collecting anything so much as displaying it... Storing loot, creds, notes, and any relevant named model properties is paramount for other modules to use this information down the line.
Agree with others that the naming piece is a bit much. Leave the company name in the email, and keep the code as close to existing standards as possible. There's free marketing enough from building cool things people use, branding doesn't belong in code outside a copyright header.
+1 for removing |
Yep, agree with @sempervictus and @bcoles about working within the That's the point I was trying to make in previous conversations. The API was designed to be portable, but then the code diverged from that. Make it right again. :) Also, yeah, modules shouldn't be written for primitives, IMHO. You should add or enhance primitives in the library code, then write modules to use them. In your case, you'll be writing an interface. |
Thank you everyone for all the suggestions and comments. |
…and minor fix prompts's output
Has this PR been rebased with master? It looks like it nukes the changes made to lib/msf/core/post/common.rb in 9eb5700. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll check if this works under grsec, but if not, we may wanna check perms before we try a read, or we will be logged.
Merging |
|
Privilege-specific prompt character added. |
|
Release NotesThis adds a metashell (pseudoshell) focused on post-exploitation against Linux targets. Users can run the |
Description
Post-Exploitation API improvements integrated in already existing libraries and the pseudo-shell module added to the project.
This is a first version of the pseudo-shell module. It will use only available commands in the device. If you need to use a specific command (such as cat, ls, whoami,…) and it does not exist in this specific limited shell, it will try to simulate it with simpler native Linux commands available (for example, with the echo command and processing the data obtained in our machine with ruby).
Verification
List of steps needed to make sure this thing works
msfconsole
use post/linux/manage/pseudo_shell
set SESSION 1
)Example
msfconsole
use auxiliary/scanner/ssh/ssh_login
set RHOST 192.168.1.1
set USERNAME admin
set PASSWORD admin
run
use post/linux/manage/pseudo_shell
set SESSION 1
run