Ransomware Baru ESXiArgs Menyerang Server VMware ESXi di Seluruh Dunia

New ESXiArgs Ransomware Attacks VMware ESXi Servers Worldwide

ESXiArgs Ransomware, ransomware baru yang menargetkan server VMware ESXi, telah menyebar dalam skala besar di seluruh dunia, termasuk diantaranya beberpaa perusahaan di Indonesia juga terdampak. Penyerang memanfaatkan kerentanan eksekusi kode jarak jauh CVE-2021-21974, yang sebelumnya ditangani dan diungkapkan dalam peringatan keamanan VMware pada Februari 2021, untuk mendapatkan akses dan menyebarkan ESXiArgs.

1. Ikhtisar ESXiArgs Ransomware

Sangfor FarSight Labs baru-baru ini mengamati ransomware baru yang menargetkan server VMware ESXi, dijuluki oleh para peneliti sebagai ESXiArgs. VMware ESXi Server adalah hypervisor bare metal (Tipe-1) yang dikembangkan untuk vSphere, perangkat lunak pengembangan aplikasi berbasis kontainer dan virtualisasi server VMware. Serangan ESXiArgs mulai muncul dalam skala besar pada bulan Februari tahun ini. Penyerang mengeksploitasi contoh yang belum ditambal dari kerentanan eksekusi kode jarak jauh (RCE) CVE-2021-21974 di server ESXi untuk menyebarkan file berbahaya, menyebabkan limpahan tumpukan di layanan OpenSLP.

Eksploitasi Kerentanan

Kerentanan, yang secara khusus memengaruhi layanan OpenSLP, dapat dieksploitasi melalui port UDP 427 oleh pelaku ancaman yang tidak diautentikasi untuk mendapatkan eksekusi kode jarak jauh dalam serangan dengan kompleksitas rendah. Pada rilis artikel ini, ada 2.453 server yang terpengaruh di seluruh dunia. CVE-2021-21974 memengaruhi versi VMware ESXi berikut:

  • Versi 7.x sebelum ESXi70U1c-17325551 6
  • Versi 6.7.x sebelum ESXi670-202102401-SG
  • Versi 6.5.x sebelum ESXi650-202102101-SG

Menurut intelijen ancaman, ESXi versi 6.0.x dan 5.5.x juga telah diserang. Namun, penasihat keamanan VMware tentang CVE-2021-21974 tidak menentukan bahwa versi ini terpengaruh.

2. Analisis Ransomware ESXiArgs

Analisis Sangfor FarSight Labs menunjukkan 5 file yang terlibat dalam serangan ransomware ESXiArgs. File-file ini terletak di folder /tmp/ dari server korban. Nama file berbahaya ini dan deskripsinya adalah sebagai berikut:

  • encrypt – enkripsi (file ELF)
  • encrypt.sh – file fungsi sebelum menjalankan encryptor
  • public.pem – kunci publik dalam algoritma enkripsi RSA yang digunakan untuk mengenkripsi file
  • motd – file catatan tebusan dalam format teks
  • index.html – file catatan tebusan dalam format HTML

Sampel dimulai dengan parameter, yang diverifikasi pada tahap awal peluncuran program. Setelah sampel dimulai dengan parameter yang benar, operasi berikut akan dijalankan.

Catatan Ransomware

Nama file catatan tebusan adalah “How to Restore Your Files.html”. Korban diminta untuk membayar uang tebusan dalam bitcoin dan mendapatkan kunci dekripsi di TOX_ID untuk memulihkan file terenkripsi mereka atau mencegah kebocoran data mereka.

encrypt.sh

Logika skrip shell encrypt.sh dirangkum dalam diagram berikut:

Ubah File Konfigurasi

Mengubah nama file VMDK (file disk mesin virtual) dan VSWP (file swap mesin virtual) untuk menambah kesulitan bagi korban untuk menemukan dan memulihkan data asli setelah file dienkripsi.

Enkripsi File

