panagiks / RSPET

RSPET (Reverse Shell and Post Exploitation Tool) is a Python based reverse shell equipped with functionalities that assist in a post exploitation scenario.
MIT License
260 stars 85 forks source link

[Idea] Self-Update client mechanism #41

Open dzervas opened 7 years ago

dzervas commented 7 years ago

I just wanted to note down the idea for the implementation of client self-update.

What I thought is that you download the new client, replace the client file on the fly (it's already loaded into memory) and from main you destroy the Client object, re-import the new client and execute its main function (or object).

I dummy-tested it and it worked - I'll implement it as soon as I find time to do so.

dzervas commented 7 years ago

BTW: We can do that with the plugins too, so that the file remains one but we just append plugin code in the client file (file size is less of a problem vs scattered files).

panagiks commented 7 years ago

For the client plugins I'm currently testing zero disk interaction plugins as an anti-forensics measure so for a while at least don't spend too much time on the client plugins.

If the update mechanism works it will be awesome, it's been bugging me for a while now ...

panagiks commented 7 years ago

I have made a PoC plugin system for the Client that has a smaller code footprint than the one currently in use and has zero disk interaction. If everything goes well I'll have a complete system uploaded until Monday noon. Having said that I'd suggest yo emphasize on the update mechanism for the client and not the plugins (not the client ones at least) since non-persistent plugins will be (nearly) always up to date.

dzervas commented 7 years ago

That's nice - after looking my client plugin code again, I don't like it either. About the self-updating, I don't know when I'll start implementing it. I'll let you know when I start.

panagiks commented 7 years ago

There was nothing wrong with the previous plugin system (it had a couple of pros against the one I am developing, namely consistency with the Server plugins and persistence) it's just that I think it would be thematically beneficial to have a more anti-forensics approach.

Take your time with the update mechanism :)

panagiks commented 7 years ago

Just a note here too. The Zero Disk Interaction plugin system referenced above is ready and is in the v0.4.0_rc branch. I'll try to document the plugin creation asap and hopefully before 15 May 2017, the target date for testing, documenting and releasing v0.4.0 (if no major blockers are discovered in the meantime). I have included an example plugin (client Geolocation) that should be used as a general guide as the actual system may change until the release.