Power shell saldırılarının ayak i̇zleri
-
Upload
adeo-security -
Category
Technology
-
view
388 -
download
5
Transcript of Power shell saldırılarının ayak i̇zleri
PowerShell SaldırılarınınAyakİzleriHALİL ÖZTÜRKCİ
ADEOBİLİŞİMDANIŞMANLIKHİZMETLERİA .Ş
BenKimimADEOKurucuOrtağıveGüvenlikBirimiYöneticisi
TürkiyeBilişimVakfıYönetimKuruluÜyesi
Bahçeşehir &Bilgi&TOBBÜniversiteleriÖğretimGörevlisi
AdliBilişimUzmanı
BeyazŞapkalıHacker
AdliBilişimDerneği&USMED
MicrosoftMVP,EnterpriseSecurity
SANSMentor (www.sans.org)
CISSP,GPEN,GCFA,GREM,CHFI,CEH...
ww.halilozturkci.com
ADEOHakkında2008yılındakuruldu.
İstanbulveAnkara’daikiofisivar.
SibergüvenlikkonusundaTürkiye’debirçokşirketevekurumahizmetveriyor.
Ankara’daCyberCrimeCenterismiyleaçtığıTürkiye’ninilközeladlibilişimlaboratuvarınasahip.
SiberGüvenlikhizmetlerimizindetaylarıwww.adeosecurity.comadresindemevcut.
halilozturkci
AjandaPowerShell NedirPowerShell SaldırıAraçlarıPowerShell İleSaldırganNelerYapabilirPowerShell SaldırılarınınAyakİzlerininAnalizi
PowerShell Nedir?WindowsPowerShell,MicrosofttarafındanWindowskomutsatırıCmd.exe veWindowsScript Host'a alternatifolarakgeliştirilenyeninesilbirkomutsatırıuygulamasıdır.
WindowsPowerShell 1.0sürümüWindowsXP,WindowsServer2003veWindowsVistaiçinücretsizolarakindirilebilmektedir.
Windows7'denitibarenWindowsPowerShell2.0işletimsistemiileberabergelmektedir.
YantaraftakitablodaPowerShell sürümleriniişletimsistemleribazındagörebilirsiniz.
PowerShell SaldırıAraçlarıPowerSploit - APowerShell Post-Exploitation Framework(https://github.com/PowerShellMafia/PowerSploit)
Deep inThought:Chinese Targeting ofNational SecurityThink TanksÇinhükümetidestekliengelişmişsibersaldırıekibiolanDEEPPANDAelegeçirdiklerisistemezamanlanmışgörevolarakPowershell.exe’yi ekliyorlar.
Base64olarakencode edilmişkodparçasıC&Csunucularındançalıştırılabilirzararlıkoduindiriphafızadançalıştırıyor.DiğersistemlerebuPowerShell scriptini WMIüzerindenkopyalıyorlar.BütünbuişlemlerdestandartWindowsaraçlarınıvesistemlerdegeçerlikullanıcıhesaplarınıkullanıyorlar.
PowerShell İleSaldırganNelerYapabilir?BirWindowssistemielegeçirensaldırganPowerShellüzerindenneredeysebütünkötüamaçlıişlemlerigerçekleştirebilir.◦ HakYükseltme(Privilege Escalation)◦ KimlikÇalma(Credential Theft)◦ AğÜzerindeDiğerHedeflereAtlama(Lateral Movement)◦ VeriBozma(DataDestruction)◦ SistemdeKalıcılıkSağlama(Persistence)◦ VeriÇalma(DataExfiltration)
PowerShell Saldırısının İzleriNerelerdeOlabilir?
EventLogs Prefetch
Registry Network
MemoryPowerShell saldırılarınaaitayakizlerine rastlayabileceğimizbileşenler.
PowerShell İzleri– Event LogsSaldırganlarınPowershell kullanarakneleryaptıklarınıtamolaraköğrenememizin temelsebeplerinbaşındailgilisistemlerüzerindeyeteriseviyedeloglamanınyapılmamasıgeliyor.
WindowsServer2012R2ilebirlikteProcess Trackingaudit altındayenibirgroup policy ayarıgeldivebuayarsayesindeilgiliprosesintamkomutsatırıdetaylarıloglanabiliyor.
BuayarilkçıktığındasadeceWindows8.1veServer2012R2sistemlerindeuygulanabilirkensonrasındaçıkanyamalarınyardımıylaWindows7vesonrasıişletimsistemlerindedekullanılabilirdurumageldi.
BuayarınaktifolmasıiçinAudit Policy tanımlarındaProcess Tracking’in deaktifedilmişolmasıgerekiyor.
ButanımlardansonrailgilisistemüzerindeoluşturulanherprosesiçinEvent IDdeğeri4688olanbirlog kaydıSecurityloglarına düşer.
PowerShell İzleri– Event LogsAudit Process Creation
1
OluşturulanherbirproseseilişkindetaylarınSecurityloglarında yeralmasınısağlayanAudit politikası
PowerShell İzleri– Event LogsInclude Command Line In Process Creation Events
2
3
Oluşturulanprosesinkomutsatırındanaldığıparametrelerde
loglanabiliyor
PowerShell İzleri– Event LogsYereldenolsunuzaktanolsunPowerShell üzerindenbirkomutyadascriptçalıştırılmasıdurumundaaşağıdakiüçlog dosyasındabuişlemlealakalıkayıtlaroluşturulabilir.◦ •WindowsPowerShell.evtx◦ •Microsoft-Windows-PowerShell-Operational.evtx◦ •Microsoft-Windows-PowerShell-Analytic.etl
Aşağıdakiikilog dosyasındaiseWindowsRemoteManagement(WinRM)servisiüzerindengerçekleştirilenPowerShell aktivitelerineaitbilgileryeralır.◦ •Microsoft-Windows-WinRM-Operational.evtx◦ •Microsoft-Windows-WinRM-Analytic.etl
PowerShell İzleri– Event LogsWindowsPowerShell.evtxBulog dosyasındaPowerShell herbaşlatıldığında vesonlandırıldığındabirkayıtoluşturulur.◦ Event ID400:“Enginestate ischanged from None toAvailable.”
◦ Event ID403:“Enginestate ischanged from Available toStopped.”
◦ Event ID600:“Provider"<provider name>"is<state>”
Bukayıtlarınhiçbirindeilgilieylemigerçekleştirenkullanıcıhesabıhakkındabilgiyeralmaz.
AnalizsırasındabukayıtlarincelenerekPowerShellüzerindengerçekleştirilensaldırınınnekadarsürdüğüveyerelmiuzaktanmıgerçekleştirildiğigibibilgilereulaşılabilir.
PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Operational.evtxBulog dosyasındaPowerShell işlemlerininoperasyonuylaalakalıolaylarsaklanır.◦ Event ID40961:“PowerShell console isstartingup”◦ Event ID40962:“PowerShell console isready for userinput”
BukayıtlaryereldençalıştırılanPowerShellkonsollarınınnezamanbaşlatıldığınıve nezamankullanıcıdangirdibeklemeyehazırhalegeldiğinigösterir.
Buikiolaydadaeylemigerçekleştirenkullanıcıhesabıhakkındabilgiyeralır.
PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Analytic.evtxVarsayılanolarakAnalytic veDebug loglarıtutulmaz vegösterilmez.Detaylıanalytic loglarını görüntülemekiçinEvent Viewer’daki ViewmenüsündenShowAnalytic and Debug Log seçeneğiniseçmeli.ArdındanAnalytic loglarını toplamakistediğinizbileşenüzerindeEnable Logseçeneğiniaktifederekloglarıntoplanmasınısağlamalısınız.
PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Analytic.evtxAnalytic logları tutulmayabaşladıktansonraaşağıdakiID’lere sahipkayıtlarüzerindeanalizyapılabilir.
Event ID32850:Uzaktankomut çalıştırmaişlemininhangikullanıcıhesabıüzerindengerçekleştirildiğinigösterir.
Event ID32867/32868:UzaktançalıştırılanPowerShell komutunun vebukomutunçıktısının(payload) nelerolduğunun yeraldığıkayıtlardır.Decode edildikten sonraçalıştırılankomutveçıktılarıhakkındabilgiverir.
PowerShell İzleri- PrefetchPrefetch kavramı,uygulamalarındahahızlıaçılmasınısağlamakiçinWindowsXPilebirlikteduyurulanbirkavramdır.Sıkkullanılanuygulamalarınhenüzçalıştırılmadanönceilgiliuygulamanınkodlarınınhafızayayüklenerekihtiyaçduyulmasıhalindehızlıcaçalışmasıesasınadayanır.
Windowstarafındanbuuygulamayaait.PFuzantılıbirprefetch dosyasıoluşturulur.Budosyalar%windir%Prefetchklasöründeyeralırlarvebudizinaltındaenfazla128dosyayeralabilir.
BuklasördeyeralanLayout.ini dosyasısisteminaçılışısırasındayüklenendosyalarveklasörlerhakkındabilgileriçerir.
Prefetch dosyasınınkendisibirbinary dosyadırveuygulamayailişkinbilgileriçerir.Budosyanıniçerisindeuygulamanınensonnezamançalıştırıldığı,kaç kezçalıştırıldığı veuygulamayüklenirkenilk10saniyeiçindeerişilendiğerdosyalarınhangileriolduğu bilgisiyeralır.Bununyanında,uygulamanınadı veuygulamatarafındanyüklenensürücülerinbilgisi debudosyanıniçeriğindebulunur.
Bununlabirlikteilgiliprefetch dosyasınınoluşturulmazamanınabakarakuygulamanınilkkeznezamançalıştırıldığıbilgisideeldeedilebilir.
WindowsVistavesonrasındakiişletimsistemlerindeprefetch dosyalarınınbirazdahagelişmişhaliolansuperfetch dosyalarıkullanılmaktadır.
PowerShell İzleri- Prefetch
ÇağrılanPowerShell scriptin ilk10saniyeiçindeyüklenmesidurumunda ilgiliscript hakkındabilgilereulaşılabiliyor.BununlabirliktePowerShell’in interaktifmodda çalıştırılmasıdurumunda
çağırılanscript bilgisineprefetch dosyasıüzerindenulaşılamaz.
PowerShell İzleri- RegistryNormalşartlardaPowerShell üzerindengerçekleştirilensaldırılardaregistry üzerindeherhangibirizerastlanmaz.BununyanındasaldırgantarafındanelegeçirilensistemlerdePowerShell’in çalışmasınıetkileyecekdeğişiklikleryapılmışolabilir.
PowerShell Execution Policy sayesindebirsistemdehangi türdenPowerShell scriptlerinin çalışabileceğibelirlenirvesaldırganlartarafındanbuayarlardeğiştirilerekelegeçirilensistemlerüzerindeyetkisizscriptlerçalıştırılabilir.
WindowsPowerShell ortamında5farklıçalıştırmapolitikasımevcuttur.◦ Restricted – Herhangibirscript çalışmaz.WindowsPowerShell sadeceinteraktifmodda çalışabilir.VarsayılanolarakWindowsServer2012R2haricindekilerbumodda çalışır.
◦ AllSigned – Sadecegüvenilenyayıncılartarafındanimzalanmışscriptler çalışabilir.◦ RemoteSigned – İndirilenscriptler güvenilenyayıncılartarafındanimzalandıktansonraçalışabilir.WindowsServer2012R2sistemleriçinvarsayılanmod budur.
◦ Unrestricted – HerhangibirsınırlamaolmadanbütünWindowsPowerShell scriptleri çalıştırılır.İnternetnet indirilenscriptler içinsekullanıcınınkarşısındascripti çalıştırmakiçinizinisteyenbirekrançıkar.
◦ Bypass- HerhangibirsınırlamaolmadanbütünWindowsPowerShell scriptleri çalıştırılırvekullanıcılardanherhangibironayistenmez.
PowerShell İzleri- RegistryPowerShell Execution Policy ileilgiliayarlarregistry içindeHKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell anahtarıaltındayeralanExecutionPolicy isimlideğeraltındasaklanır.Budeğerbeşfarklışekildeyeralabilir.Bunlar◦ Restricted◦ AllSigned◦ RemoteSigned◦ Unrestricted◦ Bypass
BuanahtarsaldırgantarafındanPowerShell scriptleri çalıştırılmadanöncedeğiştirilmişolabilirvebuanahtarınsondeğiştirilmezamanı saldırınınbaşlangıcıhakkındabizebilgiverebilir.
Hatırlatma!Saldırganbuayarıdeğiştirmeden ilgiliPowerShell scriptinin çalıştırırkenkomutsatırınaekleyeceğiExecutionPolicy Bypassparametresiileçalıştırmapolitikasınıscript bazlıdeğiştirebilir.
PowerShell İzleri- Registry
PowerShell İzleri- NetworkUzaksistemlerüzerindedePowerShell script çalıştırılabiliyor.(PowerShell Remoting)
PowerShell 2.0vesonrasındailetişimiçinkullanılanikiportvar.Bunlar;◦ 5985(HTTP)◦ 5986(HTTPS)
İki iletişimdedepayloadşifreli taşınır.HTTPSiletişimindebaşlık bilgisi deşifreli taşınır.
HTTPüzerinden gerçekleşmesi durumundabaşlık bilgisi içinde sadece ilgili komutun hangikullanıcı tarafındançalıştırıldığı ve PowerShellsürümbilgisi yer alır.(NTLMSSPkimlikdoğrulamasındakiAuthorizationbaşlığı)
İçerikşifrelitaşındığıiçinhampaketverisiüzerindenanalizyapmakyerineflowüzerindenbiranaliz gerçekleştiripanormallikleritespitetmekdahadoğrubiryaklaşımdır.
PowerShell İzleri- MemoryPowerShell üzerinden gerçekleştirilensaldırılardailgilisisteminhafızasınınimajıalınarakdasaldırganınizisürülebilir.
Powershell remoting ileuzaksistemüzerindeçalıştırılanscriptler c:\windows\system32\wsmprovhost.exeprosesitarafındanhost edilir.BuprosestensonraolacaklarçalıştırılacakPowerShell komutunabağlıdır.◦ Eğernative cmdlet komutlarındanbirisiçalıştırılacaksabudurumdawsmprovhost.exe prosesiüzerindenişlemlerdevamederayrıbirpowershell.exe child prosesioluşturulmaz.Komuttamamlandıktansonradawsmprovhost.exeprosesisonlandırılır.
◦ EğerPowerShell tarafındanayrıbirbinary dosyayüklenipçalıştırılacaksa(örneğindisktekibirçalıştırılabilirdosya)budurumdailgiliyeniproseswsmprovhost.exe’nin child prosesiolaraksistemdeçalıştırılır.Uygulamanınsonlanmasıdurumundawsmprovhost.exe desonlandırılır.
◦ Eğerkomut interaktifbirPowerShell oturumuaçacaksa(örneğinEnter-PSSession üzerinden)budurumdakomutdirektolarakwsmprovhost.exe konteksinde çalışırvewsmprovhost.exe prosesiPSSession oturumusonlanıncasonlanır.
Hafızaimajıalındıktansonrakarakterdizilerini çıkartılıpbukarakterdizileriarasındaPowerShellkomutlarıaranabilir.
TeşekkürlerADEOSecurityLabs @2016www.adeosecurity.com