✓ Accepted answer
You're on the right track. Here's a few things you need to keep in mind:
The argument passed by the Touched event, hit, is the part that was touched. Therefore it would be part of the character, not the player. Team is a property of the player, not the character. Fortunately, you can use the GetPlayerFromCharacter() function to obtain the player object.
Secondly, it's possible that whatever hit your part was in fact not part of a player's character, so you want to check to make sure it is a character first.
Here is what your script should look like when updated:
script.Parent.Touched:Connect(function(hit)
local character = hit.Parent
local player = game.Players:GetPlayerFromCharacter(character)
if player then
player.Team = game.Teams:FindFirstChild("Criminal")
end
end)