Giter Site home page Giter Site logo

honeything's Introduction

HoneyThing

HoneyThing is a honeypot for Internet of TR-069 things. It's designed to act as completely a modem/router that has RomPager embedded web server and supports TR-069 (CWMP) protocol.

Project idea was created by Ali Ikinci and offered as Honeynet GSoC project in 2015.

Features

Basic features:

  • Emulates some popular vulnerabilities for RomPager as Misfortune Cookie, Rom-0 etc.
  • TR-069 protocol support. Implements mostly used TR-069 CPE commands. e.g: GetRPCMethods, Get/Set ParameterValues, Download...
  • Modem web interface to increase the interaction with attacker.
  • All communication with services (http.log, cwmp.log) and state of honeypot (started/stopped, error etc. to honeything.log) are logged in parsable text format.

Download

Debian and RPM packages will be available soon.

Installation

There're 2 ways to install HoneyThing:

For all of them, your system must have Python 2.7 (or above) and PycURL package.

  • Setup Script: Using setup script requires python setuptools package installed on the system. After downloading and extracting HoneyThing, you can simply go to extracted directory and run;

python setup.py install

  • Pre-Built Packages: HoneyThing can be installed by using pre-built packages for Ubuntu and CentOS. Packages can be downloaded from download section and will be added for any stable release.

For Ubuntu;

dpkg -i honeything_x.y.z.deb

For CentOS;

rpm -i honeything_x.y.z.rpm

Configuration

After installation, some parameters can be changed optional by using configuration file. There're 4 section in config file:

  • http: HTTP listen address/port can be edited in this section.
  • cwmp: Some TR-069 parameters as listen address/port, ACS url, download directory for "download" CPE command, connection request path etc. can be edited.
  • cpe: In cpe section, there're lots of variables related to modem/router device like manufacturer, serial number, model name etc. They can be edited to provide device variety in ACS communication.
  • logging: Log file paths, log level and some protocol specific parameters can be changed in this section.

Run

If you installed HoneyThing with setup script or pre-built packages, honeything can be run by using following commands:

service honeything {start|stop|restart|status}

or

/etc/init.d/honeything {start|stop|restart|status}

Documentation

A paper about this project is published (in TURKISH) at International Conference on Information Security and Cryptology [ISCTurkey 2015]. It is accessible online from here.

Credits

The project:

and special thanks to Bâkır Emre for taking the first step.

Note: This project is also being developed as Istanbul Sehir University master's thesis.

honeything's People

Contributors

bemre avatar omererdem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

honeything's Issues

couldnot run curl config

honeything

This is the error while trying to install honeything, after installing the curl and PycURL packages. Please help me to solve this issue.
Thanks and Regards,
Prahlada.

mhn install fails on linux ubuntu 18.04

I am trying to install mhn(modern honey network) on a fresh install of ubuntu 18.04

I got these errors.

Initializing` database, please be patient. This can take several minutes

  • python initdatabase.py
    Traceback (most recent call last):
    File "initdatabase.py", line 5, in
    create_clean_db()
    File "/opt/mhn/server/mhn/init.py", line 116, in create_clean_db
    db.create_all()
    File "/opt/mhn/env/lib/python2.7/site-packages/flask_sqlalchemy/init.py", line 963, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
    File "/opt/mhn/env/lib/python2.7/site-packages/flask_sqlalchemy/init.py", line 955, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
    File "/opt/mhn/env/lib/python2.7/site-packages/flask_sqlalchemy/init.py", line 896, in get_engine
    return connector.get_engine()
    File "/opt/mhn/env/lib/python2.7/site-packages/flask_sqlalchemy/init.py", line 556, in get_engine
    self._sa.apply_driver_hacks(self._app, info, options)
    File "/opt/mhn/env/lib/python2.7/site-packages/flask_sqlalchemy/init.py", line 861, in apply_driver_hacks
    info.database = os.path.join(app.root_path, info.database)
    AttributeError: can't set attribute```

how to fix this?

ACS is not implemented

Hello
I find out that in tr.api.ACS() all function are raising NotImplementedError.
why?
i wanna have an cwmp command but i couldnt.
i put this port in my config file but it dont open the port 7547.
thanks a lot

Adding new vulnerabilities

I would like to contribute on adding support for latest TR-069 vulnerabilities. I went through the source code but could not figure out the exact working. Any help will be appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.