56
BINARY HACKING HAKKINDA HERŞEY Onur ALANBEL

Binary Hacking Hakkında Herşey

Embed Size (px)

Citation preview

Page 1: Binary Hacking Hakkında Herşey

BINARY HACKING HAKKINDA HERŞEY

Onur ALANBEL

Page 2: Binary Hacking Hakkında Herşey

$ id -un

➤ Bilgisayar Mühendisi (İYTE)

➤ Geliştirici @TaintAll (taintall.com)

➤ Uygulama Güvenliği Araştırmacısı

➤ Blog: onuralanbel.pro

➤ Twitter: @onuralanbel

➤ https://packetstormsecurity.com/search/?q=onur+alanbel

Page 3: Binary Hacking Hakkında Herşey

BINARY

➤ İkili formatta saklanmış dosya.

Page 4: Binary Hacking Hakkında Herşey

BINARY

➤ İkili formatta saklanmış dosya.

➤ Sunumda daha çok PE, ELF, Mach-O gibi çalıştırılabilir dosya formatları kastedilmiştir.

Page 5: Binary Hacking Hakkında Herşey

BINARY

➤ İkili formatta saklanmış dosya.

➤ Sunumda daha çok PE, ELF, Mach-O gibi çalıştırılabilir dosya formatları kastedilmiştir.

➤ Herhangi bir ara dilin byte-koduna derlenmiş dosyalar da kısmen dahil olabilir.

Page 6: Binary Hacking Hakkında Herşey

YOL HARİTASI

➤ Yazılım Lisanları ve Cracking

Page 7: Binary Hacking Hakkında Herşey

YOL HARİTASI

➤ Yazılım Lisanları ve Cracking

➤ Binary Dosya Arkakapıları

Page 8: Binary Hacking Hakkında Herşey

YOL HARİTASI

➤ Yazılım Lisanları ve Cracking

➤ Binary Dosya Arkakapıları

➤ Native Uygulama Zafiyetleri

Page 9: Binary Hacking Hakkında Herşey

YOL HARİTASI

➤ Yazılım Lisanları ve Cracking

➤ Binary Dosya Arkakapıları

➤ Native Uygulama Zafiyetleri

➤ “Reversing” ile “Hack”

Page 10: Binary Hacking Hakkında Herşey

YOL HARİTASI

➤ Yazılım Lisanları ve Cracking

➤ Binary Dosya Arkakapıları

➤ Native Uygulama Zafiyetleri

➤ “Reversing” ile “Hack”

➤ Savunma için “Binary Hacking”

Page 11: Binary Hacking Hakkında Herşey

➤ Crack nasıl yapılır?

➤ Ne kadar zor?

➤ Ne zaman mümkün?

➤ Kaçınmak için ne yapılabilir?

➤ Önlemek için ne yapılabilir?

Page 12: Binary Hacking Hakkında Herşey

DISASSEMBLER & DEBUGGER

➤ IDA Pro

➤ radare2

➤ Çok sayıda yardımcı araç

Page 13: Binary Hacking Hakkında Herşey
Page 14: Binary Hacking Hakkında Herşey
Page 15: Binary Hacking Hakkında Herşey

SEÇENEKLER

➤ Binary Patching

➤ Serial Phishing

➤ Key generator

➤ Emulator (?)

Page 16: Binary Hacking Hakkında Herşey

DRM

➤ Anti-reverse engineering (?)

➤ USB Dongle

➤ Cloud

➤ Kodun bir bölümünü erişilemez bir işlemcide çalıştırmak.

Page 17: Binary Hacking Hakkında Herşey
Page 18: Binary Hacking Hakkında Herşey

ÇALIŞTIRILABİLİR DOSYA ARKA KAPILARI

➤ Binders

Page 19: Binary Hacking Hakkında Herşey

ÇALIŞTIRILABİLİR DOSYA ARKA KAPILARI

➤ Binders

➤ New Section and EP redirect

Page 20: Binary Hacking Hakkında Herşey

ÇALIŞTIRILABİLİR DOSYA ARKA KAPILARI

➤ Binders

➤ New Section and EP redirect

➤ Cave Injection

Page 21: Binary Hacking Hakkında Herşey

ÇALIŞTIRILABİLİR DOSYA ARKA KAPILARI

➤ Binders

➤ New Section and EP redirect

➤ Cave Injection

➤ Function/Call Hooking

Page 22: Binary Hacking Hakkında Herşey

➤ Yeni section ekle veya cave’leri bul

➤ EP’de kod akışını yönlendir veya IAT’da kod akışını yönlendir.

Page 23: Binary Hacking Hakkında Herşey
Page 24: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA

➤ Yorumlayıcı

Page 25: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA

➤ Yorumlayıcı

➤ Sanal Makine

Page 26: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA

➤ Yorumlayıcı

➤ Sanal Makine

➤ JIT Derleyici

Page 27: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA

➤ Yorumlayıcı

➤ Sanal Makine

➤ JIT Derleyici

➤ Doğrudan CPU üzerinde çalışır

Page 28: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA ZAFİYETLERİ➤ Buffer Overrun

