Network Forensics
====
# Freshman 2023 Free Flag
Description: This is a warmup challenge so I give everyone a free flag! Easy peasy lemon squeezy!
Link download: https://actvneduvn-my.sharepoint.com/:u:/g/personal/ct06n0127_actvn_edu_vn/Ed5o8S6RUF1EnoGwfxyjKlgBYpOveyXz2os5lUi-sVmx2A?e=49O2mX
File pcap -> mở wireshark

-> analyze -> follow -> TCP stream, mình thu được các session sau:
Stream 0:

Stream 1:

Stream 2:

Stream 5:

Stream 6:

Stream 9:

Stream 10:

Ta có source code sau:
```python!
import base64
BANNER = """ ___ __ ________ ________ ________ ________ ___ __ _____ ________
|\ \ |\ \|\ __ \|\ ___ \|\ ___ \|\ __ \|\ \ |\ \ / __ \|\ ___ \
\ \ \ \ \ \ \ \|\ \ \ \\\ \ \ \ \\\ \ \ \ \|\ \ \ \ \ \ \|\/_|\ \ \ \\\ \ \
\ \ \ __\ \ \ \ __ \ \ \\\ \ \ \ \\\ \ \ \ __ \ \ \ __\ \ \|/ \ \ \ \ \\\ \ \
\ \ \|\__\_\ \ \ \ \ \ \ \\\ \ \ \ \\\ \ \ \ \ \ \ \ \|\__\_\ \ \ \ \ \ \\\ \ \
\ \____________\ \__\ \__\ \__\\\ \__\ \__\\\ \__\ \__\ \__\ \____________\ \ \__\ \__\\\ \__\\
\|____________|\|__|\|__|\|__| \|__|\|__| \|__|\|__|\|__|\|____________| \|__|\|__| \|__|
"""
KEY = bytes.fromhex('deadbeef')
def encryptSecret(secret):
lst_byte = []
for i in range(len(secret)):
enc_byte = ord(secret[i]) ^ KEY[i % len(KEY)]
lst_byte.append(enc_byte.to_bytes(1, 'big'))
return base64.b64encode(b''.join([_ for _ in lst_byte])).decode()
if __name__=='__main__':
print(BANNER)
secret = input("> Please give me your secret: ")
print("\n> Here is your encrypted secret:", encryptSecret(secret))
```
Nói chung hàm encryptSecret xor sau đó đổi qua bytes rồi encode base64, vì có key rồi nên mình dễ dàng decrypt được bằng cách decode base64 rồi xor với key.
```python!
import base64
from pwn import xor
key = bytes.fromhex('deadbeef')
enc_msg = 'iZzFsKme0oOdndOqgdnxsKmZ0KG/2o+hgdA='
dec_msg = base64.b64decode(enc_msg)
print(xor(key, dec_msg))
# b'W1{_w3llC0mE_tO_w4nNaw1N_}'
```
=> W1{_w3llC0mE_tO_w4nNaw1N_}
# KMACTF 2023 Chaos
Link download: https://actvneduvn-my.sharepoint.com/:u:/g/personal/ct06n0127_actvn_edu_vn/EXTboNzH_ldDvXeXGsH2anABNvql-qOQBEpP7HltRm91wg?e=8xGgeT
Mở file sau đó sắp xếp thời gian tăng dần, mình sẽ thấy phần text trong data của mỗi gói tin như sau:

Ghép hết lại là ra flag.
=> KMACTF{C0d3\_cun9\_du0c\_t0Ol\_Cun9\_DuOc\_nHun9\_h1\_v0n9\_b4n\_kh0n9\_l@m\_m0t\_c4cH\_tHu_C0nG}
# Viblo CTF - Netlab Warmup
https://ctf.viblo.asia/puzzles/netlab-warmup-vg104c0hpc7
Bài này mình làm như câu Free flag ở trên.

Synt{ArgYno0_SGC_1f_a0g_f3pHe3333} -> decode mã caesar key = 13
=> Flag{NetLab0\_FTP\_1s\_n0t\_s3cUr3333}
# Viblo CTF - Netlab1: Sharing
https://ctf.viblo.asia/puzzles/netlab1-sharing-7ftcbkfnovy
A protocol that looks a bit strange. Do you know how to deal with it?

Requests sử dụng giao thức SMB -> vào file -> Export objects -> SMB

Tải 2 file đáng ngờ là password.txt và netlab1.7z về, file netlab1.7z cần pass để giải nén, ta giải nén bằng mật khẩu trong file password ra một file database là netlab1.db.
Mở file netlab1.db để check mình thấy sử dụng SQLite:

Với file database này mình hay mở bằng DB Browser for SQLite, sau khi mở mình thấy bảng Flag.

Thực hiện truy vấn SQLite để lấy dữ liệu ra từ bảng flag.
```
SELECT group_concat(BillingCity, "") from flag
```

=> Flag{NetLab1_N0w_y0u_kn0w_SMB??}