- 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. Kyuzoya 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 gdbnin 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 gdbdeki 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 2012nin 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ünyaya dağıtıldı.
Bu atölyeden sonra B33fye FuzzySecurityye 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:
Eğitim videosunun birinci ve ikinci kısmında kullanılan örnek kod:
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]
Linux exploit eğitimi serimizin ilk bölümüne hoş geldiniz. Kyuzoya 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 gdbnin 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 gdbdeki 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 2012nin 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ünyaya dağıtıldı.
Bu atölyeden sonra B33fye FuzzySecurityye 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]