Skip to content

Initial support for Malleable C2 Profiles in Windows Metepreter - #759

Merged
dledda-r7 merged 24 commits into
rapid7:6.5from
OJ:feature/malleable-c2
Mar 27, 2026
Merged

Initial support for Malleable C2 Profiles in Windows Metepreter#759
dledda-r7 merged 24 commits into
rapid7:6.5from
OJ:feature/malleable-c2

Conversation

@OJ

@OJ OJ commented Jul 28, 2025

Copy link
Copy Markdown
Contributor

This PR contains a bunch of changes to support malleable C2 features stored in a .profile file (such as this).

Given the nature of how Meterpreter works, and how payloads are generated, there are a lot of C2 profile features that can't be supported without drastic changes. The intent here is to focus on the transport-specific details around HTTP payloads.

For more information on what's supported, along with documentation, sample runs/etc, please see the associated Metasploit Framework PR.

In order to support the new features and configuration options the configuration block needed to change. Rather than expand on this rather rudimentary and outdated block of information, it was decided that the config block should be converted to a TLV Packet. That has been done as part of this PR, and is obviously a breaking change, and hence isn't backwards compatible.

This took a lot longer than I had hoped, so as of yet the other Meterpreters haven't been modified.

TODO:

  • Implement the code that handles the encoding flags (coming next).
  • Port breaking change to Python
  • Port breaking change to Java/Android
  • Port breaking change to PHP (PHP doesn't have HTTP)
  • Port breaking change to Mettle

OJ added 11 commits June 19, 2025 11:48
Removing warnings as well as making the builds work properly outside of
Visual Studio and docker.
Makes sure that things build correctly across environments.
Not read for push, some sections removed to avoid the pain of dev until
the rest of the work is done.
More to do, and transport stuff needs to be updated to include the C2
configuration options.
This actually stages/works as expected now. More fields to map, more
work to do. More configuration to handle. Then the changes need to also
be moved over to the WININET fallback version when done.

Still need to handle encoding as well.
* Packet prefixes and suffixes now work as expected (at least outbound),
  more work to do to support inbound.
* Validated that migration works.
* Support encryption key transmission across migration (need to confirm
  if this is required).
Referrer and accept type headers no longer separate, despite what the
APIs say they do support inclusion of them with custom headers.

Skip counts now included so the incoming packets can be prefixed in the
C2 profile.

Various other code tidies/adjustments.
Various tweaks to support it on the server side as well.
OJ added 2 commits July 28, 2025 14:21
POST requests were being killed off before reading the response. This
fixes that issue.
@OJ

OJ commented Jul 29, 2025

Copy link
Copy Markdown
Contributor Author

Hey @smcintyre-r7 or @dledda-r7 could you have a quick look at the windows-2022 target for the visual studio build in the github actions? I changed from windows-2019 to windows-2022 because of a deprecation warning, but it's still failing because of a file not found issue. Based on the documentation the path to the dev env should be correct. Thanks for the help!

C2 encoding now supported in the GET/POST based on the C2 configuration.

Changed up the way the body of an HTTP response is read, so that the
content length header is used instead. This means we can read in the
entire buffer, remove prefixes/suffixes and do decoding before passing
this on. Prior to this, we were using the packet header to figure out
how much data to read, and that doesn't makes sense any more.
@dledda-r7 dledda-r7 self-assigned this Aug 4, 2025
Comment thread .github/workflows/windows_meterpreter.yml Outdated
@OJ

OJ commented Aug 6, 2025

Copy link
Copy Markdown
Contributor Author

@dledda-r7 is there a way of getting the 141_xp toolset on here? That's why the build is currently failing.

@dledda-r7

dledda-r7 commented Aug 11, 2025

Copy link
Copy Markdown
Contributor

@OJ I think there is, looking up on google looks like VS2022 doesn't have XP support, but currently I am able to compiler metsrv with 141_xp on VS22. I think the steps could be:

  1. Create a new .vsconfig for VS2022

Create a file named: <metasploit-payloads>/c/meterpreter/vs-config/vs2022.config
Content:

{
  "version": "1.0",
  "components": [
    "Microsoft.VisualStudio.Component.CoreEditor",
    "Microsoft.VisualStudio.Workload.CoreEditor",
    "Microsoft.VisualStudio.Component.Roslyn.Compiler",
    "Microsoft.Component.MSBuild",
    "Microsoft.VisualStudio.Component.TextTemplating",
    "Microsoft.VisualStudio.Component.NuGet",
    "Microsoft.VisualStudio.Component.Debugger.JustInTime",
    "Microsoft.VisualStudio.Component.IntelliCode",
    "Microsoft.VisualStudio.Component.VC.CoreIde",
    "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
    "Microsoft.VisualStudio.Component.Graphics.Tools",
    "Microsoft.VisualStudio.Component.VC.DiagnosticTools",
    "Microsoft.VisualStudio.Component.Windows11SDK.26100",
    "Microsoft.VisualStudio.Component.VC.ATL",
    "Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
    "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
    "Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit",
    "Microsoft.VisualStudio.Component.CppBuildInsights",
    "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake",
    "Microsoft.VisualStudio.Component.VC.CMake.Project",
    "Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
    "Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
    "Microsoft.VisualStudio.Component.VC.ASAN",
    "Microsoft.VisualStudio.Component.Vcpkg",
    "Microsoft.VisualStudio.Component.VC.v141.x86.x64",
    "Microsoft.Component.VC.Runtime.UCRTSDK",
    "Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
    "Microsoft.VisualStudio.Component.VC.Tools.ARM64",
    "Microsoft.VisualStudio.Workload.NativeDesktop",
    "Microsoft.VisualStudio.Component.WinXP"
  ],
  "extensions": []
}

There is some stuff more, like ARM64 but i think it's fine, we are going to need it at some point.

  1. Update the container VS2022 installation.
    Now, as i was reading here I think we can update our VS2022 instance to include our XP build. doing something like:

C:\Program Files (x86)\Microsoft Visual Studio\Instaler\setup.exe modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --passive --config <metasploit-payloads>/c/meterpreter/vs-config/vs2022.config

@OJ

OJ commented Aug 12, 2025

Copy link
Copy Markdown
Contributor Author
  1. Update the container VS2022 installation.
    Now, as i was reading here I think we can update our VS2022 instance to include our XP build. doing something like:

C:\Program Files (x86)\Microsoft Visual Studio\Instaler\setup.exe modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --passive --config <metasploit-payloads>/c/meterpreter/vs-config/vs2022.config

Correct me if I'm wrong, but would this not cause the container to be updated every time we ran a build? And if so, is that a problem?

@dledda-r7

Copy link
Copy Markdown
Contributor

You are not wrong. the alternative would be having local runners but I am not sure we can go through that way, also including @adfoster-r7 to the loop as probably he has more knowladge on CI/CD than me.

Comment thread c/meterpreter/source/metsrv/core.h
Comment thread c/meterpreter/source/metsrv/server_http_utils.c Outdated
@dledda-r7

Copy link
Copy Markdown
Contributor

Just to keep this in the loop #761

@dledda-r7

dledda-r7 commented Aug 14, 2025

Copy link
Copy Markdown
Contributor

Hey @OJ , I have tried metsrv and it work fine with Windows 10, however i tried to test it against older systems and on windows 7 it does a weird bug:

meterpreter > ls
[-] The "ls" command requires the "stdapi" extension to be loaded (run: `load stdapi`)
meterpreter > secure
[*] Negotiating new encryption key ...
[-] Meterpreter session 2 is not valid and will be closed

[*] 10.5.132.191 - Meterpreter session 2 closed.
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!

[-] Meterpreter session 3 is not valid and will be closed
[*] 10.5.132.191 - Meterpreter session 3 closed.
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[-] Meterpreter session 4 is not valid and will be closed
[*] 10.5.132.191 - Meterpreter session 4 closed.
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[-] Meterpreter session 5 is not valid and will be closed
[*] 10.5.132.191 - Meterpreter session 5 closed.
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8080/ handling request from 10.5.132.191; (UUID: aidpuybj) Without a database connected that payload UUID tracking will not work!

We can sync in Metasploit slack if you need more details, i can prepare the debug log and share it over if is useful?

@OJ

OJ commented Aug 18, 2025

Copy link
Copy Markdown
Contributor Author

Hey @dledda-r7 I'll spin up a Windows 7 VM and have a look. But if you're happy to share some details that'd be great. Thanks!

@smcintyre-r7

Copy link
Copy Markdown
Contributor

I just checked as well. I used psexec to deliver a windows/x64/meterpreter/reverse_http payload and the session failed to establish. There's no Malleable C2 Profile option, but I can see using Wireshark that it's failing with 404s when the stager sends the GET request to Metasploit. I'm guessing this is similar to what @dledda-r7 is seeing with Python.

@OJ

OJ commented Aug 18, 2025

Copy link
Copy Markdown
Contributor Author

I admit I haven't looked at non-native windows yet because I wanted to make sure that the approach we're taking is ok.

@OJ

OJ commented Aug 18, 2025

Copy link
Copy Markdown
Contributor Author

But non-modified payloads should still work, so that's on me :)

@dledda-r7

dledda-r7 commented Aug 19, 2025

Copy link
Copy Markdown
Contributor

@OJ we updated the GitHub runners. Now is working with Visual Studio 2022.
You can rebase this PR

@OJ

OJ commented Aug 20, 2025

Copy link
Copy Markdown
Contributor Author

Excellent, thanks!

@dledda-r7

Copy link
Copy Markdown
Contributor

@zeroSteiner, I've updated the TODO on the PR, IIRC on the PHP meterpreter nothing was needed because there is no HTTP stager / transport. Should we do at least the porting of the TLV values to avoid having incosistency among the other meterpreters?

@smcintyre-r7

Copy link
Copy Markdown
Contributor

@dledda-r7 I don't think there's any more work to do on PHP. I switched the one TLV constant that needed to be switched in zeroSteiner@a42e962#diff-e7dda2cb450fafb8131b3c7918aa29e070f138cefdc5f27d8d67aecea08cc2b4 (COMMAND_ID_CORE_PATCH_URL -> COMMAND_ID_CORE_PATCH_UUID). It doesn't look like PHP supports HTTP(S) as a transport, or even managing transports. I see the COMMAND_ID_CORE_TRANSPORT_* commands are defined as constants, but they're not registered for use. The 430-442 range of constants isn't even defined in PHP.

We can and maybe should look at adding an HTTP transport for PHP in the future but we don't need to block on that now.

OJ added 2 commits March 19, 2026 22:03
Windows 7 doesn't come with this option for use with the
CryptStringToBinaryA or CryptBinaryToStringA functions. This was
introduced in Windows 10. So we've got a custom implementation of this
so that we know we have a working version that doesn't cause things to
break on Windows 7.
This is cherry picked from the main branch just to get things going.
@OJ

OJ commented Mar 21, 2026

Copy link
Copy Markdown
Contributor Author

Hey @dledda-r7 @smcintyre-r7 the build actually works now, after my copy/paste of your working configs. This version appears to work for me on Windows 7 and Windows 2012 R2 (without the SPs).

If you get a sec would you mind giving some thoughts? I'll be working on the other Meterpreter implementations next to get things up to speed. Thank you!

@dledda-r7

Copy link
Copy Markdown
Contributor

Will check it out ASAP! amazing work!

Comment thread c/meterpreter/source/metsrv/server_transport_winhttp.c Outdated
@dledda-r7

dledda-r7 commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Windows 7 SP0 x64 - MinGW binary

msf6 payload(windows/x64/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: e8psav5t) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: e8psav5t) Redirecting stageless connection from  with UA '' to /8du3yz_7zrxBhUCHKEaDWgSp_GcKzpPznYGWFHfqyosK20frjwhZghxRZg0OrBvSF
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: e8psav5t) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: e8psav5t) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: e8psav5t) Without a database connected that payload UUID tracking will not work!
WARNING: Local file /home/kali/Documents/github/metasploit-framework/data/meterpreter/ext_server_stdapi.x64.dll is being used
[*] Meterpreter session 1 opened (192.168.3.10:8081 -> 10.5.132.188:49186) at 2026-03-25 07:11:34 -0400

