Showing posts with label Write Up. Show all posts
Showing posts with label Write Up. Show all posts

Sunday, May 24, 2015

Write Up CTF Java Hackfest 2015


Write Up CTF Java Hackfest 2015

28-30 Maret, Komunitas hacker Malang yaitu Malang Cyber Crew mengadakan event atau competisi CTF Java Hackfest, dan ini adalah pengalaman pertama kali saya mengikuti lomba CTF, Apa itu CTF(Capture The Flag) ? CTF adalah lomba mencari dan menemukan celah keamanan di sebuah jaringan computer dan website yang sudah disediakan panitia penyelenggara. dan kali ini saya akan membagikan Write Up atau cara pengerjaannya atau POC nya dari soal-soal yang di berikan oleh panita penyelenggara. Write Up ini saya dapat dari salah satu anggota komunitas tersebut , Oke langsung saja saya berikan list-list Write Up CTF Java Hackfest 2015 :

1. Begin
2. Call Me
3. crx001
4. Find Me
5. Get the flag code
6. Get the flag
7. Plain
8. Play the game



Write Up CTF Java HackFest 2015: Play The Game!


CTF Java HackFest 2015: Play The Game!

Soal : Download

pass : javahackfest0x07 clue : Event point: 150 Author: Gendhenk Description :173.192.181.163:5432
Disini kita diberi file executable dimana jika dijalankan maka akan muncul tulisan berjalan yang sangat cepat -_-.
Alt text
Saya pun bingung ini maksudnya minta apa?. Lalu setelah saya perhatikan, tulisan yang berjalan tersebut terdapat jeda. Akhirnya saya kepikiran tulisan tersebut saya simpan di file txt
$./game > hasil.txt
Setelah disimpan di hasil.txt kata-katanya sangat panjaaang. Saya terus mencari-cari dan akhirnya saya mendapatkan sesuatu yang aneh di tengah-tengah tulisan yang saya curigai adalah flag :
Alt text
Nah setelah kata fl49 ini saya mendapatkan hasil : W3L_C0_M3_T0_4R_3M4_3R00. Namun setelah di kirim ternyata ini bukan flag. Lalu saya coba lagi dengan huruf kecil, w3l_c0_m3_t0_4r_3m4_3r00 dan benar ternyata itu adalah flagnya.
Flag : w3l_c0_m3_t0_4r_3m4_3r00\

Sumber : https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/play-the-game

Write Up CTF Java HackFest 2015: Plain


CTF Java HackFest 2015: Plain

Soal : Downloadn

