【fix】数据通信失败原因需要使用 ByteBuf格式 发送数据 ByteBuf realBuf = nextChannel.config().getAllocator().buffer(bytes.length);

realBuf.writeBytes(bytes);
This commit is contained in:
wujiawei 2024-09-17 20:41:42 +08:00
parent 4a7bdb366f
commit 2683bb4dee
9 changed files with 53 additions and 39 deletions

View File

@ -22,6 +22,11 @@ public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler<N
this.channelTypeAdapter = channelTypeAdapter;
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
super.channelActive(ctx);
}
@Override
public void channelRead0(ChannelHandlerContext ctx, NettyProxyMsg nettyProxyMsg) throws Exception {
Channel channel = ctx.channel();
@ -29,11 +34,6 @@ public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler<N
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
super.channelActive(ctx);
}
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {

View File

@ -1,6 +1,7 @@
package org.framework.lazy.cloud.network.heartbeat.server.netty.handler;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOption;
@ -35,7 +36,11 @@ public class PermeateClientRealHandler extends SimpleChannelInboundHandler<Netty
log.debug("bytes.length:{}",bytes.length);
log.debug("接收客户端真实服务数据:{}", new String(bytes));
Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(channel);
nextChannel.writeAndFlush(bytes);
// 将二进制数组转换成 ByteBuf 然后进行发送
ByteBuf realBuf = nextChannel.config().getAllocator().buffer(bytes.length);
realBuf.writeBytes(bytes);
nextChannel.writeAndFlush(realBuf);
}

View File

@ -66,10 +66,16 @@ public class PermeateVisitorHandler extends SimpleChannelInboundHandler<ByteBuf>
Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(visitorChannel);
// 下一个通道开启自动读写
log.info("write data to channelId:{}",nextChannel.id().asLongText());
nextChannel.config().setOption(ChannelOption.AUTO_READ, true);
// 绑定数据流量
ChannelAttributeKeyUtils.buildInFlow(nextChannel, bytes.length);
nextChannel.writeAndFlush(bytes);
// 将二进制数组转换成 ByteBuf 然后进行发送
ByteBuf visitorBuf = visitorChannel.config().getAllocator().buffer(bytes.length);
visitorBuf.writeBytes(bytes);
nextChannel.writeAndFlush(visitorBuf);
// 处理访客流量
ServerChannelFlow serverChannelFlow = ServerChannelFlow

View File

