OzzTech - OS Komut Enjeksiyonu

OS Komut Enjeksiyonu

OS Komut Enjeksiyonu


OS komut enjeksiyonu ayrıca kabuk enjeksiyonu olarak da bilinir, bir saldırganın bir uygulamayı çalıştıran sunucuda rastgele işletim sistemi (OS) komutları yürütmesine ve genellikle uygulamanın ve tüm verilerinin güvenliğinin tamamen tehlikeye girmesine izin veren bir web güvenlik açığıdır. Çoğu zaman, bir saldırgan, saldırıyı kuruluş içindeki diğer sistemlere yönlendirmek için güven ilişkilerinden yararlanarak barındırma altyapısının diğer bölümlerini tehlikeye atmak için bir işletim sistemi komut enjeksiyon güvenlik açığından yararlanabilir.


İsteğe bağlı komutları yürütme


Kullanıcının belirli bir mağazada bir ürünün stokta olup olmadığını görmesini sağlayan bir alışveriş uygulaması düşünün. Bu bilgilere aşağıdaki gibi bir URL aracılığıyla erişilir:

Stok bilgilerini sağlamak için uygulamanın çeşitli eski sistemleri sorgulaması gerekir. Tarihsel nedenlerden dolayı, işlevsellik, ürün ve mağaza kimlikleriyle birlikte bir kabuk komutuna argüman olarak çağrılarak uygulanır:

Bu komut, kullanıcıya iade edilen belirtilen kalemin stok durumunu verir.

Uygulama, işletim sistemi komut enjeksiyonuna karşı hiçbir savunma uygulamadığından, bir saldırgan, rastgele bir komut yürütmek için aşağıdaki girdiyi gönderebilir:

Bu giriş, ürün kimliği parametresinde gönderilirse, uygulama tarafından yürütülen komut şudur:

echo komutu, sağlanan dizenin çıktıda yankılanmasına neden olur ve bazı işletim sistemi komut enjeksiyonu türlerini test etmenin kullanışlı bir yoludur. & karakteri bir kabuk komut ayırıcısıdır ve bu nedenle yürütülen şey aslında birbiri ardına üç ayrı komuttur. Sonuç olarak, kullanıcıya çevrilen çıktı:

OS Komut Enjeksiyonu

Üç çıktı satırı şunu gösterir:

  • Orijinal stockreport.pl komutu, beklenen bağımsız değişkenler olmadan yürütüldü ve bu nedenle bir hata mesajı verdi.
  • Enjekte edilen echo komutu yürütüldü ve sağlanan dize çıktıda yankılandı.
  • Orijinal argüman 29, bir hataya neden olan bir komut olarak yürütüldü.

Ek komut ayırıcısını & enjekte edilen komuttan sonra yerleştirmek, enjekte edilen komutu enjeksiyon noktasını takip edenlerden ayırdığı için genellikle yararlıdır. Bu, aşağıdakilerin enjekte edilen komutun yürütülmesini engelleme olasılığını azaltır.

Faydalı komutlar


Bir işletim sistemi komut ekleme güvenlik açığı belirlediğinizde, tehlikeye attığınız sistem hakkında bilgi almak için bazı başlangıç ​​komutlarını yürütmek genellikle yararlıdır. Aşağıdaki tabloda, Linux ve Windows platformlarında yararlı olan bazı komutların bir özeti verilmiştir:

OS Komut Enjeksiyonu


Kör OS komut enjeksiyon güvenlik açıkları


İşletim sistemi komut enjeksiyonunun birçok örneği, kör güvenlik açıklarıdır. Bu, uygulamanın komuttan çıktıyı HTTP yanıtı içinde döndürmediği anlamına gelir. Kör güvenlik açıklarından yararlanmaya devam edilebilir, ancak farklı teknikler gereklidir.

Kullanıcıların site hakkında geri bildirim göndermesine izin veren bir web sitesi düşünün. Kullanıcı e-posta adresini ve geri bildirim mesajını girer. Sunucu tarafı uygulaması daha sonra site yöneticisine geri bildirimi içeren bir e-posta oluşturur. Bunu yapmak için, gönderilen ayrıntılarla birlikte mail programına seslenir. Örneğin:

