From d4e582041cacd55c57e3e3c3c2f52eb7b8956fcb Mon Sep 17 00:00:00 2001 From: Spencer McIntyre Date: Wed, 12 Nov 2025 11:06:04 -0500 Subject: [PATCH] Send the address info back to Metasploit --- .../metasploit/meterpreter/stdapi/stdapi_channel_open.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_channel_open.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_channel_open.java index be99ca19a..796921f89 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_channel_open.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_channel_open.java @@ -80,6 +80,8 @@ private int executeUdpClient(Meterpreter meterpreter, TLVPacket request, TLVPack } Channel channel = new DatagramSocketChannel(meterpreter, ds); response.add(TLVType.TLV_TYPE_CHANNEL_ID, channel.getID()); + response.add(TLVType.TLV_TYPE_LOCAL_HOST, ds.getLocalAddress().getHostAddress()); + response.add(TLVType.TLV_TYPE_LOCAL_PORT, ds.getLocalPort()); return ERROR_SUCCESS; } @@ -89,6 +91,8 @@ private int executeTcpServer(Meterpreter meterpreter, TLVPacket request, TLVPack ServerSocket ss = getSocket(localHost, localPort); Channel channel = new ServerSocketChannel(meterpreter, ss); response.add(TLVType.TLV_TYPE_CHANNEL_ID, channel.getID()); + response.add(TLVType.TLV_TYPE_LOCAL_HOST, ss.getInetAddress().getHostAddress()); + response.add(TLVType.TLV_TYPE_LOCAL_PORT, ss.getLocalPort()); return ERROR_SUCCESS; } @@ -96,7 +100,6 @@ protected ServerSocket getSocket(String localHost, int localPort) throws Unknown return new ServerSocket(localPort, 50, InetAddress.getByName(localHost)); } - private int executeTcpClient(Meterpreter meterpreter, TLVPacket request, TLVPacket response) throws Exception { String peerHost = request.getStringValue(TLVType.TLV_TYPE_PEER_HOST); int peerPort = request.getIntValue(TLVType.TLV_TYPE_PEER_PORT); @@ -124,6 +127,8 @@ private int executeTcpClient(Meterpreter meterpreter, TLVPacket request, TLVPack Channel channel = new SocketChannel(meterpreter, socket); channel.startInteract(); response.add(TLVType.TLV_TYPE_CHANNEL_ID, channel.getID()); + response.add(TLVType.TLV_TYPE_LOCAL_HOST, socket.getLocalAddress().getHostAddress()); + response.add(TLVType.TLV_TYPE_LOCAL_PORT, socket.getLocalPort()); return ERROR_SUCCESS; } }