Write Up PicoCTF 2017 Level 1 (Part 1)

PicoCTF ?

Sebuah Website latihan CTF (Capture The Flag) online yang cukup bagus untuk belajar mengenal lebih dalam tentang dunia CTF.

Write UP

Write up ini saya tulis berdasarkan apa yang saya alami dalam memecahkan soal-soal dari PicoCTF.

Level 1


Forensics



1. Digital Camouflage



Quest :
We need to gain access to some routers. Let's try and see if we can find the password in the captured network data: data.pcap.

Hints :
It looks like someone logged in with their password earlier. Where would log in data be located in a network capture?
If you think you found the flag, but it doesn't work, consider that the data may be encrypted.

Solusi :

1. Buka file data.pcap menggunakan wireshark. Lalu lakukan pencarian string yang berisi User dan Password melalui wireshark.


2. Ketika saya coba melakukan submit flag tersebut ternyata masi salah. Kembali lagi cermati hints "If you think you found the flag, but it doesn't work, consider that the data may be encrypted.", disitu saya coba melakukan decoding base64 ke flag yang salah tersebut. Untuk Decodingnya saya menggunakan website base64decode.org

3. Hasil decoding base64 dari "dnlBalFHMGhoNg==" adalah "vyAjQG0hh6". Ketika saya melakukan submit, benar saja flag tersebut benar.

Flag : vyAjQG0hh6

2.Special Agent User


Quest :
We can get into the Administrator's computer with a browser exploit. But first, we need to figure out what browser they're using. Perhaps this information is located in a network packet capture we took: data.pcap. Enter the browser and version as "BrowserName BrowserVersion". NOTE: We're just looking for up to 3 levels of subversions for the browser version (ie. Version 1.2.3 for Version 1.2.3.4) and ignore any 0th subversions (ie. 1.2 for 1.2.0)

Hints :
Where can we find information on the browser in networking data? Maybe try reading up on user-agent strings.

Solusi :

1. Kembali lagi dengan wireshark buka file data.pcap tersebut. Lalu lakukan seleksi terhadap beberapa user-agent yang tercatat di file data.pcap tersebut.
Contoh beberapa capture user-agent :



2. Kembali ke soal tersebut, flag yang dicari adalah browser beserta versi dengan ketentuan diatas. Sudah jelas wget bukanlah browser melainkan perintah linux yang digunakan untuk mengunduh data. Jadi jelas saja kita akan menerjemahkan string user agent yang ada di gamabar kedua.

3. Cek kembali hints tersebut, disitu sudah direkomendasikan website untuk menerjemahkan string user agent yang telah didapat.


Flag : Chrome 36.0.1985.67

Cryptografi


1. Keyz


Quest :
While webshells are nice, it'd be nice to be able to login directly. To do so, please add your own public key to ~/.ssh/authorized_keys, using the webshell. Make sure to copy it correctly! The key is in the ssh banner, displayed when you login remotely with ssh, to shell2017.picoctf.com

Hints :
There are plenty of tutorials out there. This one covers key generation: https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html.
Then, use the web shell to copy/paste it, and use the appropriate tool to ssh to the server using your key

Solusi :

1. Inti dari soal tersebut adalah kita diharuskan membuat koneksi ssh dengan RSA Key Authentication dan flag tersebut akan muncul saat kita berhasil masuk ke shell2017.picoctf.com melalui protokol ssh.

2. Saya melakukan konfigurasi berikut melalui terminal pc saya :
# ssh-keygen (enter saja sampai habis)
# cd ~/.ssh && cat id_rsa.pub


Copy isi dari id_rsa.pub tersebut.

3. Selanjutnya buka web shell yang tersedia di web PicoCTF. Buat sebuah file dengan nama "authorized_keys" dan letakkan pada folder .ssh


Pastekan isi dari id_rsa.pub yang telah dibuat di pc tadi, Dan save perubahan tersebut.


4. Lakukan percobaan ssh melalui terminal pc kalian menggunakan username akun PicoCTF masing-masing, seharusnya melalui konfigurasi diatas kita sudah bisa melakukan koneksi ssh ke shell2017.picoctf.com, berikut contohnya :



