It's unethical and very common.
It's ethical.... whatever those bots are doing to low entropy puzzles is what RC is doing to puzzles over 115 bits with his RCKangaroo.
From outgoing transaction -> extract public key -> from public key find private key -> create and sign another transaction with the private key.
It does not matter who created the first outgoing transaction in the first place.
what algorithm should be used to calculate the private key if the public key and the hash range from the private key are known?