Ну, "cattivo" значит в том числе и "злой"...

Насколько я понимаю, brutto больше подразумевает внешнюю некрасивость, а cattivo - внутреннюю. Хотя они могут значить одно и то же, особенно если речь...