Flag : who_needs_pwords_anyways

2. Substitute


Quest :
A wizard (he seemed kinda odd...) handed me this. Can you figure out what it says?

Hints :
There are tools that make this easy this.

Solusi :
Jelas teks yang ada di soal tersebut harus di substitusi agar dapat diterjemahkan, sederhana saja kita perlu bantuan tool online di website quipqiup.com.


Flag : IFONLYMODERNCRYPTOWASLIKETHIS


3. Hash101


Quest :

Prove your knowledge of hashes and claim a flag as your prize! Connect to the service at shell2017.picoctf.com:56120
UPDATED 16:12 EST 1 Apr.

Hints :
All concepts required to complete this challenge, including simple modular math, are quickly found by googling :)

Solusi :
1. Kita coba akses service port 56120 unutk melihat quest yang akan diselesaikan.

Level 1 : Sesuai perintah kita coba konversikan bilangan biner "0111001101110111011011110111001001100100" menjadi ascii. Untuk tool konversinya banyak di internet.

level 2 : Sesuai perintah kita koversikan flag level 1 tadi (sword) ke Hex, kemudian hasil konversi ke Hex tadi kita konversi lagi menjadi desimal.

level 3 : Ingat dari level 1 di mana kita perlu menemukan teks ASCII ? kita bisa menggunakan ascii table. Kita perlu menemukan string yang ketika melakukan modulo basis 16 kita mendapatkan sejumlah 10.
apa itu modulo? Modulo adalah sisa dari persamaan pembagian. Sesuai angka yang saya dapatkan adalah 10.

Kita tahu bahwa kita membagi dengan 16 dan modulo (sisa) harus 10. Salah satu cara untuk menyelesaikan ini adalah dengan mencari kelipatan 16 dan menambahkan 10. Mengapa kelipatan 16? Melakukan kelipatan 16 jika kita melakukan modulo bahwa modulo akan menjadi 0 (karena tidak ada sisa).

flagnya adalah ":", kenapa ":" ?
Lihat kembali tabel ASCII adalah 58. Bagaimana saya mendapatkan 58? 16x3 = 48 + 10 = 58.

level 4 : Sederhana saja, kita tahu itu adalah enkripsi md5. Kita tinggal melakukan decrypt terhadap string yang telah diberikan.
dan kita menemukan flag sesungguhnya.


Flag :
- level 1 : sword
- level 2 : hex = "73776f7264" ; decimal = "495925031524"
- level 3 : ":"
- level 4 : 4l1v3
- Main Flag : 605911fee24de43af8ebe50ec7d210ec


4. computeAES


Quest :

You found this clue laying around. Can you decrypt it?

Hints :
Try online tools or python

Solusi :

Di dalam clue, kita diberitahu enkripsi yang digunakan adalah AES menggunakan ECB mode dan seluruh nilai di decode mengunakan base64. Disini saya menggunakan python untuk menyelesaikan ini. Sebenarnya ini cukup menyulitkan saya karena saya memilih menggunakan python. Baca-baca beberapa ebook dan akhrnya saya berhasil membuat sebuah program decrypt.
import base64
from Crypto.Cipher import AES

key = base64.b64decode("MWo1Z9kJZ60a4skUlfcENA==")
ciphertext = base64.b64decode("Q69htRlf08tHHf1cJYcqIwteyQK8BdSDg9UihLpVOypNMEbp$
crypter = AES.new(key, AES.MODE_ECB)
plaintext = crypter.decrypt(ciphertext).decode("utf-8")

print(plaintext)

Flag : flag{do_not_let_machines_win_83f2aeea}

5. computeRSA


Quest :
RSA encryption/decryption is based on a formula that anyone can find and use, as long as they know the values to plug in. Given the encrypted number 150815, d = 1941, and N = 435979, what is the decrypted number?

Hints :

decrypted = (encrypted) ^ d mod N

Solusi :
Saya menggunakan tool online dari website cs.drexel.edu.


Flag : 133337

Mungkin sampai sini saja dulu, lanjutan akan ada di part 2.
Selamat mengerjakan PicoCTF

2 komentar

Masok kang....sangad mmbantu saya


EmoticonEmoticon