Over the decade long career in the industry, I have ended up with multiple people who either don't care about the team or are just plain incompetent but get by amazingly using their people-gaming skills.
More than a couple times I have ended up switching jobs because I was either unwilling to (in early "naive idealist" days) or was unable to call bullshit on this kind of behavior (due to lack of certain skills). But now I am at point in my career where I feel like this is the muscle I want to flex.
For the record, I don't have personal enmity with co-workers who coast along or move up the ladder based on whatever strategies they employ. What I am looking to learn is how do you stop these kind of behavior from taking a toll on rest of the team? Specially if you're the peer bearing the brunt of their actions and not their manager.
[1]: https://news.ycombinator.com/item?id=29581125
If it's some technical thing, feel free to push for details like "have you reproduced/measured this?", "can you show me the source file / section of the documentation you are referring to?". Trust, but verify.
If it's some corporate mantra like "we are a meritocracy", "we only hire the best", "we are carbon neutral", "we are passionate about technology innovation", etc... don't go there.
Do you have an example of some bullshit you are dealing with?
If the management doesn't care that this problem is hurting the team, how is one member of the team going to change it?
If it's your company, you absolutely should and must do what it takes to fix the problem(s). But if it's somebody else's company, you need to think really hard about whether or not the effort - and potential blowback - is worth the cost(s).
Are you going to look back from your (eventual) deathbed and say "I'm proud that I fixed that problem?". Are you going to look back and regret that you didn't?
My guess is that your time, effort and attention would be better spent improving yourself than fixing somebody else's company. (That's not a criticism. I'm just saying that almost anything is a better investment of your time.)
The best thing you can do in such as situation is is keep records. Date, time, name, contents of communications (and ensure you retain emails) Keep these in your private work journal notebook (not on work systems).
Remember, facts fuck. If you keep records of bad actors, then when the time comes, you will have a case. If you have no records, then it never happened. (some people know this "laboratory book discipline".)
Quite often, people can be silenced by simply asking them (every time) for a email stating whatever their demands are. That will often be sufficient to give them pause to reassess their position.
All of this is unpleasant, but it sounds like you have almost got it figured out. I've come to realise that over time, "the names change, but the characters don't". Good luck.
Some people are naturally good at making themselves liked. And some people have learned to be good at making themselves liked. If it goes beyond that into outright lies and credit stealing then that is different.
I would say be careful playing politics and calling people out. It usually does backfire. You calling someone out for talking a good game and being mediocre at their job is unlikely to change anything, but it is likely to cause issues for you.
A reality of office life is people get promoted for all sorts of reasons and only one of those is being good at your job. If it is really agregious leave or try and transfer departments.
This works anywhere - just keep drilling down into their ideas, politely asking them to tell you more detail. If they have a good idea, they'll explain it and you learn something. If not, they crash and burn and everyone sees it for what it is. Either way, you were supportive and gave them a chance to prove out their thoughts.