Wir haben diverse Tools im Einsatz, um die Spammer und Account-Hijacker fernzuhalten. Es ist am Ende immer ein Katz und Maus-Spiel. Nicht nur wir rüsten auf, sondern auch die andere Seite (eigentlich ist die Reihenfolge andersherum).
Ich kann das hier nicht alles im Detail erklären, aber gebe mal ein Beispiel aus der Liste: Wir schauen regelmäßig nach nicht erfolgreichen oder erst nach einigen Versuchen erfolgreichen Login-Versuchen und erfordern dann u. U. einen Password-Reset über den E-Mail-Account, bevor das MTB-News-/EMTB-News-/Rennrad-News-Nimms Rad-Konto wieder genutzt werden darf.
Hier entsteht dann sofort ein Problem, wenn die Leute - wie leider immer noch üblich - überall das selbe Password verwenden, insbesondere auch für den E-Mail-Account. Dann ist nämlich ein Password-Reset auch für Bad Actors überhaupt kein Problem[1]. Haben wir alles beobachtet.
Es gab vor einer Weile eine Welle von Accountübernahmen, mit denen dann im Bikemarkt wertvolle Artikel für einen guten Preis eingestellt wurden - das alles schön mit Accounts, die schon ein paar Jahre auf dem Buckel hatten. Das ging soweit, dass wir live bei den Login-Versuchen zuschauen konnten. Dort wurden dann beliebte Passwords durchprobiert, bis das passende dabei war (diese Möglichkeit des unbegrenzten Durchprobierens ist mittlerweile eingeschränkt).
Es gibt hier jeden Tag unzählige Login-Versuche, um Accounts zu übernehmen, die allermeisten nicht erfolgreich.
Was deine Vermutung eines DB-Leaks angeht: Das sehe ich tatsächlich als die unwahrscheinlichste Variante.
Alle der betroffenen Accounts haben Mailadressen, die bei mehreren Leaks auf Have I Been Pwned gelistet sind, u. A. auch bei den sehr ergiebigen Leaks „Naz.API“ und „Combolists“ (Emails + Plaintext-Password). Ebenfalls beliebt könnte der MyFitnessPal-Leak sein, vermutlich wegen der thematischen Nähe. Hier sind zumindest SHA1-Hashes drin, die sich heutzutage aber verhältnismäßig leicht umkehren lassen. Und wir wissen nicht, was da draußen noch alles an Email/Password-Listen herumfliegt, aus denen man sich nach Belieben bedienen kann.
Es ist damit im Idealfall (selbes Password für mehrere Dienste genutzt) nur ein Versuch und du hast dich auf einem passenden Account hier eingeloggt. Dauert 10 Sekunden und kann von uns nicht detektiert werden.
Hast du die Finger auf einem beliebigem DB-Leak, stehst du erstmal vor dem Problem, überhaupt an die Passwords zu kommen. Die stehen nämlich idealerweise nicht als Plaintext da drin, sondern als Hash (bei uns: bcrypt mit aktuell noch 10 Iterationen). Du musst jetzt erstmal das passende Plaintext-Password finden, das den identischen Hash erzeugt. Das ist bei SHA1 oder gar MD5 (vielleicht sogar noch ohne Salt) oft nicht weiter schwer, kostet nur ein bisschen Rechenleistung und Zeit. Bei bcrypt und anderen modernen Verfahren ersetzt du das „bisschen“ mit „viel“. Das ist sehr aufwändig und steht in keinem Verhältnis zum Gewinn am Ende (ein paar Klicks auf deine Spamlinks). Wie man die Schwierigkeiten nun im einzelnen bewertet ist dabei aber auch egal: Die Wahrscheinlichkeit einen Account über ein bereits vorhandenes Plaintext-Password aufzumachen ist immer um Größenordnungen höher.
[1] Wenn ich nur eine Empfehlung geben dürfte, um die eigene Online-Security zu verbessern: das primäre E-Mail-Konto benötigt ein eigenes gutes Password was nirgends sonst verwendet wird und aktivierte 2FA. Keine Ausreden, keine Kompromisse.