CyberFlow Logo CyberFlow 📚 Blog

psexec.py - SMB tabanlı uzaktan yürütme

✍️ Ahmet BİRKAN 📂 kali_tools_active_directory_araclari
psexec.py - SMB tabanlı uzaktan yürütme Giriş Giriş Siber güvenlik alanında, sistem yöneticileri ve sızma test uzmanları için uzaktan komut yürütme araçları, ö…
psexec.py - SMB tabanlı uzaktan yürütme

psexec.py - SMB tabanlı uzaktan yürütme

Giriş

Giriş

Siber güvenlik alanında, sistem yöneticileri ve sızma test uzmanları için uzaktan komut yürütme araçları, önemli bir rol oynamaktadır. Bu araçlardan biri olan psexec.py, SMB (Server Message Block) protokolünü kullanarak başka bir bilgisayarda komut çalıştırmaya olanak tanır. Kısacası, psexec.py, hedef sistemlerde istendiği şekilde işlemler yürütmek için etkili bir yöntem sunar.

Nedir ve Nasıl Çalışır?

psexec.py, Python tabanlı bir araç olup, Windows Sistemlerinde yaygın olarak bulunan PSExec komutunun işlevselliğini sağlar. SMB üzerinden çalışma yeteneği sayesinde, ağı genişletmeden ve karmaşık yapılandırmalara girmeden uzaktan erişim sağlar. Hedef sistem üzerinde belirli komutları çalıştırmak için kullanıcının yönetici yetkilerine sahip olması gerekmektedir. Bu, özellikle uzaktan yönetim ve bakım işlemleri için büyük bir avantaj sunmaktadır.

Kullanımı basit olsa da etkileri oldukça derindir. Hedef sistemde işlem yapmadan önce, bağlantının sağlam bir şekilde kurulması gerekmektedir. Bu bağlamda, Python kodu aşağıdaki gibi görünmektedir:

import os
import sys
from impacket.smb import SMB
from impacket import version

def execute_remote_command(target_ip, command):
    smb = SMB()
    smb.connect(target_ip)
    smb.login('<kullanıcı_adı>', '<parola>')
    smb.exec_cmd(command)

Burada, target_ip değişkeni hedef sistemin IP adresini temsil ederken, command çalıştırılacak komutu belirtir.

Neden Önemlidir?

psexec.py gibi araçların gücü, sistem yönetiminin etkinliğini artırmasında yatmaktadır. Özellikle büyük ağlarda, tek tek sistemlere erişim sağlamak yerine merkezi bir noktadan yönetim sağlamak oldukça önemlidir. Bunun yanı sıra, sızma testleri esnasında kullanılan bu tür yöntemler, güvenlik açıklarını tespit etmek ve sistemlerin zayıf noktalarını analiz etmek için kritik öneme sahiptir. Bu nedenle, sistem yöneticileri ve siber güvenlik uzmanları için psexec.py dahil olmak üzere uzaktan yürütme araçlarının bilinmesi ve etkin bir şekilde kullanılması gerekmektedir.

Hangi Alanlarda Kullanılır?

psexec.py, genellikle ağ yöneticileri tarafından sistemlerin güncellemelerini yapmak, yazılımları yüklemek veya hataları gidermek için kullanılır. Bunun yanı sıra, etik hackerlar ve sızma test uzmanları, bir sistemin güvenliğini test etmek ve olası güvenlik açıklarını keşfetmek amacıyla bu araçları kullanabilir. Bu, güvenlik senaryosunun anlaşılması ve gereken önlemlerin alınmasında kritik bir adım oluşturmaktadır.

Siber Güvenlik Açısından Değeri

Siber güvenlik perspektifinden bakıldığında, psexec.py gibi araçlar, sadece sistemlere uzaktan erişim sağlamakla kalmaz, aynı zamanda bu tür işlemlerin loglarının takip edilmesi, güvenlik politikalarının oluşturulması ve zayıf noktaların gözlemi için de faydalıdır. Ancak, bu araçların kötü niyetle kullanılması durumunda, ciddi güvenlik ihlallerine yol açabileceği unutulmamalıdır. Bu nedenle, eğitimli kullanıcılar tarafından bilinçli bir şekilde kullanılmaları gerekmektedir.

