Merhabalar TürkHackTeam ailesi, bugün sizlere Powershell'den bahsedeceğim. Powershell'den A'dan Z'ye bahsetmeye çalışacağım. Ders tadında çok fazla uzun tutmamaya çalışacağım arkadaşlar hadi başlayalım.
Konu Başlıkları
PowerShell Nedir?
Kabuk (Shell) Nedir?
Kabuk (Shell) İşlevi Nedir?
PowerShell Nasıl Açılır?
PowerShell ile Neler Yapılabilir?
PowerShell ile CMD Arasındaki Fark Nedir?
PowerShell ile Bash (Linux) Arasındaki Fark Nedir?
PowerShell CMDLET Nedir?
1. Get-help
2. Get-command
3. Get-member Komutu
4. man Komutu
5. ipconfig Komutu
6. get-eventlog Komutu
7. Alias Bilgisi Alma
Basit PowerShell ile Örnekler
Bir işlemi Durdurmaya Zorlama
Bir Dosyanın Varlığını Kontrol Etme
PowerShell Empire Nedir ve Kullanımı?
1. Empire Kurulumu
PowerShell Nedir?
PowerShell, Microsoft'un oluşturduğu CMD'ye (komut satırı) Windows Server'lar üzerinde kolaylık sağlanması için hazırlanmış bir komut satırı uygulaması ve scripting dilidir. Microsoft bu komut satırını 2006 yılında piyasaya çıkarmıştır. Microsoft yeni komut satırı UNİX sistemlerde ki terminal yapısına benzemektedir.
.NET Framework ve .NET Core üzerinde geliştirilmiştir ve açık kaynaktır.
PowerShell kavramını daha iyi anlamak için Kabuk(Shell) kavramını biraz bilmemiz gerekmektedir. Bunun için benim konum olan Linux KABUK(SHELL) //WhiteRed konusuna bakabilirsiniz. Fakat siz konudan kopmayın diye birkaç alıntı ile Kabuğun ne olduğunu anlatacağım.
Kabuk (Shell) Nedir?
Kabuk, işletim sistemlerinde kullanıcıdan alınan verileri/iletileri çekirdeğe ulaştıran komut satırıdır. Linux kullanıcıların programları başlatmasına, kullanmasına Linux da ki çalışan prosedürlerin yönetmektedir. Peki kabuğa nasıl erişim sağlayacağız derseniz, komut satırı olarak tanımlandığımız terminal sayesinde kabuk ile etkileşime geçebiliriz.
Peki ne olduğunu anladık da bunun işlevi nedir? Ne işe yarar bu Kabuk(Shell) dediğinizi duyar gibiyim onun için de şöyle kısa bir yazım var;
Kabuk (Shell) İşlevi Nedir?
Üst tarafta kabuk ile iletişime geçmek için Terminalden yararlanıyoruz demiştim. Terminal de neler yapabiliriz derseniz, dosya oluşturabiliriz, dosya silebiliriz, dizin oluşturabiliriz, dizin silebiliriz gibi gibi. İşletim sistemi üzerinden yapabileceğimiz işlev vardır. Birçok komutu burada kullanırız.
PowerShell, Windows 7, Windows 8.1 ve Windows 10 gibi sürümlerde ve Windows Serverlerin de Linux, Mac OS X de çalışmaktadır.
Peki PowerShell'i bu kadar anlattık da PowerShell'i nasıl açacağız "P4RS derseniz;
PowerShell Nasıl Açılır?
İlk olarak "Başlangıç" a geliyoruz ve arama kısmına tıklıyoruz. Daha sonra arama kısmına "powershell" yazıyoruz ve karşımıza PowerShell uygulaması çıkıyor. Ona tıklıyoruz ve PowerShell uygulamamız açılıyor.
Eğer bunu yaptığınızda PowerShell çıkmıyorsa https://docs.microsoft.com/tr-tr/powershell/scripting/install/installing-windows-powershell?view=powershell-6 ksımından kurulumuna bakabilirsiniz.
PowerShell ile Neler Yapılabilir?
PowerShell, sayesinde kullanıcılar yazılımlar üretebilmektedirler. Veyahut bir uygulamanın hata raporunu görmek, bir işlemin olup olmadığını anlamak, sunucu yönetimi gibi kavramlarda kullanılmaktadır. Bunlar çoğu kullanıcının yapabileceği temel şeylerdir daha derinlere inilebilir. PowerShell uzantısı (.ps1)'dir.
PowerShell'in mantığından kullanımından ve neler yapabileceğimizden bahsettik. Şimdi de karşılaştırma yapacağız.
PowerShell ile CMD Arasındaki Fark Nedir?
PowerShell ile CMD ne kadar da birbirine benziyor gibi görünsede işin iç yüzü tam olarak böyle değil.
PowerShell de CMDLET (Birazdan anlatacağım) isimli komutlar kullanılmaktadır. CMD ekranında erişelemeyen birçok veriye PowerShell de ki cmdlet komutları sayesinde erişebilirsiniz.
CMD daha az karmaşık dosyaları yönetmek için kullanılan bir komut satırıdır fakat PowerShell böyle değil daha karmaşık ve daha güçlü bir sistemdir.
Mesela bir klasörün içinde ki dosyaların isimlerini veya türlerini değiştirmek için CMD kullanmayız PowerShell kullanırız.
Fakat IP adresimize bakmak için, ping değerimize bakmak için de PowerShell kullanmayız CMD kullanırız.
PowerShell ile Bash (Linux) Arasındaki Fark Nedir?
Bash geliştirici ortamlar için uygun bir yapıdır.
Her ikiside Sunucu yönetimi için uygun komut satırlarıdır.
Her ikisinde de bir veri ile birden fazla işlem yapabilirsiniz yani boru görevi görüyor diyebilirim komutları birbirine bağlamak yani.
Linux terminal kullanmayı az çok biliyorsanız size PowerShell çokta yabancı gelmez fakat CMD'yi biraz bilip diğerlerini bilmiyorsanız PowerShell sizlere kullanımı biraz zor gelir.
Her ikisiyle de uzaktan erişim sağlayabilirsiniz.
PowerShell CMDLET Nedir?
CMDLET, PowerShell de ki komutların genel ismidir.
CMDLET yazarken ilk önce eylem (verb) daha sonra eylem de yapılması istenen işlem (noun) yazılmalıdır.
Mesela burada ki gibi
ile yardım alabilirsiniz.
Get-help
Bizlere genel bilgi verir.
Mesela biz hangi işlem ile hangi komutları kullanabileceğimizi görmek için
komutunu kullanırız. Bakalım;
Burada
komutu ile "command" eylemi ile hangi işlemleri yapacağımızı görebiliriz.
Get-command
Kullanabileceğimiz bütün komutları ve parametreleri bizlere göstermektedir. Burada CMDLET'lerin listesi, alias, fonksiyonlar bulunmaktadır.
Gördüğünüz gibi bu liste uzayıp gidiyor.
Şimdi de belirli bir uzantıya sahip uygulamaları bulmak için kullandığımız parametreyi göstermeye geldi.
Burada
olarak yazıyoruz.
Ben burada
diyerek bütün ".exe" olan parametreleri, programları buldum. Sizlerde aradığınız diğer uygulamaları bu şekilde bulabilirsiniz.
Şimdi de başlatabileceğimiz uygulamaları görmeye çalışalım bunun için
komutunu yazıyoruz.
Gördüğünüz gibi başlatabileceğimiz uygulamaları bizlere gösterdi.
Peki durdurabileceğimz uygulamalar? Onlara da bakalım
komutunu kullanalım.
Gördüğünüz gibi durdurabileceğimiz eylemleri de görmüş olduk. Bu liste böyle uzayıp gider merakınıza kalmış bir şey.
Get-member Komutu
Kullanıcının neler yapabileceğini görmemize yarayan bir komuttur. Şimdi kullanıcının neleri yapabileceğini görmek için
komutunu yazalım.
man Komutu
Man komutu manuel kelimesinin kısaltımıdır. Siz bir komut hakkında bilgi öğrenmek istiyorsanız man komutundan yardım almalısınız. Sizlere liste olarak şu şu komut buna yarıyor tarzında gösterecektir.
Gördüğünüz gibi "comman" hakkında bilgi aldık.
ipconfig Komutu
Bu komut CMD ekranında çalışır PowerShell'de de çalışır.
get-eventlog Komutu
Windows olay günlüklerini görmemizi yarar. Kullanımı
daha sonra hangi olay günlüğünü görmek istiyorsak onu yazıyoruz.
Çok geniş kapsamlı bakıyor benden söylemesi
Alias Bilgisi Alma
Aliasların temel görevi kısa kod olarak kullanılmalarıdır. Bu komut ile
ile kullanabileceğimiz eylemleri görüyoruz.
Örnek olarak UNİX sistemlerde "cp" komutu CMD de "copy" komutu PowerShell de "Copy-Item" terimine karşılık gelmektedir.
Buna birkaç tane daha örnek vermek istiyorum;
Unix sistemlerde ki clear komutu için;
Cat Komutu için;
cd Komutu için;
del Komutu için;
ls Komutu için;
Birkaç örneği de tablo da görebilirsiniz;
Daha fazla komutlar hakkında bilgi almak isterseniz https://www.pdq.com/powershell/ buradan bakabilirsiniz.
Basit PowerShell ile Örnekler
Şimdi işin mantığını öğrendik ufak örnekler göstereyim sizlere neler yapabileceğinizi daha iyi anlarsınız.
Bugünün tarhini öğrenelim mesela bunu için
komutunu kullanacağız.
Gördüğünüz gibi bizlere bilgileri verdi.
Şimdi daha da derine inmeye çalışalım.
Mesela bu yılın kaçıncı gününde olduğmuza bakalım bunun için
komutunu kullanıyoruz.
Bu örnekler daha da derine indirgenebilir.
Bir işlemi Durdurmaya Zorlama
Diyelim ki bir işlem çalışmıyor ve bunu durdurmak istiyoruz. Bunun için işlemin kimliğini bilmeliyiz.
komutunu kullanıyoruz.
Buradan mesela "uTorrent" uygulamasını kapatalım ID'si: 12016 bunu kapatmayı deneyelim.
ya da
yazmalıyız.
Şimdi tekrardan kontrol edelim yine
yazıyoruz.
Gördüğünüz gibi işlemimiz kapanmıştır.
Bir Dosyanın Varlığını Kontrol Etme
Bir dosyanın ismini değiştirmek ya da silmek isteyebilirsiniz. Bunun için ilk öncelikle böyle bir dosya var mı diye bakmamız gerekir. Bunun için
Gördüğünüz gibi "uTorrent.exe" var mı sorusuna "True" yani "Evet" dedi fakat "uTorrent.exe22" dosyası var mı sorusuna "False" yani "Hayır" dedi.
PowerShell Empire Nedir ve Kullanımı?
Empire, Powershell ve Python aracılığyla kullanılan post-exploitation için yapılmış bir RAT'tır. Sızma işlemlerinde kullanılabilen bu araç PowerShell yardımıyla kodlandığından dolayı hedefin antivirüs korumasına takılmadan geçebilmektedir.
Çalışma Yapısı
Empire Kurulumu
Empire, kurmak için öncelikle https://github.com/EmpireProject/Empire bu siteden dosyaları indirmemiz gerekiyor.
Daha sonra
bunları yazdıktan sonra
yazıyoruz ve kurulum başlıyor biraz uzun sürer bilginiz olsun.
Daha sonra tekrar "Empire-master" klasörüne giriyoruz. Buradan
diyoruz ve uygulamamız başlıyor.
Uygulamamızın görüntüsü bu şekildedir.
komutu ile de bilgi alabilirsiniz.
Konum bu kadardı arkadaşlar bilgilendiyseniz ne mutlu bana başka bir makalede görüşmek üzere...
Konu Başlıkları
PowerShell Nedir?
Kabuk (Shell) Nedir?
Kabuk (Shell) İşlevi Nedir?
PowerShell Nasıl Açılır?
PowerShell ile Neler Yapılabilir?
PowerShell ile CMD Arasındaki Fark Nedir?
PowerShell ile Bash (Linux) Arasındaki Fark Nedir?
PowerShell CMDLET Nedir?
1. Get-help
2. Get-command
3. Get-member Komutu
4. man Komutu
5. ipconfig Komutu
6. get-eventlog Komutu
7. Alias Bilgisi Alma
Basit PowerShell ile Örnekler
Bir işlemi Durdurmaya Zorlama
Bir Dosyanın Varlığını Kontrol Etme
PowerShell Empire Nedir ve Kullanımı?
1. Empire Kurulumu
PowerShell Nedir?
PowerShell, Microsoft'un oluşturduğu CMD'ye (komut satırı) Windows Server'lar üzerinde kolaylık sağlanması için hazırlanmış bir komut satırı uygulaması ve scripting dilidir. Microsoft bu komut satırını 2006 yılında piyasaya çıkarmıştır. Microsoft yeni komut satırı UNİX sistemlerde ki terminal yapısına benzemektedir.
.NET Framework ve .NET Core üzerinde geliştirilmiştir ve açık kaynaktır.
PowerShell kavramını daha iyi anlamak için Kabuk(Shell) kavramını biraz bilmemiz gerekmektedir. Bunun için benim konum olan Linux KABUK(SHELL) //WhiteRed konusuna bakabilirsiniz. Fakat siz konudan kopmayın diye birkaç alıntı ile Kabuğun ne olduğunu anlatacağım.
Kabuk (Shell) Nedir?
Kabuk, işletim sistemlerinde kullanıcıdan alınan verileri/iletileri çekirdeğe ulaştıran komut satırıdır. Linux kullanıcıların programları başlatmasına, kullanmasına Linux da ki çalışan prosedürlerin yönetmektedir. Peki kabuğa nasıl erişim sağlayacağız derseniz, komut satırı olarak tanımlandığımız terminal sayesinde kabuk ile etkileşime geçebiliriz.
Peki ne olduğunu anladık da bunun işlevi nedir? Ne işe yarar bu Kabuk(Shell) dediğinizi duyar gibiyim onun için de şöyle kısa bir yazım var;
Kabuk (Shell) İşlevi Nedir?
Üst tarafta kabuk ile iletişime geçmek için Terminalden yararlanıyoruz demiştim. Terminal de neler yapabiliriz derseniz, dosya oluşturabiliriz, dosya silebiliriz, dizin oluşturabiliriz, dizin silebiliriz gibi gibi. İşletim sistemi üzerinden yapabileceğimiz işlev vardır. Birçok komutu burada kullanırız.
PowerShell, Windows 7, Windows 8.1 ve Windows 10 gibi sürümlerde ve Windows Serverlerin de Linux, Mac OS X de çalışmaktadır.
Peki PowerShell'i bu kadar anlattık da PowerShell'i nasıl açacağız "P4RS derseniz;
PowerShell Nasıl Açılır?
İlk olarak "Başlangıç" a geliyoruz ve arama kısmına tıklıyoruz. Daha sonra arama kısmına "powershell" yazıyoruz ve karşımıza PowerShell uygulaması çıkıyor. Ona tıklıyoruz ve PowerShell uygulamamız açılıyor.
Eğer bunu yaptığınızda PowerShell çıkmıyorsa https://docs.microsoft.com/tr-tr/powershell/scripting/install/installing-windows-powershell?view=powershell-6 ksımından kurulumuna bakabilirsiniz.
PowerShell ile Neler Yapılabilir?
PowerShell, sayesinde kullanıcılar yazılımlar üretebilmektedirler. Veyahut bir uygulamanın hata raporunu görmek, bir işlemin olup olmadığını anlamak, sunucu yönetimi gibi kavramlarda kullanılmaktadır. Bunlar çoğu kullanıcının yapabileceği temel şeylerdir daha derinlere inilebilir. PowerShell uzantısı (.ps1)'dir.
PowerShell'in mantığından kullanımından ve neler yapabileceğimizden bahsettik. Şimdi de karşılaştırma yapacağız.
PowerShell ile CMD Arasındaki Fark Nedir?
PowerShell ile CMD ne kadar da birbirine benziyor gibi görünsede işin iç yüzü tam olarak böyle değil.
PowerShell de CMDLET (Birazdan anlatacağım) isimli komutlar kullanılmaktadır. CMD ekranında erişelemeyen birçok veriye PowerShell de ki cmdlet komutları sayesinde erişebilirsiniz.
CMD daha az karmaşık dosyaları yönetmek için kullanılan bir komut satırıdır fakat PowerShell böyle değil daha karmaşık ve daha güçlü bir sistemdir.
Mesela bir klasörün içinde ki dosyaların isimlerini veya türlerini değiştirmek için CMD kullanmayız PowerShell kullanırız.
Fakat IP adresimize bakmak için, ping değerimize bakmak için de PowerShell kullanmayız CMD kullanırız.
PowerShell ile Bash (Linux) Arasındaki Fark Nedir?
Bash geliştirici ortamlar için uygun bir yapıdır.
Her ikiside Sunucu yönetimi için uygun komut satırlarıdır.
Her ikisinde de bir veri ile birden fazla işlem yapabilirsiniz yani boru görevi görüyor diyebilirim komutları birbirine bağlamak yani.
Linux terminal kullanmayı az çok biliyorsanız size PowerShell çokta yabancı gelmez fakat CMD'yi biraz bilip diğerlerini bilmiyorsanız PowerShell sizlere kullanımı biraz zor gelir.
Her ikisiyle de uzaktan erişim sağlayabilirsiniz.
PowerShell CMDLET Nedir?
CMDLET, PowerShell de ki komutların genel ismidir.
CMDLET yazarken ilk önce eylem (verb) daha sonra eylem de yapılması istenen işlem (noun) yazılmalıdır.
Mesela burada ki gibi
Kod:
get-help
Get-help
Bizlere genel bilgi verir.
Mesela biz hangi işlem ile hangi komutları kullanabileceğimizi görmek için
Kod:
işlem -?
Burada
Kod:
command -?
Get-command
Kullanabileceğimiz bütün komutları ve parametreleri bizlere göstermektedir. Burada CMDLET'lerin listesi, alias, fonksiyonlar bulunmaktadır.
Gördüğünüz gibi bu liste uzayıp gidiyor.
Şimdi de belirli bir uzantıya sahip uygulamaları bulmak için kullandığımız parametreyi göstermeye geldi.
Burada
Kod:
eylem *.uzantı
Ben burada
Kod:
get-command *.exe
Şimdi de başlatabileceğimiz uygulamaları görmeye çalışalım bunun için
Kod:
get-command -verb start
Gördüğünüz gibi başlatabileceğimiz uygulamaları bizlere gösterdi.
Peki durdurabileceğimz uygulamalar? Onlara da bakalım
Kod:
get-command -verb stop
Gördüğünüz gibi durdurabileceğimiz eylemleri de görmüş olduk. Bu liste böyle uzayıp gider merakınıza kalmış bir şey.
Get-member Komutu
Kullanıcının neler yapabileceğini görmemize yarayan bir komuttur. Şimdi kullanıcının neleri yapabileceğini görmek için
Kod:
get-help get-member
man Komutu
Man komutu manuel kelimesinin kısaltımıdır. Siz bir komut hakkında bilgi öğrenmek istiyorsanız man komutundan yardım almalısınız. Sizlere liste olarak şu şu komut buna yarıyor tarzında gösterecektir.
Gördüğünüz gibi "comman" hakkında bilgi aldık.
ipconfig Komutu
Bu komut CMD ekranında çalışır PowerShell'de de çalışır.
get-eventlog Komutu
Windows olay günlüklerini görmemizi yarar. Kullanımı
Kod:
get-eventlog
Kod:
application
Alias Bilgisi Alma
Aliasların temel görevi kısa kod olarak kullanılmalarıdır. Bu komut ile
Kod:
get-alias
Örnek olarak UNİX sistemlerde "cp" komutu CMD de "copy" komutu PowerShell de "Copy-Item" terimine karşılık gelmektedir.
Buna birkaç tane daha örnek vermek istiyorum;
Unix sistemlerde ki clear komutu için;
Cat Komutu için;
cd Komutu için;
del Komutu için;
ls Komutu için;
Birkaç örneği de tablo da görebilirsiniz;
Daha fazla komutlar hakkında bilgi almak isterseniz https://www.pdq.com/powershell/ buradan bakabilirsiniz.
Basit PowerShell ile Örnekler
Şimdi işin mantığını öğrendik ufak örnekler göstereyim sizlere neler yapabileceğinizi daha iyi anlarsınız.
Bugünün tarhini öğrenelim mesela bunu için
Kod:
get-date
Gördüğünüz gibi bizlere bilgileri verdi.
Şimdi daha da derine inmeye çalışalım.
Mesela bu yılın kaçıncı gününde olduğmuza bakalım bunun için
Kod:
(get-date).dayofyear
Bu örnekler daha da derine indirgenebilir.
Bir işlemi Durdurmaya Zorlama
Diyelim ki bir işlem çalışmıyor ve bunu durdurmak istiyoruz. Bunun için işlemin kimliğini bilmeliyiz.
Kod:
get-process
Buradan mesela "uTorrent" uygulamasını kapatalım ID'si: 12016 bunu kapatmayı deneyelim.
Kod:
stop-process 12016
Kod:
stop-process processname uTorrent
Şimdi tekrardan kontrol edelim yine
Kod:
get-process
Gördüğünüz gibi işlemimiz kapanmıştır.
Bir Dosyanın Varlığını Kontrol Etme
Bir dosyanın ismini değiştirmek ya da silmek isteyebilirsiniz. Bunun için ilk öncelikle böyle bir dosya var mı diye bakmamız gerekir. Bunun için
Kod:
test-Path (dosya uzantısı)
Gördüğünüz gibi "uTorrent.exe" var mı sorusuna "True" yani "Evet" dedi fakat "uTorrent.exe22" dosyası var mı sorusuna "False" yani "Hayır" dedi.
PowerShell Empire Nedir ve Kullanımı?
Empire, Powershell ve Python aracılığyla kullanılan post-exploitation için yapılmış bir RAT'tır. Sızma işlemlerinde kullanılabilen bu araç PowerShell yardımıyla kodlandığından dolayı hedefin antivirüs korumasına takılmadan geçebilmektedir.
Çalışma Yapısı
Empire Kurulumu
Empire, kurmak için öncelikle https://github.com/EmpireProject/Empire bu siteden dosyaları indirmemiz gerekiyor.
Daha sonra
Kod:
cd Desktop
cd Empire-master
cd setup
Kod:
./install.sh
Daha sonra tekrar "Empire-master" klasörüne giriyoruz. Buradan
Kod:
./empire
Uygulamamızın görüntüsü bu şekildedir.
Kod:
help
Konum bu kadardı arkadaşlar bilgilendiyseniz ne mutlu bana başka bir makalede görüşmek üzere...
Son düzenleme: