Hamas vows revenge