Both of them have but one form and express moral obligation, often as a recommendation, a piece of advice.

There is a light difference in their use, - while should often expresses a personal concern, ought sounds more formal.

You should go to the doctor at once.
Ты немедленно должен сходить к врачу.

You ought to do it at once.
Вам необходимо это сделать безотлагательно.

Should is used with the bare infinitive and ought with the to-infinitive.

They can be used with the Perfect Infinitive when the action refers to the past and the speaker wants to say that somebody acted in the wrong way.

You should have told me about it yesterday.
Тебе надо было (следовало, ты был должен) сказать мне об этом вчера.