Skip to content

Commit 1a8dfb4

Browse files
authored
Merge pull request #805 from zeroSteiner/fix/windows-migrate-c2-config
Fix Windows Meterpreter migrate config transports
2 parents 39e3bba + 0b6829a commit 1a8dfb4

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

c/meterpreter/source/metsrv/server_setup.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,14 @@ static BOOL create_transports(Remote* remote, Packet* packet)
197197

198198
while (packet_enum_tlv(packet, index, TLV_TYPE_C2, &c2Tlv) == ERROR_SUCCESS)
199199
{
200-
create_transport(remote, packet, &c2Tlv);
200+
if (create_transport(remote, packet, &c2Tlv) == NULL)
201+
{
202+
return FALSE;
203+
}
201204
++index;
202205
}
203206

204-
return TRUE;
207+
return remote->transport != NULL;
205208
}
206209

207210
static void config_create(Remote* remote, LPBYTE uuid, MetsrvConfig** config, LPDWORD size)
@@ -241,7 +244,13 @@ static void config_create(Remote* remote, LPBYTE uuid, MetsrvConfig** config, LP
241244
dprintf("[CONFIG] Comms handle set to %p", commsHandle);
242245
}
243246
dprintf("[METSRV] - config_create -- adding transport");
244-
t->write_config(t, configPacket);
247+
Packet* c2Packet = packet_create_group();
248+
if (!c2Packet)
249+
{
250+
break;
251+
}
252+
t->write_config(t, c2Packet);
253+
packet_add_group(configPacket, TLV_TYPE_C2, c2Packet);
245254

246255
t = t->next_transport;
247256
} while (t != current);

0 commit comments

Comments
 (0)