A and B are certainly correct grammar. If I was answering I'd choose A because "who" is more often used for the relative pronoun when referring to a person. But "that" is also used (and here you can argue logically "no one" isn't a person...)
"But" is wrong. It is possible to use "but" as a conjunction. In that case it links two clauses. You could say "There is no one but one who wishes peace" or "There is no one who wishes for aught but peace" These are both formal and marked expressions, and not typical of normal writing.
The expression: "There is no one but wishes peace" is incorrect grammar. The only way I can parse it at all is to assume that "wishes" is a plural noun which is a noun adjunct to peace, and the noun phrase "wishes peace" is a somehow a compound noun that is a type of person.
(There may be some archaic poetic uses, Kate in a link gives "Not one but hung limp" in a poem by Frost to mean "There was not one person who did not hang limp")
A bit of googling shows that this precise phrase has found its way into some Chinese grammar studies (http://blog.sina.com.cn/s/blog_4bff2ed8010007ms.html) Nevertheless, the test is wrong, as a test of modern standard English.