terminal escape injection zaafiyeti ve exploit edilmesi

sm1l3

Yeni üye
26 Kas 2020
10
0
Herkese merhabalar

bu konumda sizlere değişik ve çoğunuzun duymadığını düşündüğüm bir zaafiyetten bahsedeceğim ve beraber exploit kodlama aşamalarını göstereceğim.
açık şu anda popüler olan çoğu sistemde bulunmaktadır isterseniz kendi linux sisteminizde de deneyebilirsiniz çünkü metodolojik olarak yüksek dereceye sahip bir açık değil ve kullanıcı etkinliği gerekiyor bundan dolayı cvss puanı oldukça düşük ancak gelişen metodoloji ile etkisinin artacağını tahmin ediyorum.



zaafiyet bir bash yani kabuk zaafiyetidir
bu zaafiyet dosyayı görüntüleyici ile açtığınızda içinde (örnek olarak echo "hello world") varken dosyayı çalıştırdığınızda karşı tarafa reverse shell gitmesine olanak sağlıyor ancak dosyaları yansıma yerine hexadecimal bazlı çalışan görüntüleyiciler ile açtığınızda o zaman dosyanın içeriğinde eklenmiş gizli kodu görebilirsiniz.

şimdi bu olay nasıl gerçekleşiyor ona bakalım.

bu açık aslında oluşturulan dosyanın içerisinde girilen kodların bir eval yardımı ile dışarı çıkarılmasından (bu geayet normal her sistemde böyledir aksi halde business logic e aykırıdır) sonra bash loglarında dosya ile bağlantılı şekilde charlar filtrelenmeden eklenmesinden dolayı oluşur.

basit bir exploit yazalım "echo -e '#!/bin/sh\n\necho merhaba tht ailesi\nexit 0\n\033[2Aecho "merhaba dunya"\n' > tht.sh "

rDJJM0.png


şeklinde hazır bir kod yazdım (sabredin kodu açıklayacağım) bu kod basitçe echo komutu ile > tht.sh adlı dosyanın içerisine '#!/bin/sh\n\necho merhaba tht ailesi\nexit 0\n\033[2Aecho "merhaba dunya"\n' verisini yazdırıyor şimdi bu kısma bakalım

ilk satırda dosyanın bir bash dosyası olduğunu bildiren bir satır var #!/bin/sh
ancak ardından satır atlama yani \n satırı geliyor genelde tek satır programlamada kullanılan basit bir bölümdür

sonra echo merhaba tht ailesi stringini ekrana yazdıran aslında bizim gizli kodumuz olan kod geliyor

sonra ise esas konumuz olan bad char yani filtrelenmesi gereken veriler geliyor 033[2A değerleri bu değerler satırımızı veri noktamıza bağlıyor kısaca yansıma sistemine hata verdiriyor (cat gibi yansıma dosya görüntüleme araçlarından bahsediyorum) kısaca gereksiz char olarak algılıyr ancak dosya tek satır olduğu için önündeki veriler de giidyor ancak yazıldıktan sonra bu veriler teker teker satır satır applicaton loglarına yazılıyor. bu nedenle de biz bu kodu dosyasını çalıştırdığımızda karşımıza merhaba dunya yerine merhaba tht ailesi yazısı çıkıyor.



""bu kısmı anlamak için yansıma ve hex string okuma dosya inceleme sistemlerini anlmamamız gerekmektedir
ilk olarak bildiğimiz nano less veya klasik hex tarzında satır yazdıran string bazlı görüntüleme programları ne yapıyor önemli olan bu

bu programlar dosyayı satır satır okur dizine çevirir sonra ASCII olarak önümüze sunar
ya9RPP.png


ancak cat gibi yansımalarda terminal çökmemesi için ASCII olarak yazdırılmaz onun yerine utf-8 kullanılır ve junk charlar ekrana basılmaz bu karakterler de log dosyasına gider çalışma sırasında var oldukları için
işte kısaca açık bu şekilde meydana geliyor eğer ki log dosyaları için de bir black list oluşturulursa o zaman önlem alınabilir
""





şimdi geldik en kritik iki sourdan birine

bu zafiyet benim ne işime yarar diyecekisiniz kısaca bir senaryo yazalım

diyelim ki bir sisteme sızdınız network alt yapısına dayanan ve o sistemde bir bash uygulaması tespit ettiniz root yetkisinde çalışan;

server da privelege escaltion ile root yetkisine geçmeniz gerekmekte ancak siz açık bulamadınız.

burada aynı dosya ve imzaya sahip ancak klasik klasör bazlı bir halde dosyayı oluşturup içerisine reverse shell kodu ekleyip yetkileri chmod ile 755 e ayarladınız ve beklemedesiniz dinleyiciyi başlattınız ve tek olması gereken adamın o dosyayı çalıştırması eğer ki adam dosyayı çalıştırısa siz de adamla beraber root yetkisine erişi kazanırsınız terminal üstünde çünkü dosya yetkileri buna dayanıyor.


tabi bu sadece akla gelen ilk senaryo genelde çok kritik bir açık olarak nitelendirilmese de ilerideki yeni metodolojiler ile değer kazanacağını düşündüğüm bir açık.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.