Studi Kasus: RCE (Remote Code Execution)



Pengantar

Remote Code Execution (RCE) adalah salah satu jenis kerentanan keamanan paling berbahaya di dunia teknologi. Kerentanan ini memungkinkan penyerang menjalankan kode berbahaya dari jarak jauh di sistem target, sering kali tanpa sepengetahuan pemiliknya. Dengan mengeksploitasi celah dalam aplikasi, server, atau perangkat lunak lainnya, RCE dapat digunakan untuk mencuri data, menginstal malware, atau bahkan mengambil alih kendali penuh atas sistem korban.

Dalam artikel ini, kita akan membahas apa itu RCE, bagaimana cara kerja eksploitasi RCE, contoh serangan terkenal, serta langkah-langkah untuk mencegah dan mengamankan sistem dari ancaman ini.

Studi Kasus

Dalam studi kasus RCE (Remote Code Execution ini) kita akan mempelajari cara mencari cara mencari celah RCE dan cara mencegah terjadinya serangan RCE. 

Kami tidak akan menjelaskan cara menjalankan contoh web menggunakan XAMPP!

Yang harus dipersiapkan dalam percobaan ini adalah:
  1. XAMPP. Lihat cara menjalankan web menggunakan XAMPP
  2. Code Editor seperti Visual Studio Code
  3. Web Browser Chrome atau yang lainnya jika ada.
Terlebih dahulu kita membuat contoh web yang rentan terhadap serangan RCE.
  1. Silahkan buat folder baru bernama RCE dalam folder htdocs jika Anda sudah menginstall dan mengetahui cara menggunakan XAMPP.
  2. Buat file bernama index.php dalam folder RCE.
  3. Masukkan kode berikut ini pada index.php.

  4. 
    <?php
    
    if (isset($_GET['cmd'])) {
        $cmd = $_GET['cmd'];
        eval($cmd);
    }
    
    ?>
  5. Buka aplikasi XAMPP dan start Apache dan MySQL.
  6. Buka web browser dan akses path url berikut pada localhost http://localhost/RCE/index.php maka akan menampilkan halaman kosong seperti dibawah ini jika berhasil menjalankan web.



  7. Akses url berikut http://localhost/RCE/?cmd=phpinfo(); untuk coba melakukan exploitasi. ?cmd= merupakan variabel paramter GET untuk mengakses fungsi tertentu pada back end web. Jika bagian tersebut dapat dimasukkan command/perintah tertentu seperti phpinfo(); maka hal tersebut dianggap vuln/rentan terhadap serangan RCE. Anda dapat mengembangkan command tertentu yang benar-benar dapat mengambil informasi kritis dari server. Berikut ini adalah hasil eksploitasi untuk mengambil informasi PHP pada server.



  8. Kita akan melakukan tindakan perbaikan pada kode tersebut guna menghindari serangan Remote Code Execution. Berikut ini adalah program terbaru yang telah diperbaiki.

  9. 
    <?php
    
    if (isset($_GET['cmd'])) {
        $allowed_cmds = ['ls', 'whoami', 'uptime']; // Daftar perintah yang diperbolehkan
        $cmd = $_GET['cmd'];
    
        if (in_array($cmd, $allowed_cmds)) {
            $output = shell_exec(escapeshellcmd($cmd));
            echo "
    " . htmlspecialchars($output) . "
    "; } else { echo "Perintah tidak diizinkan!"; } } else { echo "Gunakan parameter ?cmd=perintah"; } ?>

    • Kami menghindari eval() agar tidak mengeksekusi input pengguna langsung.
    • Kami menggunakan escapeshellcmd() atau escapeshellarg() jika memang perlu menjalankan perintah shell.
    • Kami membatasi perintah yang diperbolehkan.
    • Kami menggunakan whitelist atau sistem mapping command.

Itulah cara mencari, eksploitasi, dan juga cara memperbaiki celah RCE (Remote Code Execution). Mempelajari hal ini sangat bermanfaat untuk Anda yang menggeluti bidang Bug Hunting hingga para developer agar dapat melakukan penetration testing mandiri terhadap sistem yang dibuat.


Jika ada pertanyaan lebih lanjut silahkan bergabung dengan komunitas kami di WhatsApp: https://chat.whatsapp.com/EzAfFVsOnsr3H6t0gwLTJK dan Telegram: https://t.me/renewablehacking

Instagram Kami: 

Post a Comment

أحدث أقدم