Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
Selamlar;
Stack Link
adresindeki duruma benzer bir geliştirme lazım oldu. Fakat burdaki arkadaş gibi bende beceremedim.
Sorunu özetleyecek olursam servis uygulamasını debug mode'da iken çalıştırabildiğim cmd komutunu
servis olarak çağırdığımda çalışmıyor.
Yukardaki linkte neden çalışmadığına dair bilgilerde verilmiş yani yapılabilir gibi durmuyor.
Belki önceden karşılaşan uğraşan vardır diye buraya da sorayım dedim.
Servisi debug mode'da yani standart bir uygullama olarak çalıştırararak sorunu aşabiliyorum şu an fakat
Servis olarak çalışırken komut satırı komutlarını çalıştırmak istiyorum.
Umarım anlatabilmişimdir.Varmıdır yolu yordamı.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
Cevap için teşekkürler @
cexx
Aynen dediğin gibi farklı yöntemler mevcut.
Bir şekilde yapılabilirliği var (debug mode'u bu alternatif çözüm olarak belirtmiştim)
Fakat servis uygulaması üzerinden servis olarak çalıştırabileceğim bir yöntem varsa daha makbule geçer.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868
Üstad
(02-03-2019, Saat: 11:57)ahmet_sinav Adlı Kullanıcıdan Alıntı: Cevap için teşekkürler @cexx
Aynen dediğin gibi farklı yöntemler mevcut.
Bir şekilde yapılabilirliği var (debug mode'u bu alternatif çözüm olarak belirtmiştim)
Fakat servis uygulaması üzerinden servis olarak çalıştırabileceğim bir yöntem varsa daha makbule geçer.
Merhaba, servis uygulamaları Session 0 izolasyon seviyesinde çalışıyor güvenlik önlemleri gereği. Bir uygulama çalıştırabilirsiniz servis uygulamaları içinden lâkin bu uygulama kullanıcı ile etkileşimde bulunamaz. Bunun için yapılmaya çalışılan bir çok yoldan birisi olan CreateProcessAsUser API'sini de kullanmaya çalışabilirsiniz, ancak yine de başarılı olamayacaksınız eğer Vista+ bir işletim sistemi kullanıyorsanız.
O halde ne yapılabilir. Bir kaç yöntem kullanılabilir:
- Kullanıcı ile etkileşimli olan bir session'da (Genelde 3) çalışan bir uygulamaya DLL injection yapabilir ve o uygulama üzerinden uygulama başlatabilirsiniz.
- Sadece uygulama başlatmak için kendinize ait bir uygulamanız olabilir ve servis uygulamanız ile o uygulama arasında bir iletişim sağlayabilirsiniz. (IPC).
- Windows'un Task Schedular'ına bir görev oluşturabilirsiniz.
Daha pek çok yöntem eklenebilir. Ama sanıyorum bu yöntemler yeterlidir.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
@
Tuğrul HELVACI cevap için teşekkürler.
Hem @
cexx hemde senin belirttiğin gibi sorun izolasyon kaynaklı ve windows bu konuda haklı.
Şu an için servisi -debug ile çalıştırıyorum fakat çok uygun bir çözüm değil. Bu nedenle farklı bir
exe oluşturup bu exeye basit br schedule yapıp commandı çalıştırma yolunu seçtim.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
Selamlar;
Biraz daha araştırdım ve CreateProcessAsUser windows apisine ulaştım.
https://stackoverflow.com/questions/3398...user-fails
adresindeki yöntem ile servisin çalıştığı session id alınıyor ve bu session id ile token alınarak
CreateProcessAsUser apisi ile command çalıştırılabiliyor.
Önemli olan bir diğer nokta ise servisin property-->logon kısmında
Allow service to interact with desktop parametresinin aktif edilmesi gerekli.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868
Üstad
(06-03-2019, Saat: 11:24)ahmet_sinav Adlı Kullanıcıdan Alıntı: Selamlar;
Biraz daha araştırdım ve CreateProcessAsUser windows apisine ulaştım.
https://stackoverflow.com/questions/3398...user-fails
adresindeki yöntem ile servisin çalıştığı session id alınıyor ve bu session id ile token alınarak
CreateProcessAsUser apisi ile command çalıştırılabiliyor.
Önemli olan bir diğer nokta ise servisin property-->logon kısmında
Allow service to interact with desktop parametresinin aktif edilmesi gerekli.
Üstad ben o API'yi size mesajımda yazmıştım zaten
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
06-03-2019, Saat: 20:51
(Son Düzenleme: 06-03-2019, Saat: 21:10, Düzenleyen: ahmet_sinav.)
@
Tuğrul HELVACI doğrudur.Stack te uygulama içinde görünce bi heves geldi denedim oldu. Fakaaat bununda şu sıkıntısı var. Rdp ile login olup service i tetiklediğimizde token alamıyor. Çünkü rdp ile login olduğumuz user ile servicein çalıştığı user farklı. Local account yerine rdp ile login olduğum userı belirttiğimde interactive desteği olmuyor bu seferde
yaşlandırdı beni bu iş.
Harici exe yapacam demiştim ama oda olmuyor. Çünkü sistemde mutlaka açık bir login olmalı. @
cexx yukarda xp cmd shell yazmıştı yarın öyle deneyecem birde nasipse.
Birde şunu farkettim yazılanları üstünkörü okumuşum
.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868
Üstad
06-03-2019, Saat: 21:54
(Son Düzenleme: 07-03-2019, Saat: 08:33, Düzenleyen: Tuğrul HELVACI.)
(06-03-2019, Saat: 20:51)ahmet_sinav Adlı Kullanıcıdan Alıntı: @Tuğrul HELVACI doğrudur.Stack te uygulama içinde görünce bi heves geldi denedim oldu. Fakaaat bununda şu sıkıntısı var. Rdp ile login olup service i tetiklediğimizde token alamıyor. Çünkü rdp ile login olduğumuz user ile servicein çalıştığı user farklı. Local account yerine rdp ile login olduğum userı belirttiğimde interactive desteği olmuyor bu seferde yaşlandırdı beni bu iş.
Harici exe yapacam demiştim ama oda olmuyor. Çünkü sistemde mutlaka açık bir login olmalı. @cexx yukarda xp cmd shell yazmıştı yarın öyle deneyecem birde nasipse.
Birde şunu farkettim yazılanları üstünkörü okumuşum .
Logon olayı nispeten basit. Elinizde admin haklarına sahip kullanıcı adı/şifre ikilisi var ise
LogonUser Apisi ile token alıp
ImpersonateLoggedOnUser apisini kullanabilirsiniz.
RevertToSelf yapmayı da unutmayın tabii
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495
Acemi
@
Tuğrul HELVACI teşekkür ederim bu 3 apiyi araştırayım.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.