Eğer mail komutunun çıktısı varsa, uygulamanın yanıtlarında döndürülmez ve bu nedenle echo yükünü kullanmak etkili olmaz. Bu durumda, bir güvenlik açığını tespit etmek ve kullanmak için çeşitli başka teknikler kullanabilirsiniz.

Zaman gecikmelerini kullanarak kör OS komut enjeksiyonunu algılama


Uygulamanın yanıt vermesi için geçen süreye bağlı olarak komutun yürütüldüğünü onaylamanıza olanak tanıyan, bir zaman gecikmesini tetikleyecek enjekte edilmiş bir komut kullanabilirsiniz. Ping komutu, gönderilecek ICMP paketlerinin sayısını ve dolayısıyla komutun çalışması için geçen süreyi belirtmenize izin verdiği için bunu yapmanın etkili bir yoludur:

Bu komut, uygulamanın 10 saniye boyunca geri döngü ağ bağdaştırıcısına ping atmasına neden olur.

Çıktıyı yeniden yönlendirerek kör işletim sistemi komut enjeksiyonunu kullanma


Çıktıyı enjekte edilen komuttan web kökü içindeki bir dosyaya yönlendirebilir ve daha sonra tarayıcınızı kullanarak alabilirsiniz. Örneğin, uygulama /var/www/static dosya sistemi konumundan statik kaynaklar sunuyorsa, aşağıdaki girişi gönderebilirsiniz:

OS Komut Enjeksiyonu

The>character, whoami komutundan çıktıyı belirtilen dosyaya gönderir. Ardından, dosyayı almak için dosyasını almak için OS Komut Enjeksiyonu tarayıcınızı kullanabilir ve enjekte edilen komuttan çıktıyı görüntüleyebilirsiniz.

Bant dışı (OAST) teknikleri kullanarak kör OS komut enjeksiyonu kullanma

OAST tekniklerini kullanarak, kontrol ettiğiniz bir sistemle bant dışı ağ etkileşimini tetikleyecek enjekte edilmiş bir komut kullanabilirsiniz. Örneğin:

Bu yük, belirtilen etki alanı için bir DNS aramasına neden olmak için nslookup komutunu kullanır. Saldırgan, belirtilen aramanın gerçekleştiğini izleyebilir ve böylece komutun başarıyla enjekte edildiğini algılayabilir.

Bant dışı kanal ayrıca enjekte edilen komutlardan çıktıyı sızdırmak için kolay bir yol sağlar:

Bu, whoami komutunun sonucunu içeren saldırganın etki alanına bir DNS aramasına neden olur:

İşletim sistemi komutlarını enjekte etme yolları


OS komut enjeksiyonu saldırılarını gerçekleştirmek için çeşitli kabuk metakarakterleri kullanılabilir. Bir dizi karakter, komut ayırıcılar olarak işlev görür ve komutların birlikte zincirlenmesine izin verir. Aşağıdaki komut ayırıcılar hem Windows hem de Unix tabanlı sistemlerde çalışır:

  • &
  • &&
  • |
  • ||

Aşağıdaki komut ayırıcılar yalnızca Unix tabanlı sistemlerde çalışır:

  • ;
  • Yeni satır (0x0a veya \n)


Unix tabanlı sistemlerde, orijinal komut içinde enjekte edilen bir komutun satır içi yürütülmesini gerçekleştirmek için ters tik veya dolar karakterini de kullanabilirsiniz:

  • ` enjekte edilen komut `
  • $ ( enjekte edilen komut )


Farklı kabuk meta karakterlerinin, belirli durumlarda çalışıp çalışmadıklarını ve komut çıktısının bant içi alınmasına izin verip vermediklerini veya yalnızca kör sömürü için yararlı olup olmadıklarını etkileyebilecek çok farklı davranışları olduğunu unutmayın.

