- Daftar biner Unix disusun berdasarkan fungsi, dan tindakan yang tersedia pada tiap biner langsung ditautkan melalui halaman detail dan tautan anchor
- Kategori yang berulang meliputi Shell, File read, File write, Command, Inherit, Upload, Download, Reverse shell, Library load, Privilege escalation, dan pada beberapa entri juga ada Bind shell
- File read dan Shell tersebar sangat luas, sementara alat seperti dd, sed, dan sqlite3 memiliki kemampuan baca dan tulis sekaligus sehingga batas dengan alat yang sekadar untuk melihat isi menjadi kabur
- Alat seperti apt, git, journalctl, dan systemctl sering mencakup Command dan Inherit, sementara biner multifungsi seperti bee, pipx, sqlmap, dan keluarga vim yang menggabungkan transfer jaringan dan operasi shell juga berulang kali muncul
- Privilege escalation hanya muncul pada sebagian biner yang memiliki tautan terpisah, dan daftar luas dari 7z hingga zypper memperlihatkan sekilas perbedaan kombinasi perilaku pada alat umum
Distribusi fungsi utama
- Entri pembacaan file saja atau yang berpusat pada pembacaan tersebar sangat luas
- Entri yang memungkinkan menjalankan shell juga sangat banyak
- Banyak entri yang memiliki penulisan file sekaligus pembacaan, sehingga batas dengan alat yang hanya untuk melihat isi menjadi kabur
- Eksekusi perintah atau pewarisan hak akses sering muncul pada manajer paket, alat sistem, dan program interaktif
Biner multifungsi
- Biner multifungsi yang memiliki beberapa tindakan sekaligus muncul berulang kali
-
Entri multifungsi berbasis Inherit
- apport-cli, batcat, cargo, crash, gcloud, git, journalctl, man, opencode, psql, run-mailcap, systemd-resolve menggabungkan Inherit dengan Shell, Command, File read, dan File write
-
Entri yang juga mencakup jaringan dan perpindahan file
- bee, byebug, dstat, easy_install, facter, irb, knife, pipx, poetry, rake, sqlmap, vagrant, volatility juga memiliki Reverse shell, Upload, Download, dan Library load
-
Keluarga editor dan debugger
- gdb, nvim, rvim, view, vim, vimdiff menggabungkan Inherit dengan Shell, Reverse shell, Bind shell, atau File read/write, Upload, Download, dan Library load
-
Keluarga manajer paket dan runtime
- apt, apt-get, bundle, bundler, pip, rpm, rpmdb, rpmquery, rpmverify, yum sering kali disertai shell, akses file, dan operasi jaringan
Jaringan, shell, dan pemuatan library
- Fitur upload/download tidak hanya muncul pada alat jaringan, tetapi juga pada shell dan runtime bahasa
-
Alat yang berfokus pada transfer
- ab, curl, finger, ftp, nc, scp, sftp, smbclient, ssh, tar, tftp, wget, whois memiliki Upload atau Download
-
Reverse shell dan Bind shell
- bash, gawk, go, jjs, julia, ksh, lua, nawk, nc, nmap, node, openssl, pandoc, php, ruby, socat, socket, tclsh, telnet, zsh termasuk di sini
-
Entri dengan Library load
- bash, byebug, curl, ffmpeg, gdb, gem, gimp, irb, knife, ldconfig, mysql, nginx, nvim, openssl, pip, python, rake, ruby, ssh-keygen, tclsh, vim, volatility, wish, yum termasuk di dalamnya
Entri eskalasi hak akses
- Privilege escalation hanya muncul terbatas pada biner yang memiliki entri terpisah
-
Daftar tautan eskalasi hak akses
1 komentar
Komentar Hacker News
Sepertinya banyak yang bingung di komentar, jadi contoh kapan ini dipakai dalam konteks keamanan/CTF kurang lebih seperti ini
Di lingkungan dengan shell terbatas atau hanya beberapa perintah/biner yang bisa dijalankan, biasanya argumen masih cukup bebas diberikan
Dalam situasi itu, dengan GTFOBins kita bisa melanjutkan ke pembacaan/penulisan file atau bahkan eksekusi perintah, lalu keluar dari konteks yang dibatasi untuk mendapatkan shell
Kalau seseorang membiarkan sudo terbuka atau memberi SUID bit pada GTFOBin, kita juga bisa membaca atau menulis file sensitif serta menjalankan perintah berprivilege dengan cara yang bahkan tidak disadari oleh orang yang mengaturnya
Penanganan izinnya cukup primitif karena berpusat pada block-list dan allow-list
Di satu sesi, saya pernah tanpa sengaja memberi Claude izin powershell, lalu setelah itu saat alat seperti git diblokir, ia membuat skrip powershell yang melakukan hal yang sama dan menjalankannya untuk melewati izin yang diblokir
Di sistem yang normal, tentu powershell tidak akan dimasukkan ke allow-list umum, tapi kalau ada celah pada tingkat izin per alat, teknik di halaman ini tampaknya cukup untuk berputar mengelilinginya
Salah satu model deployment yang saya lihat di sebuah perusahaan membuat program dalam allowlist buatan admin bisa dijalankan dengan
sudotanpa kata sandi, dan sejak awal sudah ada alat serbaguna seperti vim dan bash di dalamnyaDari sudut pandang saya yang kerja jarak jauh, itu malah terasa seperti keberuntungan, karena software yang katanya "melindungi" komputer saya ini justru membuatnya jauh lebih mudah bagi siapa pun untuk datang dan menjalankan sesuatu kalau saya sebentar meninggalkan meja dan lupa mengunci layar
Beberapa tahun lalu tim dukungan perlu melakukan network capture dengan
tcpdump, jadi agar cepat mereka menambahkan aturan sudo yang cukup longgar pada argumenKarena port atau NIC bisa berubah, saat itu itu terasa wajar, tapi ternyata opsi
-zmiliktcpdumpbisa dipakai untuk menentukan perintah kompresi, jadi kalau kita menaruh perintah yang "spesial" di sana, server bisa langsung diambil alihsudo tcpdump -i any -z '/home/despicable_me/evil_cmd.sh' -w /tmp/dontcare.pcap -G 1 -Z rootKelihatannya sepele, tapi hal seperti ini memang sangat mudah terlewat
Sekarang lapisan seperti apparmor kadang membantu mengurangi risiko seperti ini, tapi sebagai gantinya muncul kerepotan lain dan tetap mudah salah konfigurasi
Terakhir kali saya memakai hal serupa itu kira-kira di Windows 3.11 pada komputer sekolah menengah sekitar tahun 1995
Komputernya dikunci agar hanya beberapa aplikasi yang disetujui bisa dijalankan, dan salah satunya adalah Word
Di Word, kita bisa memakai macro dan menjalankan aplikasi lain lewat shell
Jadi komputer terkunci yang awalnya hanya menampilkan beberapa aplikasi itu pada praktiknya jadi bisa menjalankan apa saja
Waktu itu rasanya cukup menegangkan, dan setelah itu saya hampir tidak pernah melihat hal serupa lagi
Kadang saya melihat cerita bahwa display informasi sentuh di toko atau mal bisa keluar dari kiosk mode, dan itu terasa seperti kategori yang mirip
Setelah melihat
restic - Shell, Command, Upload, saya jadi merasa keputusan untuk tidak menjalankan backup sebagai root sedikit lebih masuk akalSebagai gantinya dijalankan sebagai pengguna biasa, tetapi hanya diberi read-all-files capability dan shell login-nya dihapus
Tentu di desktop itu mungkin berlebihan, dan kalau penyerang sudah sampai sejauh itu, mereka pada dasarnya tetap bisa membaca hampir semua file dan menanam backdoor pada backup
[0] https://man7.org/linux/man-pages/man7/capabilities.7.html
Ada cara menghadapi penyerang manusia jarak jauh, bot jarak jauh, dan sampai taraf tertentu penyerang manusia lokal, tetapi bot penyerang lokal yang bisa menulis kode sendiri sekarang menjadi ancaman yang jauh lebih perlu diperhatikan daripada sebelumnya
Ini juga tidak sepenuhnya berada di kategori yang sama dengan malware
Saya sendiri pernah menganggap container sebagai batas yang relevan dan membuat semua proses di dalamnya berjalan sebagai root, tetapi dengan hadirnya LLM, saya jadi tidak yakin apakah keamanan level OS tiba-tiba menjadi jauh lebih penting, atau justru malah tidak berarti lagi
Saya agak bingung, maksudnya ini adalah memakai
base64 /path/to/input-file | base64 --decodesebagai pengganticat /path/to/input-filesaatcattidak adaatau maksudnya
base64 /path/to/input-file | base64 --decodebisa mem-bypass izin baca file itu sendiriProses yang dipanggil biasanya mewarisi izin pengguna yang menjalankannya, dan pengecualian umumnya hanya muncul kalau ada setuid bit
Intinya adalah, di lingkungan yang mencoba mencegah lateral movement penyerang dengan mematikan alat Unix standar, pekerjaan yang sama tetap bisa dilakukan dengan alat lain
Ini bukan tentang menembus izin itu sendiri, tetapi tentang menghasilkan hasil yang sama dengan biner lain di dalam restricted shell yang hanya mengizinkan beberapa perintah
Hal seperti ini sangat umum di CTF
Dengan menjalankan
base64sebagai root untuk meng-encode isi file ke base64, lalu mendekode output itu dengan proses base64 lain, pada akhirnya kita tetap bisa melihat isi file tersebutHasil akhirnya sama seperti
cat, hanya saja langkahnya lebih banyakSaya dulu pernah menjadi maintainer salah satu alat seperti ini, dan lucu juga melihat orang mendapat shell dengannya
Kreatif, menyenangkan, dan bagus sebagai materi referensi
Saat main
hackthebox.eu, saya sangat sering memakai iniGTFOBins sudah ada cukup lama, dan sudah berguna bahkan sebelum era AI
Alasan AI berguna pada akhirnya memang karena ia bisa mengangkat materi seperti ini yang sudah ada sebelumnya
Saya kurang paham kenapa
base64ada di daftarMenurut saya, itu seharusnya hanya bisa membaca file yang memang sudah bisa diakses pengguna; apakah saya salah paham
Atau deskripsi melewati pembatasan keamanan lokal pada sistem yang salah konfigurasi itu berarti sesuatu yang berbeda dari yang saya pahami
Contoh paling sederhana, kalau shell default hanya diganti menjadi rbash tetapi pengguna masih bisa menjalankan
bashuntuk masuk ke shell normal, pembatasan itu jadi tidak ada artinyasudoersmungkin mengizinkan menjalankan base64 sebagai rootSaya juga tidak tahu kenapa ada yang melakukan itu, tetapi kalau situasinya seperti itu, maka pembatasan izin yang dimaksud bisa dilewati dan kita jadi bisa membaca file apa pun di sistem
Atau kalau Claude Code diatur agar mengizinkan eksekusi
base64tanpa peninjauan, itu bisa berarti membuka akses baca ke file rahasia seperti.envEntah itu secara eksplisit diizinkan lewat
sudo -l, atau ada hal lain yang memanggil alat tersebut sebagai rootAkan bagus kalau juga ditampilkan cara mitigasi untuk bypass seperti ini
Misalnya untuk kasus mendapatkan shell lewat
moresetel
SHELLke/bin/falsesebelum menjalankanmoreganti ke
lessdalam secure modeatau kalau memakai
morelewatsudo, gunakan flag NOEXECCara-cara selain itu pada akhirnya banyak bergantung pada keberuntungan
Cukup keren, dan ada pendekatan kreatif yang tidak saya duga
Misalnya saya sama sekali tidak kepikiran yt-dlp
Sepertinya saya perlu mempertimbangkan ulang sekadar memasangnya