Bu forumdaki ilk yazım. Umarım konuyu doğru yere açmışımdır. Konudan konuya çok atlamamaya çalıştım ve olabildiğince basit tuttum. Başlayalım.
Privilege escalation, yani ayrıcalık yükseltme, bir güvenlik sistemi içinde yetkisiz üst düzey erişim elde etmeyi amaçlar. Genellikle saldırganların sınırlı ayrıcalıklara sahip bir sisteme erişmek için güvenlik açıklarını kullanmasıyla başlar. Saldırganlar daha sonra daha hassas sistemler veya veriler üzerinde kontrol elde etmek için erişim haklarını yükseltir. Başarılı ayrıcalık yükseltmenin yaygın nedenleri arasında yetersiz güvenlik kontrolleri, en az ayrıcalık ilkesine uyulmaması ve istismar edilebilir yazılım güvenlik açıkları bulunur. Bu, harici tehdit aktörlerinin veya içeridekilerin haksız erişim elde etmesine yol açabilir.
Saldırganlar için ayrıcalık yükseltmesi bir amaca ulaşma aracıdır. Bir ortama erişmelerine, erişimlerini sürdürmelerine ve derinleştirmelerine ve daha ciddi kötü amaçlı faaliyetler gerçekleştirmelerine olanak tanır.
Peki nasıl?
Sisteme ilk erişim sağladığımızda her zaman direkt root olamayız. Girdiğimiz kullanıcının yeterli yetkileri her zaman olmaz. Bu duruma önce daha yetkili bir kullanıcı olmalı ve sonradan root olmaya çalışmalıyız. Ben bu aşamada genelde ilk sudo -l çalıştırırım.
sudo -l ne yapar? Basitçe root yetkisinde çalıştırılan dosyaları gösterir. Benzer şekilde find komutunu da kullanabilirsiniz:
find / -perm -04000 2>/dev/null
find / -perm -u=s 2>/dev/null
find / -perm /4000 2>/dev/null
Bu komutların hepsi aynı işi görür. Suid yetkisiyle çalıştırılan dosyaları listeler. Burada çalıştırılan bazı dosyaları(nmap, vim, sudo vs.) kullanarak basitçe shell almayı başka bölümlerde anlatacağım. Şimdilik devam edelim.
Buradan da bir şey çıkmadıysa cronları izlerim. /etc/cron.d /etc/crontab dosyasını incelerim.
Cron nedir? Cron, Unix tabanlı işletim sistemlerinde ve benzer sistemlerde belirli bir zaman diliminde veya belirli aralıklarla çalıştırılması gereken görevleri planlamak için kullanılır. Genellikle sistem bakım görevleri, veritabanı yedeklemeleri, günlük dosyaların temizlenmesi gibi tekrarlayan işlerin otomatikleştirilmesi için kullanılır. Bunu nasıl kullanabilirim, mesela burada her dakika otomatik çalıştırılan ve erişimim olan bir dosya vardır. Dosyayı düzenlerim ve basitçe yetkimi yükseltirim.
linpeas ya da linenum kullanın!
Temelde iki tool da benzer işi görüyor. Sistemde yetki yükseltebileceğin yolları senin için arıyor.
Sisteme ilk giriş sağladığımda kendi sunucumdan linpeas.sh ya da linenum.sh toollarını çeker ve bu yaptığım işlemleri otomatize ederim. Yüklemesini ve kullanımlarına detaylıca bir başka bölümde değineceğim.
Ekstra: Genelde bu aşamada sıklıkla path ile oynuyorum. O sebepten direkt olarak bir madde olarak ele alamasam da bundan da bahsedeceğim çok kısa. Halihazırda pathın nereye ayarlı olduğunu env komutu ile görebilirsiniz. diyelim ki angel isimli dosyamız /usr/binde root yetkisiyle çalışıyormuş. Kendim /tmp de aynı isimde bir dosya oluştururum ve içine basit shell kodumu yazarım. Path'imi /tmp ye aldığım anda çalıştırılan dosya benimki olur. Basitçe path değiştirme komutu örnek(tmpye alalım):
export PATH=/tmp:$PATH
Daha birçok ayrıcalık yükseltme yolları mevcut ama konuyu basit ve anlaşılır tutmak üzere şimdilik burada bırakıyorum.
Ayrıcalık yükseltme saldırılarına karşılık alınabilecek önlemler:
1) Kötü niyetli niyeti erken tespit etmek için honeypot dağıtın. (Honeypot: Gerçek sistem davranışlarına sahip, bilerek güvenlik açıklığı bırakılan ve buraya erişmek isteyen siber suçlular hakkında bilgi toplamayı amaçlayan tuzak sistemler olarak adlandırılır. Ben bunları fare kapanı üstündeki peynire benzetiyorum. Tabiki bizler fareleriz:|)
2) Kritik süreçler veya kullanıcı dizinleri için hangi dizinlerin veya dosyaların kod çalıştırabileceğini sınırlayın. Bu, saldırganların ayrıcalık yükseltmeyi kolaylaştıran yetkisiz betikleri veya ikili dosyaları çalıştırmasını önleyebilir.
3) Sistemleri düzenli olarak güncelleyin ve yamalayın. Sistemlerinizi, yazılımlarınızı ve donanım yazılımlarınızı en son güvenlik yamalarıyla güncel tutun. Birçok ayrıcalık yükseltme saldırısı bilinen güvenlik açıklarını istismar eder, bu nedenle zamanında yama yapmak bu riskleri azaltabilir.
4) Uç nokta algılama ve yanıt (EDR) araçlarından yararlanın. EDR (Endpoint Detection and Response- Uç nokta Tehdit Algılama ve Yanıt) Son kullanıcı cihazları üzerine kurulan, bilgi güvenliğinin arttırılmasını ve veri ihlallerinin azaltılmasını temel alan araçlardır. EDR araçları antivirüs öğelerine ek olarak gerçek zamanlı anomali algılama, uyarma, uç noktalarda çalışan işlemlerin takibi ve kayıtlarının tutulması gibi özellikler ile tehditlerin görünürlüğünü arttırır, adli analizi kolaylaştırır.
5) Olağandışı ağ trafiği modellerini izleyin. Olağandışı giden bağlantıları veya yanal hareket veya ayrıcalık yükseltme girişimlerini gösterebilecek dahili iletişimleri tespit etmek için ağ analitiğini kullanın. Proaktif ağ izleme, erken tehlike belirtilerini ortaya çıkarabilir.
Sadece saldırmayı öğrenirseniz bir aşamada durursunuz. İlerleyebilmek için hedefi ve size karşı alabileceği önlemleri bilin. Ben bunu satrança benzetiyorum. Bu rakibini tanıman ve sonraki hamlesine göre hareket etmen gereken bir savaş. Bir oyundan fazlası. Ezberden giderseniz ve sürekli aynı hamleleri tekrarlarsanız ölürsünüz.
Konuyu ileride daha da detaylandıracağım ve ctflerdeki bazı privesc örneklerini anlatacağım. İyi çalışmalar.
Privilege escalation, yani ayrıcalık yükseltme, bir güvenlik sistemi içinde yetkisiz üst düzey erişim elde etmeyi amaçlar. Genellikle saldırganların sınırlı ayrıcalıklara sahip bir sisteme erişmek için güvenlik açıklarını kullanmasıyla başlar. Saldırganlar daha sonra daha hassas sistemler veya veriler üzerinde kontrol elde etmek için erişim haklarını yükseltir. Başarılı ayrıcalık yükseltmenin yaygın nedenleri arasında yetersiz güvenlik kontrolleri, en az ayrıcalık ilkesine uyulmaması ve istismar edilebilir yazılım güvenlik açıkları bulunur. Bu, harici tehdit aktörlerinin veya içeridekilerin haksız erişim elde etmesine yol açabilir.
Saldırganlar için ayrıcalık yükseltmesi bir amaca ulaşma aracıdır. Bir ortama erişmelerine, erişimlerini sürdürmelerine ve derinleştirmelerine ve daha ciddi kötü amaçlı faaliyetler gerçekleştirmelerine olanak tanır.
Peki nasıl?
Sisteme ilk erişim sağladığımızda her zaman direkt root olamayız. Girdiğimiz kullanıcının yeterli yetkileri her zaman olmaz. Bu duruma önce daha yetkili bir kullanıcı olmalı ve sonradan root olmaya çalışmalıyız. Ben bu aşamada genelde ilk sudo -l çalıştırırım.
sudo -l ne yapar? Basitçe root yetkisinde çalıştırılan dosyaları gösterir. Benzer şekilde find komutunu da kullanabilirsiniz:
find / -perm -04000 2>/dev/null
find / -perm -u=s 2>/dev/null
find / -perm /4000 2>/dev/null
Bu komutların hepsi aynı işi görür. Suid yetkisiyle çalıştırılan dosyaları listeler. Burada çalıştırılan bazı dosyaları(nmap, vim, sudo vs.) kullanarak basitçe shell almayı başka bölümlerde anlatacağım. Şimdilik devam edelim.
Buradan da bir şey çıkmadıysa cronları izlerim. /etc/cron.d /etc/crontab dosyasını incelerim.
Cron nedir? Cron, Unix tabanlı işletim sistemlerinde ve benzer sistemlerde belirli bir zaman diliminde veya belirli aralıklarla çalıştırılması gereken görevleri planlamak için kullanılır. Genellikle sistem bakım görevleri, veritabanı yedeklemeleri, günlük dosyaların temizlenmesi gibi tekrarlayan işlerin otomatikleştirilmesi için kullanılır. Bunu nasıl kullanabilirim, mesela burada her dakika otomatik çalıştırılan ve erişimim olan bir dosya vardır. Dosyayı düzenlerim ve basitçe yetkimi yükseltirim.
linpeas ya da linenum kullanın!
Temelde iki tool da benzer işi görüyor. Sistemde yetki yükseltebileceğin yolları senin için arıyor.
Sisteme ilk giriş sağladığımda kendi sunucumdan linpeas.sh ya da linenum.sh toollarını çeker ve bu yaptığım işlemleri otomatize ederim. Yüklemesini ve kullanımlarına detaylıca bir başka bölümde değineceğim.
Ekstra: Genelde bu aşamada sıklıkla path ile oynuyorum. O sebepten direkt olarak bir madde olarak ele alamasam da bundan da bahsedeceğim çok kısa. Halihazırda pathın nereye ayarlı olduğunu env komutu ile görebilirsiniz. diyelim ki angel isimli dosyamız /usr/binde root yetkisiyle çalışıyormuş. Kendim /tmp de aynı isimde bir dosya oluştururum ve içine basit shell kodumu yazarım. Path'imi /tmp ye aldığım anda çalıştırılan dosya benimki olur. Basitçe path değiştirme komutu örnek(tmpye alalım):
export PATH=/tmp:$PATH
Daha birçok ayrıcalık yükseltme yolları mevcut ama konuyu basit ve anlaşılır tutmak üzere şimdilik burada bırakıyorum.
Ayrıcalık yükseltme saldırılarına karşılık alınabilecek önlemler:
1) Kötü niyetli niyeti erken tespit etmek için honeypot dağıtın. (Honeypot: Gerçek sistem davranışlarına sahip, bilerek güvenlik açıklığı bırakılan ve buraya erişmek isteyen siber suçlular hakkında bilgi toplamayı amaçlayan tuzak sistemler olarak adlandırılır. Ben bunları fare kapanı üstündeki peynire benzetiyorum. Tabiki bizler fareleriz:|)
2) Kritik süreçler veya kullanıcı dizinleri için hangi dizinlerin veya dosyaların kod çalıştırabileceğini sınırlayın. Bu, saldırganların ayrıcalık yükseltmeyi kolaylaştıran yetkisiz betikleri veya ikili dosyaları çalıştırmasını önleyebilir.
3) Sistemleri düzenli olarak güncelleyin ve yamalayın. Sistemlerinizi, yazılımlarınızı ve donanım yazılımlarınızı en son güvenlik yamalarıyla güncel tutun. Birçok ayrıcalık yükseltme saldırısı bilinen güvenlik açıklarını istismar eder, bu nedenle zamanında yama yapmak bu riskleri azaltabilir.
4) Uç nokta algılama ve yanıt (EDR) araçlarından yararlanın. EDR (Endpoint Detection and Response- Uç nokta Tehdit Algılama ve Yanıt) Son kullanıcı cihazları üzerine kurulan, bilgi güvenliğinin arttırılmasını ve veri ihlallerinin azaltılmasını temel alan araçlardır. EDR araçları antivirüs öğelerine ek olarak gerçek zamanlı anomali algılama, uyarma, uç noktalarda çalışan işlemlerin takibi ve kayıtlarının tutulması gibi özellikler ile tehditlerin görünürlüğünü arttırır, adli analizi kolaylaştırır.
5) Olağandışı ağ trafiği modellerini izleyin. Olağandışı giden bağlantıları veya yanal hareket veya ayrıcalık yükseltme girişimlerini gösterebilecek dahili iletişimleri tespit etmek için ağ analitiğini kullanın. Proaktif ağ izleme, erken tehlike belirtilerini ortaya çıkarabilir.
Sadece saldırmayı öğrenirseniz bir aşamada durursunuz. İlerleyebilmek için hedefi ve size karşı alabileceği önlemleri bilin. Ben bunu satrança benzetiyorum. Bu rakibini tanıman ve sonraki hamlesine göre hareket etmen gereken bir savaş. Bir oyundan fazlası. Ezberden giderseniz ve sürekli aynı hamleleri tekrarlarsanız ölürsünüz.
Konuyu ileride daha da detaylandıracağım ve ctflerdeki bazı privesc örneklerini anlatacağım. İyi çalışmalar.
Bu içeriği görmek için giriş yapın.