Pass: javahackfest0x02 Author: Gendhenk Point: 150 Clue: eScaTdEcoPaInoC
Pada website CTF terdapat clue eScaTdEcoPaInoC yang jika diambil uppercase saja maka hasilnya STEPIC. Stepic bisa berfungsi untuk mengekstrak data dari gambar, Lalu saya mencoba ekstrak gambar-gambar tersenut dengan perintah :
$ ./stepic-0.4~bzr/stepic -d -i Plain.png > hasil.txt
Maka akan muncul seperti ini dari gambar Plain.png:
0127 0150 105 116 101 32 01101000 0141 0164 040 104 01100001 0143 107 101 114 00100000 97 0144 0141 01001100 0141 104 00100000 105 115 0164 0151 0154 0141 104 040 116 101 6b 6e 6f 6c 6f 0147 0151 040 105 110 01100110 01101111 114 0155 0141 01110011 105 00100000 01100100 01100001 01101100 01100001 01101101 040 98 97 104 97 115 97 040 0111 6e 103 103 114 105 115 040 01111001 01100001 01101110 01100111 00100000 01101101 01100101 01101110 01100111 01100001 01100011 01110101 00100000 01101011 01100101 01110000 01100001 01100100 01100001 00100000 01110000 01100101 01110010 01100101 01110100 01100001 01110011 040 0171 0141 0156 0147 040 0163 0145 0143 0141 0162 0141 040 0145 0164 0151 065 040 6d 101 110 117 110 01001010 0165 0153 0153 0141 0156 040 01110011 01110101 01100001 01110100 01110101 00100000 01101011 01100101 01101100 01100101 01101101 01100001 01101000 01100001 01101110 00100000 01100100 01100001 01101100 01100001 01101101 00100000 01110011 01100101 01100010 01110101 01100001 01101000 00100000 01110011 01101001 01110011 01110100 01100101 01101101 00100000 01101011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00101110 00100000 87 104 105 116 101 32 104 97 116 32 115 48 101 99 97 114 97 32 117 109 117 109 32 108 101 98 105 104 32 109 101 109 102 111 107 117 115 107 97 110 0141 0153 0163 0151 0156 0171 0141 040 0153 0145 0160 0141 0144 0141 040 0102 0141 0147 0141 0151 0155 0141 0156 0141 040 0155 0145 0154 0151 0156 0144 0165 0156 0147 0151 040 0163 0145 0142 0165 0141 0150 040 0163 061 0163 0164 0145 0155 054 100 105 109 97 110 97 32 66 101 114 116 101 110 116 97 110 103 97 110 32 100 101 110 103 97 110 32 98 108 97 99 107 32 104 97 116 32 121 97 110 103 32 108 101 98 105 104 32 109 101 109 102 111 107 117 115 107 97 110 32 97 107 115 105 110 121 97 32 107 101 112 97 100 97 32 98 97 103 97 49 109 97 110 97 32 109 101 110 101 114 111 98 111 115 32 115 105 115 116 101 109 32 116 101 114 115 101 98 117 116 46 040 01010100 6f 112 117 116 105 104 32 97 116 97 117 32 112 101 114 101 116 97 115 32 112 117 116 105 104 32 97 100 97 108 97 104 32 112 97 104 108 97 119 97 110 32 97 116 97 117 32 48 114 97 110 103 32 98 97 105 107 44 32 0164 0145 0162 0165 0164 0141 0155 0141 040 0144 0141 0154 0141 0155 040 0142 0151 0144 0141 0156 0147 040 0153 0157 0155 0160 0165 0164 0145 0162 054 040 01000100 01101001 01101101 01100001 01101110 01100001 00100000 01101001 01100001 109 101 110 121 101 98 117 116 32 101 116 105 107 97 32 104 97 99 107 101 114 32 97 116 97 117 32 112 101 78 101 116 114 97 115 105 32 112 101 110 103 117 106 105 040 121 97 6e 01100111 0142 0145 0162 0146 0117 0153 0165 0163 040 0160 0141 0144 0141 040 0155 0145 0156 0147 0141 0155 0141 0156 0153 0141 0156 040 0144 0141 0156 040 0155 0145 0154 0111 0156 0144 0165 0156 0147 0151 040 0111 0124 040 0163 0151 0163 0164 0145 0115 056
Soal diatas adalah gabungan dari binary,decimal,hexa dan octal. Daripada berlama-lama untuk melakukan decrypt lebih baik gunakan script python :
#!/usr/bin/python
import sys
import binascii
import string

def loadlist(infile):
    tlist = []
    for line in open(infile,'r'):
        for w in line.split(): tlist.append(w.lower())
    return tlist

# first argument: binary/octal/decimal/hexadecimal input
if len(sys.argv) != 2: sys.exit(2)

words = loadlist(sys.argv[1])
chars = set('abcdef')
msg = ''
for w in words:
    try:
        msg+=binascii.unhexlify('%x' % int(w,2))
    except (ValueError, TypeError) as e:
        if any((c in chars) for c in w):
            msg+=w.decode('hex')
            continue
        if w[0] == '0':
            msg+=chr(string.atoi(w, base=8))
            continue
        msg+=chr(int(w))