Sonuç olarak, psexec.py SMB tabanlı uzaktan yürütme, sistem yöneticilerinin işlerini kolaylaştıran ve aynı zamanda güvenlik testleri için önemli bir yöntemdir. Bu alandaki bilgi ve becerilerin artırılması, siber güvenlik duruşu için hayati önem taşımaktadır.

Teknik Detay

psexec.py ve SMB Tabanlı Uzaktan Yürütme

psexec.py, PyMSSQL ve diğer Python kütüphanelerini kullanarak SMB (Server Message Block) protokolü üzerinden uzaktan komut çalıştırmak için geliştirilmiş bir araçtır. SMB, dosya ve baskı paylaşımı gibi ağ iletişimlerinde yaygın olarak kullanılan bir protokoldür. Windows işletim sistemleri üzerinde çalışırken, bu protokol üzerinden sisteme uzaktan erişim sağlamak mümkün hale gelir.

Çalışma Prensibi

psexec.py, SMB protokolüne dayanarak yerel sistemdeki komutları uzaktaki sistemlerde yürütür. Bu işlem, hedef sistemde kontrol yetkisi elde etmek adına genellikle bir kullanıcı adı ve parola ile başlar. Protokol, oturum açma bilgilerini kullanarak hedef sistemle bağlantı sağlar ve ardından belirtilen komutu yürütür.

Bir bağlantı oluşturdunuzda, psexec.py, belirttiğiniz komutu, hedef sistemin komut yorumlayıcısı (genellikle cmd.exe) aracılığıyla çalıştırır. Komut çalıştırıldıktan sonra, çıktı geri alınır ve yerel sisteme gönderilir.

Kullanılan Yöntemler

psexec.py, SMB üzerinden uzaktan erişim sağlamak için aşağıdaki adımları takip eder:

  1. Oturum Açma: Hedef sisteme erişim sağlamak için gerekli kullanıcı adı ve parola bilgileri kullanılır. Eğer yönetici yetkisi isteniyorsa, bu bilgilerin yönetici haklarına sahip olması gerekmektedir.

    Aşağıdaki komut örneği, psexec.py aracılığıyla bir kullanıcı adı ve parola ile oturum açmayı göstermektedir:

    python psexec.py user:password@hedef_ip "komut"
    
  2. Bağlantı Kurma: Hedef bilgisayarla bir SMB bağlantısı oluşturulur. Bu aşamada, bağlantının güvenli bir şekilde kurulduğundan emin olmak önemlidir.

  3. Komut Yürütme: Bağlantı sağlandığında, belirtilen komut yürütülür ve çıktısı toplanır. Örneğin, hedef sistemde "ipconfig" komutunu çalıştırarak ağ yapılandırmalarını görmek için aşağıdaki komut kullanılabilir:

    python psexec.py user:password@hedef_ip "ipconfig"
    
  4. Sonuçların Analizi: Çalıştırılan komutun çıktısı, yerel sistemde görüntülenir. Bu, sistem hakkında bilgi toplamak veya planlanan işlemleri gerçekleştirmek için kullanılabilir.

Dikkat Edilmesi Gereken Noktalar

Analiz ve Teknik Bileşenler

psexec.py, açık kaynak kodlu bir araç olduğundan, geliştiriciler ve siber güvenlik uzmanları tarafından analiz edilmeye açıktır. Araç, HTTP veya HTTPS gibi diğer protokolleri kullanmaktan ziyade SMB üzerinden çalıştığı için belirli güvenlik avantajları ve dezavantajları sunar.

Teknik analiz açısından, psexec.py genellikle sızma testlerinde kullanılır. Araç, sızma test uzmanlarının hedef sistemlerdeki güvenlik açıklarını belirleme amacıyla kullandığı önemli bir bileşendir. Elde edilen veriler, güvenlik açıklarını kapatmak ve hedef sistemleri korumak adına kullanılabilir.

