2 releases
| 0.1.2 | Dec 8, 2025 |
|---|---|
| 0.1.1 | Dec 5, 2025 |
#789 in Command line utilities
37KB
213 lines
Rust WinRM Client
Rust ile yazılmış Windows Uzaktan Yönetim (WinRM) istemcisi.
Özellikler
- ✅ NTLM Kimlik Doğrulama - Tam destek
- ✅ Uzantan Komut Çalıştırma - PowerShell ve CMD
- ✅ Dosya Aktarımı - İndirme & Gönderme
- ✅ Geliştirilmiş Hata İşleme - Detaylı hata iletileri
- ✅ CLI İyileştirmeleri - Çıkış kodları, ortam değişkenleri, detaylı/sessiz çıktılar
- ⚠️ Kerberos - Stub (bilgilendirici mesaj)
Kurulum
cargo build --release
Çalıştırılabilir ikilik dosya: target/release/rust_winrm_client
Kullanım
Basit Komutlar
# Basit CMD komutları - tırnak gerekmez
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command whoami
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command hostname
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure command ipconfig
Dosya Aktarımı
# Upload
winrm-client -e server -u admin -p pass upload local.txt C:\\remote.txt
# Download
winrm-client -e server -u admin -p pass download C:\\file.txt ./local.txt
Ortam Değişkenleri
# Ortam değişkenlerini ayarla
export WINRM_ENDPOINT=10.0.3.203
export WINRM_USER=administrator
export WINRM_PASSWORD="secretpass"
export WINRM_AUTH=ntlm # ntlm, basic, kerberos
export WINRM_ENCRYPT=true # HTTPS kullan
export WINRM_INSECURE=true # SSL sertifika doğrulamasını atla
# Parametresiz çalıştır
winrm-client command whoami
winrm-client command -- powershell -ExecutionPolicy Unrestricted -Command "Get-Process"
Boolean Değerler:
- ✅
trueveyafalse(büyük/küçük harf duyarlı) - ❌
1,0,yes,noçalışmaz
Detaylı/Sessiz Kipler
# Sessiz kip (varsayılan) - sadece komut çıktısı
winrm-client -e server command "test"
# Verbose kip - detaylı çıktılar
winrm-client -v -e server command "test"
Parametreler
| Kısa | Uzun | Ortam Değişkeni | Açıklama |
|---|---|---|---|
-e |
--endpoint |
WINRM_ENDPOINT |
WinRM bağlantı noktası (IP veya hostname) |
-u |
--user |
WINRM_USER |
Kullanıcı adı |
-p |
--password |
WINRM_PASSWORD |
Parola |
-a |
--auth |
WINRM_AUTH |
Kimlik doğrulama yöntemi (ntlm/basic/kerberos) |
--encrypt |
WINRM_ENCRYPT |
HTTPS kullan (port 5986) | |
--no-encrypt |
WINRM_NO_ENCRYPT |
HTTP kullan (port 5985) | |
-k |
--insecure |
WINRM_INSECURE |
SSL sertifika doğrulamasını atla |
-v |
--verbose |
WINRM_VERBOSE |
Detaylı çıktı |
Çıkış Kodları
| Kod | Anlamı |
|---|---|
| 0 | Başarılı |
| 1 | Kimlik doğrulama hatası |
| 2 | Bağlantı hatası |
| 3 | Komut çalıştırma hatası |
| 4 | Dosya aktarım hatası |
# Çıkış kodu denetimi
winrm-client -e server command "test"
echo $? # Exit code'u göster
Örnekler
HTTPS ile NTLM
winrm-client -e 10.0.3.203 -u administrator -p Admin789 \
--encrypt --insecure command hostname
Ortam Değişkenleri ile
export WINRM_ENDPOINT=10.0.3.203
export WINRM_USER=administrator
export WINRM_PASSWORD=Admin789
export WINRM_ENCRYPT=true
export WINRM_INSECURE=true
winrm-client command whoami
PowerShell Komutları
# PowerShell komutları için -- ayırıcı ve parametreler
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
command -- powershell -ExecutionPolicy Unrestricted -Command Get-Process
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
command -- powershell -Command Get-Service
# Tırnak içinde PowerShell komutları (basit olanlar)
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
command -- powershell -Command "Get-Date"
# CMD komutları
winrm-client -e 10.0.3.203 -u administrator -p Admin789 --encrypt --insecure \
command -- cmd /c "dir C:\\"
Not: PowerShell/CMD parametreleri (-ExecutionPolicy, -Command, /c vb.) içeren komutlarda -- ayırıcı mutlaka kullanılmalıdır. Aksi takdirde parametreler CLI argümanı olarak yorumlanır ve hata alırsınız.
Bilinen Sınırlamalar
- Kerberos: Tam uygulama yok (stub mesaj gösterir)
- HTTP Message Encryption: HTTP (5985) için uygulama seviyesi şifreleme yok - HTTPS kullanın
- CredSSP: Desteklenmiyor
Katkıda Bulunma
Katkılar memnuniyetle karşılanır!
Lisans
GPL-3.0-or-later
Dependencies
~29–64MB
~1M SLoC