Linux/Unix untuk CTF

Filesystem layout

Pengetahuan dasar filesystem Unix/Linux diperlukan, misalnya bagaimana melihat hidden file, bagaimana melihat dan mengubah permission (-rwxrwxrwx), memahami konsep ownership file.

Beberapa konvensi umum juga perlu dipahami, misalnya bahwa password (biasanya) disimpan di /etc/passwd. Jika memakai Apache di Debian html biasanya di /var/www/html atau /var/www.

Konsep proses

Pahami konsep seperti: user/group process, signal, descriptor inheritance. Pahami juga konsep IPC di Linux (unix socket, message queue, dsb).

proc filesystem

Di Linux ada /proc yang merupakan mount point untuk procfs. Banyak trik (baik yang berhubungan maupun tidak berhubungan dengan CTF) dapat dilakukan dengan /proc, misalnya: mengembalikan file yang terhapus jika file tersebut masih dibuka aplikasi.

Shell dan command line tools lain

Shell bisa dipandang sebagai tool untuk menyelesaikan soal CTF. Kemampuan menggunakan shell dan tools utility command line lain akan memudahkan menyelesaikan berbagai soal CTF.

Konsep utama yang perlu dikuasai di Unix-shell adalah pipe dan redirection, setelah menguasai itu, Anda bisa menggabungkan berbagai command untuk menyelesaikan suatau masalah. Beberapa command line tool yang wajib dikuasai: ls, grep, find, sort, file, cut, awk. Pengetahuan command line yang banyak akan sangat membantu, tapi tidak wajib. Jika Anda tidak tahu suatu perintah tapi Anda bisa memprogram, Anda bisa mengimplementasikan sendiri fungsionalitas perintah itu.

Shell juga bisa menjadi jalan masuk untuk berbagai eksploit. Banyak program mengeksekusi program eksternal menggunakan fungsi seperti system yang memakai shell (bisa program web based, command line based).

IFS (Internal Field Separator)

IFS dipakai di bash, dipakai sebagai delimiter ketika memotong string, defaultnya isinya <space><tab><newline>, ini biasanya digunakan untuk bypass filtering spasi, contohnya: jika spasi tidak diijinkan, kita bisa memakai ls${IFS}-a

Contol soal

BabyCmd

Pengetahuan yang diperlukan: reversing (sangat basic) dan pengetahuan mengenai shell

https://github.com/rentjongteam/write-ups-2015/tree/master/def-con-quals-2015/babycmd

torrent_lover

Pengetahuan mengenai shell dan IFS.

http://blog.rentjong.net/2015/03/bctf-2015-torrentlover.html

Gunslinger Joe's private Terminal

Escape from VI

http://blog.rentjong.net/2014/10/hacklu-ctf-2014-gunslinger-joe-private.html

Copyright © 2009-2010 Yohanes Nugroho