ساخت آزمایشگاه هک وب با Kali Linux و DVWA

Building-a-Web-Hacking-Lab-with-Kali-Linux-and-DVWA
0 دیدگاه
۱۴۰۵-۰۶-۰۹ ۱۱:۰۴:۴۲

اگر تا امروز فقط با Kali Linux و Metasploitable 2 کار کرده‌اید، وقت آن رسیده یک قدم جلوتر برویم و وارد دنیای Web Application Security شویم.

در این آموزش یک آزمایشگاه کاملاً قانونی می‌سازیم که شامل:

Kali Linux
     │
     ├── Nmap
     ├── Burp Suite
     └── Browser
          │
          ▼
        DVWA
  Damn Vulnerable Web Application

DVWA یک وب‌اپلیکیشن عمداً آسیب‌پذیر است که برای یادگیری و تمرین امنیت برنامه‌های وب طراحی شده است.

⚠️ تمام مراحل این آموزش فقط روی آزمایشگاه شخصی انجام می‌شود. DVWA را روی اینترنت عمومی قرار ندهید.


🎯 در این آموزش چه چیزی یاد می‌گیریم؟

در پایان آموزش شما می‌توانید:

  • یک آزمایشگاه Web Security بسازید.
  • Kali Linux را به محیط آزمایشگاه متصل کنید.
  • DVWA را اجرا کنید.
  • سرویس وب را با Nmap شناسایی کنید.
  • ترافیک HTTP را با Burp Suite مشاهده کنید.
  • ساختار یک Web Application آسیب‌پذیر را بررسی کنید.
  • مفهوم آسیب‌پذیری‌هایی مانند XSS و SQL Injection را در محیط آموزشی درک کنید.
  • نتایج تست را مستندسازی کنید.

بخش اول: آزمایشگاه موردنیاز

پیشنهاد می‌کنم ساختار آزمایشگاه این‌گونه باشد:

┌────────────────────────┐
│       Kali Linux       │
│                        │
│ Nmap | Burp | Browser  │
│                        │
│ 192.168.56.10          │
└───────────┬────────────┘
            │
       Host-Only Network
            │
┌───────────▼────────────┐
│          DVWA          │
│   Vulnerable Web App   │
│                        │
│ 192.168.56.20          │
└────────────────────────┘

هر دو سیستم باید روی یک شبکه آزمایشگاهی جداگانه باشند.


بخش دوم: DVWA چیست؟

Damn Vulnerable Web Application یا DVWA یک برنامه وب عمداً ناامن برای آموزش امنیت وب است.

هدف DVWA این نیست که یک وب‌سایت واقعی باشد؛ بلکه طراحی شده تا دانشجو بتواند در یک محیط کنترل‌شده، رفتار آسیب‌پذیری‌های مختلف را مشاهده کند.

در DVWA می‌توان موضوعاتی مانند موارد زیر را مطالعه کرد:

  • Brute Force
  • Command Injection
  • CSRF
  • File Inclusion
  • File Upload
  • SQL Injection
  • XSS
  • Authentication weaknesses

البته هدف ما در این آموزش، یادگیری روش تحلیل است، نه حمله به سایت‌های واقعی.


بخش سوم: آماده‌سازی Kali Linux

ابتدا Kali را روشن کنید.

ترمینال:

sudo apt update

سپس:

sudo apt full-upgrade -y

بررسی IP:

ip addr

فرض کنیم Kali این IP را داشته باشد:

192.168.56.10

بخش چهارم: اجرای DVWA

برای آزمایشگاه می‌توانید DVWA را روی یک ماشین مجازی لینوکسی جداگانه اجرا کنید.

پس از راه‌اندازی وب‌سرور و DVWA، مطمئن شوید برنامه فقط روی شبکه آزمایشگاهی در دسترس است.

برای مثال:

http://192.168.56.20

اگر صفحه DVWA باز شد، آزمایشگاه آماده است.


بخش پنجم: اولین شناسایی با Nmap

حالا از Kali هدف آزمایشگاهی را بررسی می‌کنیم.

nmap 192.168.56.20

اگر وب‌سرور فعال باشد، ممکن است پورت‌هایی مانند:

80/tcp
443/tcp

را مشاهده کنید.

حالا تشخیص نسخه:

nmap -sV 192.168.56.20

و برای بررسی دقیق‌تر:

nmap -sC -sV 192.168.56.20

اینجا یک نکته مهم را یاد می‌گیریم:

قبل از تست امنیتی باید بدانیم هدف چه سرویس‌هایی ارائه می‌کند.


بخش ششم: ورود به DVWA

در مرورگر Kali وارد شوید:

http://192.168.56.20

صفحه DVWA را مشاهده خواهید کرد.

پس از ورود، سطح امنیتی برنامه را برای تمرین آموزشی انتخاب کنید.

برای شروع، Low مناسب‌تر است؛ چون هدف ما مشاهده رفتار آسیب‌پذیری و درک مکانیزم آن است.


