GithubHelp home page GithubHelp logo

cr0hn / enteletaor Goto Github PK

View Code? Open in Web Editor NEW
148.0 16.0 26.0 3.03 MB

Message Queue & Broker Injection tool

License: Other

Python 100.00%
hacking-tool redis rabbitmq broker python security hacking scanner

enteletaor's Introduction

Enteletaor

Enteletaor: Message Queue & Broker Injection tool

Version

1.0

Code

https://github.com/cr0hn/enteletaor

Issues

https://github.com/cr0hn/enteletaor/issues/

Documentation

http://enteletaor.readthedocs.org

Python version

Python 2.7.x & 3

Author

Daniel Garcia (cr0hn) - @ggdaniel

Support this project

Support this project (to solve issues, new features...) by applying the Github "Sponsor" button.

What's Enteletaor

Message Queue & Broker Injection tool that implements attacks to Redis, RabbitMQ and ZeroMQ.

Some of the actions you can do:

  • Listing remote tasks.
  • Read remote task content.
  • Disconnect remote clients from Redis server (even the admin!)
  • Inject tasks into remote processes.
  • Make a scan to discover open brokers.
  • Try to discover user/passwords in auth protected brokers

Currently supported brokers are:

  • RabbitMQ (or AMQP compatible).
  • ZeroMQ.
  • Redis.

See documentation for more information.

What's new?

This Enteletaor version, add a lot of new features and fixes, like:

Note

You can read entire list in CHANGELOG file.

Version 1.1.x

  • Many improvements and fixes
  • Added new module: password bruteforcer.

Version 1.0.0

  • First version released

enteletaor's People

Contributors

cr0hn avatar finackieee avatar noraj 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  avatar  avatar  avatar

enteletaor's Issues

[Dependencies] Doesn't work with wtforms >= 3.0

Hello,

Just an FYI regarding the wtforms dependency, this project doesn't work with versions of WTForms starting with 3.0, so either :

wtforms<3.0

