HowDefend English

Tüm dersler · Ders 6

Şekil değiştiren komut satırları

Komut satırını saldırgan belirler. Programlar aynı seçeneği birkaç yazılışla kabul eder; tek yazılış için yazılmış bir kural diğerlerini kaçırır. PowerShell bunun yaygın örneğidir: -EncodedCommand base64 kodlanmış bir script alır ve PowerShell kısaltılmış parametre adlarını kabul eder; -e, -ec, -enc ve -EncodedCommand hepsi çalışır. Windows programları birçok seçenekte - yerine / da kabul eder.

windash

windash modifier'ı - ile /'yi (ve bazı programların kabul ettiği en dash, em dash ve horizontal bar karakterlerini) birbirinin yerine geçer hale getirir:

CommandLine|windash|contains: ' -enc '

-enc ve /enc ile eşleşir. Diğer kısaltmalara yardımı olmaz.

re

re modifier'ı değeri bir regular expression olarak ele alır. Sigma'da regular expression'lar varsayılan olarak büyük-küçük harfe duyarlıdır; re|i onları duyarsız yapar. Düz değerlerin aksine bir regular expression alanın tamamına sabitlenmez: ^ ya da $ kullanılmadıkça alanın herhangi bir yerinde eşleşir.

CommandLine|re|i: '\s[-/](e|ec|en[a-z]*)\s+[a-z0-9+/=]{20,}'

şöyle okunur: boşluk, sonra - ya da /, sonra e, ec ya da ardından harfler gelen en, sonra boşluk, sonra en az 20 base64 karakteri. Base64 argümanını şart koşmak, onu bir script içindeki -eq'dan ayıran şeydir. Regular expression'lar contains'ten daha zor okunur ve çoğu SIEM'de daha yavaş çalışır; seçenekler listelenemediğinde kullanın.

base64offset

Kodlanmış metnin kendisi biliniyorsa base64offset|contains onu base64 verinin içinde arar. Base64 üçer bayt kodlar; aynı metin nereden başladığına göre farklı görünür; modifier olası üç biçimi üretir. PowerShell script'i base64'ten önce UTF-16LE olarak kodlar, bu yüzden önce wide modifier'ı gelir:

CommandLine|wide|base64offset|contains: 'Invoke-Expression'

Bu, kodlanmış bir komutta bilinen bir metni çözmeden bulur.

Alıştırma

Base64 kodlanmış bir komut veren powershell.exe başlangıçlarını bulun. Başlangıç kuralı -eq operatörü kullanan PowerShell script'leriyle de eşleşiyor. Kural, parametrenin başka yazılışlarını da (-e, -ec, /enc, -EncodedCommand) kapsasın diye bir regular expression kullanın.

Alıştırma olayları