for (let i = 0; i < 100; i++) { const input1 = awaitaskQuestion(`(${i + 1}/100) Enter first number: `); const input2 = awaitaskQuestion(`(${i + 1}/100) Enter second number: `);
for i inrange(100): # a = str(i+1), b = a + "999" a = str(i + 1) b = a + "999" print(f"[{i+1}/100] Sending {a} and {b}") r.recvuntil(f"({i+1}/100) Enter first number: ".encode()) r.sendline(a.encode()) r.recvuntil(f"({i+1}/100) Enter second number: ".encode()) r.sendline(b.encode()) # Read response resp = r.recvline().decode().strip() print(f"Response: {resp}") if"Correct!"notin resp: print("Failed!") break
# Get flag flag = r.recvall(timeout=2).decode() print("FLAG:", flag)
1 2 3 4 5 6 7 8 9 10 11
... [100/100] Sending 100 and 100999 Response: Correct! [x] Receiving all data [x] Receiving all data: 54B [+] Receiving all data: Done (54B) [*] Closed connection to numbers.p2.securinets.tn port 7011 FLAG: gg , get your flag
Securinets{floats_in_js_xddddd}
FLAG
1
Securinets{floats_in_js_xddddd}
Forensics
Silent Visitor
Challenge
A user reported suspicious activity on their Windows workstation. Can you investigate the incident and uncover what really happened?
What is the URL that the attacker used to deliver the malware to the victim?
run this 这封邮件内容如下:
1
Hey hey! Just pushed up the starter code here: 👉 https://github.com/lmdr7977/student-api You can just clone it and run npm install, then npm run dev to get it going. Should open on port 3000. I set up a couple of helpful scripts in there too, so feel free to tweak whatever. Lmk if anything’s broken 😅
What is the SHA256 hash of the disk image provided? Input: 122b2b4bf1433341ba6e8fefd707379a98e6e9ca376340379ea42edb31a5dba2 Correct answer Identify the OS build number of the victim鈥檚 system? Input: 19045 Correct answer What is the ip of the victim's machine? Input: 192.168.206.131 Correct answer What is the name of the email application used by the victim? Input: Thunderbird Correct answer What is the email of the victim? Input: ammar55221133@gmail.com Correct answer What is the email of the attacker? Input: masmoudim522@gmail.com Correct answer What is the URL that the attacker used to deliver the malware to the victim? Input: https://tmpfiles.org/dl/23860773/sys.exe Correct answer What is the SHA256 hash of the malware file? Input: be4f01b3d537b17c5ba7dc1bb7cd4078251364398565a0ca1e96982cff820b6d Correct answer What is the IP address of the C2 server that the malware communicates with? Input: 40.113.161.85 Correct answer What port does the malware use to communicate with its Command & Control (C2) server? Input: 5000 Correct answer What is the url if the first Request made by the malware to the c2 server? Input: http://40.113.161.85:5000/helppppiscofebabe23 Correct answer The malware created a file to identify itself. What is the content of that file? Input: 3649ba90-266f-48e1-960c-b908e1f28aef Correct answer Which registry key did the malware modify or add to maintain persistence? Input: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MyApp Correct answer What is the content of this registry? Input: C:\Users\ammar\Documents\sys.exe Correct answer The malware uses a secret token to communicate with the C2 server. What is the value of this key? Input: e7bcc0ba5fb1dc9cc09460baaa2a6986 Correct answer Sahaaaaaaaaaaa Securinets{de2eef165b401a2d89e7df0f5522ab4f} by enigma522
1
Securinets{de2eef165b401a2d89e7df0f5522ab4f}
Lost File
Challenge
My friend told me to run this executable, but it turns out he just wanted to encrypt my precious file.
And to make things worse, I don’t even remember what password I used. 😥
Good thing I have this memory capture taken at a very convenient moment, right?
defderive_key_iv(password: str, computer_name: str, secret_part: str) -> tuple[bytes, bytes]: """ Replicates: payload = "%s|%s|%s" and SHA256 over the resulting C string bytes In C, empty secret_part still yields trailing '|'. """ payload = f"{password}|{computer_name}|{secret_part}" h = hashlib.sha256(payload.encode("utf-8")).digest() key = h iv = h[:16] return key, iv
defread_file_bytes(path: str) -> bytes: withopen(path, "rb") as f: return f.read()
defdecrypt_file( input_path: str, output_path: str, password: str, computer_name: str, secret_part: str ) -> Optional[str]: """ Decrypt input_path using derived key/iv and write plaintext to output_path. Returns None on success, or error message string on failure. """ ifnot input_path ornot output_path: return"Please set INPUT_ENC_PATH and OUTPUT_DEC_PATH."
# Basic sanity checks mirroring original behavior assumptions if password == "": return"PASSWORD is empty. Please fill it." if computer_name == "": return"COMPUTER_NAME is empty. Use the actual host name or 'UNKNOWN_HOST'."
try: ciphertext = read_file_bytes(input_path) except Exception as e: returnf"Failed to read input file: {e}"
key, iv = derive_key_iv(password, computer_name, secret_part)
try: cipher = AES.new(key, AES.MODE_CBC, iv) plaintext_padded = cipher.decrypt(ciphertext) plaintext = unpad(plaintext_padded, block_size=16, style="pkcs7") except ValueError as e: # Typically raised on bad padding -> wrong parameters or corrupt file returnf"Decryption failed (padding/key/iv mismatch): {e}" except Exception as e: returnf"Decryption error: {e}"
try: write_file_bytes(output_path, plaintext) except Exception as e: returnf"Failed to write output file: {e}"
returnNone
if __name__ == "__main__": err = decrypt_file(INPUT_ENC_PATH, OUTPUT_DEC_PATH, PASSWORD, COMPUTER_NAME, SECRET_PART) if err: print(err) else: print(f"Decryption succeeded. Output written to: {OUTPUT_DEC_PATH}")