Ne0nd0g / merlin

Merlin is a cross-platform post-exploitation HTTP/2 Command & Control server and agent written in golang.
GNU General Public License v3.0
5.03k stars 798 forks source link

Persistence of listeners on the server-side #154

Open k33pn3xtlvl opened 6 months ago

k33pn3xtlvl commented 6 months ago

Pull Request (PR) Checklist

Change Type

Description

Realization approach for https://github.com/Ne0nd0g/merlin/issues/105

It's an interesting project, so I wanted to take a closer look at how it works under the hood and also expand my programming skills. Since I constantly initialize the Merlin server in a VM, repeatedly setting the listeners each time has become tiresome.

I only implemented server-side listener persistence. I do not store agent information, as I see no reason to, since this information is temporary and mostly log information.

If anything is unclear, please let me know and sorry in advanced English is not my native language. I must admit, I found the repository's abstraction somewhat challenging. I understand the purpose of the repositories, however, from my perspective, it seems overly too fragmented, at least at the moment.

Also If you could give me some tips what I can improve, I would be very grateful.

Ne0nd0g commented 6 months ago

@k33pn3xtlvl Thank you so much for creating this Pull Request. Many people have asked me for something like this. I took a quick look through the code and things looks good. I'll work on doing a more in-depth code review in the next couple of weeks and merge this PR in.