Linux Exploit Geliştirme Serisi #2 | Linux Format String Exploiti

Provido

Katılımcı Üye
21 Eki 2015
477
1
Bölüm 2: Linux Format String Exploiti


Linux exploit eğitimi serimizin ilk bölümüne hoş geldiniz. Kyuzo’ya bilgilerini bizimle paylaştığı için tekrar teşekkür etmek istiyorum. Bu bölümde, Format String Exploitine bakacağız. Format String güvenlik açığı genellikle bir programcı, kullanıcı tarafından kontrol edilen bir fonksiyonu yazdırmak istediğinde ortaya çıkar ancak kötü amaçlı saldırganın kendi format belirleyicisini enjekte etmesini engelleyemiyor. Bu da kötü niyetli saldırganın önceden tanımlanmamış hafızayı okumasına ve yazmasına izin verir.

Format String exploiti konusunda kendimi kendi çabalarımla eğitmek için şu 2 mükemmel kaynağı okudum: (1) Exploiting Format String Vulnerabilities [scut / Team Teso – 2001] ve (2) Advances in format string exploitation [ gera & rig / Phrack – 2002]. Aşağıda her iki kaynak için de bağlantılar ekledim ve arka planda ne olduğunu öğrenmeniz için okumanızı şiddetle tavsiye ederim.

İyi şeylere geçmeden önce, varsayılan olarak gdb’nin AT&T söz diziminde opcode unassembles olduğunu belirtmek isterim. Bu Windows exploit geliştirme konusunda çok şey yapmış olanlarımız için biraz kafa karıştırıcıdır. Neyse ki, aşağıdaki komutlarla gdb’deki ayrıştırma lezzetini kolayca alabileceksiniz.


set disassembly-flavor intel

set disassembly-flavor att


Kaynaklar:

Exploiting Format String Vulnerabilities (by scut): buradan

Advances in format string exploitation (by gera & riq): buradan


Giriş


Birkaç ay önce b33f ve ben bir üniversite ortamında sunulması için yazılım exploiti üstüne bir atölye çalışması yaptık. Atölyenin iki ana fikri vardı: (1) arabellek taşması olmayan exploit güvenlik açıkları ile başa çıkmak ve (2) Windows ve Linux hakkında konuşmak. Bu yüzden daha az çekici ve daha az nadir (!) güvenlik açıklarının bir listesini aldım; Linux söz konusu olduğunda son birkaç yılda oldukça önemli oldukları için, bunların arasına format stringi de dahil etmeye karar verdik. Sadece bir şeyden bahsetmek gerekirse, sudo 2012’nin başında, sudo_debug fonksiyonunda bir format stringi açığıyla piyasaya sürüldü ve bu Fedora ve OpenSUSE gibi ana akım dağıtımları ile Dünya’ya dağıtıldı.

Bu atölyeden sonra B33f’ye FuzzySecurity’ye birkaç ay sonra bazı materyallerle katkıda bulunacağıma söz verdim. Sonunda kararımı verdim ve format string exploiti hakkında birkaç video yapmaya karar verdim.


Eğitim videosunun ilk kısımında kullanılan örnek kod:



Kod:
/* example.c
 * 
 * $ gcc -o example example.c
 * $ execstack -s example # make stack executable
 */
#include <stdio.h>
 
int main() {
    int a = -5;
    float b = 5.5;
    char *c = "My String";
     
    printf("A = %d, B = %f, C = %s\n", a, b, c);
}

Eğitim videosunun birinci ve ikinci kısmında kullanılan örnek kod:


Kod:
/* fmt.c - sample program vulnerable to format string exploitation
 * 
 * $ gcc -o fmt fmt.c
 * $ execstack -s fmt # make stack executable
 */
#include <stdio.h>
#include <string.h>
 
int main(int argc, char *argv[]) {
    char b[128];
    strcpy(b, argv[1]);
    printf(b);
    printf("\n");
}

Format String Eğitimi



İlk video, format stringlerinin ne olduğuna ve bilgi sızıntısına nasıl yol açtığına dair bir giriş sunuyor (bahsedilen bazı konular: dönüşüm belirteçleri kullanımı ve doğrudan parametre erişimi). İkinci kısımda, ileri bir adım ileriye taşıyoruz ve dönüşüm belirteçlerindeki arcane gibi kötü belirteçleri kullanan bir programa nasıl sahip olacağınızı gösteriyoruz.

Bölüm 1



[ame]https://www.youtube.com/watch?v=NwzmYSlETI8[/ame]



Bölüm 2



[ame]https://www.youtube.com/watch?v=CHrs30g-3O0[/ame]






 

Provido

Katılımcı Üye
21 Eki 2015
477
1
Ne demek sıkıntı değil. Yazan adam biraz sokak ağzıyla konuşuyor, burada da eğlencesine konuşmuştur diye lezzet olarak çevirdiydim. Seninkide mantıklıymış.
 

Dolyetyus

Özel Üye
21 Nis 2020
1,207
676
Delft
Ne demek sıkıntı değil. Yazan adam biraz sokak ağzıyla konuşuyor, burada da eğlencesine konuşmuştur diye lezzet olarak çevirdiydim. Seninkide mantıklıymış.

Hocam sokak ağzı ne kelime, hindistanlı herhalde bu adam o yüzden çok garip şekilde yazmış her şeyi. Pek bir şey anlamadım ben, elimden geldiğini yaptım ama harbi elemanın cümleleri ve kelimelerini türkçeye çevirmek zordu :D
 
Ü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.