Bad places can have good guys, too
Your title and your body are asking slightly different things. The title is about how to run a campaign in a darker setting. However, the body also talks about the players potentially playing evil or morally quesionable characters. That is a huge difference and not the same thing. My key recommendations to you are
Explain to your players what kind of world you have in mind, and see if they are OK with it
Establish a clear social contract what kind and level of evil behaviour for a PC towards other PCs and in general is acceptable to all
Be ready to adjust if it does not work as you hoped for
My experiences with running campaigns in a dark, crapsack world setting and with treacherous characters are based on Dark Sun. And my take away from the experience is that doing both at the same time and having fun is hard.
Crapsack World: talk to your players beforehand. If they are used to heroic and lighthearted campaigns, this may not be what they enjoy that much. Looks like you did and did get tentative buy-in. You can use the ususal session 0 tools here, to ensure all agree on themes that the players feel comfortable with (or not). Still, be prepared that they find they actually don't like the experience, and be ready to adjust somewhat. For example, I cajoled my players into playing an old-school campaign with high lethality, modded to have experience points partly tied to treasure captured instead of full XP for monster kills, and they agreed to try it, but they found they don't like it that much after some time. So we adjusted, back to full XP for monsters.
Good characters in a bad place: You can play a good, or at least neutral group in such a world, and that may be a good middle ground. There are lots of examples of anti-heroes in movies and literature: Robin Hood types who stick it to the evil overlord and other scumbags in power but treat the poor fairly; "someone needs to do it, and there is noone else to do it" tough guys who have no interest in being a white knight and still end up saving the day like in Sin City; Dark Knights with their own demons who pay back a horrible childhood and stand above the law; the list goes ever on.
Beware of real crapsack pals. If the characters are really playing treacherous scumbags who backstab each other, this can turn out to be hard, because it puts a lot of strain on the social experience at the table. Everyone is passing secret notes to the DM, nobody is what they seem to be, everyone needs to constantly look out that their buddies are not taking advantage of them. It can be extremely unpleasant, and you really need players that enjoy that. My recommendation is to explore if the players are really into that, and clarify what level of evil is OK evil. We had several campaigns with evil characters, and for us, the only one that worked and was fun was one where they all stuck together like glue, evil as they were. Every time we had backstabbing, scheming, stealing intergroup advantage-taking, fun went out the window for us super fast. We decided to ban such characters. You mileage may vary of course, but make sure everyone knows what they are signing up for if you go there.