When am I [OSINT]

4 minute read

Simple OSINT challenge for hololive fans.

Challenge Description

Find the “time”. (Open your eyes, Look up to the skies and see,) (This challenge is not sponsred by h****ive)

whenami.jpg

Solution

CRC error detected here
CRC error detected here

The bottom right of the image shows the password to something. We use the following formula of hololive:

Hololive + time + O_ _ _ K_ _ _ _ _ = Ouro Kronii

So the password is “OUROKRONII”. (All caps by intuition, but I did try using lowercase letters, only all caps worked).

But what password is this to? Well… there are no other files given, and binwalk gave nothing, so it could only be steganography. We use the formula:

image + steganography + password = steghide

I just used an online tool, and it gave the following text:

Among Us - 1:36:18


[Viewer Rules]


3:6:4 
4:7:8 
1:5:1 
2:3:5 
"{" 
6:6:4 
7:6:2 
10:4:1 
9:1:1 
8:3:2 
9:5:1 
8:1:1 
8:1:1 
"0" 
4:1:1 
8:1:1 
11:1:1 
12:5:1 
6:1:1 
7:1:1 
"0" 
6:1:1 
8:1:1 
4:5:3 
"0" 
6:12:3 
10:1:1 
7:2:6 
4:11:1 
5:2:2 
12:3:1 
7:1:1 
3:1:1 
10:5:4 
10:27:2 
11:3:2 
11:6:4 
"}"

We can already see traces of the flag, but what is that cipher? I scratched my head for a bit but then recalled that hololive members put “Viewer Rules” in the description under their YouTube streams. So the first line “Among Us - 1:36:18” should be one of the streams!

Quick search on YouTube, and we find the stream with the specified duration. https://youtu.be/hdwCWIAR3q4

I know that the flag starts with wgmy so I tried to map the cipher to what was under “Viewer Rules” in the description. I eventually figured out that it might be of the format: line_index:word_index:character_index, all 1-indexed. Apparently this is called “book cipher”.

So I just wrote a script to get me all the characters out.

Final Script

rules.txt

Thank you for watching my stream!
To help everyone enjoy the stream more, please follow these rules:
1. Be nice to other viewers. Don’t spam or troll.
2. If you see spam or trolling, don’t respond. Just block, report, and ignore those comments.
3. Talk about the stream, but please don’t bring up unrelated topics or have personal conversations.
4. Don’t bring up other streamers or streams unless I mention them.
5. Similarly, don’t talk about me or my stream in other streamers’ chat.
6. No backseating unless I ask for help. I'd rather learn from my mistakes by dying countless times; if I fail, it will be on my own terms.
7. Please refrain from chatting before the stream starts to prevent any issues.
8. I will be reading some superchats that may catch my attention during the game but most of the reading will be done at the end of stream.
9. Please refrain from making voice requests as they were most likely done already.
As long as you follow the rules above, you can chat in any language!

flag.txt

3:6:4 
4:7:8 
1:5:1 
2:3:5 
"{" 
6:6:4 
7:6:2 
10:4:1 
9:1:1 
8:3:2 
9:5:1 
8:1:1 
8:1:1 
"0" 
4:1:1 
8:1:1 
11:1:1 
12:5:1 
6:1:1 
7:1:1 
"0" 
6:1:1 
8:1:1 
4:5:3 
"0" 
6:12:3 
10:1:1 
7:2:6 
4:11:1 
5:2:2 
12:3:1 
7:1:1 
3:1:1 
10:5:4 
10:27:2 
11:3:2 
11:6:4 
"}"

sol.py

rules = open("rules.txt", "r").readlines()
lines = open("flag.txt", "r").readlines()

flag = ""
for line in lines:
    if ":" in line:
        l, w, c = map(int, line.split(":"))
        flag += rules[l-1].split(" ")[w-1][c-1]
    else:
        flag += line[1]

print(flag)

Flag: wgmy{eeb7ac660269f45046a0e8abaa51dfec}