GNU/Linux >> Belajar Linux >  >> Linux

Serangan skrip Shell di server Apache, melalui cron yang tidak diketahui asalnya

Setelah OP menambahkan log, menjadi jelas bahwa masalahnya ada pada eksploitasi Eksekusi Kode Jarak Jauh untuk Struts 2 (CVE-2017-5638).

Beberapa tautan tambahan:

  1. Eksploitasi Eksekusi Kode Jarak Jauh Struts2 baru tertangkap secara liar.
  2. CVE-2017-5638 - Apache Struts2 S2-045.

Solusinya adalah mengupgrade Struts Anda ke versi 2.3.32 atau 2.5.10.1.


Saya pernah menghadapi masalah serupa sebelumnya ketika saya masih menjadi sysadmin. Saya pikir Anda harus membedakan apakah itu server kucing jantan atau aplikasi Java Anda.

Ketika Anda memulai kucing jantan tanpa "aplikasi Java yang terinfeksi", apakah cron diaktifkan? (Maksud saya, menghapus aplikasi Anda dari Tomcat dan memulainya) Jika demikian maka Anda memiliki masalah yang lebih besar, Anda harus memverifikasi skrip startup dan setiap aplikasi yang diterapkan di server Tomcat.

Kalau tidak, kami yakin aplikasi Anda adalah masalahnya.

Jika demikian, buka:

$CATALINA_BASE/webapps/your_app 

Verifikasi integritas aplikasi Anda, apakah ada file tambahan yang tidak Anda kenali?

Sekarang buka direktori webapps instalasi Tomcat Anda:

$CATALINA_BASE/webapps/

Di direktori tersebut lakukan:

grep -R '91.230.47.40' *

Untuk menemukan kemungkinan file/baris kode yang menyebabkan infeksi, bisa berupa file aplikasi Anda atau file baru.

Apakah Anda memiliki kode di sistem CSV?

Bangun file perang di luar server yang terinfeksi dari repo CSV Anda dan lakukan:

md5sum your_app.war

Hapus aplikasi Anda dari server kucing jantan dan terapkan kembali, verifikasi bahwa Anda mengunggah perang yang benar melalui md5, lalu periksa apakah crontab sedang dipanggil.

Jika Anda memberikan masukan tentang langkah ini, saya akan membantu dengan senang hati.


Kami hanya harus melawan serangan semacam ini di server, itu terus memulai ulang crontab yang ditimpa untuk pengguna kucing jantan kami seperti dijelaskan di atas. Alamat IP identik. Grep dari seluruh direktori webapps untuk alamat IP tidak mengungkapkan pelakunya.

Dalam kasus kami, kami tidak menggunakan struts, tetapi kami memiliki aplikasi "host-manager" dan "manager" di webapps, dan kami telah mengaktifkan/port JMX terbuka. Memulai ulang tanpa itu tampaknya telah diselesaikan, jadi dugaan saya adalah bahwa kerentanan mungkin ada di salah satunya. Khususnya ada kerentanan JMX yang diperbaiki di 7.0.73 yang mungkin menjadi penyebab kami (https://tomcat.apache.org/security-7.html#Fixed_in_Apache_Tomcat_7.0.73).

Tindakan pencegahan lain yang kami lakukan sekarang adalah membatasi akses ke wget dan chmod hanya untuk melakukan root (lakukan saja chmod 770 pada binari tersebut).


Linux
  1. Menggunakan Skrip Pembungkus Cron

  2. Ssh – Skrip Shell Untuk Masuk Ke Server Ssh?

  3. Menentukan Jalur Ke Skrip Shell Bersumber?

  1. Arti dari $? Dalam Skrip Shell?

  2. Direktori skrip Shell saat ini?

  3. Otomatisasi mysql_secure_installation dengan perintah gema melalui skrip shell

  1. Apache dengan Tomcat, Panduan Instalasi dan Konfigurasi Langkah-demi-Langkah

  2. Tentukan Shell In Script Selama Runtime?

  3. Waktu Habis Dalam Skrip Shell?