in the requirements.txt or a patch would be required to support changes made to wtforms (don't have time to check what should be changed right now)

Brute force module

[ * ] Unhandled exception: 'NoneType' object has no attribute 'lower'

Theres a couple of exceptions in the code caused by calling lower() on null objects

TypeError: new_field__init__() got an unexpected keyword argument 'name'

➜  enteletaor enteletaor3  scan -h

Traceback (most recent call last):
  File "/opt/homebrew/bin/enteletaor3", line 5, in <module>
    from enteletaor_lib.enteletaor import main
  File "/opt/homebrew/lib/python3.11/site-packages/enteletaor_lib/__init__.py", line 33, in <module>
    boot_loader()
  File "/opt/homebrew/lib/python3.11/site-packages/enteletaor_lib/libs/core/bootloader.py", line 37, in boot_loader
    from .structs import AppSettings
  File "/opt/homebrew/lib/python3.11/site-packages/enteletaor_lib/libs/core/structs.py", line 148, in <module>
    AppSettings = _AppSettings()
                  ^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/wtforms/form.py", line 208, in __call__
    return type.__call__(cls, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/enteletaor_lib/libs/core/structs.py", line 59, in __init__
    super(CommonData, self).__init__(**kwargs)
  File "/opt/homebrew/lib/python3.11/site-packages/wtforms/form.py", line 280, in __init__
    super().__init__(self._unbound_fields, meta=meta_obj, prefix=prefix)
  File "/opt/homebrew/lib/python3.11/site-packages/wtforms/form.py", line 48, in __init__
    field = meta.bind_field(self, unbound_field, options)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/wtforms/meta.py", line 28, in bind_field
    return unbound_field.bind(form=form, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/wtforms/fields/core.py", line 399, in bind
    return self.field_class(*self.args, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: new_field__init__() got an unexpected keyword argument 'name'

Issue with building on ArchLinux due to amqp version

The version of python2-amqp on archlinux is 2.0.2, but the code seems to require a version of equal to or above 1.4.9 but below version 2.0.

Traceback (most recent call last):
File "/usr/bin/enteletaor", line 5, in
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 2927, in
@_call_aside
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 2913, in _call_aside
f(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 2940, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 637, in _build_master
return cls._build_from_requirements(requires)
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 650, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python2.7/site-packages/pkg_resources/init.py", line 834, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)

pkg_resources.ContextualVersionConflict: (amqp 2.0.2 (/usr/lib/python2.7/site-packages), Requirement.parse('amqp<2.0,>=1.4.9'), set(['kombu']))
Is it possible to patch the code for 2.0.2, I can certainly put a patch in place to fix the error, but I wanted to check to see if there was a reason not to patch it for 2.0.2

Little mistake

Hi
In the advanced.rst file we can read this :

We can export results to CVS file using --output option. The reason to choose this format is because it permit real-time reading. In other words

I think you mean CSV ?

new_transport_init

[CRITICAL] 2018-09-18 10:40:58 - Unhandled exception: new_transport_init() got an unexpected keyword argument 'read_timeout'

The new_transport_init signature has changed and the monkey patching doesn't have the right arguments.

Added read_timeout,ssl,socket_settings,write_timeout to the args but then get:

AttributeError: 'TCPTransport' object has no attribute 'host'

packaging issue: deployment of tests

The issue is that the setup.py is deploying the tests folder under the root python path and not under this package one.

So it's end up under /usr/lib/python3.11/site-packages/tests rather than /usr/lib/python3.11/site-packages/enteletaor/tests and so conflicts with other packages having the same issue.

Anyway usually test are not shipped in a release package so the easiest would just to remove them. Else they should be deployed in the children directory.

It's explained in ArchLinux packaging guidelines for Python: https://wiki.archlinux.org/title/Python_package_guidelines#Test_directory_in_site-package

Non Default Ports

The scanning module will allow to set the ports and find broker services running on these.
Unfortunately, ports cannot be set for the other modules, such as tasks:

Something like this would be great to have. Unfortunately, I do not have the time atm to do something myself about that.

enteletaor3 -vvv tasks list-tasks --target 192.168.1.2--port 1337

Error during start

Python 3.9 - work
Python 3.11 - doesn't work

# enteletaor3 -h
Traceback (most recent call last):
  File "/usr/local/bin/enteletaor3", line 5, in <module>
    from enteletaor_lib.enteletaor import main
  File "/usr/local/lib/python3.11/dist-packages/enteletaor_lib/__init__.py", line 33, in <module>
    boot_loader()
  File "/usr/local/lib/python3.11/dist-packages/enteletaor_lib/libs/core/bootloader.py", line 37, in boot_loader
    from .structs import AppSettings
  File "/usr/local/lib/python3.11/dist-packages/enteletaor_lib/libs/core/structs.py", line 148, in <module>
    AppSettings = _AppSettings()
                  ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/wtforms/form.py", line 208, in __call__
    return type.__call__(cls, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/enteletaor_lib/libs/core/structs.py", line 59, in __init__
    super(CommonData, self).__init__(**kwargs)
  File "/usr/local/lib/python3.11/dist-packages/wtforms/form.py", line 280, in __init__
    super().__init__(self._unbound_fields, meta=meta_obj, prefix=prefix)
  File "/usr/local/lib/python3.11/dist-packages/wtforms/form.py", line 48, in __init__
    field = meta.bind_field(self, unbound_field, options)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/wtforms/meta.py", line 28, in bind_field
    return unbound_field.bind(form=form, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/wtforms/fields/core.py", line 399, in bind
    return self.field_class(*self.args, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: new_field__init__() got an unexpected keyword argument 'name'

Error en el proceso de dump

Buenas, en primer lugar la charla de la rootedcon increible, la herramienta increible !!! muchas gracias !!!

Realizando estas pruebas:

enteletaor redis discover-dbs -t XXX.XXX.XXX.XXX
[ * ] Starting Enteletaor execution
[ * ] Discovered 'XXX.XXX.XXX DBs at '16':
[ * ] - DB0 - 6074 keys
[ * ] - DB1 - Empty
[ * ] - DB2 - Empty
[ * ] - DB3 - Empty
[ * ] - DB4 - Empty
[ * ] - DB5 - Empty
[ * ] - DB6 - Empty
[ * ] - DB7 - Empty
[ * ] - DB8 - Empty
[ * ] - DB9 - Empty
[ * ] - DB10 - Empty
[ * ] - DB11 - Empty
[ * ] - DB12 - Empty
[ * ] - DB13 - Empty
[ * ] - DB14 - Empty
[ * ] Done!

enteletaor redis dump -t xxx.xxx.xxx.xxx

Genera este error:

[ * ] ":xxxxxxx9dc9bbdc8a63247410cxxxxxx": "{�I"�_csrf_token�:�EFI"xxxxxxxUpiZaAB3bJJLqPnim5z927ETOAbWSDxxxxxxx=�;F"
[ * ] ":xxxxxxxb0ea7e8a51f440a846xxxxxxx": "{�I"�_csrf_token�:�EFI"xxxxxxx4xSn2oaMCQaGMRo3s83bj9GdyL4A5yxxxxxxx=�;F"
[ * ] "vpsXXXXXX.XXXXXX.net:24691:eab2b25b312a":
[ * ] {
[ * ] "info":
[ * ] {
[ * ] Unhandled exception: 'str' object has no attribute 'iteritems'

¿Alguna idea?

Requirements.txt - AMQP Version Requirment Not Met

Putting this here in case it helps someone in the future.

The default requirements.txt file included with enteletaor doesn't include any version information. In some environments this may cause installation to fail because a newer version of amqp is installed by pip by default than is allowed. Using a new virtualenv and Python2.7 you will get this error:

Installed /usr/local/lib/python2.7/dist-packages/enteletaor-1.1.1-py2.7.egg
Processing dependencies for enteletaor==1.1.1
error: amqp 2.0.3 is installed but amqp<2.0,>=1.4.9 is required by set(['kombu'])

The fix is to add proper version tags for amqp, so that the kombu requirment can be met.

The new requirements.txt:

six
lxml
wtforms
eventlet
colorlog
ipaddress

# MQ/Brokers requirements
redis
kombu
celery
pyzmq
#amqp
amqp<2.0,>=1.4.9

# contrib dependencies
requests
netaddr

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.