<h2>
Forensics - Netcomp UGM 2024
</h2>
<h3>
Packet
</h3>
<p>
Get my message !
</p>
<hr>
<p>
Diberikan sebuah file pcap (wireshark analys), seperti kita ketahui pcap ada log recorded dari suatu envidence atau log yang akan dibaca. analisis awal kami seperti biasa melihat protokol yang terdapat di record log dengan memanfaatkan tshark.
</p>
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182541180583996/image.png?ex=65abc8d6&is=659953d6&hm=c0dbaad9c4189e2a544ce014ef5e517c511984cdcf7bd5daf10be3dfcca4c3f7&=&format=webp&quality=lossless&width=1531&height=1043" />
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182343553372200/Jepretan_Layar_2024-01-06_pukul_19.55.01.png?ex=65abc8a6&is=659953a6&hm=f84a9e02f1734b659f0dc639fcfd214744f9976a5525c6362fc269b6b6f7a518&=&format=webp&quality=lossless&width=2159&height=797" />
lalu kami berinisiatif membuat script untuk memudahkan parsing data yang ada lalu dijadikan satu value hex yang akan didecode.
```python=
from scapy.all import *
from binascii import hexlify
def extract_data(packet):
try:
# Ambil data pada bit ke-17 hingga ke-32 dari beban TCP
data_hex = hexlify(packet[Raw].load[16:32]).decode("utf-8")
return data_hex
except Exception as e:
print(f"Error: {e}")
return ""
def save_data_to_file(data, file_name):
with open(file_name, "w") as f:
f.write(data)
def process_pcap(input_file):
odd_data = ""
even_data = ""
# Load file pcap
packets = rdpcap(input_file)
# Loop through packets starting from packet 2
for i, packet in enumerate(packets[2:], start=2):
if IP in packet and ICMP in packet:
# Cek ganjil atau genap berdasarkan urutan packet
if i % 2 == 1: # Packet ganjil
print(i)
print(packet)
print(f"\nProcessing odd packet (packet {i}):")
odd_data += extract_data(packet)
else: # Packet genap
print(i)
print(packet)
print(f"\nProcessing even packet (packet {i}):")
even_data += extract_data(packet)
# Save the data to files
print("Data saved to output_odd.txt and output_even.txt")
if __name__ == "__main__":
pcap_file = "packet.pcap"
process_pcap(pcap_file)
```
lalu solver save => hex nya kemudian hex di dump dengan xxd > lalu mempermudah bulk data dengan binwalk agar tidak perlu scripting lagi.
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182344069259274/Jepretan_Layar_2024-01-06_pukul_19.57.41.png?ex=65abc8a7&is=659953a7&hm=c227f56e40a040f03cfaa55a6880d511dee74c4e610516ef52e90adbc883bfb1&=&format=webp&quality=lossless&width=1663&height=1043" />
tinggal sort image sesuai name dengan hex kurang lebih urutan nya seperti berikut
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182344434176111/Jepretan_Layar_2024-01-06_pukul_19.59.09.png?ex=65abc8a7&is=659953a7&hm=8f2475ee9a344ac72ebe451d64800bd48d3e1e2dd378d37272d6c63b02ca0a40&=&format=webp&quality=lossless&width=2159&height=320" />
0: 0 = n
C0: 192 = e
190: 400 = t
260: 608 = c
330: 816 = o
3F0: 1008 = m
4B0: 1200 = p
580: 1408 = {
640: 1600 = s
710: 1808 = e
7E0: 2016 = n
8A0: 2208 = d
970: 2416 = i
A40: 2624 = n
B00: 2816 = g
BD0: 3024 = _
C80: 3200 = f
D50: 3408 = i
E20: 3616 = l
EE0: 3808 = e
FB0: 4016 = _
11F0: 4592 = r
12C0: 4800 = o
1380: 5008 = u
1440: 5184 = g
15D0: 5584 = _
1680: 5760 = I
1740: 5952 = C
1810: 6160 = M
18D0: 6352 = P
19A0: 6560 = }
Inti challange: mempelajari bahwa packet ICMP bisa dicustom send data dengan memasukan suatu data bulk yang disisipkan oleh attacker.
Flag: netcomp{sending_file_through_ICMP}
<br>
<h3>
bouncies
</h3>
<p>
Last night, our system got reconn-ed by an attacker, can you analyze what information he got?
</p>
<hr>
Diberikan evidence sebuah log serangan ? atau sesuatu yang mencurigkan dari log pcap yang ada, back to basic analysis awal log pcap adalah sebagai berikut.
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182344786477137/Jepretan_Layar_2024-01-06_pukul_20.07.10.png?ex=65abc8a7&is=659953a7&hm=73cc4e6fe2bfd7e9512eedbe3f0c8eec69736613d8a50973a41efa8b6e695e2c&=&format=webp&quality=lossless&width=1472&height=1043" />
yap kami mengikuti recorded berisi ftp, yang berarti attack melakukan serangan dengan akses ke ftp, kami validasi dengan wireshark, setalah kami analisis kami mengetahui suatu behavior serangan yang dilakukan yaitu dengan melakukan bruteforce terhadap port (dalam object ini hacker sudah mendapatkan creds valid hanya saja port nya tidak terdeteksi)
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182345268830368/Jepretan_Layar_2024-01-06_pukul_20.08.19.png?ex=65abc8a7&is=659953a7&hm=0a2f08e428a34a1b8f70d05b60aee3652e38a3ff2c29146859f9b3d38d0d0c3a&=&format=webp&quality=lossless&width=2159&height=1007" />
dari parsing kami kami coba scripting untuk mempermudah hasil akhir kami yaitu dengan melakukan eliminasi yang seharus nya parser connection gagal, dalam arti kami akan focus terhadap point suatu object pengecualian dari banyaknya gagal serangan.
```python=
f = open("parser.txt","r").readlines()
for data in f:
result = ""
data = data.replace("\n","")
if("Pure-FTPd" in data):
data = ""
elif("USER bouncies" in data):
data = ""
elif("331 User bouncies OK" in data):
data = ""
elif("PASS mypass" in data):
data = ""
elif("Response: 230 OK" in data):
data = ""
elif("FTP 89 Request" in data):
data = ""
elif("FTP 143 Response: 200-FXP transfer" in data):
data = ""
elif("FTP 144 Response" in data):
data = ""
elif("FTP 72 Request: LIST" in data):
data = ""
elif("Response: 425 Could not open data" in data):
data = ""
elif("FTP 79 Response: 425 Logout" in data):
data = ""
elif("FTP 90 Request: PORT" in data):
data = ""
elif("FTP 91 Request: PORT" in data):
data = ""
elif("FTP 88 Request: PORT" in data):
data = ""
if(data != ""):
print(data)
```
yap lalu tereliminasi log yang tidak ada pada log gagal, yaitu log berhasil dammm, finnaly
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182345797324850/Jepretan_Layar_2024-01-06_pukul_20.10.59.png?ex=65abc8a7&is=659953a7&hm=02b6f48d4f25a4386c30901e43604ceada3165556c219d6268890d1756208439&=&format=webp&quality=lossless&width=1614&height=1043" />
kami bingung sampai sini karena objective kami sudah mengetahui attack berhasil akses port, namun tidak ada action uploaded atau download / ambil data / taroh data, tapi kami melihat port nya sedikit uniq 3 bit tiap port ternyata bisa tersusun jadi flag.
inti (“mempelajari ftp log analysis”)
<img src="https://media.discordapp.net/attachments/1101531709670969364/1193182346518724658/Jepretan_Layar_2024-01-06_pukul_20.12.11.png?ex=65abc8a7&is=659953a7&hm=204dd99b41b27bb37bc2b15894cab260c3e27f0a52217aa696eb3dc3d74bacd2&=&format=webp&quality=lossless&width=1673&height=500" />
Flag: netcomp{bouncie_4tt4ck_f0r_r3c0n_op3n_port}