Biznet BilişimBiznet Bilişim

CyberArk Direct RDP Kullanımı Hakkında

Yazar: Emre Can Lekesiz

CyberArk DirectRDP özelliğinden daha önceki blog yazımızda bahsetmiştik. DirectRDP kullanımı konusunda sizlerden gelen sorular ve geri bildirimler neticesinde işinizi kolaylaştıracak bir script geliştirdik. Kaynak kodu aşağıda bulabilirsiniz.

Bu basit bir script, kullanıcıya hedef sisteme ait soruları soruyor, ardından sizi hedef sisteme bağlıyor. Özelleştirilebilir MSTSC dosyalarıyla uğraşmamış oluyorsunuz hem de script bağlantı sonlandığında kullanılan *.RDP dosyasını kendisi siliyor.

Kullanıcının girmesi gereken bilgiler aşağıdaki şekilde:

  1. Hedef sistem IP adresi (veya hostname)
  2. Hedef sistemdeki kullanıcı adı, bunu PVWA arayüzünden de görebilirsiniz.
  3. Bağlantı tipini yazmanız gerekiyor. Bu PSM-RDP veya PSM-SSH olabilir. Ya da CyberArk’ta tanımlı ilgili hesap için hangi connection component tanımlı ise onu yazmanız gerekebilir.
  4. Bağlanılacak hedef sistem domain hesabı mı yoksa lokal admin hesabı mı bunu seçmeniz gerekiyor.
  5. Son adımda kullanıcın kendi parolasını girmesi gerekiyor. Bu LDAP bilgileri ya da CyberArk’ta tanımlı yerel bir kullanıcı olabilir.

Scripti kullanabilmek için:

Kaynak kodu kopyalayınız, notepad gibi bir araçla düzenlemeniz gereken kısımları değiştiriniz ve dosyayı .*bat dosya uzantısıyla erişebileceğiniz bir yere kaydediniz. Çift tıklayarak çalıştırılabilir.

Not: Dosyayı, .bat.txt olarak kaydetmemek için kaydederken, dosyaya verdiğiniz ismi çift tırnak işareti içerisine almanız gerekebilir.

Kaynak kod ve içerisinde değiştirmeniz geken kısımlar belirtilmiştir.

@echo off
set domain=teknik.local
set psmAddr=10.6.21.203
if "%1" == "" goto prompt
if "%2" == "" goto prompt
if "%3" == "" goto prompt
if "%4" == "" goto prompt
if "%3" == "0" (
 echo alternate shell:s:psm /u %2@%domain% /a %1 /c %4
) > %1.rdp
if "%3" == "1" (
 echo alternate shell:s:psm /u %2 /a %1 /c %4
) > %1.rdp
(
 echo connection type:i:3
 echo full address:s:%psmAddr%
 echo authentication level:i:0
 echo enablecredsspsupport:i:0
 echo negotiate security layer:i:1
 echo desktopwidth:i:1280
 echo desktopheight:i:800
 echo screen mode id:i:1
 echo disable wallpaper:i:1
 echo PromptCredentialOnce:i:0
 echo winposstr:s:0,0,0,0,1400,1000
) >> %1.rdp
mstsc.exe %1.rdp
del %1.rdp
goto end
:prompt
set /p server=Erismek istediginiz hedef sistem (hostname or IP):
set /p adminID=Hedef sistemdeki admin ID (username):
set /p connectComp=Baglanti tipini seciniz [Orn; PSM-RDP, PSM-SSH]:
:environment
set /p env=Domain hesabiysa 0, yerel hesap ise 1 giriniz:
if "%env%" == "0" (
 echo alternate shell:s:psm /u %adminID%@%domain% /a %server% /c %connectComp% > %server%.rdp
 goto runRDP
)
if "%env%" == "1" (
 echo alternate shell:s:psm /u %adminID% /a %server% /c %connectComp% > %server%.rdp
 goto runRDP
)
goto environment
:runRDP
(
 echo connection type:i:3
 echo full address:s:%psmAddr%
 echo authentication level:i:0
 echo enablecredsspsupport:i:0
 echo negotiate security layer:i:1
 echo desktopwidth:i:1280
 echo desktopheight:i:800
 echo screen mode id:i:1
 echo disable wallpaper:i:1
 echo PromptCredentialOnce:i:0
 echo winposstr:s:0,0,0,0,1400,1000
) >> %server%.rdp
mstsc.exe %server%.rdp
del %server%.rdp
:end
emrecan.lekesiz
Yazar: emrecan.lekesiz