msf6 payload(windows/x64/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 1...

meterpreter > getuid
Server username: win7x64-sp0\msfuser
meterpreter > ls
Listing: C:\Users\msfuser\Downloads
===================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  282     fil   2025-07-22 11:15:21 -0400  desktop.ini
100777/rwxrwxrwx  577536  fil   2026-03-25 07:11:20 -0400  metsrv.c2.exe

meterpreter > sysinfo
Computer        : WIN7X64-SP0
OS              : Windows 7 (6.1 Build 7600).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > 

Windows 23H2 x64 - MinGW

msf6 payload(windows/x64/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.198; (UUID: e6uz7lig) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.198; (UUID: e6uz7lig) Redirecting stageless connection from  with UA '' to /8du3yz_7zrxBhUCHKEaqyA1dWjINwfG5zcvEsATxhimv9ad-vNOhFoE1DMWxGjxYo56jCI7L1Szu
[!] http://192.168.3.10:8081 handling request from 10.5.132.198; (UUID: e6uz7lig) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.198; (UUID: e6uz7lig) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.198; (UUID: e6uz7lig) Without a database connected that payload UUID tracking will not work!
WARNING: Local file /home/kali/Documents/github/metasploit-framework/data/meterpreter/ext_server_stdapi.x64.dll is being used
[*] Meterpreter session 3 opened (192.168.3.10:8081 -> 10.5.132.198:63903) at 2026-03-25 10:04:04 -0400

msf6 payload(windows/x64/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 3...

meterpreter > ls
Listing: C:\Users\msfuser\Desktop
=================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  2352    fil   2026-03-25 10:00:17 -0400  Microsoft Edge.lnk
100666/rw-rw-rw-  282     fil   2026-03-25 09:59:16 -0400  desktop.ini
100777/rwxrwxrwx  577536  fil   2026-03-25 10:03:49 -0400  metsrv.c2.exe

meterpreter > sysinfo
Computer        : WIN11_23H2_4728
OS              : Windows 11 23H2 (10.0 Build 22631).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > getuid
Server username: WIN11_23H2_4728\msfuser
meterpreter > 

Windows 7 SP0 x64 - MSVC

msf6 payload(windows/x64/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: zick860y) Redirecting stageless connection from  with UA '' to /u5lSXQKdGlVi-mP4CzwBgwQY1l3Z8OwFKsxb120YyY8i4pRWOiGixIiQz4vkKv2mgZPsaisU8YR5U0texSjzhPujEa_wv4D_lT2s20zJ36
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: zick860y) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.188; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!

msf6 payload(windows/x64/meterpreter_reverse_http) > 
msf6 payload(windows/x64/meterpreter_reverse_http) > [*] Meterpreter session 1 opened (192.168.3.10:8081 -> 10.5.132.188:49167) at 2026-03-27 07:01:19 -0400

msf6 payload(windows/x64/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 1...

meterpreter > ls
Listing: C:\Users\msfuser\Downloads
===================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  282     fil   2025-07-22 11:15:21 -0400  desktop.ini
100777/rwxrwxrwx  309248  fil   2026-03-27 07:01:05 -0400  metsrv.c2.exe

meterpreter > getuid
Server username: win7x64-sp0\msfuser
meterpreter > sysinfo
Computer        : WIN7X64-SP0
OS              : Windows 7 (6.1 Build 7600).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > 

Windows 11 23H2 - MSVC

meterpreter > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.113; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.113; (UUID: zick860y) Redirecting stageless connection from  with UA '' to /u5lSXQKdGlVi-mP4CzwH1w30spYN
[!] http://192.168.3.10:8081 handling request from 10.5.132.113; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.113; (UUID: zick860y) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.113; (UUID: zick860y) Without a database connected that payload UUID tracking will not work!

meterpreter > nbg[*] Meterpreter session 2 opened (192.168.3.10:8081 -> 10.5.132.113:49812) at 2026-03-27 07:08:35 -0400

meterpreter > bg
[*] Backgrounding session 1...
msf6 payload(windows/x64/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 2...

meterpreter > sysinfo
Computer        : WIN11_23H2_4728
OS              : Windows 11 23H2 (10.0 Build 22631).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > ls
Listing: C:\Users\msfuser\Desktop
=================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  2348    fil   2026-03-27 07:04:52 -0400  Microsoft Edge.lnk
100666/rw-rw-rw-  282     fil   2026-03-27 07:04:21 -0400  desktop.ini
100777/rwxrwxrwx  309248  fil   2026-03-27 07:08:25 -0400  metsrv.c2.exe

meterpreter > getuid
Server username: WIN11_23H2_4728\msfuser
meterpreter > 

Windows 10 22H2 x86 - MSVC

msf6 payload(windows/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: kx2tdij6) Redirecting stageless connection from  with UA '' to /RIXmPysIIBn5BvgHkMB5TwcbcTyCtB
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: kx2tdij6) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!

msf6 payload(windows/meterpreter_reverse_http) > sessions -i -1[*] Meterpreter session 1 opened (192.168.3.10:8081 -> 10.5.132.102:50101) at 2026-03-27 09:04:16 -0400

[*] Starting interaction with 1...

meterpreter > sysinfo
Computer        : DESKTOP-PCHAGVH
OS              : Windows 10 22H2+ (10.0 Build 19045).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > getuid
Server username: DESKTOP-PCHAGVH\msfuser
meterpreter > ls
Listing: C:\Users\msfuser\Desktop
=================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  2294    fil   2025-08-07 09:25:44 -0400  Microsoft Edge.lnk
100666/rw-rw-rw-  282     fil   2025-08-07 09:25:44 -0400  desktop.ini
100777/rwxrwxrwx  266240  fil   2026-03-27 09:52:35 -0400  metsrv.c2.x86.exe

meterpreter > 

Windows 7 x86 - MSVC

msf6 payload(windows/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: kx2tdij6) Redirecting stageless connection from  with UA '' to /RIXmPysIIBn5BvgHkMB1fgZVvOZ3QixSlLRHpAVx0U5j13gzpglp2mzPoitnY
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: kx2tdij6) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: kx2tdij6) Without a database connected that payload UUID tracking will not work!

msf6 payload(windows/meterpreter_reverse_http) > ses[*] Meterpreter session 2 opened (192.168.3.10:8081 -> 10.5.132.189:49169) at 2026-03-27 09:56:16 -0400

msf6 payload(windows/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 2...

meterpreter > sysinfo
Computer        : MSFUSER-PC
OS              : Windows 7 (6.1 Build 7600).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > ls
Listing: C:\Users\msfuser\Downloads
===================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  282     fil   2026-01-16 07:31:00 -0500  desktop.ini
100777/rwxrwxrwx  266240  fil   2026-03-27 09:56:00 -0400  metsrv.c2.x86.exe

meterpreter > getuid
Server username: msfuser-PC\msfuser
meterpreter > 

Windows 7 x86 - MinGW

msf6 payload(windows/meterpreter_reverse_http) > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: a61okg2f) Redirecting stageless connection from  with UA '' to /pKaVSqE_BZDLR8pGooFF4wQK8TWE7d-SUj2qSDL0CtdHO
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: a61okg2f) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.189; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
WARNING: Local file /home/kali/Documents/github/metasploit-framework/data/meterpreter/ext_server_stdapi.x86.dll is being used
[*] Meterpreter session 1 opened (192.168.3.10:8081 -> 10.5.132.189:49186) at 2026-03-27 10:05:33 -0400