Bazen, kontrol ettiğiniz girdi orijinal komutta tırnak işaretleri içinde görünür. Bu durumda, yeni bir komut enjekte etmek için uygun kabuk meta karakterlerini kullanmadan önce alıntılanan bağlamı (" veya ' kullanarak) sonlandırmanız gerekir.

OS Komut Enjeksiyonu Saldırıları Nasıl Önlenir?


İşletim sistemi komut ekleme güvenlik açıklarını önlemenin açık ara en etkili yolu, uygulama katmanı kodundan hiçbir zaman işletim sistemi komutlarını çağırmamaktır. Hemen hemen her durumda, daha güvenli platform API'lerini kullanarak gerekli işlevselliği uygulamanın alternatif yolları vardır.

Kullanıcı tarafından sağlanan girdiyle işletim sistemi komutlarının çağrılmasının kaçınılmaz olduğu düşünülüyorsa, güçlü girdi doğrulaması gerçekleştirilmelidir. Etkili doğrulamanın bazı örnekleri şunları içerir:

  • İzin verilen değerlerin beyaz listesine göre doğrulama.
  • Girişin bir sayı olduğunu doğrulama.
  • Girişin yalnızca alfasayısal karakterler içerdiğini, başka bir sözdizimi veya boşluk içermediğini doğrulama.


Girişi kabuk metakarakterlerinden kaçarak temizlemeye çalışmayın. Pratik olarak, bu hataya çok açıktır ve yetenekli bir saldırgan tarafından atlanmaya karşı savunmasızdır.


İlginizi Çekebilecek Makaleler
FortiWeb Kurulumu 4- Admin Şifresi Değiştirme
Siber Güvenlik

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme

Ocak 23, 2022 10:21

FortiWeb kurulumunu anlattığımız serinin dördüncü yazısında Admin şifresi nasıl değiştirceğinizi, saat ve günü nasıl...

Metasploittable 2
Siber Güvenlik

Metasploittable 2

Ocak 22, 2022 11:57

Metasploittable 2 Nedir? Neden Kullanılır? Nasıl Kurulur? Metasploittable 2 Metasploit firması tarafından bizlerin güvenli...

FortiWeb Kurulumu 3- Firmware Güncellenmesi
Siber Güvenlik

FortiWeb Kurulumu 3- Firmware Güncellenmesi

Ocak 22, 2022 11:56

FortiWeb kurulumunu anlattığımız serinin üçüncü yazısında Firmware güncellemesini anlatacağız. FortiWeb cihazınız gönderildiğinde en son...

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama
Siber Güvenlik

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama

Ocak 21, 2022 7:50

FortiWeb kurulumu yazımızın ikinci serisinde Web UI veya CLI bağlamanın nasıl yapılacağını anlatacağız. Eğer...

Yapay Zeka Nedir?
Yazılım Geliştirme

Yapay Zeka Nedir?

Ocak 20, 2022 10:57

Sürekli olarak değişen, gelişen ve oldukça hızlı bir şekilde boyut atlayan, günümüze kadar gelen...

Trellix Adıyla 2 Dev şirket McAfee ve FireEye
Siber Güvenlik

Trellix Adıyla 2 Dev şirket McAfee ve FireEye

Ocak 20, 2022 10:56

Yeni birleştirilen güvenlik ekipleri McAfee ve FireEye yeni bir isim açıkladı: “Trellix”. Başka bir...

Zoho Kritik Kusur İçin Yama Yayınladı
Siber Güvenlik

Zoho Kritik Kusur İçin Yama Yayınladı

Ocak 20, 2022 10:56

Kurumsal yazılım üreticisi Zoho, Pazartesi günü Desktop Central ve Desktop Central MSP’de, tehdit aktörlerinin...

FortiWeb Kurulumu
Network

FortiWeb Kurulumu

Ocak 19, 2022 12:38

Bu yazı ile başlayarak sizlere FortiWeb kurulumu yaparken nelere dikkat etmeniz gerektiğini ve nasıl...

FortiWeb Nedir?
Siber Güvenlik

FortiWeb Nedir?

Ocak 19, 2022 9:42

FortiWeb, Fortinet’in web uygulamaları için oluşturduğu bir web firewall’udur (WAF). Fortiweb iş açısından son...

İletişim
OZZTECH Bilgi Teknolojileri olarak siber güvenlik danışmanlığı ve bilgi güvenliği eğitimleri alanlarında 10 yılı aşkın bir süredir ülkemizin önde gelen kurumlarına hizmet vermeye devam etmektedir. Detaylı bilgi ve danışmanlık hizmetlerimiz için aşağıdaki formu kullanarak veya [email protected] adresimiz üzerinden bizlerle iletişime geçebilirsiniz.