progrez.cloud

Writeup CTF SecurityValley - The shell - Network

13 April 2023

Hai........


puasanya lancar?


Beberapa hari terakhir suntuk banget saat puasa, demi mengisis kekosongan sambil menunggu jam buka puasa apa salahnya mengasa otak yang tumpul ini untuk berkembang. untuk membuat puasa terlihat lebih elegan harus dibekali dengan hacking, tapi hacking yang legal :D


iseng buka ctftime.org lalu buka event yang lagi Now Runninghttps://ctftime.org/event/list/?year=2023&online=-1&format=0&restrictions=-1&now=true eh ketemu satu ctf yang lagi on https://ctftime.org/event/1799 yaudah klik linnya langsung daftar https://ctf.securityvalley.org/


soal pertama yang saya karjakan tentu saja yang paling mudah, tapi mudah-mudahan gak sulit :D


Soal yang saya kerja partama kali adalah soal dengan kategori Jaringan, berikut ini tampak soal tersebut



kita disuruh mencari flag yang berada di link github tersebut https://github.com/SecurityValley/PublicCTFChallenges/tree/master/network/the_shell

dengan nama file yaitu rev_shell.pcapng.


File .pcapng adalah format file untuk menyimpan data yang direkam oleh alat pemantauan jaringan atau alat lain yang digunakan untuk menganalisis lalu lintas jaringan. Format file ini digunakan secara luas di industri keamanan jaringan dan IT untuk merekam dan menganalisis data jaringan.


Secara umum file .pcapng ini merupakan tipe file yang lebih moderen dari .pcap untuk bisa membaca file tersebut tools yang paling umum digunakan adalah wireshark.


Apakah kita harus menginstall wireshark? tentu saja tidak!

dalam suasana puasa pahala bakal berkurang jika menginstall aplikasi yang berbau tentang aktivitas hacking! :D


untuk itu disini saya menginstall library scapy sebagai penganti aplikasi wireshark pada python

pip3 install scapy


untuk membaca packet jaringan tersebut berikut kode pythonnya


from scapy.all import *

filename = "./rev_shell.pcapng"

print(f"[+] membaca file pcap {filename=}...")
packets = rdpcap(filename)

for packet in packets:
  packet.show()
  input()


Dalam hal ini, program akan menampilkan setiap paket dalam file pcapng dan menunggu input pengguna sebelum melanjutkan menampilkan paket berikutnya. Dengan demikian, program tersebut dapat digunakan untuk menganalisis data jaringan dalam file pcapng secara interaktif.


jadi ketika kita menekan enter maka paket jaringan akan terbaca begitu secara terus menurus ketika kita menekan enter sampai paket yang terbaca selelai. berikut hasil paket yang yang saya berhasil dibaca



Terlihat pada gambar diatas pada bagian Raw data terdapat tulisan whoami

saya terus menekan enter untuk mencari flag



setelah menekan tombol enter yang kesekian kalinya sekarang paa bagian Raw terdapat tulisan cat flag.txt


untuk menghindari tombol enter agar tidak rusak alangkah baiknya kita perbaiki kode pythonnya

berdasarkan informasi dari hasil analisis, kita akan mengambil data yang penting-penting saja agar prosesnya cepat.


Disini kita akan membuat kondisi untuk mengecek flagnya, jika tulisan yang berisi flag itu ada didalam Raw data maka tampilkan.


Saya akan mulai dulu dari TCP pada bagian flags = PA

dan kemudian pada bagian Raw, jika pada Raw data ada tulisan SecVal maka tampilkan.

Secval{} ini murupakan kode flag.


from scapy.all import *
from termcolor import colored

filename = "./rev_shell.pcapng"

def process_packet(packet):
  if packet.haslayer(Raw):
    tcp_flags = packet[TCP].flags
    if not "PA" in tcp_flags:
      raw_data = packet[Raw].load.decode()
      if "SecVal" in raw_data:

        print(f"[*] {colored('SecVal','yellow')} ditemukan pada paket {colored(packet.summary(), 'yellow')}")
        formatted_data = colored(raw_data, "green")
        print(f"[*] Isi dari bagian RAW: {formatted_data}")


print(".....................................")
print(" ")
print(f"[+] membaca file pcap {colored('filename=', 'red')}{colored(filename, 'red')}...")
packets = rdpcap(filename)

for packet in packets:
  process_packet(packet)


hasilnya



FLAG : SecVal{rev_shell_fun_insec}