dhondta / dronesploit

Drone pentesting framework console
GNU General Public License v3.0
1.45k stars 246 forks source link

No module enabled at startup #26

Closed amritabithi closed 2 years ago

amritabithi commented 2 years ago

Hello,

I am not used to building projects with Python and after following the installation instructions I am only left with the same folder I initially downloaded with no additional files, and then when trying to run 'dronesploit' as a command I cannot get this to recognize anything in any of the folders, I just get the error message: dronesploit: command not found

I beieve I have installed all of the dependencies as well before trying the test run / building.

Is there some kind of expicit command to bulid this project assuming the environment does not have any assumptions about buliding like env variables, etc? I have asked this same questions to a couple of other projects also that I had to pause because I cannot figure out how to build them, so if the installations steps could be more verbose that would be great, as I see a lot of other people lost also on this question, but nobody has been able to answer it yet at least on these other projects I was trying to run.

( The one-line install scripts are visually tidy and nice but I think anybody who is missing a certain dependency or environment variable is never able to run things like composer packages or this Python package because we do not know what to start and there are no answers because it is "too simple" of a question maybe? )

ronny530 commented 2 years ago

How to run the drone spoilt there is no proper instructions guide !!

amritabithi commented 2 years ago

There is a more detailed overview of the commands in the /docs folder that you can view here - https://github.com/dhondta/dronesploit/blob/master/docs/quickstart.md

In that page there is a section on the --help command that explains how to use it for the different commands, as I think you can basically type something like "dronesploit scan --help" and get help on scanning as a made up example since I have not used it yet. Here is the link to that section in the same page - https://github.com/dhondta/dronesploit/blob/master/docs/quickstart.md#2-getting-help

( Or to put it simply you can use the help command from different places in the dronesploit program and it will show help for the part of the program or command you are currently using. )

dhondta commented 2 years ago

Hi @amritabithi

Hello,

I am not used to building projects with Python and after following the installation instructions I am only left with the same folder I initially downloaded with no additional files, and then when trying to run 'dronesploit' as a command I cannot get this to recognize anything in any of the folders, I just get the error message: dronesploit: command not found

[...]

Did you pip install dronesploit ? This installs every dependency but also the console script. Basically, the error you get occurs because this script was not installed.

dhondta commented 2 years ago

Hi @ronny530

How to run the dronesploit there is no proper instructions guide !!

This is an open issue ; documentation is indeed the stumbling stone of this project, but I'm struggling to find time to improve this. I apologize for that... As @amritabithi mentioned, the quick start tells you the most important things you need to know as a user. The documentation mostly lacks for developers.

amritabithi commented 2 years ago

Hi @ronny530

How to run the dronesploit there is no proper instructions guide !!

This is an open issue ; documentation is indeed the stumbling stone of this project, but I'm struggling to find time to improve this. I apologize for that... As @amritabithi mentioned, the quick start tells you the most important things you need to know as a user. The documentation mostly lacks for developers.

Thank you so much! I started from scratch and just ran: pip install dronesploit And now when I type the command 'dronesploit' it starts up and I see the welcome screen.

Before I was using the command "pip3 install dronesploit" which it shows on the page at https://github.com/dhondta/dronesploit and for some reason the "pip3" version wasn't working on my system, but just plain "pip" does.

amritabithi commented 2 years ago

It does seem however that none of the commands work for using a module and all modules come disabled, with no information on how to enable them.

Using "show options" within a project throws the exception "Borderless table not defined."

Trying to use any module throws the exception: "KeyError(find_targets)"

I have it on my other computer so it is hard to copy and paste exactly but it does seem broken on: /.local/lib/python3.8/site-packages/tinyscript/helpers/dictionaries.py on line 305 in getitem

dhondta commented 2 years ago

Please provide the output of the following commands :

$ pip show tinyscript | grep Version
$ pip show dronesploit | grep Version

NB: Or pip3 if relevant...