بخش هفتم: Burp Suite چیست؟

حالا یکی از جذاب‌ترین قسمت‌های آزمایشگاه را شروع می‌کنیم.

Burp Suite یک مجموعه ابزار برای بررسی امنیت برنامه‌های وب است.

در این آموزش از آن برای مشاهده و تحلیل درخواست‌های HTTP استفاده می‌کنیم.

در Kali معمولاً می‌توانید آن را از منوی Applications اجرا کنید.


بخش هشتم: ساخت Proxy در Burp

Burp را اجرا کنید.

در بخش Proxy یک Listener محلی ایجاد شده است.

معمولاً:

127.0.0.1:8080

است.

مرورگر را طوری تنظیم کنید که درخواست‌های آن از Proxy عبور کنند.

ساختار ارتباط:

Browser
   │
   ▼
Burp Suite
   │
   ▼
DVWA

حالا وقتی در سایت آزمایشگاهی صفحه‌ای را باز می‌کنید، درخواست HTTP را در Burp مشاهده خواهید کرد.


بخش نهم: مشاهده یک درخواست HTTP

فرض کنید در DVWA یک فرم وجود دارد.

وقتی فرم را ارسال می‌کنید، Burp می‌تواند چیزی شبیه این را نشان دهد:

POST /dvwa/... HTTP/1.1
Host: 192.168.56.20
Content-Type: application/x-www-form-urlencoded

نکته مهم اینجاست:

ما دیگر فقط ظاهر سایت را نمی‌بینیم.

می‌توانیم ببینیم:

  • درخواست به کجا ارسال می‌شود؟
  • Method چیست؟
  • چه پارامترهایی ارسال می‌شوند؟
  • Headerها چه هستند؟
  • Cookie چگونه استفاده می‌شود؟

این یکی از مهم‌ترین مهارت‌های Web Pentesting است.


بخش دهم: SQL Injection چیست؟

یکی از معروف‌ترین آسیب‌پذیری‌های وب، SQL Injection است.

به زبان ساده، زمانی رخ می‌دهد که ورودی کاربر بدون اعتبارسنجی مناسب وارد یک Query پایگاه داده شود.

تصور کنید برنامه چنین منطقی داشته باشد:

User Input
    ↓
Application
    ↓
SQL Query
    ↓
Database

اگر برنامه ورودی را به‌درستی کنترل نکند، داده ورودی کاربر ممکن است ساختار Query را تغییر دهد.

در DVWA می‌توانیم این مفهوم را به‌صورت کنترل‌شده مشاهده کنیم.


بخش یازدهم: تمرین SQL Injection در DVWA

وارد بخش SQL Injection شوید.

در حالت آموزشی Low، برنامه یک ورودی برای شناسه کاربر در اختیار شما قرار می‌دهد.

به‌جای اینکه فوراً سراغ Payloadهای پیچیده برویم، ابتدا رفتار عادی برنامه را بررسی کنید.

مثلاً یک مقدار معتبر وارد کنید و نتیجه را ببینید.

سپس همان درخواست را در Burp مشاهده کنید.

سؤال اصلی:

کدام پارامتر از طرف کاربر کنترل می‌شود؟

این نوع نگاه بسیار مهم‌تر از حفظ کردن Payload است.


بخش دوازدهم: XSS چیست؟

Cross-Site Scripting یا XSS نوع دیگری از آسیب‌پذیری‌های مهم وب است.

در XSS، برنامه ممکن است ورودی کنترل‌نشده کاربر را در صفحه نمایش دهد و باعث اجرای محتوای ناخواسته در مرورگر شود.

در DVWA می‌توان این مفهوم را به‌شکل کاملاً کنترل‌شده مشاهده کرد.

ساختار کلی:

User Input
     ↓
Web Application
     ↓
HTML Response
     ↓
Browser

اگر ورودی به‌درستی پاک‌سازی یا Encode نشده باشد، می‌تواند باعث ایجاد XSS شود.


بخش سیزدهم: چرا Burp Suite مهم است؟

فرض کنید بدون Burp فقط صفحه سایت را می‌بینید.

اما با Burp:

Request
   ↓
Headers
   ↓
Parameters
   ↓
Cookies
   ↓
Response

را مشاهده می‌کنید.

به همین دلیل Burp یکی از ابزارهای مهم در مسیر یادگیری Web Application Penetration Testing محسوب می‌شود.


بخش چهاردهم: بررسی Headerهای HTTP

در Burp می‌توانید Headerهای درخواست و پاسخ را مشاهده کنید.

مثلاً:

Host:
User-Agent:
Cookie:
Content-Type:
Content-Length:

در پاسخ نیز ممکن است مواردی مانند:

Server:
Content-Type:
Set-Cookie:

وجود داشته باشند.

از همین اطلاعات می‌توان برای شناخت رفتار برنامه استفاده کرد.


