ConnectionChecker

[★☆☆] Tool

Description

Bob, the overworked system administrator, had always battled an unpredictable internet connection—one moment it’s there, the next it’s gone. In his search for a remedy, he stumbled upon a forum post by a genuinely good guy, a friendly coder who had whipped up a quirky little program designed to diagnose his connectivity woes. With a mix of hope and skepticism, Bob ran the tool, only to be met with an eerie silence. At least it seemed so.

CheckConnection.jararrow-up-right

Solution

Decompile the JAR file https://www.decompiler.com/jar/1733171726a0461f8765cd649f5516ce/CheckConnection.jararrow-up-right

Main file to focus right now is TestKt.java. Right off the bat we see first base64 encoded value, if decoded it's the first flag.

      String start_token = "U0stQ0VSVHtqNHJfZDNjMG1wX2s3fQ==";
circle-check

[★☆☆] Lies

Description

It turns out Bob wasn’t lucky after all. This tool isn’t a helpful diagnostic. Can you reveal its true purpose?

Solution

After following some logic we see another obfuscated used

ConnectionChecker.png

deobfuscate by running the code and get second flag

circle-check

[★☆☆] Executer

Description

It seems that this "tool" is executing a payload. Can you determine what it does?

Solution

Following piece of code is connecting to C2 server

output.println(encodedData); sends the message to C2 server and then String response = input.readLine(); reads the response.

Encoded data is just String encodedData = base64(hash + '|' + new String(s, Charsets.UTF_8));; Hash is already hardcoded so we know it, s is the second flag and finally base64 encode;

Get readable code

Use ChatGPT to reverse engineer without struggle

Replace exec with print

circle-check

Last updated