amritabithi commented 2 years ago

Please provide the output of the following commands :

$ pip show tinyscript | grep Version
$ pip show dronesploit | grep Version

NB: Or pip3 if relevant...

Thank you for your response, here are my versions first, and I just did a fresh installation of dronesploit using the pip command installer.

[14:20:56] amrita:~$ pip show tinyscript | grep Version
Version: 1.24.12
[14:21:13] amrita:~$ pip show dronesploit | grep Version
Version: 1.1.5

I did a fresh install of dronesploit using the command "pip3 install dronesploit" , and then started up dronesploit and tried to issue the command "use stop_video" to see if I could enable a module, but I ran in to the same error that I get for each command which is the 'keyerror' exception shown at the bottom of the stack trace below.

I also ran "show modules" and they all show as not enabled by default. Below is my output from starting and then running the 'use stop_video' command:

[!] There are some issues ; use 'show issues' to see more details
dronesploit > use stop_video                                                       
[-] ('stop_video',)
Traceback (most recent call last):
  File "/home/amrita/.local/lib/python3.8/site-packages/tinyscript/helpers/dictionaries.py", line 302, in __getitem__
    raise AttributeError
AttributeError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/amrita/.local/lib/python3.8/site-packages/sploitkit/core/console.py", line 361, in run
    obj.run(*args)
  File "/home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/module.py", line 41, in run
    new_mod, old_mod = Module.get_modules(module), self.module
  File "/home/amrita/.local/lib/python3.8/site-packages/sploitkit/core/module.py", line 135, in get_modules
    return cls.modules[path or ""]
  File "/home/amrita/.local/lib/python3.8/site-packages/tinyscript/helpers/dictionaries.py", line 305, in __getitem__
    raise KeyError(parts)
KeyError: ('stop_video',)
dronesploit >  
dhondta commented 2 years ago

Hi @amritabithi Arf, this indicates indeed that the command does not exist. Note that I should definitely handle this exception in a nice-looking colored error for the sake of visibility as it does not come from tinyscript/helpers/dictionaries.py anyway but well from SploitKit while loading the registry of available modules. It may come from the install folder that is not handled in a right way, therefore not pointing the Module class to the right location for loading modules.

Normally, you should see (unless you already plugged a WiFi antenna ; in this case, you should get auxiliary modules to be enabled) :

terminal

Way ahead :

┌──(kali㉿kali)-[~/Desktop]
└─$ dronesploit --help
Dronesploit 1.1.5
Author   : Alexandre D'Hondt (alexandre.dhondt@gmail.com)
Copyright: © 2019-2020 A. D'Hondt
License  : GNU Affero General Public License v3.0

Dronesploit framework's launcher script.

usage: dronesploit [--dev] [-h] [--help] [-v]

optional arguments:
  --dev  development mode (default: False)

extra arguments:
  -h             show usage message and exit
  --help         show this help message and exit
  -v, --verbose  verbose mode (default: False)
[...]
00:00:01.121                      core.entity    DEBUG Loading Python source: /home/kali/.local/lib/python3.9/site-packages/sploitkit/base/models
00:00:01.123                      core.entity   DETAIL Registered model 'user'
00:00:01.124                      core.entity   DETAIL Registered model 'email'
00:00:01.124                      core.entity   DETAIL Registered model 'password'
00:00:01.124                      core.entity   DETAIL Registered basemodel 'user_email'
[...]

We are interested in the "Loading Python source" DEBUG messages.

amritabithi commented 2 years ago

Here is the full output from starting with the --dev and --verbose flags:

