راه اندازی هانی پات (Honeypot – Honeynet) با استفاده از Owasp Honeypot

Owasp Honeypot یک ابزار متن باز (Open Source) پایتون برای راه اندازی هانی پات honeynet و honeypot میباشد.

این ابزار با Python 2.x و Python 3.x کاملا سازگار و بر روی سیستم عامل های Mac Os – ویندوز و لینوکس آزمایش شده است.

امکانات این ابزار :

  • ماشین مجازی امن
  • فرآیند راه اندازی هانی پات (honeynet) بصورت خودکار 
  • مانیتورینگ فعالیت نفوذگران
  • شبیه ساز (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 یا کوکی نیز ارسال شوند.
مقدار پیش فرض مقدار پارامتر ۱۰ است، اگر شما می خواهید آن را به عنوان نامحدود تنظیم کنید، آن را به عنوان ۰ تنظیم کنید
مقدار پیش فرض پارامتر skip ، ۰ است.

استفاده از 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

 

دستورات استفاده از هانی پات OWASP

اگر پایتون ohp.py را اجرا کنید، با پیکربندی پیش فرض اجرا می شود در غیر این صورت دستوراتی را که شما وارد می کنید دنبال می کند.

  • m, –select-module-

با استفاده از سوئیچ m- می توانید چند مولفه را هم زمان انتخاب کنید 
مثال :

m ftp / weak_password or -m ftp / weak_password، ssh / weak_password-​
  • x, –exclude-module-

اگر از پیکربندی پیش فرض در راه اندازی هانی پات OWASP استفاده میکنید

به عنوان مثال :

  • “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–

برای غیرفعال کردن رنگ ها در چاپ از این کلید استفاده کنید!

 

فایل پیکربندی :

شامل پیکر بندی پیش فرض 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
    }



تهیه کننده : سید محمد اسماعیلی 

All Comments:

  1. یاسر

    ۲۸/۰۸/۱۳۹۷

    بسیار زیبا خسته نباشید

    • شرکت امنیتی ایران سایبر

      ۲۹/۰۸/۱۳۹۷

      نظر لطف شماست .

دیدگاه شما:

نوشته های مرتبط

Seedworm Malware

۲۲

آذر
آسیب پذیری ها, امنیت, هک و امنیت, همه موضوعات

گزارش باج افزار Seedworm

باج افزار و بدافزار Seedworm :  هدف بدافزار  Seedworm :گروه های سازمانی، آژانس های دولتی، نفت و گاز، سازمان های غیر دولتی، مخابرات، و شرکت های فناوری اطلاعات است. محققان سیمانتک یک گروه جاسوسی سایبری در حملات اخیر سایبری کشف کرده اند که هدف آنها جمع آوری اطلاعات در مورد اهداف گسترش یافته در درجه اول در خاورمیانه […]

Docker

۲۲

آذر
همه موضوعات

نحوه نصب Docker در اوبونتو ۱۸٫۰۴ LTS

نحوه نصب و استفاده از Docker در اوبونتو ۱۸٫۰۴ LTS برای انجام مجازی سازی کامل سیستم نیاز به حافظه و فضای دیسک کافی خواهید داشت Docker یک سیستم مخزنی است . یک ماشین مجازی داکر را می توان یک مخزن هم نام برد . داکر از هسته سیستم عامل میزبان استفاده می کند و از ویژگی های[…]