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-2018 Yohanes Nugroho