@ -60,9 +60,9 @@ public class NettyPermeateClientRealSocket {
if (channelFuture.isSuccess()) {
// 客户端链接真实服务成功 设置自动读写false 等待访客连接成功后设置成true
Channel realChannel = channelFuture.channel();
realChannel.config().setOption(ChannelOption.AUTO_READ, true);
realChannel.config().setOption(ChannelOption.AUTO_READ, false);
log.info("服务端内网渗透通过,绑定本地服务,IP:{},端口:{} 新建通道成功", clientTargetIp, clientTargetPort);
log.info("服务端内网渗透通过,绑定本地服务,IP:{},端口:{} channelID:{} 新建通道成功", clientTargetIp, clientTargetPort,realChannel.id().asLongText());
ChannelAttributeKeyUtils.buildVisitorPort(realChannel, visitorPort);
// 缓存当前端口对应的通道通道池
ChannelAttributeKeyUtils.buildNextChannel(realChannel, visitorChannel);

View File

@ -1,5 +1,6 @@
package org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.internal.network.server.permeate.mapping;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
@ -25,6 +26,7 @@ public class LazyInternalNetworkServerPermeateMappingRemoveCommand {
*
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description ="",name ="createTime",example = "")
private LocalDateTime createTime;
@ -74,6 +76,7 @@ public class LazyInternalNetworkServerPermeateMappingRemoveCommand {
*
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description ="",name ="updateTime",example = "")
private LocalDateTime updateTime;

View File

@ -1,19 +1,19 @@
package org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.persistence;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyInternalNetworkServerPermeateMappingDO;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyInternalNetworkServerPermeateMappingConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.mapper.LazyInternalNetworkServerPermeateMappingMapper;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.internal.network.server.permeate.mapping.LazyInternalNetworkServerPermeateMapping;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.internal.network.server.permeate.mapping.LazyInternalNetworkServerPermeateMappingRepository;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyInternalNetworkServerPermeateMappingConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyInternalNetworkServerPermeateMappingDO;
import org.springframework.stereotype.Repository;
import java.util.stream.Collectors;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyWrappers;
import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.internal.network.server.permeate.mapping.LazyInternalNetworkServerPermeateMapping;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import java.util.stream.Collectors;
/**
* describe 服务端网络渗透映射
*
@ -128,7 +128,7 @@ public class LazyInternalNetworkServerPermeateMappingRepositoryImpl implements
@Override
public Result<LazyInternalNetworkServerPermeateMapping> remove(LazyInternalNetworkServerPermeateMapping lazyInternalNetworkServerPermeateMapping) {
LazyInternalNetworkServerPermeateMappingDO lazyInternalNetworkServerPermeateMappingDO = LazyInternalNetworkServerPermeateMappingConverter.INSTANCE.fromLazyInternalNetworkServerPermeateMapping(lazyInternalNetworkServerPermeateMapping);
// lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyInternalNetworkServerPermeateMappingDO));
lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyInternalNetworkServerPermeateMappingDO));
return ResultFactory.successOf();
}

View File

@ -1,19 +1,19 @@
package org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.persistence;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyClientPermeatePortPoolDO;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyClientPermeatePortPoolConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.mapper.LazyNettyClientPermeatePortPoolMapper;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.permeate.port.pool.LazyNettyClientPermeatePortPool;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.permeate.port.pool.LazyNettyClientPermeatePortPoolRepository;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyClientPermeatePortPoolConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyClientPermeatePortPoolDO;
import org.springframework.stereotype.Repository;
import java.util.stream.Collectors;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyWrappers;
import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.permeate.port.pool.LazyNettyClientPermeatePortPool;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import java.util.stream.Collectors;
/**
* describe 客户端内网渗透端口池
*
@ -128,7 +128,7 @@ public class LazyNettyClientPermeatePortPoolRepositoryImpl implements LazyNett
@Override
public Result<LazyNettyClientPermeatePortPool> remove(LazyNettyClientPermeatePortPool lazyNettyClientPermeatePortPool) {
LazyNettyClientPermeatePortPoolDO lazyNettyClientPermeatePortPoolDO = LazyNettyClientPermeatePortPoolConverter.INSTANCE.fromLazyNettyClientPermeatePortPool(lazyNettyClientPermeatePortPool);
// lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyNettyClientPermeatePortPoolDO));
lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyNettyClientPermeatePortPoolDO));
return ResultFactory.successOf();
}

View File

@ -1,19 +1,19 @@
package org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.persistence;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyServerPermeatePortPoolDO;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyServerPermeatePortPoolConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.mapper.LazyNettyServerPermeatePortPoolMapper;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.server.permeate.port.pool.LazyNettyServerPermeatePortPool;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.server.permeate.port.pool.LazyNettyServerPermeatePortPoolRepository;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyServerPermeatePortPoolConverter;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyServerPermeatePortPoolDO;
import org.springframework.stereotype.Repository;
import java.util.stream.Collectors;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyWrappers;
import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import jakarta.annotation.Resource;
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.server.permeate.port.pool.LazyNettyServerPermeatePortPool;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import java.util.stream.Collectors;
/**
* describe 服务端内网渗透端口池
*
@ -128,7 +128,7 @@ public class LazyNettyServerPermeatePortPoolRepositoryImpl implements LazyNett
@Override
public Result<LazyNettyServerPermeatePortPool> remove(LazyNettyServerPermeatePortPool lazyNettyServerPermeatePortPool) {
LazyNettyServerPermeatePortPoolDO lazyNettyServerPermeatePortPoolDO = LazyNettyServerPermeatePortPoolConverter.INSTANCE.fromLazyNettyServerPermeatePortPool(lazyNettyServerPermeatePortPool);
// lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyNettyServerPermeatePortPoolDO));
lazyLambdaStream.delete(LazyWrappers.lambdaWrapperBean(lazyNettyServerPermeatePortPoolDO));
return ResultFactory.successOf();
}

View File

@ -24,6 +24,6 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
---
logging:
level:
root: DEBUG
#logging:
# level:
# root: DEBUG