بخش پانزدهم: تمرین File Upload

DVWA بخشی برای بررسی File Upload نیز دارد.

در این قسمت هدف آموزشی این است که بفهمیم:

چرا آپلود فایل بدون کنترل مناسب خطرناک است؟

یک برنامه امن باید مواردی مانند:

  • نوع فایل
  • Extension
  • MIME Type
  • حجم فایل
  • نام فایل
  • محل ذخیره
  • قابلیت اجرای فایل

را به‌درستی کنترل کند.

در آزمایشگاه می‌توانید رفتار برنامه را بررسی کنید و ببینید چه کنترل‌هایی وجود دارند.


بخش شانزدهم: Command Injection

یکی دیگر از موضوعات مهم DVWA، Command Injection است.

مشکل زمانی ایجاد می‌شود که یک برنامه ورودی کاربر را بدون کنترل مناسب وارد دستور سیستم‌عامل کند.

ساختار خطرناک:

User Input
     ↓
Application
     ↓
OS Command
     ↓
Operating System

در یک برنامه امن باید ورودی کاربر کاملاً اعتبارسنجی شود و تا حد امکان از اجرای مستقیم Commandهای سیستم‌عامل جلوگیری شود.

در DVWA می‌توانید این مفهوم را در یک محیط کنترل‌شده مطالعه کنید.


بخش هفدهم: از آزمایشگاه چه چیزی یاد می‌گیریم؟

هدف اصلی این آزمایشگاه این نیست که فقط چند آسیب‌پذیری را اجرا کنیم.

بلکه باید یاد بگیریم:

Recon
 ↓
Enumeration
 ↓
HTTP Analysis
 ↓
Input Identification
 ↓
Vulnerability Analysis
 ↓
Validation
 ↓
Remediation
 ↓
Report

این دقیقاً همان فرایندی است که در تست نفوذ حرفه‌ای اهمیت دارد.


🧠 تمرین حرفه‌ای برای کاربران صفر و یک سایبر

حالا یک چالش برای شما:

مرحله ۱

با Nmap سرویس‌های ماشین DVWA را پیدا کنید.

مرحله ۲

با Burp یک درخواست HTTP را مشاهده کنید.

مرحله ۳

یک پارامتر قابل‌کنترل توسط کاربر پیدا کنید.

مرحله ۴

بررسی کنید برنامه چگونه ورودی را پردازش می‌کند.

مرحله ۵

در سطح Low یکی از آسیب‌پذیری‌های آموزشی DVWA را بررسی کنید.

مرحله ۶

همان آسیب‌پذیری را در سطح امنیتی بالاتر مقایسه کنید.

مرحله ۷

توضیح دهید:

چه تغییری باعث شد آسیب‌پذیری سخت‌تر یا غیرقابل بهره‌برداری شود؟

این قسمت از آموزش بسیار مهم است؛ چون شما را از Attacker Mindset به سمت Defender Mindset هم می‌برد.


🛡️ بخش مهم: چگونه آسیب‌پذیری را برطرف کنیم؟

یک متخصص امنیت فقط نباید بگوید:

«این سایت آسیب‌پذیر است.»

باید بتواند بگوید:

«چرا آسیب‌پذیر است و چگونه باید برطرف شود؟»

برای مثال در برابر SQL Injection:

  • استفاده از Prepared Statements
  • اعتبارسنجی ورودی
  • عدم اتصال مستقیم ورودی کاربر به Query
  • محدود کردن دسترسی حساب دیتابیس

در برابر XSS:

  • Output Encoding
  • Input Validation
  • استفاده صحیح از Content Security Policy
  • مدیریت صحیح داده‌های قابل نمایش در HTML

⚠️ چند اشتباه خطرناک

❌ DVWA را روی اینترنت قرار ندهید

این برنامه عمداً آسیب‌پذیر است.

❌ IP عمومی را هدف تمرین قرار ندهید

از شبکه Host-only یا آزمایشگاه ایزوله استفاده کنید.

❌ Payloadهای آزمایشگاهی را روی سایت‌های واقعی امتحان نکنید.

❌ فقط روی Exploit تمرکز نکنید.

یک متخصص واقعی باید علت آسیب‌پذیری و راهکار اصلاح آن را هم بداند.


🏆 پروژه نهایی

در پایان، برای خودتان یک گزارش کوچک بنویسید:

Target:
DVWA

Target IP:
192.168.56.20

Open Ports:
...

Web Server:
...

Technology:
...

Vulnerability:
...

Root Cause:
...

Impact:
...

Recommended Fix:
...

اگر بتوانید چنین گزارشی تهیه کنید، دیگر فقط یک کاربر نیستید که دستورات Nmap را حفظ کرده؛ دارید مثل یک تست نفوذکار فکر می‌کنید.

دسته بندی‌ها:

آنچه در این مقاله میخوانید

دیدگاه شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *