Ruroco - "RUn RemOte Command" pemanggilan perintah jarak jauh menggunakan UDP
(github.com/beac0n)- Alat untuk menjalankan perintah dengan mengirim paket UDP ke server
- Karena perintah dikonfigurasi di sisi server, klien tidak mendefinisikan perintah yang akan dijalankan dan hanya memilih dari perintah yang sudah ada
- Terdiri dari 3 biner
- client: dijalankan di komputer untuk mengirim paket UDP
- server: menerima paket UDP dan memeriksa validitasnya
- commander: menjalankan perintah jika perintah yang dienkode dalam data paket UDP valid
- Keamanan
- Karena dikirim melalui UDP, server sama sekali tidak merespons: pemindaian port tidak dimungkinkan
- Data yang dikirim dari klien ke server dienkripsi menggunakan RSA
- Klien hanya menentukan perintah yang akan dijalankan dan perintah disimpan di server -> klien bisa memilih perintah, tetapi tidak bisa mendefinisikannya
- Jalankan perangkat lunak server dengan hak akses sistem operasi sesedikit mungkin
- Semua paket yang diterima server ditambahkan ke daftar blokir untuk perlindungan dari replay
- Perlindungan DoS (WIP)
Contoh penggunaan: single packet authorization (SPA)
Demi keamanan server, alih-alih membiarkan SSH selalu terbuka, dapat diterapkan pendekatan membuka port SSH sebentar lalu menutupnya kembali
address = "0.0.0.0:8080" # Alamat tempat server Ruroco mendengarkan (jika tidak menggunakan systemd/ruroco.socket)
config_dir = "/etc/ruroco/" # Jalur tempat file konfigurasi disimpan
[commands]
# Buka SSH (hanya untuk alamat IP yang mengirim permintaan)
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"
# Tutup SSH (hanya untuk alamat IP yang mengirim permintaan)
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"
- Konfigurasikan Ruroco seperti ini di server lalu jalankan perintah berikut di sisi klien
ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5 - Server memverifikasi dengan RSA bahwa klien memiliki izin untuk menjalankan perintah tersebut lalu mengeksekusi perintah yang didefinisikan di bawah "open_ssh"
- Argumen
--deadlineberarti server harus mulai menjalankan perintah dalam waktu 5 detik setelah perintah diminta - Akses ke port SSH hanya diizinkan untuk IP yang mengirim paket UDP
- Tentu saja, seperti ketika port SSH diekspos ke internet, semua langkah hardening keamanan lainnya juga harus dilakukan
- Anda dapat menambahkan lebih banyak perintah ke file konfigurasi untuk mendefinisikan sebanyak mungkin perintah yang diinginkan
Belum ada komentar.