Basic analysis of Kidflix users’ passwords


On 11 March 2025, one of the biggest child sexual abuse material (CSAM) platforms, named Kidflix, was taken down in an international law enforcement effort dubbed Operation Stream. Kidflix launched in 2021 and hosted over 91,000 unique videos while it was active. The investigation into the platform started in 2022 and resulted in 79 arrests, 1,393 identified suspects and seizure of over 3,000 electronic devices. For more details, please read Europol’s press release. I bumped into this good news on 2nd April 2025, when, as usual, was going through publications on the BleepingComputer.

Kidlflix seizure banner. Taken from Europol’s PR

Now, you know, I am very interested in infostealers and data leaks, and for a long time was thinking that we could leverage the infostealer logs for identifying logins to CSAM related sites. Before submission of my infostealers related talk to BalCCon2k24 conference, I mentally outlined the structure of it into two parts. In the first part I’d talk about infostealers and in the second part I’d do some basic analysis of data exfiltrated from victims. Among other things, for the analysis parts I thought to myself that wouldn’t it be cool to show how many users of CSAM site were found. Pretty quickly I dismissed the idea, for a few reasons:

  • To find the users of CSAM sites, I firstly needed to find addresses of such sites to use as keywords against the data-set. While theoretically I could find such sites for keyword population, but in practice I didn’t really want to be exposed to any such horrific materials. Frankly speaking, not worth doing it just to have an additional “cool” slide on the presentation.
  • I didn’t have backing/blessing of a law enforcement or child protection agencies. Therefore, it would pretty troublesome to explain myself on how did I get the websites.

Amazingly enough, on the day when I submitted my talk to BalCCon2k24 conference, Recorded Future dropped an excellent report: “Caught in the Net: Using Infostealer Logs to Unmask CSAM Consumers” Recorded Future did exactly what I was thinking about, and they identified over 3,000 unique login credentials to CSAM sites. It is a superb investigation, I recommend reading the whole report.

Recently, I was chatting with Louis Hur, CEO of StealthMole, a company which provides dark web threat intelligence services. StealthMole surfaced recently, and took the OSINT community by storm, search for it on LinkedIn, a number of “OSINTers” are showcasing impressive use cases of the platform. Louis shared with me his post on findings related to Kidflix on StealhtMole platform, which identified 2,104 accounts from 36 counties. This reminded me of something I supposed to do…

You see, the bulk of this post was written in the beginning of April, and it was just sitting in my drafts. I just never finalized and pushed to publication. By now, you are wondering what this post is about. I did a thing, and you guessed it right, I did search for Kidflix login credentials and tried to make some basic analysis.

Now, I don’t have access to full infostealer logs, neither do I have time/resources/skills to collect full logs and parse/process them. What I have is a URL:Login:Password (ULP) data-set, which I occasionally deduplicate, clean and update with new data. And then I give mildly entertaining talks, such as on BalCCon2k24 or DisObey2025, about infostealers.

When the news about the taking down of Kidflix came, I decided to see if there are any findings in the ULP data-set. Remember when I told that I didn’t really want to search for web addresses of CSAM sites? Yeah, I figured that for this particular case, I don’t really need to actively search for URLs of CSAM platform, I can just search for the word “kidflix” in the data-set, then filter all the ULP lines where the URL starts with “kidflix”. And just like that, I identified a number of login credentials to the CSAM site. But, you’d ask, “what about your usual meaningless numbers”, let me provide ’em:

Unique Kidflix addresses (V3 onion): 18
Unique login credential pairs (login username/password): 1171
Unique login usernames: 989 (935 case-insensitive)
Unique email addresses used as login usernames: 54
Unique passwords: 863

Ha, passwords! Always wanted to analyse them. I tried to invoke an inner Jarkko Vesiluoma, but to no avail. Sadly, I am a version of Jarkko one would get from TEMU.

I searched for password analysis tools, tried some, and decided to use passwordSmelter, which is good enough, gives some stats on passwords. Below tables are results of the tool’s output, after I fed it passwords of Kidflix users.

This is of course a bit of a dumb investigation on passwords. What would be really cool is to compare password characteristics from this data-set to others. And personally, I’d be more interested in semantics of passwords. But, unfortunately, I don’t have enough time for a more in-depth analysis. Hope you liked the post and if you like to chat (or work on something together), feel free to contact me.


Password length

Password LengthCount
619
719
8231
9239
10195
11147
1287
1364
1442
1579
1612
Other37

Character sets

Character SetCount
mixedalphanum598
all277
loweralphanum156
loweralphaspecialnum38
numeric36
loweralpha32
Other34

Simple masks

MaskCount
Word+Number607
Other204
Word+Number+Symbol110
Word+Symbol+Number65
Number+Word55
Word49
Word+Number+Word45
Number36

Top base words

Base WordCount
manchkin20
david18
genuine15
mystuff12
money10
italpur10
kar9
lok9
cademan9
vermot9
ameli8
kidflix7
fresco7
elweon7
qwert6
syzz6
maan6
qweasd6
amap6
kib5

Top mutations

MutationCount
password66
password148
password12333
password123424
password11323415
password1212
password2111
password2610
password123lok9
password7869
password123@9
password@1239
Kar123password9
password28
password698
password1007
password57
password06
1234password6
password76

Top numbers

NumberCount
184
12367
238
123437
334
729
528
825
923
1223
422
621
017
11323415
10011
2111
2611
78610
01210
119

Top symbols

SymbolCount
@133
!43
.35
#24
_23
21
$15
*7
?6
&5
@@4
..4
**3
@/3
$#3
{2
2
$$$-_2
2
.?#+2

Advanced masks

MaskCount
?u?l?l?l?l?l?l?l?d40
?u?l?l?l?d?d?d?d37
?u?l?l?l?l?d?d?d29
?u?l?l?l?l?d?d?d?d26
?u?l?l?l?l?l?d?d20
?u?l?l?l?l?l?l?d?d20
?u?l?l?l?l?l?l?d19
?u?l?l?l?l?d?d?d?d?d?d18
?u?l?l?l?l?l?d?d?d?d18
?u?l?l?l?l?l?d?d?d16
?u?l?l?l?l?l?l?d?d?d?s16
?d?d?d?d?d?d?d?d15
?u?l?l?l?l?l?l?d?d?d15
?l?l?l?l?d?d?d?d14
?l?l?l?l?l?d?d?d?d11
?l?l?l?l?l?l?d?d?d?d11
?l?l?l?l?l?l?d?d?d11
?u?l?l?l?l?l?l?l?d?d11
?u?l?l?l?l?l?l?l?l?d?d10
?l?l?l?l?l?l?l?l9
Other805