msf6 payload(windows/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 1...

meterpreter > sysinfo
Computer        : MSFUSER-PC
OS              : Windows 7 (6.1 Build 7600).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > ls
Listing: C:\Users\msfuser\Downloads
===================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  282     fil   2026-01-16 07:31:00 -0500  desktop.ini
100777/rwxrwxrwx  580096  fil   2026-03-27 10:05:14 -0400  metsrv.c2.x86.exe

meterpreter > getuid
Server username: msfuser-PC\msfuser
meterpreter > 

Windows 10 22H2 x86 - MinGW

meterpreter > 
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: a61okg2f) Redirecting stageless connection from  with UA '' to /pKaVSqE_BZDLR8pGooFENQpUqU9ntNq7dr6k
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: a61okg2f) Attaching orphaned/stageless session...
[!] http://192.168.3.10:8081 handling request from 10.5.132.102; (UUID: a61okg2f) Without a database connected that payload UUID tracking will not work!
WARNING: Local file /home/kali/Documents/github/metasploit-framework/data/meterpreter/ext_server_stdapi.x86.dll is being used

meterpreter > bg
[*] Backgrounding session 1...
msf6 payload(windows/meterpreter_reverse_http) > sessions -i -1
[*] Starting interaction with 2...

meterpreter > [*] Meterpreter session 2 opened (192.168.3.10:8081 -> 10.5.132.102:50581) at 2026-03-27 10:08:58 -0400

