1 poin oleh GN⁺ 1 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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

Biner multifungsi

Jaringan, shell, dan pemuatan library

Entri eskalasi hak akses

1 komentar

 
GN⁺ 1 jam lalu
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

    • Ini juga cukup relevan untuk alat seperti claude-code
      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
    • Beberapa perangkat lunak keamanan enterprise yang katanya melakukan mediasi eskalasi hak akses juga bisa berisiko dengan cara serupa
      Salah satu model deployment yang saya lihat di sebuah perusahaan membuat program dalam allowlist buatan admin bisa dijalankan dengan sudo tanpa kata sandi, dan sejak awal sudah ada alat serbaguna seperti vim dan bash di dalamnya
      Dari 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
    • Pada akhirnya ini terlihat seperti panduan yang cukup menyeluruh tentang betapa restricted shell sebenarnya tidak terlalu membatasi apa-apa
    • Ada juga contoh konkret
      Beberapa tahun lalu tim dukungan perlu melakukan network capture dengan tcpdump, jadi agar cepat mereka menambahkan aturan sudo yang cukup longgar pada argumen
      Karena port atau NIC bisa berubah, saat itu itu terasa wajar, tapi ternyata opsi -z milik tcpdump bisa dipakai untuk menentukan perintah kompresi, jadi kalau kita menaruh perintah yang "spesial" di sana, server bisa langsung diambil alih
      sudo tcpdump -i any -z '/home/despicable_me/evil_cmd.sh' -w /tmp/dontcare.pcap -G 1 -Z root
      Kelihatannya 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
    • Melihat ini, saya juga jadi merasa seperti sedang melihat daftar yang dirapikan agar AI bisa mempelajari cara menembus sandbox
  • 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 akal
    Sebagai 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

    • Kalau melihat pembatasan seperti ini, kecenderungan LLM untuk langsung menilai "ya sudah, pakai saja helper untuk mem-bypass lalu putar lewat sana" tampaknya cukup meruntuhkan asumsi dunia lama
      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 --decode sebagai pengganti cat /path/to/input-file saat cat tidak ada
    atau maksudnya base64 /path/to/input-file | base64 --decode bisa mem-bypass izin baca file itu sendiri

    • Yang benar adalah yang pertama
      Proses 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
    • Maksudnya, model pembatasan izin dengan larangan perintah berbasis blacklist memang dari awal tidak pernah terlalu efektif, dan sekarang pun tetap begitu
    • Bukan yang kedua, melainkan yang pertama
      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
    • Tapi kalau ada file yang tidak bisa dibaca, dan sebagai gantinya kita bisa menjalankan base64 sebagai root, ceritanya jadi berbeda
      Dengan menjalankan base64 sebagai root untuk meng-encode isi file ke base64, lalu mendekode output itu dengan proses base64 lain, pada akhirnya kita tetap bisa melihat isi file tersebut
      Hasil akhirnya sama seperti cat, hanya saja langkahnya lebih banyak
    • Kalau begitu, rasanya pipe tar malah lebih ringan
  • Saya 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 ini

  • GTFOBins sudah ada cukup lama, dan sudah berguna bahkan sebelum era AI

    • Justru itu yang membuat masa depan lebih mengkhawatirkan
      Alasan AI berguna pada akhirnya memang karena ia bisa mengangkat materi seperti ini yang sudah ada sebelumnya
  • Saya kurang paham kenapa base64 ada di daftar
    Menurut 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

    • Intinya, bahkan ketika hanya ada restricted shell yang salah konfigurasi atau akses ke perintah tertentu saja, alat-alat di daftar itu bisa dipakai untuk mendapatkan kembali sebagian dari akses yang sebenarnya dimiliki pengguna tersebut dalam lingkungan yang tidak dibatasi
      Contoh paling sederhana, kalau shell default hanya diganti menjadi rbash tetapi pengguna masih bisa menjalankan bash untuk masuk ke shell normal, pembatasan itu jadi tidak ada artinya
    • Misalnya sudoers mungkin mengizinkan menjalankan base64 sebagai root
      Saya 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 base64 tanpa peninjauan, itu bisa berarti membuka akses baca ke file rahasia seperti .env
    • Situasi yang umum adalah beberapa alat bisa dijalankan dengan hak akses root
      Entah itu secara eksplisit diizinkan lewat sudo -l, atau ada hal lain yang memanggil alat tersebut sebagai root
  • Akan bagus kalau juga ditampilkan cara mitigasi untuk bypass seperti ini
    Misalnya untuk kasus mendapatkan shell lewat more
    setel SHELL ke /bin/false sebelum menjalankan more
    ganti ke less dalam secure mode
    atau kalau memakai more lewat sudo, gunakan flag NOEXEC

    • Mitigasi terbaik adalah mengatur izin yang sebenarnya dengan benar pada file yang memang tidak boleh dibaca atau ditulis pengguna
      Cara-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