// PROGRAMMING FOR HACKERS

لغات البرمجة
في الأمن السيبراني

الأمن السيبراني ليس مجرد أدوات جاهزة. لكي تكون محترفاً، يجب أن تفهم لغة الآلة، وتكتب أدواتك الخاصة، وتحلل شفرات الآخرين.

01

ترسانة الأكواد (Code Arsenal)

Python

الأكثر شعبية

تحليل البرمجيات الخبيثة، وأتمتة الهجمات.

C / C++

تحكم عميق

اكتشاف الثغرات، كتابة الاستغلالات (Exploits).

JavaScript

Web Sec

اختراق المواقع (XSS)، وتحليل الويب.

Bash

Linux

أتمتة المهام وإدارة سيرفرات Linux.

Go (Golang)

سريع جداً

أدوات الشبكات السريعة، والسحابة.

Ruby

Metasploit

كتابة أدوات اختبار الاختراق.

scanner.py
import socket

# Simple Port Scanner Example
def scan_target(target_ip):
    print(f"Scanning {target_ip}...")
    for port in range(20, 1025):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((target_ip, port))
        if result == 0:
            print(f"Port {port}: OPEN")
        sock.close()
$ python3 scanner.py
> Scanning 192.168.1.1...
> Port 80: OPEN
> Port 443: OPEN
> Scan complete.
02

مقارنة شاملة واحترافية

اللغة الاستخدام الأمني الأساسي الأداء والسرعة درجة الصعوبة مثال عملي
Python تحليل البيانات، أتمتة، أدوات هجوم بطيء نسبياً سهل جداً بناء ماسح شبكات (Scanner)
C / C++ كتابة استغلالات (Exploits)، هندسة عكسية فائق السرعة صعب استغلال Buffer Overflow
Go (Golang) أدوات شبكات سريعة، Cloud Security سريع جداً متوسط أداة Brute-force سريعة
JavaScript اختراق الويب (Client-side)، XSS متوسط سهل سرقة الكوكيز (Session Hijacking)
Bash إدارة نظام Linux، دمج الأدوات (Scripting) حسب الأداة متوسط أتمتة عملية الفحص (Recon)
Ruby تطوير إضافات Metasploit بطيء سهل كتابة Exploit Module
03

من أين أبدأ؟

🌱

مبتدئ

ابدأ بـ Python. سهلة وتفعل كل شيء.

💣

Exploits

تعلم C/C++ لفهم الذاكرة والثغرات.

🌐

Web

أنت بحاجة لـ JavaScript قبل أي شيء.

⚙️

SysAdmin

لا غنى عن Bash أو PowerShell.

04

مختبر الأكواد (Code Lab)

هنا هنشوف أمثلة بسيطة لأكواد حقيقية ممكن تشوفها في المجال، وهنشرحها "بالعامية" عشان تفهم العقلية ورا الكود، سواء كنت بتهاجم (Red Team) أو بتدافع (Blue Team).

PYTHON: BANNER GRABBING
import socket

# 1. بنعمل وصلة (Socket)
s = socket.socket()

# 2. بنخبط على الباب (IP + Port)
try:
    s.connect(("192.168.1.5", 21))
    
    # 3. بنسمع الرد (Banner)
    banner = s.recv(1024)
    print(banner)
    
except:
    print("Port closed")

إيه اللي بيحصل هنا؟

الكود ده فكرته بسيطة: "خبط على الباب وشوف مين هيرد".

ليه بنعمل كده؟
الهاكرز بيستخدموا الحركة دي عشان يعرفوا نوع البرنامج اللي شغال على السيرفر وإصداره (مثلاً FTP Server v2.3). بمجرد ما يعرف الإصدار، بيروح يدور لو فيه ثغرة معروفة ليه. دي أول خطوة في الاستطلاع (Reconnaissance).

BASH: PING SWEEP
# Loop بيلف على كل الأجهزة من 1 لـ 254
for ip in $(seq 1 254); do

    # ابعت بنج واحد بس، ولو رد اعرضه
    ping -c 1 192.168.1.$ip | grep "64 bytes" &
    
done

مسح الشبكة السريع

تخيل إنك دخلت قاعة ضلمة وعايز تعرف مين موجود. بتنادي "يا جماعة!"، واللي يرد يبقى موجود.

السكريبت ده بيعمل نفس الحاجة بس مع أجهزة الشبكة. بيمشي عليهم واحد واحد (من 1 لـ 254) ويبعت "Ping". علامة & مهمة جداً لأنها بتخلي العمليات تشتغل في نفس الوقت (Parallel) عشان تخلص المسح في ثواني بدل دقايق.

PHP: SQL INJECTION (VULNERABLE)
$user = $_POST['username'];

// ❌ كود كارثي: بياخد كلام المستخدم زي ما هو
$sql = "SELECT * FROM users WHERE name = '" . $user . "'";

$db->query($sql);

غلطة الشاطر بألف

دي أشهر ثغرة في تاريخ الويب. المبرمج هنا وثق في المستخدم زيادة عن اللزوم.

لو المستخدم كتب اسمه عادي (مثلاً "أحمد")، الكود هيشتغل تمام. لكن لو المستخدم "خبيث" وكتب: ' OR '1'='1، الأمر هيتحول لـ "هات كل المستخدمين لو الاسم فاضي أو لو 1 بيساوي 1". وبما إن 1 دايماً بيساوي 1، الداتابيز هترجع كل البيانات، وممكن الهاكر يدخل كأدمن من غير باسوورد!