Ruroco - UDP kullanarak uzaktan komut çağıran "RUn RemOte Command"
(github.com/beac0n)- Sunucuya UDP paketi göndererek komut çalıştıran bir araç
- Komutlar sunucu tarafında yapılandırılır; bu nedenle istemci çalıştırılacak komutu tanımlamaz, yalnızca mevcut komutlardan birini seçer
- 3 ikiliden oluşur
- client: bilgisayarda çalışır ve UDP paketi gönderir
- server: UDP paketini alır ve geçerli olup olmadığını doğrular
- commander: UDP paketindeki veriye kodlanmış komut geçerliyse bunu çalıştırır
- Güvenlik
- UDP ile gönderildiği için sunucu hiçbir şekilde yanıt vermez: port taraması yapılamaz
- İstemciden sunucuya gönderilen veriler RSA kullanılarak şifrelenir
- İstemci yalnızca çalıştırılacak komutu belirtir ve komut sunucuda saklanır -> istemci komutu seçebilir ama tanımlayamaz
- Sunucu yazılımını mümkün olduğunca az işletim sistemi yetkisiyle çalıştırın
- Sunucunun aldığı tüm paketler replay saldırılarına karşı koruma için engelleme listesine eklenir
- (WIP) DoS koruması
Kullanım örneği: single packet authorization (SPA)
Sunucu güvenliği için SSH'yi tamamen kapatmak yerine, SSH portunu kısa süreliğine açıp sonra yeniden kapatan bir yöntem uygulanabilir
address = "0.0.0.0:8080" # Ruroco sunucusunun dinlediği adres (systemd/ruroco.socket kullanılmıyorsa)
config_dir = "/etc/ruroco/" # Yapılandırma dosyalarının saklandığı yol
[commands]
# SSH aç (yalnızca isteğin geldiği IP adresi için)
open_ssh = "ufw allow from $RUROCO_IP proto tcp to any port 22"
# SSH kapat (yalnızca isteğin geldiği IP adresi için)
close_ssh = "ufw delete allow from $RUROCO_IP proto tcp to any port 22"
- Sunucuda Ruroco bu şekilde yapılandırıldıktan sonra istemci tarafında şu komut çalıştırılır
ruroco-client send --address host.domain:8080 --private-pem-path /path/to/ruroco_private.pem --command open_ssh --deadline 5 - Sunucu, RSA kullanarak istemcinin ilgili komutu çalıştırma yetkisi olup olmadığını doğrular ve "open_ssh" altında tanımlanan komutu çalıştırır
--deadlineargümanı, komut çalıştırıldıktan sonra sunucunun 5 saniye içinde komutu başlatması gerektiği anlamına gelir- SSH portuna erişim yalnızca UDP paketinin gönderildiği IP için izinli olur
- Elbette, SSH portu internete açıldığında olduğu gibi diğer tüm güvenlik sıkılaştırma işlemleri de yapılmalıdır
- Yapılandırma dosyasına daha fazla komut ekleyerek istediğiniz sayıda komut tanımlayabilirsiniz
Henüz yorum yok.