diff --git a/tavern/internal/c2/api_claim_tasks.go b/tavern/internal/c2/api_claim_tasks.go index b149710ea..c37f41cfe 100644 --- a/tavern/internal/c2/api_claim_tasks.go +++ b/tavern/internal/c2/api_claim_tasks.go @@ -216,10 +216,14 @@ func (srv *Server) ClaimTasks(ctx context.Context, req *c2pb.ClaimTasksRequest) SetIdentifier(req.Beacon.Host.Identifier). SetName(req.Beacon.Host.Name). SetPlatform(req.Beacon.Host.Platform). - SetPrimaryIP(req.Beacon.Host.PrimaryIp). SetLastSeenAt(now). SetNextSeenAt(now.Add(time.Duration(activeTransport.Interval) * time.Second)) + // Only update primary IP if it's not empty + if req.Beacon.Host.PrimaryIp != "" { + hostCreate.SetPrimaryIP(req.Beacon.Host.PrimaryIp) + } + // Only update external IP if it's not NOOP if clientIP != redirectors.ExternalIPNoop { hostCreate.SetExternalIP(clientIP)