There are a range of factors sites use;
Such as play style, move depth , skill level vs move skill level. Engines are emotionless and are willing to just commit.
Things such as ;
Move depth not comparable to skill level
Move Time being consistent eg 5 seconds per move (hard to demonstrate her)
Consistent string of flawless games
Move depth not comparable ...
Three options I can think of immediately:
https://chess-endgame-trainer.firebaseapp.com/home is a fantastic chess endgame trainer.
Chessable also lets you create your own courses (for free) which you can then do spaced repetition on.
Listudy is another option.
I would strongly suggest looking into chess.com as they have an extensive "Learning" module on end game and end game tactics. You are limited to the amount of modules you can complete per day unless you are willing to pay for a subscription. This isn't necessarily a bad thing as learning to much can result in concepts not necessarily taking hold.
That's a bit like asking a congregation of people "is everyone here?" and expecting an accurate answer.
There may very well be chess engines that are optimized to fly under the radar of the cheat detection algorithms used at the major sites. But those are not the ones that get exposed and therefore they are not well known.
Some of those things are possible in theory. Especially if you have a good idea what an engine-detector is looking for, you could maybe do some machine-learning training of algorithm against algorithm until you had one that could make good moves that didn't get detected as different from a given player's normal play.
But that would require someone to be ...
With the proliferation of machine learning systems and excess processing power, once you have enough play data, you can use readily accessible machine learning algorithms to determine a player's playstyle, and compare their moves against chess engine playstyles.
The exact mechanism and detail are university-level courses, so that isn't something I can ...
One very obvious indication for people using engines is, that they need roughly the same time for every move (usually about 5s in blitz games), even for the most obvious ones, which could be premoved. They also have much worse ratings in faster time controls (bullet). One example: https://youtu.be/rlxHusHfpck
Engines have no concept of natural moves and they have no fear. An engine will play for the most advantage, not for the most manageable advantage, even if it allows a fierce attack, because it sees that the attack does not work, while a human would probably prevent an attack and settle with a smaller, but practical advantage.
"Randomly" picking ...