tarafından

PsExec

PsExec, komutları uzaktaki sistemlerde çalıştırarak sonuçları kendi bilgisayarınız da görüntülenmesini sağlayan, dolayısıyla işlem yerel bilgisayarınızda yapılıyormuş gibi çalışmanıza olanak tanıyan bir komut satırı aracıdır.

PsExec’i ücretsiz olarak Microsoft’un satın aldığı Sysinternals sitesinden indirebilirsiniz (http://www.microsoft.com/technet/sysinternals/utilities/psexec.mspx )

PsTools Paketi
PsExec, toplamda 11 araçtan oluşan Sysinternals PsTools paketinin bir parçası. Bu süitin bir parçası olarak da Windows NT 4.0 ve sonrasına destek vermek, konsol üzerinden uygulanmak ve hem yerel, hem uzak sistemlerde çalışabilmek gibi bazı spesifikasyonları karşılamak zorunda. PsTools araçları uzak sistemlerde herhangi bir kurulum veya ek yazılım bulunmasını gerektirmiyor, ayrıca uzak sistemlere erişim için alternatif güven belgeleri düzenlemenize izin veriyor. Paketin PsTools olarak isimlendirilmesinin temel sebebi, tüm üye araçların isimlerinin Ps önekine sahip olması.

Çoğu PsTools aracında olduğu gibi, PsExec’in uzak sistemlerde çalışabilme yeteneği yerel ve uzak sistemlerin dosya ve yazdırma paylaşımının aktif olmasına (örneğin Workstation ve Server servisleri) ve varsayılan Admin$ paylaşımının (\windows klasöründe yer alan gizli paylaşım) uzak sistemde tanımlanmış olmasına bağlıdır.

PsExec
PsExec’in komutları uzak makinelerde herhangi bir kuruluma ihtiyaç duymadan çalıştırabilme yeteneği, uygulamayı çok basit hale getirir.
Bununla birlikte eğer PsExec’in yetenekleri sadece uzak sistemlerdeki programları çalıştırabilmekle sınırlı kalsaydı kullanışlılığı kısıtlanmış olurdu.
PsExec’in konsol uygulamalarının girdilerini ve çıktılarını yönlendirebilme yeteneği onu oldukça esnek ve becerikli bir yönetim aracı haline getiriyor.

psexec.jpgResim’de PsExec’in komut satırı opsiyonlarını ve yeteneklerine dair ipuçlarını görebilirsiniz. Çoğu Windows yönetim konsolu aracı sadece yerel sistemler üzerinde çalışabilir.
PsExec sayesinde bunların herhangi birini uzaktan çalıştırılabilir hale getirebilirsiniz. Örneğin PsExec, sistemin ağ adaptörünün TCP/IP konfigürasyonunu görüntüleyen Ipconfig aracını uzaktaki bir sistemin konfigürasyonunu görüntülemek amacıyla kullanabilir. Bunun için şu örnek komutu kullanabilirsiniz:


psexec \\remote ipconfig

Burada remote sorgulamak istediğiniz sistemin adı veya IP adresidir. Sistemin Ipconfig bilgilerini, sanki kendi bilgisayarınızınkini görüntüler gibi görüntüleyebilirsiniz.

Eğer çalıştıracağınız programın konumunu belirtmezseniz, PsExec, komutu uzaktaki sistemin \windows\system32 klasöründeymiş gibi çalıştırır. Çalıştıracağınız programın bu konumda olmadığını biliyorsanız, bu durumda uzak sistemde tam olarak yer aldığı konumu belirtin; yerel bir aracı uzak bir sistemdeymiş gibi çalıştırmak istiyorsanız, dosyanın yerel konumuyla birlikte c komut anahtarını kullanın. -C anahtarı, PsExec’in çalıştırılacak olan aracı uzak sisteme kopyalayarak bu konumdan çalıştırmasını ve çalışması sonlandığında uzak sistemden silmesini sağlar.

PsExec’in oldukça güçlü bir diğer konsol yönlendirme yeteneği de, uzak sistemlerde tıpkı yerel sistemde olduğu gibi bir komut satırı açarak işletebilmesidir. PsExec’in bu kullanımı yerel sistemdeki Telnet istemcisiyle uzak makinedeki Telnet servisine bağlanmaya benzer. Fakat PsExec kullanırken uzak sistemde çalışan Telnet servisine veya başka herhangi özel bir servise ihtiyacınız yoktur. Bunun için sadece şu komutu girmeniz yeterlidir:

psexec \\remote cmd

Uzak sistemde bir konsol komutunu çalıştırmak isterseniz, komut satırında /c anahtarıyla birlikte çalıştırmak istediğiniz
komutu girin. Örneğin aşağıdaki komut, uzak makinedeki Windows sürüm numarasının yerel makinedeki konsolda görüntülenmesini sağlar:

psexec \\remote cmd /c ver

PsExec’in bir diğer yaygın kullanımı, etkileşimli olmayan bir arabirimle hotfix ve yamaları ağ üzerindeki uzak sistemlere kurabilme yeteneğidir. İşi daha da kolaylaştırmak için PsExec çok sayıda bilgisayarın ismini veya bilgisayar isimlerinin içinde listelendiği metin dosyalarını kullanabilir, hatta \\* özel ismi sayesinde mevcut domain üzerindeki tüm bilgisayarları işleme alabilir. Örneğin Microsoft MyDoom temizleme aracını Remote ve Remote1 adlı bilgisayarlarda çalıştırarak temizlik raporlarını bir dosyaya kaydetmek için aşağıdaki komutu kullanabilirsiniz :

psexec \\remote,remote1 -c doomcln.exe -s 2> results.log

iş bittiğinde, proses diğer proseslerin okuyabileceği bir tamsayı yaratır. Programlar çoğu zaman bu çıkış kodunu kullanarak işlemin başarılı veya başarısız olduğunu anlayabilirler.

PsExec ile başlatılan herhangi bir işlem tamamlandığında, PsExec prosesin çıkış kodunu kendi çıkış kodu gibi yansıtır.

Bu çıkış kodunun ne anlama geldiğini anlayabilmek için genellikle çalıştırdığınız programı denemeniz veya dokümanlarını okumanız gereklidir, fakat çıkış kodu 0 genellikle işlemin düzgün biçimde yerine getirildiğini gösterir.

-S anahtarı PsExec’e komutu System hesabı altından çalıştırması gerektiğini belirtir.

PsExec Güvenliği
PsExec arabirimlerinin Windows güvenliğiyle etkileşimi konusunda birkaç şeyden haberdar olmanız gerekir. Varsayılan olarak uzak sistemde çalıştırdığınız proses, PsExec’i çalıştırdığınız sistemdeki Windows hesabını taklit eder. Bu taklit güvenlik açısından bakıldığında belli konumlardan sınırlandırılmıştır.

Yerel hesap tüm ağ kaynaklarına sınırsız erişim yetkisine sahip olsa bile, uzak proses bu ayrıcalığa sahip olmayabilir.
Kullandığınız hesap uzak sistem üzerinde yerel yönetici ayrıcalıklarına sahip değilse çalıştırmak istediğiniz proses ağ
kaynaklarına ulaşmak isteyecektir, veya prosesi farklı bir hesap altından çalıştırmanız gerekecektir. Bu durumda PsExec’in -u anahtarını kullanarak alternatif bir hesap adı belirleyebilirsiniz. Örneğin aşağıdaki komutu kullanarak Ipconfig’i uzak sistemdeki Administrator hesabı üzerinden kullanabilirsiniz:

psexec \\remote -u remote\administrator -p adminpass ipconfig

-U anahtarıyla belirttiğiniz kullanıcı adının parolasını girmek için -p anahtarını kullanmanız gerekir. Eğer –p anahtarına giriş yapmazsanız PsExec size parolayı soracaktır. Güvenlik gerekçesiyle PsExec, şifre girişi sırasındaki tuş vuruşlarını ekranda görüntülemez.

PsExec için alternatif güven belgeleri tanımladığınızda, uzak proses bu güven belgelerine uygun olarak çalışacak ve alternatif hesabın sahip olduğu ölçüde ağ kaynaklarına erişim hakkına sahip olacaktır.

Farklı bir hesap altından çalışmak için, PsExec mutlaka bu hesabı kullanarak uzak sisteme giriş yapmalıdır. PsExec’in bu nedenle uzak sistemde bir şifreye sahip olması gereklidir ve şifre yerel sistemden düz metin olarak gönderilmelidir. Bu gerçek, yerel ve uzak sistem arasındaki iletişiminizi izinsiz olarak denetleyen birilerinin bu şifreyi ele geçirebileceği anlamına gelir.

Uzak prosesleri, aynı zamanda Windows servislerini ve Windows proseslerini (Winlogon, Local Security Authority Subsystem Service-LSASS gibi) çalıştıran System hesabıyla da kullanabilirsiniz.

System hesabı oldukça güçlü imtiyazlara sahiptir. Bazı dosya sistemi ve registry ayarları sadece System hesabı tarafından değiştirilebilmelerine olanak sağlayacak güvenlik ayarlarına sahiptir.

Bunlara örnek olarak HKEY_LOCAL_MACHINE\SAM registry alt anahtarı ve Windows 2000 ve sonrası sistemlerde her volüm altında yer alan \System Volume Information klasörü örnek verilebilir.

Örneğin, SAM alt anahtarı altındaki veriler konusunda dizginleyemediğiniz bir meraka sahipseniz (ki bu alt anahtarın içeriği System hesabından giriş yapmadığınız sürece boş görünür), PsExec’i tıpkı Runas komutunu kullandığınız gibi
kullanarak Regedit programını System hesabı altından çalıştırabilirsiniz. Bu işi yapan komut aşağıdaki gibidir:

psexec -s –i c:\windows\regedit.exe

Dikkat ederseniz komut uzak bilgisayar ismini ve -i (interaktif) anahtarını içermemektedir. Bu komutu çalıştırdığınızda, System hesabını kullanmakta olduğunuz bilgisayarın masaüstünde belirir ve HKEY_LOCAL_MACHINE\SAM ve HKEY_LOCAL_MACHINE\SYSTEM alt anahtarlarının içeriğini görüntüler. Burada eğer -i anahtarını kullanırsanız Regedit ekranının uzak sistemin ekranında görüntülenmesine neden olursunuz. Bu da sadece uzak sistemdeki
işlemleri kendi bilgisayarınızda görüntülemenize olanak sağlayacak bir grafik kullanıcı arabirimine sahip olmanız durumunda işinize yarayacaktır.

Son güvenlik uyarısı da virüslerle ilgili.Çoğu virüs ağ üzerinde yayılmak için PsExec’i kullanırlar, bu nedenle çoğu antivirüs üreticisi PsExec’i bir Truva atı veya solucan olarak tanımlar. Unutmayın ki PsExec’in uzak makinelerde
çalışabilmesi için, uzak makinelerin administrator grubunda bulunan bir hesap üzerinden çalıştırılması gereklidir.

Kullanımı;
psexec [\\computer[,computer[,..] | @file ][-u user [-p psswd]][-n s][-l][-s|-e][-i][-x][-c [-f|-v]][-d][-w directory][-
][-a n,n,…] cmd [arguments]
computer
PsExec’in hangi bilgisayar veya bilgisayarlarda çalıştırılacağı belirler. Eğer boş bırakırsanız local sistemde çalışır, eğer bilgisayar ismi olarak “\\*” verilirse içinde bulunulan domaindeki bütün bilgisayarlarda uygulama çalıştırılır.
@file
PsExec’in yazı dosyasında listelenen her bilgisayar için çalışmasını sağlar

-a
Uygulamanın hangi işlemcide işleyeceğini belirliyor. Örnek olarak uygulamayı CPU 2 ve
CPU 4’te işletmek için “-a 2,4″ parametresini girmek lazım.
-c
Belirtilen programı uzak bilgisayara kopyalar. Eğer boş bırakılırsa uygulamanın uzak sistemde çalıştırılabilir sistem yolu üzerinde bulunması gereklidir.
-d
Uygulamanın bitmesini bekleme. Sadece interaktif olmayan uygulamalarda kullanılmalı.
-e
Belirlenmiş kullanıcı profilini yükler.
-f
Program uzak sistemde yüklü olsa bile kopyalar.
-i
Uzak sistemin masaüstü ile etkileşecek şekilde programı çalıştırır.
-l
Süreç limitli kullanıcı olarak çalıştırır.
-n
Uzak bilgisayardan timeout zamanını saniye cinsinden belirler.
-p
Kullanıcı adına özel şifre belirler. Eğer değer boş geçilirse şifre girişi için bir ekran açar.
-s
Uzak süreç Sistem hesabı ile çalışır
-u
Uzak bilgisayara giriş için kullanıcı adı belirler.
-v
Program eğer uzak bilgisayardakinden yeni veya daha üst versiyondaysa kopyalar.
-w
Sürecin çalışacağı klasörü belirler.
-x
Kullanıcı arabirimini Winlogon masaüstünde gösterir.
-priority
Sürecin çalışma önceliğini belirler -low, -belownormal, -abovenormal, -high veya -realtime program çalışacak programın ismi.

Reklam

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s