Semua volume penyimpanan pada host ESXi pertama kali disebutkan sehingga disk virtual yang tidak terpasang ke VM juga dapat terpengaruh.

Volume terenkripsi berisi file dengan ekstensi berikut:

  • *.vmdk
  • *.vmx
  • *.vmxf
  • *.vmsd
  • *.vmsn
  • *.vswp
  • *.vmss
  • *.nvram
  • *.vmem

Penghindaran Pertahanan

Untuk menghindari deteksi dan mencegah pemulihan data, ransomware mencoba melakukan operasi berikut: menghapus semua file log di sistem, menghapus tugas terjadwal, menghapus file cadangan, menghapus semua alamat IP yang ada di file konfigurasi port HTTP, dan menghapus toko/paket/ vmtools.py backdoor file dan file berbahaya awalnya diunggah ke direktori /tmp/.

Mulai Layanan SSH

Enkripsi (Enkripsi)

Perintah startup mencakup parameter startup berikut: file kunci RSA publik, jalur file yang akan dienkripsi, blok data untuk menghindari enkripsi, ukuran blok terenkripsi, dan ukuran file.

Ransomware mengeksekusi dan melakukan beberapa langkah untuk mengenkripsi file sistem.

Fungsi encrypt_file() selanjutnya memanggil fungsi encrypt_simple() untuk melakukan proses enkripsi. Gambar di bawah menunjukkan potongan kode dari fungsi encrypt_file(). Fungsi encrypt_simple terlihat seperti ini:

Proses enkripsi sosemanuk_encrypt adalah sebagai berikut:

Memeriksa apakah nilai yang disimpan dalam hasil kurang dari 0x4F. Ketika nilainya kurang dari 0x4F, operasi eksklusif atau (XOR) dilakukan pada 80LL – (a1 + 128) byte pertama dari teks biasa dengan status internal sandi Sosemanuk. Fungsi kemudian memasuki loop yang mengenkripsi teks biasa yang tersisa di blok 80LL byte setiap kali, memperbarui keadaan internal cipher Sosemanuk setelah setiap blok dienkripsi. Operasi XOR dilakukan pada blok terenkripsi dengan plaintext untuk menghasilkan ciphertext.

  • Enkripsi penuh untuk file yang lebih kecil dari 128MB
  • Enkripsi parsial untuk file yang lebih besar dari 128MB (1MB=1024KB)

Menghasilkan Stream Key

3. Indicators of Compromise (IOCs)

i. ESXiArgs ransomware payment address

https://gist.github.com/cablej/c79102960c4615396e8ffc712136744a

ii. MD5

encrypt.shd0d36f169f1458806053aae482af5010
encrypt87b010bc90cd7dd776fb42ea5b3f85d3

4. Solusi

4.1 Saran Perbaikan

  1. Nonaktifkan layanan OpenSLP di ESXi, atau tingkatkan ke ESXi 7.0 U2c, ESXi 8.0 GA, ESXi 7.0 U2c, atau ESXi 8.0 GA (OpenSLP dinonaktifkan secara default).
  2. Periksa apakah file vmtools.py ada di direktori /store/packages/. Jika ditemukan, disarankan untuk segera menghapus file tersebut.
  3. Instal perangkat lunak antivirus, lakukan pemindaian sistem secara teratur, hapus ancaman yang terdeteksi, serta perbarui dan tambal secepat mungkin.
  4. Data penting harus dicadangkan di cloud

4.2 Herza Solutions

Seluruh layanan Baremetal / Dedicated Server Murah dari Herza Cloud telah dilindungi oleh Sangfor Next Generation Firewall dan diperkuat lagi dengan Sangfor Endpoint Secure (Endpoint Detection and Response) memberikan perlindungan terhadap Ransomware ESXiArgs dengan mendeteksi dan menghapus virus. Perbarui perangkat lunak dan basis data virus ke versi terbaru dan tetapkan kebijakan keamanan yang sesuai.