meterpreter > sysinfo
Computer        : DESKTOP-PCHAGVH
OS              : Windows 10 22H2+ (10.0 Build 19045).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > ls
Listing: C:\Users\msfuser\Desktop
=================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100666/rw-rw-rw-  2294    fil   2025-08-07 09:25:44 -0400  Microsoft Edge.lnk
100666/rw-rw-rw-  282     fil   2025-08-07 09:25:44 -0400  desktop.ini
100777/rwxrwxrwx  580096  fil   2026-03-27 10:08:43 -0400  metsrv.c2.x86.exe

meterpreter > getuid
Server username: DESKTOP-PCHAGVH\msfuser
meterpreter > 

@OJ

OJ commented Mar 25, 2026

Copy link
Copy Markdown
Contributor Author

yes!

@dledda-r7

Copy link
Copy Markdown
Contributor

Nice work as always @OJ

@dledda-r7

dledda-r7 commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@OJ , I will ensure x64 is working well on Windows 7 and Windows 11 with DLLs compiled with MSVC and MinGW, i think the only missing piece is the x86 version and then we are good to go.

@OJ

OJ commented Mar 25, 2026

Copy link
Copy Markdown
Contributor Author

@dledda-r7 Thank you sir! They appear to be working at this end, just need to get some more stuff tested to be sure.

I've got the other Meterps mostly done too. I'll probably piggyback another PR on top of this one for those.

@dledda-r7
dledda-r7 merged commit 8bc03ef into rapid7:6.5 Mar 27, 2026
45 of 55 checks passed
@OJ

OJ commented Mar 28, 2026

Copy link
Copy Markdown
Contributor Author

Thank you so much for all your help and support @dledda-r7 !! I appreciate the effort involved in getting this tested as well as helping me debug/fix/etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants