PersistenceSniper – Mavi Ekipler, Olay Yanıtlayıcıları ve Sistem Yöneticileri Tarafından Windows Makinelerine Eklenen Kalıcılıkları Avlamak İçin Kullanılabilen Powershell Komut Dosyası

PersistenceSniper, Blue Teams, Incident Responders ve System Administrators tarafından Windows makinelerine yerleştirilmiş kalıcılıkları yakalamak için kullanılabilen bir Powershell betiğidir . Komut dosyası ayrıca Powershell Galerisi’nde de mevcuttur .

neden

Neden böyle bir araç yazıyorsunuz diye sorabilirsiniz. Başlangıç ​​olarak, etrafa bakmayı denedim ve birden fazla makinede otomatik olarak bilinen kalıcılık tekniklerini arayan ve aynı zamanda sonuçları hızlı ve kolay bir şekilde ayrıştırıp karşılaştırabilen özel kullanım durumuma uygun bir araç bulamadım. Elbette, Sysinternals’ın Otomatik Çalıştırmalarıharika bir araçtır ve kesinlikle kullanılmaya değerdir, ancak sonuçları standart olmayan biçimlerde verdiği ve komut satırıyla bazı maskaralıklar yapmadığınız sürece uzaktan çalıştırılamayacağı düşünülürseeşdeğer, benim için uygun bulmadım. Ayrıca, şu ana kadar PersistenceSniper’da uyguladığım bazı teknikler bildiğim kadarıyla Autoruns’ta henüz uygulanmadı. Her neyse, ihtiyacınız olan, kullanımı kolay, halihazırda uygulanmış birçok özelliğe sahip GUI tabanlı bir araçsa, Autoruns gitmenin yoludur, aksi takdirde PersistenceSniper’ın bir şansı olmasına izin verin, bunu kaçırmaz 🙂

kullanım

PersistenceSniper’ı kullanmak şu kadar basittir:PS C:\> git clone https://github.com/last-byte/PersistenceSniper
PS C:\> Import-Module .\PersistenceSniper\PersistenceSniper\PersistenceSniper.psd1
PS C:\> Find-AllPersistence

Aracın nasıl kullanılacağına veya hangi parametrelerin mevcut olduğuna ve nasıl çalıştıklarına dair ayrıntılı bir açıklamaya ihtiyacınız varsa, PersistenceSniper’s Find-AllPersistencePowershell’in yardım özelliklerini destekler, böylece modülü içe aktardıktan sonra aşağıdaki komutu kullanarak ayrıntılı, güncellenmiş yardım alabilirsiniz:Get-Help -Name Find-AllPersistence -Full

PersistenceSniper’s Find-AllPersistence, aşağıdaki özelliklere sahip PSCustomObject türünde bir dizi nesne döndürür:Bu, çıktıların kolayca biçimlendirilmesine ve filtrelenmesine olanak tanır. Diyelim ki yalnızca saldırganın NT AUTHORITY\SYSTEM (diğer adıyla Sistem) olarak erişimi yeniden kazanmasına izin verecek kalıcılıkları görmek istiyorsunuz:PS C:\> Find-AllPersistence | Where-Object "Access Gained" -EQ "System"

Tabii ki, PersistenceSniper Powershell tabanlı bir araç olarak, Out-GridViewetkileşim için GUI tabanlı bir tabloya sahip olmak için çıktısını iletmek gibi bazı harika numaralar gerçekleştirilebilir.

sonuçları yorumlama

Daha önce tanıtıldığı gibi, Find-AllPersistencebir dizi Powershell Özel Nesnesi çıktısı verir. Her nesne, işlevin aradığı farklı teknikleri filtrelemek, sıralamak ve daha iyi anlamak için kullanılabilecek aşağıdaki özelliklere sahiptir:

  • BilgisayarAdı: Bu oldukça basittir. Find-AllPersistenceParametre olmadan çalıştırırsanız -ComputerName, PersistenceSniper yalnızca yerel makinede çalışır. Aksi takdirde belirttiğiniz uzak bilgisayar(lar)da çalışacaktır;
  • Teknik: Bu, toplumda yaygın olarak bilindiği üzere tekniğin kendisinin adıdır;
  • Sınıflandırma: Bu özellik, MITRE ATT&CK tekniğine ve alt teknik numarasına göre teknikleri hızlı bir şekilde tanımlamak için kullanılabilir. MITRE ATT&CK sınıflandırması olmayan teknikler için, diğer sınıflandırmalar kullanılır, en yaygını Hexacorn’unkidir, çünkü birçok teknik onun tarafından keşfedilmiştir. Bir tekniğin kaynağı güvenilir bir şekilde tanımlanamadığında, “Kataloglanmamış Teknik N.#” sınıflandırması kullanılır;
  • Yol: Bu, tekniğin yerleştirildiği dosya sistemindeki veya kayıt defterindeki yoldur;
  • Değer: Bu, tekniklerin kullandığı kayıt defteri özelliğinin değeri veya dosya sistemine bir şey yerleştirmeye dayanan bir teknik olması durumunda kullanılan yürütülebilir dosyanın/kütüphanenin adıdır;
  • Erişim Kazanıldı: Bu, tekniğin saldırgana verdiği erişim türüdür. Örneğin, HKCU altında bir Çalıştır anahtarı ise, kazanılan erişim kullanıcı düzeyinde olurken, HKLM altındaysa sistem düzeyinde olacaktır;
  • Not: Bu, işleyişinin kolayca kavranabilmesi için tekniğin hızlı bir açıklamasıdır;
  • Referans: Bu, analistin daha fazla incelemesi gerekirse, tekniğin daha derinlemesine bir açıklamasına bir bağlantıdır.

Yanlış pozitiflerle başa çıkmak

Kabul edelim, kalıcılık teknikleri için avlanmak aynı zamanda birçok yanlış pozitifle uğraşmak zorunda kalmayı da beraberinde getiriyor. Bunun nedeni, bazı tekniklerin neredeyse hiçbir zaman yasal olarak kullanılmamasına rağmen, birçoğunun sistem açılışında veya kullanıcı oturum açma sırasında otomatik olarak çalıştırılması gereken yasal yazılımlar tarafından kullanılmasıdır.

Bu, birçok ortamda bilinen yanlış pozitifleri içeren bir CSV dosyası oluşturarak üstesinden gelinebilecek bir zorluk teşkil eder. Kuruluşunuz altın bir görüntü gibi bir şey kullanarak sistemleri dağıtıyorsa, PersistenceSniper’ı yeni oluşturduğunuz bir sistemde çalıştırabilir, sonuçların CSV’sini alabilir ve diğer makinelerdeki sonuçları filtrelemek için kullanabilirsiniz. Bu yaklaşım aşağıdaki avantajlarla birlikte gelir:

  • Sıkıcı ve hataya açık olabilecek bir beyaz listeyi yönetmek zorunda kalmamak;
  • Yanlış pozitifleri, aracı kullanan kuruluşlara ve kuruluş birimlerine uyarlamak;
  • Aracın kodunda herkese açık olarak ifşa etmeyerek yanlış pozitifleri karıştırmak isteyen saldırganların işini zorlaştırır.

Find-AllPersistencebulguların bir CSV dosyasına doğrudan çıktısını sağlayan, aynı zamanda bir CSV dosyasını girdi olarak alıp sonuçları farklılaştırabilen parametrelerle birlikte gelir.PS C:\> Find-AllPersistence -DiffCSV false_positives.csv

Artımlı anlık görüntüler alarak kalıcılık arama

PersistenceSniper’ı kullanmanın harika bir yolu, arkadaşım Riccardo’nun önerdiği şekilde, onu artımlı bir şekilde kullanmaktır: Her X saatte bir çalışan, önceki yinelemenin çıktısını -DiffCSVparametre aracılığıyla alan ve sonuçları yeni bir CSV’ye veren bir Zamanlanmış Görev ayarlayabilirsiniz. . Artan değişiklikleri takip ederek, izlediğiniz makineye yerleştirilen yeni kalıcılıkları oldukça küçük bir zaman çerçevesi içinde tespit edebilmelisiniz.

Şu ana kadar uygulanan kalıcılık teknikleri

Kalıcılık konusu, özellikle Windows makinelerinde, temelde iki haftada bir yeni keşifler gören konulardan biridir. Araştırmacılar tarafından şimdiye kadar bulunan çok sayıda kalıcı teknik göz önüne alındığında, hala bunları uygulama sürecindeyim. Şimdiye kadar aşağıdaki 31 teknik başarıyla uygulandı:

Kredi

Bu senaryoda uygulanan teknikler, dünya çapındaki yetenekli araştırmacılar tarafından zaten yayınlanmıştır, bu nedenle, kredinin vadesi geldiğinde kredi vermek doğrudur. Şunlar olmasaydı bu proje olmazdı:

Ayrıca @APTortellini’deki arkadaşlarıma, özellikle Riccardo Ancarani’ye , onun cılız bir metin yönelimli komut dosyasından tam teşekküllü bir Powershell aracına dönüşmesine yardımcı olan fikir seli için teşekkür etmek isterim.

Lisans

Bu proje CC0 1.0 Evrensel lisansı altındadır. TL; DR: Çalışmayı ticari amaçlarla dahi olsa izin istemeden kopyalayabilir, değiştirebilir, dağıtabilir ve gerçekleştirebilirsiniz.