cmdlet

 

🇹🇷 Cmdlet Nedir? (PowerShell Komutları)

📌 Tanım:

Cmdlet (Command-Let), PowerShell’de yerleşik olarak gelen küçük, özel görevler yapan komutlardır. "Command" (komut) kelimesinin küçültülmüş halidir. CMD veya Bash’teki klasik komutlara benzer ama çok daha güçlü ve nesne tabanlı çalışırlar.

🧠 Temel Özellikleri:

  • .NET framework kullanılarak geliştirilir.

  • Genellikle verb-noun (eylem-nesne) şeklinde adlandırılır:
    Örneğin: Get-Process, Set-Date, Remove-Item

  • Küçük bir işi yapacak şekilde tasarlanırlar ama birlikte zincirlenerek güçlü işlemler yapılabilir.

  • Cmdlet çıktıları metin değil, nesnedir. Bu, filtreleme, yönlendirme ve detaylı işlem yapmayı mümkün kılar.


🛠️ Cmdlet’lerin Özellikleri:

ÖzellikAçıklama
YapıGenellikle Fiil-Nesne biçimindedir.
ProgramlanabilirlikKomutlar arasında veri boru hattı (pipeline) ile aktarılabilir.
Nesne tabanlılıkHer cmdlet bir .NET nesnesi döndürür.
GenişletilebilirlikKendi cmdlet’lerinizi yazabilirsiniz.
Yönetim GücüSistem, ağ, kullanıcı, servis, registry, dosya vb. her şeye erişebilir.

🧪 Örnek Cmdlet'ler:

powershell
Get-Process # Sistemdeki tüm çalışan süreçleri listeler. Get-Service # Tüm servislerin durumunu verir. Set-ExecutionPolicy RemoteSigned # Script çalıştırma izinlerini düzenler. Get-EventLog -LogName Security # Güvenlik loglarını çeker.

🛡️ Siber Güvenlikte Cmdlet Kullanımı:

Cmdlet'ler, siber güvenlikte sistem analizi, olay yanıtı, adli analiz gibi alanlarda bilgi toplamak, servisleri kontrol etmek, ağ trafiğini analiz etmek gibi amaçlarla çok sık kullanılır. Örneğin:

  • Get-WmiObject ile sistem bilgisi çekilebilir.

  • Get-LocalUser ile yerel kullanıcılar listelenebilir.

  • Get-EventLog ile olay günlüğü analizi yapılabilir.

Ayrıca kötü niyetli kişiler bu cmdlet’leri kullanarak bilgi sızdırma, gizli çalıştırma, yandan yayılma (lateral movement) gibi saldırılar gerçekleştirebilir.


🇬🇧 What is a Cmdlet?

📌 Definition:

A cmdlet (pronounced "command-let") is a lightweight, single-function command in PowerShell. It performs a specific task and is the core building block of PowerShell scripting.

🧠 Key Characteristics:

  • Cmdlets are written in C# and based on the .NET framework.

  • Naming follows the verb-noun convention (e.g., Get-Process, Set-Date).

  • Unlike traditional command-line tools, cmdlets work with objects, not plain text.

  • Cmdlets can be chained via pipelines to perform complex tasks.


🛠️ Key Features of Cmdlets:

FeatureDescription
SyntaxUses Verb-Noun pattern
ProgrammabilityPipe output between cmdlets easily
Object-orientedReturns .NET objects
ExtensibleYou can build custom cmdlets
System accessCan manage registry, services, users, files, etc.

🧪 Example Cmdlets:

powershell
Get-Process # Lists all active processes. Get-Service # Returns service status. Set-ExecutionPolicy RemoteSigned # Sets script execution permissions. Get-EventLog -LogName Security # Retrieves security logs.

🛡️ In Cybersecurity:

Cmdlets are frequently used in cybersecurity operations:

  • Threat hunting (e.g., Get-WmiObject, Get-EventLog)

  • User auditing (Get-LocalUser, Get-LocalGroupMember)

  • Lateral movement techniques by attackers

  • Persistence mechanisms and data exfiltration

Attackers can leverage cmdlets to blend into normal system behavior and evade detection, especially in fileless attacks.