Iran vows revenge