Sonuç olarak, psexec.py, SMB tabanlı uzaktan yürütme için güçlü bir çözüm sunarak sistem yöneticileri ve güvenlik uzmanlarına geniş bir yetki sağlar. Ancak, bu tür araçları kullanırken dikkatli olmak ve yasal ve etik kurallara uymak son derece önemlidir.

İleri Seviye

PsExec.py ile SMB Tabanlı Uzaktan Yürütme

PsExec, Windows sistemlerinde uzaktan komut yürütmek için kullanılan güçlü bir araçtır ve sızma testleri esnasında büyük bir öneme sahiptir. PsExec.py, Python tabanlı bir versiyonudur ve SMB üzerinden hükmedici erişimi kolaylaştırır. Bu bölümde, PsExec.py ile SMB tabanlı uzaktan yürütme yöntemlerini, sızma testi yaklaşımını ve bazı teknik ipuçlarını detaylandıracağız.

PsExec.py Nedir?

PsExec.py, PsExec aracının Python sınıfına entegre edilmiş bir versiyonudur. Bu araç, kötü amaçlı yazılımların ve kötü niyetli kullanıcıların, hedef cihazlara uzaktan erişim sağlarken kullandığı SMB protokolü üzerinden komut gönderimini mümkün kılar. Bu tür bir araç kullanıldığında güvenlik açığı ve risklerin iyi anlaşılması gerekmektedir.

Sızma Testi Yaklaşımı

PsExec.py ile sızma testi gerçekleştirmek için aşağıdaki adımlar izlenmelidir:

  1. Hedef Bilgilerini Toplama: Hedef sistemin ağındaki SMB hizmetlerinin düzgün çalıştığından emin olun. Hedefin IP adresini, çalışan servislerini ve açık portlarını belirleyin.

  2. Kimlik Doğrulama Sağlama: SMB üzerinden erişim sağlamak için geçerli bir kullanıcı adı ve şifreye ihtiyaç vardır. Bu bilgileri toplamak için önceki adımlar, örneğin bir zafiyet istismar edilerek veya varsayılan şifrelerin denenmesiyle gerçekleştirilmelidir.

  3. PsExec.py Kullanımı: Aşağıdaki örnek, PsExec.py aracılığıyla bir uzak makinede cmd.exe komutunun nasıl çalıştırılacağını göstermektedir.

Örnek Kullanım

Aşağıda, PsExec.py kullanarak bir uzak makinede komut yürütme örneği verilmiştir:

python psexec.py <kullanici_adi>:<sifre>@<hedef_ip> cmd.exe

Bu komut çalıştırıldığında, hedef makinedeki komut istemcisi (cmd.exe) açılır ve biz buradan komutlar yürütebiliriz.

Payload Örnekleri

Sızma testlerinde, belirtilen araç ile birlikte kullanılabilecek birkaç payload örneği aşağıda verilmiştir:

Basit Payload Oluşturma

Aşağıdaki Python kodu, hedef sistemde bir metin dosyasına yazı yazacak basit bir payload oluşturur:

import os

def create_payload():
    with open("example_payload.bat", "w") as file:
        file.write("echo This is a test payload > C:\\test.txt")

create_payload()

Bu payload, hedef sistemde C:\test.txt dosyasını oluşturacak ve içine "This is a test payload" yazacaktır.

PsExec ile Payload'ı Yürütme

Hazırladığınız payload'ı PsExec ile uzaktan çalıştırmak için aşağıdaki komutu kullanabilirsiniz:

python psexec.py <kullanici_adi>:<sifre>@<hedef_ip> cmd.exe /c start C:\\path_to_your_payload\\example_payload.bat

Uzman İpuçları

SMB tabanlı uzaktan yürütme, doğru uygulandığında sızma testlerinde çok güçlü bir araç olabilir. Ancak, kullanım sırasında dikkatli olmak ve etik kurallara uygun hareket etmek öngörülen en önemli faktörlerdir.