00:00:01.065                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/models
00:00:01.068                      core.entity   DETAIL Registered model 'user'
00:00:01.069                      core.entity   DETAIL Registered model 'email'
00:00:01.070                      core.entity   DETAIL Registered model 'password'
00:00:01.071                      core.entity   DETAIL Registered basemodel 'user_email'
00:00:01.071                      core.entity   DETAIL Registered basemodel 'user_password'
00:00:01.072                      core.entity   DETAIL Registered model 'organization'
00:00:01.073                      core.entity   DETAIL Registered model 'unit'
00:00:01.074                      core.entity   DETAIL Registered model 'employee'
00:00:01.074                      core.entity   DETAIL Registered basemodel 'employee_unit'
00:00:01.075                      core.entity   DETAIL Registered basemodel 'employee_email'
00:00:01.076                      core.entity   DETAIL Registered basemodel 'employee_user'
00:00:01.077                      core.entity   DETAIL Registered model 'host'
00:00:01.078                      core.entity   DETAIL Registered model 'port'
00:00:01.079                      core.entity   DETAIL Registered model 'service'
00:00:01.079                      core.entity   DETAIL Registered basemodel 'host_port'
00:00:01.080                      core.entity   DETAIL Registered basemodel 'service_port'
00:00:01.081                      core.entity   DETAIL Registered model 'note'
00:00:01.082                      core.entity   DETAIL Registered basemodel 'organization_note'
00:00:01.083                      core.entity   DETAIL Registered basemodel 'note_host'
00:00:01.084                      core.entity   DETAIL Registered basemodel 'note_user'
00:00:01.102                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/session.py
00:00:01.103                      core.entity   DETAIL Registered console 'session_console'
00:00:01.103                      core.entity   DETAIL Registered command 'background'
00:00:01.104                      core.entity   DETAIL Registered command 'session'
00:00:01.104                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/module.py
00:00:01.105                      core.entity   DETAIL Registered console 'module_console'
00:00:01.105                      core.entity   DETAIL Registered command 'use'
00:00:01.105                      core.entity   DETAIL Registered command 'module_command'
00:00:01.106                      core.entity   DETAIL Registered command 'run'
00:00:01.107                      core.entity   DETAIL Registered command 'show'
00:00:01.107                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/project.py
00:00:01.107                      core.entity   DETAIL Registered console 'project_console'
00:00:01.108                      core.entity   DETAIL Registered command 'root_command'
00:00:01.109                      core.entity   DETAIL Registered command 'project_root_command'
00:00:01.110                      core.entity   DETAIL Registered command 'archive'
00:00:01.110                      core.entity   DETAIL Registered command 'delete'
00:00:01.111                      core.entity   DETAIL Registered command 'load'
00:00:01.112                      core.entity   DETAIL Registered command 'select'
00:00:01.113                      core.entity   DETAIL Registered command 'show'
00:00:01.114                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/root.py
00:00:01.115                      core.entity   DETAIL Registered command 'help'
00:00:01.115                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/recording.py
00:00:01.116                      core.entity   DETAIL Registered command 'record_status'
00:00:01.117                     core.command   DETAIL Registered command alias 'record'
00:00:01.118                      core.entity   DETAIL Registered command 'root_project_command'
00:00:01.119                      core.entity   DETAIL Registered command 'record'
00:00:01.120                      core.entity   DETAIL Registered command 'replay'
00:00:01.121                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/utils.py
00:00:01.122                      core.entity   DETAIL Registered command 'edit'
00:00:01.124                      core.entity   DETAIL Registered command 'history'
00:00:01.125                      core.entity   DETAIL Registered command 'shell'
00:00:01.127                      core.entity   DETAIL Registered command 'stats'
00:00:01.128                      core.entity   DETAIL Registered command 'debug_command'
00:00:01.131                      core.entity   DETAIL Registered command 'logs'
00:00:01.133                      core.entity   DETAIL Registered command 'pydbg'
00:00:01.135                      core.entity   DETAIL Registered command 'state'
00:00:01.137                      core.entity   DETAIL Registered command 'dev_command'
00:00:01.139                      core.entity   DETAIL Registered command 'collect'
00:00:01.141                      core.entity   DETAIL Registered command 'dict'
00:00:01.143                      core.entity   DETAIL Registered command 'memory'
00:00:01.143                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/sploitkit/base/commands/general.py
00:00:01.146                      core.entity   DETAIL Registered command 'back'
00:00:01.148                      core.entity   DETAIL Registered command 'exit'
00:00:01.148                     core.command   DETAIL Registered command alias 'quit'
00:00:01.150                      core.entity   DETAIL Registered command 'help'
00:00:01.150                     core.command   DETAIL Registered command alias '?'
00:00:01.152                      core.entity   DETAIL Registered command 'search'
00:00:01.155                      core.entity   DETAIL Registered command 'show'
00:00:01.157                      core.entity   DETAIL Registered command 'set'
00:00:01.159                      core.entity   DETAIL Registered command 'unset'
00:00:01.163                      core.entity   DETAIL Registered command 'setg'
00:00:01.166                      core.entity   DETAIL Registered command 'unsetg'
00:00:01.166                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/dronesploit/__init__.py
00:00:01.167                      core.entity   DETAIL Registered console 'dronesploit_console'
00:00:01.167                      core.entity    DEBUG Loading Python source: /home/amrita/.local/lib/python3.8/site-packages/dronesploit/_src
00:00:01.171                      core.entity   DETAIL Registered command 'state'
00:00:01.174                      core.entity   DETAIL Registered module 'wifi_module'
00:00:01.175                      core.entity   DETAIL Registered module 'wifi_attack_module'
00:00:01.177                      core.entity   DETAIL Registered command 'connect'
00:00:01.183                      core.entity   DETAIL Registered command 'disconnect'
00:00:01.188                      core.entity   DETAIL Registered command 'password'
00:00:01.191                      core.entity   DETAIL Registered command 'scan'
00:00:01.197                      core.entity   DETAIL Registered command 'targets'
00:00:01.201                      core.entity   DETAIL Registered command 'toggle'
00:00:01.203                      core.entity   DETAIL Registered module 'wpa2psk_crack'
00:00:01.204                      core.entity   DETAIL Registered module 'deauth'
00:00:01.205                      core.entity   DETAIL Registered module 'deauth_any'
00:00:01.207                      core.entity   DETAIL Registered module 'sniff_module'
00:00:01.208                      core.entity   DETAIL Registered module 'find_ssids'
00:00:01.209                      core.entity   DETAIL Registered module 'find_targets'
00:00:01.211                      core.entity   DETAIL Registered module 'drone_module'
00:00:01.213                      core.entity   DETAIL Registered module 'dji_module'
00:00:01.215                      core.entity   DETAIL Registered module 'tello_module'
00:00:01.216                      core.entity   DETAIL Registered module 'change_ap_password'
00:00:01.217                      core.entity   DETAIL Registered module 'change_ap_ssid'
00:00:01.220                      core.entity   DETAIL Registered module 'emergency_stop'
00:00:01.222                      core.entity   DETAIL Registered module 'get_sys_info'
00:00:01.224                      core.entity   DETAIL Registered module 'land'
00:00:01.226                      core.entity   DETAIL Registered module 'takeoff'
00:00:01.230                      core.entity   DETAIL Registered module 'hobbico_module'
00:00:01.231                      core.entity   DETAIL Registered module 'cme_module'
00:00:01.234                      core.entity   DETAIL Registered module 'cme_update_module'
00:00:01.236                      core.entity   DETAIL Registered module 'flitt_module'
00:00:01.238                      core.entity   DETAIL Registered module 'flitt_command_module'
00:00:01.240                      core.entity   DETAIL Registered module 'change_datetime'
00:00:01.242                      core.entity   DETAIL Registered module 'change_ap_password'
00:00:01.244                      core.entity   DETAIL Registered module 'change_ap_ssid'
00:00:01.249                      core.entity   DETAIL Registered module 'get_sys_info'
00:00:01.251                      core.entity   DETAIL Registered module 'power_off'
00:00:01.255                      core.entity   DETAIL Registered module 'stop_video'
00:00:01.258                      core.entity   DETAIL Registered module 'change_datetime'
00:00:01.261                      core.entity   DETAIL Registered module 'change_ap_password'
00:00:01.264                      core.entity   DETAIL Registered module 'change_ap_ssid'
00:00:01.267                      core.entity   DETAIL Registered module 'get_sys_info'
00:00:01.270                      core.entity   DETAIL Registered module 'power_off'
00:00:01.273                      core.entity   DETAIL Registered module 'stop_video'
00:00:01.277                      core.entity   DETAIL Registered module 'firmware_update'
00:00:01.280                      core.entity   DETAIL Registered module 'firmware_dos'
00:00:01.284                      core.entity   DETAIL Registered module 'telnet_dos'
00:00:01.290                     core.command   DETAIL Unregistered command 'module/module-command'
00:00:01.291                     core.command   DETAIL Unregistered command 'root/root-command'
00:00:01.291                     core.command   DETAIL Unregistered command 'root/project-root-command'
00:00:01.291                     core.command   DETAIL Unregistered command 'project/root-project-command'
00:00:01.291                     core.command   DETAIL Unregistered command 'general/debug-command'
00:00:01.291                     core.command   DETAIL Unregistered command 'general/dev-command'
00:00:01.294                      core.module   DETAIL Unregistered module 'auxiliary/wifi/wifi_module'
00:00:01.294                      core.module   DETAIL Unregistered module 'auxiliary/wifi/wifi_attack_module'
00:00:01.294                      core.module   DETAIL Unregistered module 'auxiliary/wifi/sniff_module'
00:00:01.294                      core.module   DETAIL Unregistered module 'None/drone_module'
00:00:01.295                      core.module   DETAIL Unregistered module 'None/dji_module'
00:00:01.295                      core.module   DETAIL Unregistered module 'command/dji/tello/tello_module'
00:00:01.295                      core.module   DETAIL Unregistered module 'None/hobbico_module'
00:00:01.295                      core.module   DETAIL Unregistered module 'command/hobbico/cme/cme_module'
00:00:01.296                      core.module   DETAIL Unregistered module 'exploit/hobbico/cme/cme_update_module'
00:00:01.296                      core.module   DETAIL Unregistered module 'exploit/hobbico/flitt/flitt_module'
00:00:01.296                      core.module   DETAIL Unregistered module 'command/hobbico/flitt/flitt_command_module'

    -=[ 5 auxiliary (5 disabled) ]=-
    -=[ 18 command (18 disabled) ]=-
    -=[ 3 exploit (3 disabled)   ]=-

[!] There are some issues ; use 'show issues' to see more details
[#] Starting DronesploitConsole[139890070168672]
dronesploit > 
dhondta commented 2 years ago

OK, in the current state, I see that all the modules are loaded but disabled at startup, meaning that requirements are not satisfied. Can you please also give the output of the command "show issues" ? I think that you don't have any required tool that the modules rely on. For instance, is aircrack-ng installed on your system ?

amritabithi commented 2 years ago

I installed aircrack-ng and that opened up the modules to be available, and I am now able to explore the commands and use them. I still need to learn how the modules work and things but it appears to all be working now..

For other people that need to install aircrack-ng on Ubuntu, do not follow the aircrack-ng repository's instructions as they point to a missing or outdated version on their page, use this generic command with the additional version information removed:

sudo apt-get install aircrack-ng

( Also here is the output of the "show issues" command in case this is still helpful )

[!] There are some issues ; use 'show issues' to see more details
dronesploit > show issues                                                          
Modules: Deauth, DeauthAny, FindSsids, FindTargets, Wpa2pskCrack
- At least one interface in monitor mode is required

dronesploit >  

Thank you again for the help!!!

dhondta commented 2 years ago

I added a warning on the README related to this issue. Thank you for your kind collaboration.