Jadi Anda tidak perlu khawati, untuk menggunakan VMware ESXi di Datacenter Herza Cloud. Hubungi Tim Pre-Sales kami sekarang untuk berkonsultasi.

Melindungi Router Mikrotik dari Ransomware

Melindungi Mikrotik dari Ransomware

Akhir akhir ini marak kejadian Router Mikrotik di Hack oleh orang-orang yang tidak bertanggung jawab dengan mengunci Boot Loader di Mikrotik Router tersebut sehingga tidak dapat dilakukan reset ataupun netinstall dan melakukan permintaan imbalan untuk membuka kunci Boot Loader Mikrotik tersebut. Hal ini kita sebutkan sebagai Ransomware.

Apa itu Ransomware? Ransomware adalah jenis perangkat lunak berbahaya yang dirancang untuk memblokir akses ke sistem komputer, router atau perangkat dalam sebuah jaringan dan bahkan sebuah file di komputer Anda hingga sejumlah uang dibayarkan. Dalam hal Router Mikrotik, pelaku mengunci Boot Loader Router yang terpengaruh, membuatnya tidak dapat diakses, dan meminta pembayaran tebusan untuk memulihkan akses perangkat tersebut.

Apakah Anda membutuhkan IP Publik untuk Mikrotik atau Server lokal Anda? Atau mungkin Anda mencari solusi Tunneling untuk mengganti nama ISP di Speedtest Anda. VPS Mikrotik CHR Murah dari Herza.ID adalah solusinya.

Nah, maka dari itu, mari kita menyimak beberapa tahapan yang dapat membantu Anda dalam melindungi Router Mikrotik Anda dari Ransomware.

Cara Melindungi Router Mikrotik dari Ransomware

Lakukan Daily Backup

Lakukan backup secara berkala atas konfigurasi router mikrotik Anda untuk menghindari lamanya downtime ketika Router Anda bermasalah. Dengan melakukan backup secara berkala, ketika Router Anda bermasalah, Anda dengan mudah dapat mengganti Router Anda dengan Router cadangan dengan mengimport file konfigurasi yang telah terbackup sebelumnya. Hal ini dapat kita lakukan menggunakan scheduler script untuk membackup ke email.

/system script
add dont-require-permissions=yes name=EmailBackup source=":\
    log info \"Starting Backup Script...\"\r\
    \n:global backupfile ([/system identity get name] . \".backup\")\r\
    \n:if ([/file find name=\$backupfile] != \"\") do={/file rem \$backu\
    pfile}\r\
    \n:delay 2s\r\
    \n/system backup save name=\$backupfile\r\
    \n:log info \"Waiting 7s for backup to complete...\"\r\
    \n:delay 7s\r\
    \n:log info \"Backup being emailed...\"\r\
    \n/tool e-mail send to=\"[email protected]\" subject=([/system ide\
    ntity get name] . \" Backup\") [email protected] user=\"[email protected]\" password=\"passwordemailku\" file=\$backupfile server=smtp.emailku.com\r\
    \n:log info \"Finished Backup Script!\""
/system scheduler
add interval=1d name=EmailBackup on-event=ebackup start-date=\
    mar/04/2019 start-time=01:00:00

Jangan lupa untuk mengganti domain @emailku.com dengan domain ISP atau perusahaan anda, ganti passwordemailku dengan password email anda yang digunakan untuk mengirim email, ganti smtp.emailku.com dengan smtp ISP atau perusahaan anda.

Silahkan baca Panduan Dasar Mikrotik CLI (Command Line Interface), mungkin bermanfaat buat Anda.

Pengamanan Dasar Mikrotik

Selanjutnya, untuk mengamankan Router Mikrotik Anda, sangat disarankan bagi seluruh User Mikrotik untuk melakukan beberapa langkah dasar berikut untuk pengamanan di Router Anda.

Jangan Pernah Menggunakan Port Default Winbox