➤ Buffer Overflow

➤ Stack overflow

➤ Heap overflow

➤ Memory Corruption

➤ Unbound Memory Read / Write

➤ Arbitrary Memory Read / Write

➤ Type Confusion

➤ Race Condition

➤ Logic Bugs

➤ ….

Page 29: Binary Hacking Hakkında Herşey

NATIVE UYGULAMA ZAFİYETLERİ➤ Buffer Overrun

➤ Buffer Overflow

➤ Stack overflow

➤ Heap overflow

➤ Memory Corruption

➤ Unbound Memory Read / Write

➤ Arbitrary Memory Read / Write

➤ Type Confusion

➤ Race Condition

➤ Logic Bugs

➤ ….

Page 30: Binary Hacking Hakkında Herşey

EN TEMEL PROBLEM

➤ Girdinin kod olarak yorumlanabilmesi

Page 31: Binary Hacking Hakkında Herşey

EN TEMEL PROBLEM

➤ Girdinin kod olarak yorumlanabilmesi

boş

boş

boş

boş

programın çalışmaya devam edeceği adres

Page 32: Binary Hacking Hakkında Herşey

EN TEMEL PROBLEM

➤ Girdinin kod olarak yorumlanabilmesi

➤ Kullanıcıdan 4 adet girdi al A

B

C

D

programın çalışmaya devam edeceği adres

Page 33: Binary Hacking Hakkında Herşey

EN TEMEL PROBLEM

➤ Girdinin kod olarak yorumlanabilmesi

➤ Kullanıcıdan 4 adet girdi al

➤ Ya kullanıcı 5 adet girdi sağlarsa?

Page 34: Binary Hacking Hakkında Herşey

EN TEMEL PROBLEM

➤ Girdinin kod olarak yorumlanabilmesi

➤ Kullanıcıdan 4 adet girdi al

➤ Ya kullanıcı 5 adet girdi sağlarsa?

A

B

C

D

E

Page 35: Binary Hacking Hakkında Herşey
Page 36: Binary Hacking Hakkında Herşey

RACE CONDITION

➤ Ön koşulu multithreading veya multiprocessing

Page 37: Binary Hacking Hakkında Herşey

RACE CONDITION

➤ Ön koşulu multithreading veya multiprocessing

➤ Senkronizasyon mekanizmalarının kullanımından veya tasarımından kaynaklı erişim düzensizlikleri

Page 38: Binary Hacking Hakkında Herşey

RACE CONDITION

➤ Ön koşulu multithreading veya multiprocessing

➤ Senkronizasyon mekanizmalarının kullanımından veya tasarımından kaynaklı erişim düzensizlikleri

➤ Bir nevi el çabukluğu

Page 39: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 40: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 41: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 42: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 43: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 44: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

Page 45: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

➤ Bellekten (veya dökümünden) okuma

Page 46: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

➤ Bellekten (veya dökümünden) okuma

➤ Bellek üzerinde yamama

Page 47: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

➤ Bellekten (veya dökümünden) okuma

➤ Bellek üzerinde yamama

➤ DLL enjeksiyonu

Page 48: Binary Hacking Hakkında Herşey

REVERSING İLE HACK

➤ Bellekten (veya dökümünden) okuma

➤ Bellek üzerinde yamama

➤ DLL enjeksiyonu

➤ Başka bir süreci taklit etme, replay saldırısı

Page 49: Binary Hacking Hakkında Herşey
Page 50: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

Page 51: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

➤ Sistem güvenliği araçları (antivirüs, anti-exploit, anti-ransomware)

Page 52: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

➤ Sistem güvenliği araçları (antivirüs, anti-exploit, anti-ransomware)

➤ Zararlı analizi araçları bkz: sysinternals

Page 53: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

➤ Sistem güvenliği araçları (antivirüs, anti-exploit, anti-ransomware)

➤ Zararlı analizi araçları bkz: sysinternals

➤ Botnetler üzerinde zafiyet avı

Page 54: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

➤ Sistem güvenliği araçları (antivirüs, anti-exploit, anti-ransomware)

➤ Zararlı analizi araçları bkz: sysinternals

➤ Botnetler üzerinde zafiyet avı

➤ Gerçekçi değil mi?

➤ Worm’un kullandığı zafiyeti kopyala

➤ Worm’un IP oluşturma algoritmasını kopyala

➤ Zararlı bulaştırmak yerine zafiyeti yama

Page 55: Binary Hacking Hakkında Herşey

SAVUNMA İÇİN BINARY HACKING

➤ Anti-APT cihazları / sandboxlar

➤ Sistem güvenliği araçları (antivirüs, anti-exploit, anti-ransomware)

➤ Zararlı analizi araçları bkz: sysinternals

➤ Botnetler üzerinde zafiyet avı

➤ Gerçekçi değil mi?

➤ Worm’un kullandığı zafiyeti kopyala

➤ Worm’un IP oluşturma algoritmasını kopyala

➤ Zararlı bulaştırmak yerine zafiyeti yama

➤ Sizin önerileriniz?

Page 56: Binary Hacking Hakkında Herşey