print msg
Lalu jalankan :
$ file.py Crypt.txt
Maka kita akan mendapatkan sebuah teks :
White hat hacker adaLah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada peretas yang secara eti5 menunJukkan suatu kelemahan dalam sebuah sistem komputer. White hat s0ecara umum lebih memfokuskanaksinya kepada Bagaimana melindungi sebuah s1stem,dimana Bertentangan dengan black hat yang lebih memfokuskan aksinya kepada baga1mana menerobos sistem tersebut. Toputih atau peretas putih adalah pahlawan atau 0rang baik, terutama dalam bidang komputer, Dimana iamenyebut etika hacker atau peNetrasi penguji yangberfOkus pada mengamankan dan melIndungi IT sisteM.
Dari cerita diatas, saya melakukan seleksi huruf besar dan angka sesuai urutan. Maka kita akan mendapatkan hasil :
flag : WLI5JW0B1B1T0DNOIITM


Sumber :  https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/plain

Write Up CTF Java HackFest 2015: Get Flag Code


CTF Java HackFest 2015: Get Flag Code

Soal : Download

point: 200 Author: Ph4nt0m Description : Clue1 : "Demo Site" | Clue2 : Key = makobu
Disini saya tidak bisa menjabarkan secara detail beserta Screenshoots karena ketika saya membuat writeup ini saya mencoba melakukan akses ke server soal akan tetapi tidak bisa ,entah dimatikan atau sedang down. Saya jelaskan alur bagaimana saya mendapatkan flagnya.
Ketika waktu kemarin saya akses saya mencoba malukan CTRL+U / View Source, disitu saya mendapatkan informasi yaitu id-content, seperti wordpress yang dirubah prefixnya wp dengan id.
Kemudian saya mencoba tebak-tebak berhadiah dengan melakukan pengaksesan ke http://173.192.181.163/soal/gettheflag/id-admin
Saya mendapatkan login page nya, kemudian saya coba CTRL+U lagi dan kali ini saya mendapatkan informasi info.txt
Ketika saya coba mengakses yang beralamatkan http://173.192.181.163/soal/gettheflag/info.txt saya mendapatkan informasi username dan password untuk loggin. Seingat saya kalau tidak salah adalah username:admin dan password:billing2015
Berhasil login dan mencoba keberentungan lagi dengan cara CTRL+U, dan dengan mencoba CTRL+F saya cari kata FLAG dan saya mendapatkan pesan y4L4x673q1, namun ketika saya submit flag tersebut ternyata salah :(
Entah emang jebakan atau apa, namun selang beberapa saat panitia memberikan clue yaitu key : makobu
Berawal dari sini saya berpikir bahwa tadi adalah flag yang dienkripsi menggunakan vigenere chiper dengan key makobu. Saya mendapatkan flagnya yaitu m4L4n673c1.
Alt text


Sumber : https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/get-flag-code

Write Up CTF Java HackFest 2015: Find Me!


CTF Java HackFest 2015: Find Me!

Soal : Download

Points: 150 Author: Gendhenk Description:
Pada soal ini kita mendapatkan kan file yang belum diketahui ekstensinya :
begin 644 soal.zip
M4$L#!!0#```(`-
Dari kode diatas, saya mendapatkan clue bahwa file ini harus di decode dengan uudecode, lalu saya coba melakukan decode dan hasilnya saya mendapatkan file soal.zip
Alt text
Setelah di ekstract saya mendapatkan sebuah file gambar.
Alt text
Dari sini saya mencoba untuk melihat metadata gambar tersebut dengan exiftool :
Alt text
Dari hasil metadata, saya mendapatkan sebuah enkripsi eW91IGZpbmQgem9uaw== yang jika di decode hasilnya “you find zonk”.
Lalu saya mencoba membukanya dengan GIMP di linux dan mencoba bermain dengan menu curves pada GIMP dan hasilnya :
Alt text
Hasil itu seperti enkripsi base64 tapi jika didecode tidak bisa. perhatikan lagi baik2 pada tulisan itu setelah base64 ada panah menuju angka 13 kita coba menggunakan rot13 ke tulisan itu.. hasilnya aW5kMG4zczFBX3I0eUE= , lalu coba kita decode lagi base64 itu dan hasilnya adalah ind0n3s1A_r4yA
Alt text
Flag : ind0n3s1A_r4yA

Sumber : https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/findMe

Write Up CTF Java HackFest 2015: Crx001


CTF Java HackFest 2015: Crx001

Soal : Download

Points: 50 Author: Gendhenk Pass : javahackfest0x01 Description:
Pada soal ini saya mendapatkan file zip, lalu saya extract :
Lalu saya mendapat sebuah file yang aneh, kita cek dengan perintah :
$ file Crypt100
Crypt100: XZ compressed data
File tersebut bertipe XZ, setelah googling, saya mendapatkan cara untuk extract dengan
perintah :
$ xz -dc crypt
Kemudian saya mendapatkan sebuah file dengan format tar Lalu ekstrak dan hasilnya kita mendapatkan program executable. Setelah meneliti satu-satu pada folder Crypt100 terdapat file libclu1.0.so yang berisi string :
“Hidden clue”
Dari sini saya bingung maksudnya apa? Lalu saya coba tekan CTRL + h pada linux dan saya mendapatkan sebuat file tersembunyi yang berisi :
“Suppoter Arema Chronous”
Dari hasil googling kemungkinan jawabannya adalah :
  • Arema
  • Aremania
  • Aremanita
Lalu saya mencoba menjalankan lagi file executable tersebut dan saya isikan clue Aremania.
Alt text
Tapi aneh, karena apapun input yang kita masukkan pasti akan error, namun saya mendapat clue lagi pada program tersebut yaitu “”, Lalu saya coba lagi dengan menggunakan tanda petik karena string ditulis dengan tanda petik "Aremania" Hasil nya saya mendapatkan sesuatu yang saya curigai flag :
Alt text
sy4t:w4in_u4pxs3fg_z4a1s3fg0
Saya kirim tapi bukan flag. Saya curiga enkripsi tersebut adalah ROT13, setelah saya coba dengan hackbar hasilnya saya mendapatkan flag
Alt text
fl4g:j4va_h4ckf3st_m4n1f3st0

Sumber : https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/crx001

Write Up CTF Java HackFest 2015: Call Me!


CTF Java HackFest 2015: Call Me!

Soal :  Download

pass : javahackfest0x06 point: 50 Author: Gendhenk Description :173.192.181.163:5432
Disini saya mendapatkan clue :
def flag(k,l):
    if k=="*" and l=="*":
                return "Flag"
        else:
                return "Coba lagi gan :D"

regis.register_function(flag,'fl4g')
Setelah berlama-lama googling saya menemukan bahwa soal ini adalah XMLRPC Server dari python, terlihat dari fungsi yang di register
regis.register_function(flag,'fl4g')
Clue tersebut sama seperti di website ini :
https://docs.python.org/2/library/simplexmlrpcserver.html
Nah setelah mempelajari web tersebut saya mendapatkan cara untuk memanggil method tersebut. Dari soal tersebut terdapat clue : Event ,diana event tersebut adalah java hackfest, lalu saya memanggil method flag alias fl4g dengan parameter java dan hackfest seperti di bawah ini :
import xmlrpclib

s = xmlrpclib.ServerProxy('http://173.192.181.163:5432')
print s.fl4g("java", "hackfest")
Dan hasilnya saya mendapatkan flag :
Flag : congratz_k4mu_j0ss_g4n

Sumber: https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/callme

Write Up CTF Java HackFest 2015: Begin


CTF Java HackFest 2015: Begin

Soal : Download

Points: 5 Author: Gendhenk Description:
Pada soal pertama ini, panitia hanya memberikan sebuah file zip dan dalam file tersebut terdapat flag StartJavaHackFest2015
Flag : StartJavaHackFest2015

Sumber : https://github.com/mccrew/ctf-java-hackfest-2015/tree/master/begin

 

Follow Me on Twitter