Selalu untuk merubah port standar winbox dari 8291 menjadi port lainnya, ingat jangan gunakan port 0 sd 1024 karena port tersebut sudah digunakan oleh layanan yang sudah di definisikan secara baku, pakailah port di atas 1024 misalnya menjadi 18291 jangan gunakan port diatas 65535 https://en.wikipedia.org/wiki/Port_(computer_networking)

Caranya, di RouterOS Anda klik IP > SERVICE kemudian akan muncul window IP SERVICE LIST seperti dibawah ini. Double Klik Winbox, kemudian ganti Port sesuai dengan yang Anda inginkan.

Kemudian, layanan-layanan yang Anda tidak butuhkan seperti API, FTP, SSH, Telnet, WWW jika tidak butuhkan sebaiknya di Non Aktifkan dengan cara memilih layanan tersebut kemudian mngklik tombok X pada window IP SERVICE LIST tersebut.

Grouping Interface ke Interface-List

Membuat grouping interface ke dalam interface-list untuk memudahkan dalam pembuatan rule firewall yang akan kita buat.

Pada script berikut saya membuat interface list dengan nama “Upstream” dengan memasukkan interface VLAN dengan nama OpenIXP, CDIX dan ether4 kedalam list Upstream tersebut. Kita bisa memasukan beberapa interface fisik ataupun VLAN ke sebuah list interface.

/interface list
add comment="Interface Upstream" name=Upstream
/interface list member
add interface=ether4 list=Upstream
add interface=OpenIXP list=Upstream
add interface=CDIX list=Upstream
Grouping IP Address sebagai ournetwork

Sekarang kita akan membuat grouping IP Address dan/atau Network Address “ournetwork” yang akan berisi seluruh prefix IP yang Anda gunakan serta IP PTP Upstream Anda.

/ip firewall address-list
add address=103.152.XXX.XXX/23 list=ournetwork
add address=192.168.XXX.XXX/24 list=ournetwork
add address=202.78.XXX.XXX/27 comment=DTP-IIX list=PTP-Upstream
add address=218.100.XXX.XXX/24 comment=OpenIXP list=PTP-Upstream
add address=103.30.XXX.XXX/23 comment=CDIX list=PTP-Upstream
add address=103.225.XXX.XXX/25 comment=CXC list=PTP-Upstream
Buat Firewall Rules & Raw untuk Mengamankan Router Anda

Setelah Interface List dan IP Address telah kita grouping, sekarang kita bisa dengan mudah menggunakan list tersebut kedalam Firewall Rules & Raw yang akan kita gunakan.

/ip firewall filter
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="PORT SCANNER" protocol=tcp \
    psd=21,3s,3,1
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="NMAP FIN Stealth scan" \
    protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="SYN/FIN scan" protocol=tcp \
    tcp-flags=fin,syn
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="SYN/RST scan" protocol=tcp \
    tcp-flags=syn,rst
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="FIN/PSH/URG scan" \
    protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="ALL/ALL scan" protocol=tcp \
    tcp-flags=fin,syn,rst,psh,ack,urg
add action=accept chain=output comment="FTP BLAACKLIST" content=\
    "530 Login incorrect" dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist \
    address-list-timeout=3h chain=output content="530 Login incorrect" \
    protocol=tcp
add action=add-src-to-address-list address-list=ssh_blacklist \
    address-list-timeout=1w3d chain=input comment="SSH BLACKLIST" \
    connection-state=new dst-port=22 protocol=tcp src-address-list=\
    ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp
add action=accept chain=input comment="ACCEPT BGP DARI Upstream" \
    in-interface-list=Upstream log-prefix="bgp  : " protocol=tcp \
    src-address-list=PTP-Upstream
add action=accept chain=input comment="ACCEPT BGP DARI Upstream" \
    dst-address-list=PTP-Upstream in-interface-list=Upstream log-prefix=\
    "bgp  : " protocol=tcp
add action=accept chain=input comment="ACCEPT ICMP" log-prefix="icmp  : " \
    protocol=icmp src-address-list=ournetwork
