detectem
pypi i detectem

detectem

detectem - detect software and its version on websites.

by alertot

0.7.3 (see all)License:MIT
pypi i detectem
Readme

detectem

Python 3.6 or greater is required.

.. image:: https://img.shields.io/pypi/v/detectem.svg :target: https://pypi.python.org/pypi/detectem

.. image:: https://img.shields.io/travis/alertot/detectem.svg :target: https://travis-ci.org/alertot/detectem

detectem is a specialized software detector. Let's see it in action.

.. code-block:: bash

$ det http://domain.tld [{'name': 'phusion-passenger', 'version': '4.0.10'}, {'name': 'apache-mod_bwlimited', 'version': '1.4'}, {'name': 'apache-mod_fcgid', 'version': '2.3.9'}, {'name': 'jquery', 'version': '1.11.3'}, {'name': 'crayon-syntax-highlighter', 'version': '2.7.2_beta'}]

Using a serie of indicators, it's able to detect software running on a site and extract accurately its version information. It uses Splash API to render the website and start the detection routine. It does full analysis on requests, responses and even on the DOM!

There are two important articles to read:

  • Reasons to create detectem <http://www.spect.cl/blog/2016/11/challenges-in-web-software-detection/>_
  • Introduction to detectem <http://www.spect.cl/blog/2016/11/introducing-detectem/>_

Features

  • Detect software in modern web technologies.
  • Browser support provided by Splash_.
  • Analysis on requests made and responses received by the browser.
  • Get software information from the DOM.
  • Great performance (less than 10 seconds to get a fingerprint).
  • Plugin system to add new software easily.
  • Test suite to ensure plugin result integrity.
  • Continuous development to support new features.

Installation

  1. Install Docker_ and add your user to the docker group, then you avoid to use sudo.

  2. Pull the image::

    $ docker pull scrapinghub/splash

  3. Create a virtual environment with Python >= 3.6 .

  4. Install detectem::

    $ pip install detectem

  5. Run it against some URL::

    $ det http://domain.tld

Other installation method

detectem as Docker Container

Let's see it in action.

.. code-block:: bash

$ docker-compose run --rm detectem http://domain.tld [{'name': 'phusion-passenger', 'version': '4.0.10'}, {'name': 'apache-mod_bwlimited', 'version': '1.4'}, {'name': 'apache-mod_fcgid', 'version': '2.3.9'}, {'name': 'jquery', 'version': '1.11.3'}, {'name': 'crayon-syntax-highlighter', 'version': '2.7.2_beta'}]

But first that all we must do:

Installation

  1. Install the last Docker CE Stable version_.

  2. Add your user to the docker group and logout::

    $ sudo usermod -aG docker $USER

  3. Make sure you have logout to apply changes, then log in again.

  4. Install Docker Compose_

  5. Download to your workspace the docker-compose building files.

    Dockerfile-alternate docker-compose.yml

  6. Build the required docker images for detectem at the same directory as the previous point::

    $ docker-compose up -d

  7. Run detectem against some URL::

    $ docker-compose run --rm detectem http://domain.tld

Documentation

The documentation is at ReadTheDocs <https://detectem.readthedocs.io>_.

.. Docker: http://docker.io .. _Splash: https://github.com/scrapinghub/splash .. _DOM: https://en.wikipedia.org/wiki/Document_Object_Model .. Docker CE Stable version: https://www.docker.com/community-edition .. _Docker compose: https://docs.docker.com/compose/install/ .. _Dockerfile-alternate: extras/docker/Dockerfile-alternate .. _docker-compose.yml: extras/docker/docker-compose.yml

GitHub Stars

151

LAST COMMIT

2yrs ago

MAINTAINERS

1

CONTRIBUTORS

7

OPEN ISSUES

1

OPEN PRs

1
VersionTagPublished
0.7.3
2yrs ago
0.7.2
2yrs ago
0.7.1
3yrs ago
0.7.0
4yrs ago
No alternatives found
No tutorials found
Add a tutorial