add action=accept chain=input comment="ACCEPT ICMP" log-prefix="icmp  : " \
    protocol=icmp src-address-list=PTP-Upstream
add action=accept chain=input comment="ACCEPT ALL DARI ROUTER DISTRIBUSI" \
    in-interface-list=!Upstream log-prefix="not Upstream : " \
    src-address-list=ournetwork
add action=accept chain=input comment="ACCEPT ALL DARI ROUTER DISTRIBUSI" \
    dst-address-list=ournetwork in-interface-list=!Upstream log-prefix=\
    "not Upstream : "
add action=add-src-to-address-list address-list=winbox-exploit \
    address-list-timeout=5m chain=forward comment="WINBOX EXPLOIT" \
    dst-port=8291 in-interface-list=Upstream log-prefix="WINBOX EXPLOIT : " \
    protocol=tcp
add action=add-src-to-address-list address-list=proxy-socks-exploit \
    address-list-timeout=5m chain=forward comment="PROXY SOCKS EXPLOIT" \
    dst-port=8000,3128,1080,4145 in-interface-list=Upstream log-prefix=\
    "PROXY SOCKS EXPLOIT : " protocol=tcp

Dari script firewall rules diatas bisa kami jelaskan adalah mengenai akss yang dibolehkan ke Mikrotik RouterOS hanya dari address-list=ournetwork dan PTP-Upstream sedangkan akses dari interface distribusi atau “!Upstream” = bukan Upstream di ALLOW. Serta koneksi BGP via TCP di ALLOW dari dan ke interface “Upstream”

Sedangkan pada IP > FIREWALL > RAW, saya manDROP seluruh aktivitas yang telah ditangkap oleh Firewall Rules yang kami buat diatas seperti SSH BLACKLIST (Percobaan bruteforce ke SSH Router Mikrotik), DROP WINBOX (Seluruh Akses ke Port Winbox Default 8291 akan ditolak demi keamanan) dan juga DROP PORT SCANNER (Seluruh aktivitas Scanning akan diblok oleh Filter Raw ini. Disamping itu, saya juga menangkap dan DROP semua traffic ke yang mengarah ke Port 8000,3128,1080,4145 yang masuk via interface Upstream menuju ke jaringan distribusi yang dikawatirkan digunakan hacker untuk menyerang Mikrotik RouterOS distribusi dan pelanggan di melalui IP->Firewall->Raw

/ip firewall raw
add action=drop chain=prerouting comment="DROP ACTIVE DIRECTORY" dst-port=\
    445 log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="DROP TCPMUX" dst-port=1 \
    log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="SSH BLACKLIST" in-interface-list=\
    Upstream src-address-list=ssh_blacklist
add action=drop chain=prerouting comment="DROP WINBOX" dst-port=8291 \
    in-interface-list=Upstream log-prefix="DROP WINBOX EXPLOIT : " \
    protocol=tcp src-address-list=winbox-exploit
add action=drop chain=prerouting comment="DROP PORT SCANNER" \
    in-interface-list=Upstream log-prefix="DROP PORT SCANER : " \
    src-address-list="port scanners"
add action=drop chain=prerouting comment="DROP PROXY SOCKS" \
    in-interface-list=Upstream log-prefix="DROP PROXY SOCKS : " \
    src-address-list=proxy-socks-exploit
add action=drop chain=prerouting comment="DROP NETBIOS" dst-port=137-139 \
    log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="DROP NETBIOS" dst-port=137-139 \
    log-prefix="drop 445 : " protocol=udp

Penutup

Seluruh Firewall Rules dan Raw diatas adalah bukan bentuk baku yang harus Anda ikuti. Anda harus mengikuti sesuai dengan kebutuhan dan Topologi jaringan Anda. Kemungkinan ada beberapa Rules yang butuh adjustment ataupun revisi untuk disesuaikan dengan kebutuhan jaringan Anda.