Giter Site home page Giter Site logo

j3ssie / osmedeus Goto Github PK

View Code? Open in Web Editor NEW
5.1K 134.0 856.0 28.53 MB

A Workflow Engine for Offensive Security

Home Page: https://osmedeus.org/

License: MIT License

Makefile 0.33% Go 99.67%
scanning reconnaissance penetration-testing security-tools pentest-tool hacking-tool information-gathering hacking osint bugbounty

osmedeus's Introduction

Osmedeus Core Engine

Osmedeus
Osmedeus - A Workflow Engine for Offensive Security


🔥 What is Osmedeus?

Osmedeus is a Workflow Engine for Offensive Security. It was designed to build a foundation with the capability and flexibility that allows you to build your own reconnaissance system and run it on a large number of targets.

📖 Documentation & FAQ

You can check out the documentation at docs.osmedeus.org and the Frequently Asked Questions at here for more information.

📦 Installation

NOTE that you need some essential tools like curl, wget, git, zip and login as root to start

bash <(curl -fsSL https://raw.githubusercontent.com/osmedeus/osmedeus-base/master/install.sh)

Build the engine from the source

Make sure you installed golang >= v1.17

go install -v github.com/j3ssie/osmedeus@latest

Check out this page for more the install on other platforms and docker image.

🚀 Key Features of Osmedeus

  • Significantly speed up your recon process
  • Organize your scan results
  • Efficiently to customize and optimize your recon process
  • Seamlessly integrate with new public and private tools
  • Easy to scale across large number of targets
  • Easy to synchronize the results across many places

💡 Usage

# Example Scan Commands:
  ## Start a simple scan with default 'general' flow
  osmedeus scan -t sample.com

  ## Start a general scan but exclude some of the module
  osmedeus scan -t sample.com -x screenshot -x spider

  ## Start a scan directly with a module with inputs as a list of http domains like this https://sub.example.com
  osmedeus scan -m content-discovery -t http-file.txt

  ## Initiate the scan using a speed option other than the default setting
  osmedeus scan -f vuln --tactic gently -t sample.com
  osmedeus scan --threads-hold=10 -t sample.com
  osmedeus scan -B 5 -t sample.com

  ## Start a simple scan with other flow
  osmedeus scan -f vuln -t sample.com
  osmedeus scan -f extensive -t sample.com -t another.com
  osmedeus scan -f urls -t list-of-urls.txt

  ## Scan list of targets
  osmedeus scan -T list_of_targets.txt
  osmedeus scan -f vuln -T list-of-targets.txt

  ## Performing static vulnerability scan and secret scan on a git repo
  osmedeus scan -m repo-scan -t https://github.com/j3ssie/sample-repo
  osmedeus scan -m repo-scan -t /tmp/source-code-folder
  osmedeus scan -m repo-scan -T list-of-repo.txt

  ## Scan for CIDR with file contains CIDR with the format '1.2.3.4/24'
  osmedeus scan -f cidr -t list-of-ciders.txt
  osmedeus scan -f cidr -t '1.2.3.4/24' # this will auto convert the single input to the file and run

  ## Directly run on vuln scan and directory scan on list of domains
  osmedeus scan -f domains -t list-of-domains.txt
  osmedeus scan -f vuln-and-dirb -t list-of-domains.txt

  ## Use a custom wordlist
  osmedeus scan -t sample.com -p 'wordlists={{Data}}/wordlists/content/big.txt'

  ## Use a custom wordlist
  cat list_of_targets.txt | osmedeus scan -c 2

  ## Start a normal scan and backup entire workflow folder to the backup folder
  osmedeus scan --backup -f domains -t list-of-subdomains.txt

  ## Start the scan with chunk inputs to review the output way more much faster
  osmedeus scan --chunk --chunk-parts 20 -f cidr -t list-of-100-cidr.txt

  ## Continuously run the scan on a target right after it finished
  osmedeus utils cron --for --cmd 'osmedeus scan -t example.com'

  ## Backing up all workspaces
  ls ~/workspaces-osmedeus | osmedeus report compress


# Scan Usage:
  osmedeus scan -f [flowName] -t [target]
  osmedeus scan -m [modulePath] -T [targetsFile]
  osmedeus scan -f /path/to/flow.yaml -t [target]
  osmedeus scan -m /path/to/module.yaml -t [target] --params 'port=9200'
  osmedeus scan -m /path/to/module.yaml -t [target] -l /tmp/log.log
  osmedeus scan --tactic aggressive -m module -t [target]
  cat targets | osmedeus scan -f sample

# Practical Scan Usage:
  osmedeus scan -T list_of_targets.txt -W custom_workspaces
  osmedeus scan -t target.com -w workspace_name --debug
  osmedeus scan -f general -t sample.com
  osmedeus scan --tactic aggressive -f general -t sample.com
  osmedeus scan -f extensive -t sample.com -t another.com
  cat list_of_urls.txt | osmedeus scan -f urls
  osmedeus scan --threads-hold=15 -f cidr -t 1.2.3.4/24
  osmedeus scan -m ~/.osmedeus/core/workflow/test/dirbscan.yaml -t list_of_urls.txt
  osmedeus scan --wfFolder ~/custom-workflow/ -f your-custom-workflow -t list_of_urls.txt
  osmedeus scan --chunk --chunk-part 40 -c 2 -f cidr -t list-of-cidr.txt

💡 For full help message, please run: osmedeus --hh or osmedeus scan --hh
📖 Documentation can be found here: https://docs.osmedeus.org

Check out this page for full usage and the Practical Usage to see how to use Osmedeus in a practical way.

💬 Community & Discussion

Join Our Discord server here

💎 Donation & Sponsor

Osmedeus

Check out for a couple of donation methods here to get a premium package

License

Osmedeus is made with ♥ by @j3ssiejjj and it is released under the MIT license.

osmedeus's People

Contributors

catmandx avatar j3ssie avatar marmelatze avatar n00b-bot 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  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

osmedeus's Issues

Nothing to show

hello.. thanks for this project... i can not see results on web gui screen...
osmedeus

waiting for subdomain scanning

hi i get this "waiting for subdomain scanning module" ... it keeps going ..had to control C to stop it.

Screenshot at 2019-06-08 21-48-51

^CTraceback (most recent call last):
File "./osmedeus.py", line 161, in

main()

File "./osmedeus.py", line 157, in main
parsing_argument(args)
File "./osmedeus.py", line 77, in parsing_argument
single_target(options)
File "./osmedeus.py", line 97, in single_target
routine.normal(options)
File "/home/logan/github/Osmedeus/core/routine.py", line 32, in normal
subdomain.SubdomainScanning(options)
File "/home/logan/github/Osmedeus/modules/subdomain.py", line 23, in init
self.initial()
File "/home/logan/github/Osmedeus/modules/subdomain.py", line 36, in initial
self.run()
File "/home/logan/github/Osmedeus/modules/subdomain.py", line 51, in run
utils.just_waiting(self.options, self.module_name, seconds=5)
File "/home/logan/github/Osmedeus/core/utils.py", line 140, in just_waiting
time.sleep(seconds)
KeyboardInterrupt
Fatal Python error: could not acquire lock for <_io.BufferedWriter name=''> at interpreter shutdown, possibly due to daemon threads

Thread 0x00007f0c35101700 (most recent call first):
File "/home/logan/github/Osmedeus/core/execute.py", line 28 in run
File "/home/logan/github/Osmedeus/core/rest/cmd.py", line 83 in post
File "/home/logan/github/Osmedeus/core/rest/decorators.py", line 18 in function_name
File "/usr/local/lib/python3.7/dist-packages/flask_jwt_extended/view_decorators.py", line 103 in wrapper
File "/usr/local/lib/python3.7/dist-packages/flask_restful/init.py", line 595 in dispatch_request
File "/usr/lib/python3/dist-packages/flask/views.py", line 88 in view
File "/usr/local/lib/python3.7/dist-packages/flask_restful/init.py", line 480 in wrapper
File "/usr/lib/python3/dist-packages/flask/app.py", line 1799 in dispatch_request
File "/usr/lib/python3/dist-packages/flask/app.py", line 1813 in full_dispatch_request
File "/usr/lib/python3/dist-packages/flask/app.py", line 2292 in wsgi_app
File "/usr/lib/python3/dist-packages/flask/app.py", line 2309 in call
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 258 in execute
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 270 in run_wsgi
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 328 in handle_one_request
File "/usr/lib/python3.7/http/server.py", line 426 in handle
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 293 in handle
File "/usr/lib/python3.7/socketserver.py", line 720 in init
File "/usr/lib/python3.7/socketserver.py", line 360 in finish_request
File "/usr/lib/python3.7/socketserver.py", line 650 in process_request_thread
File "/usr/lib/python3.7/threading.py", line 865 in run
File "/usr/lib/python3.7/threading.py", line 917 in _bootstrap_inner
File "/usr/lib/python3.7/threading.py", line 885 in _bootstrap

Current thread 0x00007f0c3813c740 (most recent call first):
Aborted

Missing file

osmedeus_error1
This error occurs when I try to install and update. Could you please show me how to fix it?

Issue with setup tools curl

Error:
setuptools.sandbox.UnpickleableException: ConfigurationError('Could not run curl-config: [Errno 2] No such file or directory',)
OS: Linux Mint 19.1

环境配置完毕后一直出现这个?

微信截图_20190429123441

  • Logging: off
  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off
    PS:系统kali-Linux

API keys

I have seen that amass for example can use API keys form AlienVault, shodan, etc.
But I cannot find the config file to add them?

Is it in the config.conf you need to add them or do I need to create a config.ini file for it?

some suggestions

  • IP proxy pool to confront so many WAF
  • Web Ui Submit task[lists]

一直出现这个

[+] Installing amass
package golang.org/x/net/html: unrecognized import path "golang.org/x/net/html" (https fetch: Get https://golang.org/x/net/html?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/oauth2: unrecognized import path "golang.org/x/oauth2" (https fetch: Get https://golang.org/x/oauth2?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
[+] Installing subfinder
[+] Installing gobuster
package golang.org/x/crypto/ssh/terminal: unrecognized import path "golang.org/x/crypto/ssh/terminal" (https fetch: Get https://golang.org/x/crypto/ssh/terminal?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
[+] Installing aquatone
package golang.org/x/net/html: unrecognized import path "golang.org/x/net/html" (https fetch: Get https://golang.org/x/net/html?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/net/publicsuffix: unrecognized import path "golang.org/x/net/publicsuffix" (https fetch: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

环境Kali2019.1

ScreenShot the target: save to path

When I test some domain (-t option), I got the error and then osmedeus hangs.

--~~~=[  ScreenShot the target ]=~~~--
Traceback (most recent call last):
  File "./osmedeus.py", line 151, in <module>
    main()
  File "./osmedeus.py", line 147, in main
    parsing_argument(args)
  File "./osmedeus.py", line 53, in parsing_argument
    single_target(options)
  File "./osmedeus.py", line 84, in single_target
    routine.normal(options)
  File "/home/dizcza/tools/Osmedeus/core/routine.py", line 43, in normal
    screenshot.ScreenShot(options)
  File "/home/dizcza/tools/Osmedeus/modules/screenshot.py", line 25, in __init__
    self.initial()
  File "/home/dizcza/tools/Osmedeus/modules/screenshot.py", line 46, in initial
    self.screenshots(self.is_direct)
  File "/home/dizcza/tools/Osmedeus/modules/screenshot.py", line 69, in screenshots
    if not utils.not_empty_file(input_file):
  File "/home/dizcza/tools/Osmedeus/core/utils.py", line 158, in not_empty_file
    fpath = os.path.normpath(filepath)
  File "/usr/lib/python3.7/posixpath.py", line 340, in normpath
    path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not bool

Environment

python3.7
Kali, latest updates
osmedeus: git master branch


Issues I ran into with -t example.com:
1.

--==[ Check the output: /home/dizcza/tools/Osmedeus/workspaces/example.com/cors/example.com-corstest.txt
[+] Writing /home/dizcza/tools/Osmedeus/workspaces/example.com/cors/std-example.com-corstest.std
[+] Writing /home/dizcza/tools/Osmedeus/core/rest/storages/example.com/activities.json
Traceback (most recent call last):
  File "/home/dizcza/tools/Osmedeus/plugins/CORScanner/cors_scan.py", line 8, in <module>
    from common.corscheck import CORSCheck
  File "/home/dizcza/tools/Osmedeus/plugins/CORScanner/common/corscheck.py", line 1, in <module>
    import requests, json, os, inspect, tldextract
ImportError: No module named tldextract
--~~~=:>[ Starting scraping IP from Censys ]>
Traceback (most recent call last):
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/ip-osint.py", line 146, in <module>
    main()
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/ip-osint.py", line 142, in main
    parsing_argument(args)
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/ip-osint.py", line 91, in parsing_argument
    single_target()
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/ip-osint.py", line 101, in single_target
    cencys.Censys(options)
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/modules/cencys.py", line 16, in __init__
    self.initial()
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/modules/cencys.py", line 19, in initial
    real_data = self.get_real_content()
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/modules/cencys.py", line 51, in get_real_content
    response = core.open_with_chrome(url)
  File "/home/dizcza/tools/Osmedeus/plugins/IPOsint/modules/core.py", line 166, in open_with_chrome
    browser = webdriver.Chrome(executable_path=chromedriver, options=options)
  File "/home/dizcza/.local/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/home/dizcza/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/dizcza/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/dizcza/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/dizcza/.local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
  (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 4.19.0-kali4-amd64 x86_64)

Getting Error While Running

Here is the error
./osmedeus.py -t example.com
Traceback (most recent call last):
File "./osmedeus.py", line 182, in
main()
File "./osmedeus.py", line 97, in main
config.banner(version, author)
File "/root/Osmedeus/core/config.py", line 54, in banner
""".format(C, G, P, R, B, GR, version, author))
UnicodeEncodeError: 'ascii' codec can't encode character '\xaf' in position 1005: ordinal not in range(128)

Run core/app.py as a deamon?

Hey, is it possible to run the app.py as a daemon started by init.d or systemctl?
(python3 app.py run gives an error that run is not reconized)

usage: app.py [-h] [-b BIND] [-p PORT] [--debug] [--nossl] [--remote]
app.py: error: unrecognized arguments: run

'python3' is not recognized as an internal or external command

←[1;32m--~~~=[ ←[1;36mStarting Flask API←[1;32m ]=~~~--
'python3' is not recognized as an internal or external command,
operable program or batch file.
←[1;34m[]←[1;0m Loading config file from: C:\Users\root.osmedeus\config.conf
←[1;31m[-]←[1;0m Fail to set config, Something went wrong with Flask API !
←[1;34m[
]←[1;0m Visit this page for common issue: https://github.com/j3ssie/Osm
edeus/wiki/Common-Issues

Getting error in SubdomainScanning module

--==[ Check the output: /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/raw-reacted.com/-gobuster.txt
[+] Writing /home/ec2-user/Osmedeus/core/rest/storages/activities.json
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module
[] Waiting for SubdomainScanning module
[
] Waiting for SubdomainScanning module

Resolving 0 Unique Hosts found

Total 0 Unique subdomains found for reacted.com/

--==[ Check the output: /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/reacted.com/-subfinder.txt
[+] Writing /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/std-reacted.com/-subfinder.std
[-] Writing fail: /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/std-reacted.com/-subfinder.std
[+] Writing /home/ec2-user/Osmedeus/core/rest/storages/activities.json
[+] Unique result
[+] Writing /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/final-reacted.com/.txt
[-] Writing fail: /home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/final-reacted.com/.txt
--~~~=:>[ Conclusion for SubdomainScanning ]>
Traceback (most recent call last):
File "./osmedeus.py", line 161, in
main()
File "./osmedeus.py", line 157, in main
parsing_argument(args)
File "./osmedeus.py", line 77, in parsing_argument
single_target(options)
File "./osmedeus.py", line 97, in single_target
routine.normal(options)
File "/home/ec2-user/Osmedeus/core/routine.py", line 32, in normal
subdomain.SubdomainScanning(options)
File "/home/ec2-user/Osmedeus/modules/subdomain.py", line 26, in init
self.conclude()
File "/home/ec2-user/Osmedeus/modules/subdomain.py", line 112, in conclude
with open(all_subdomain, 'r+') as s:
FileNotFoundError: [Errno 2] No such file or directory: '/home/ec2-user/Osmedeus/workspaces/reacted.com/subdomain/final-reacted.com/.txt'

Problem running this remotely

i tried to run this remotely using

python3 core/app.py -b 0.0.0.0 -p 5000

and change core/config.conf into:

[Server]
username = secret
password = secret
remote_api = http://0.0.0.0:5000

but the web still send request into 127.0.0.1 api

no module named flask

installed on

Linux mrxdo1 4.4.0-145-generic #171-Ubuntu SMP Tue Mar 26 12:43:40 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

getting no Flask,
also pip installed flask, its in my packages,
Flask==1.1.1

is osemdeus using a virtualenv?


[root@mrxdo1 ~/dev/Osmedeus]$ ./osmedeus.py -t xxxx.com


                       `@@`
                      @@@@@@
                    .@@`  `@@.
                    :@      @:
                    :@  :@  @:                       
                    :@  :@  @:                       
                    :@      @:                             
                    `@@.  .@@`
                      @@@@@@
                        @@
                     @  @@  @               
                    +@@ @@ @@+                    
                 @@:@#@,@@,@#@:@@           
                ;@+@@`#@@@@#`@@+@;
                @+ #@@@@@@@@@@# +@
               @@  @+`@@@@@@`+@  @@
               @.  @   ;@@;   @  .@
              #@  '@          @;  @#

                     
             Osmedeus v1.4 by @j3ssiejjj

                    ¯\_(ツ)_/¯
        
--~~~=[  Starting Flask API ]=~~~--
Traceback (most recent call last):
  File "core/app.py", line 15, in <module>
    from flask import abort
ImportError: No module named 'flask'

ModuleNotFoundError: No module named 'flask'

[*] New config file created: core/config.conf
--~~~=:>[ Starting Flask API ]>
Traceback (most recent call last):
File "core/app.py", line 15, in
from flask import abort
ModuleNotFoundError: No module named 'flask'
[+] Make new directory: /home/kitsploit/osmedus/Osmedeus/workspaces/example.net
[-] Fail to set config, Please check Flask API !!!
root@kali:/home/kitsploit/osmedus/Osmedeus# sudo pip install flask
Requirement already satisfied: flask in /usr/lib/python2.7/dist-packages (1.0.2)

/bin/sh: 1: None/bin... not found

/bin/sh: 1: None/bin/subfinder: not found
Something went wrong with the command below:
None/bin/subfinder -d site.com -t 100 -o /opt/Osmedeus/workspaces/site.com/subdomain/site.com-subfinder.txt -nW
/bin/sh: 1: None/bin/gobuster: not found
Something went wrong with the command below:
None/bin/gobuster -m dns -np -t 100 -w /opt/Osmedeus/plugins/wordlists/shorts.txt -u site.com -o /opt/Osmedeus/workspaces/site.com/subdomain/raw-site.com-gobuster.txt
/bin/sh: 1: None/bin/amass: not found
Something went wrong with the command below:
None/bin/amass -active -d site.com -o /opt/Osmedeus/workspaces/site.com/subdomain/sitecom-amass.txt

LOGIN

What is the login password for 127.0.0.1:5000?

How to run list of targets?

So I have a file with a list of domain names in every new line. How do I have it do reconnaissance on all of the domains in the file?

error in ubuntu (/bin/sh: 1: None/bin/amass: not found)

I get the following error in Ubuntu:

root@:~/Osmedeus# ./osmedeus.py -m subdomain -t google.com

---<---<--@ Target: google.com @-->--->---
--~~~=:>[ Scanning Subdomain ]>
[+] Starting amass
[*] Execute: None/bin/amass -active -d google.com -o /root/Osmedeus/workspaces/google.com/subdomain/google.com-amass.txt
/bin/sh: 1: None/bin/amass: not found
Something went wrong with the command below:
None/bin/amass -active -d google.com -o /root/Osmedeus/workspaces/google.com/subdomain/google.com-amass.txt
--==[ Check the output: /root/Osmedeus/workspaces/google.com/subdomain/google.com-amass.txt
127.0.0.1 - - [08/Mar/2019 15:47:16] "POST /cmd HTTP/1.1" 200 -
[+] Starting subfinder
[*] Execute: None/bin/subfinder -d google.com -t 100 -o /root/Osmedeus/workspaces/google.com/subdomain/google.com-subfinder.txt -nW
/bin/sh: 1: None/bin/subfinder: not found
Something went wrong with the command below:
None/bin/subfinder -d google.com -t 100 -o /root/Osmedeus/workspaces/google.com/subdomain/google.com-subfinder.txt -nW
--==[ Check the output: /root/Osmedeus/workspaces/google.com/subdomain/google.com-subfinder.txt
127.0.0.1 - - [08/Mar/2019 15:47:16] "POST /cmd HTTP/1.1" 200 -
[+] Starting gobuster
[*] Execute: None/bin/gobuster -m dns -np -t 100 -w /root/Osmedeus/plugins/wordlists/shorts.txt -u google.com -o /root/Osmedeus/workspaces/google.com/subdomain/raw-google.com-gobuster.txt
/bin/sh: 1: None/bin/gobuster: not found
Something went wrong with the command below:
None/bin/gobuster -m dns -np -t 100 -w /root/Osmedeus/plugins/wordlists/shorts.txt -u google.com -o /root/Osmedeus/workspaces/google.com/subdomain/raw-google.com-gobuster.txt

Got error on vps

Hi.

I got the below error when i tried to run

Traceback (most recent call last):
File "./osmedeus.py", line 8, in
from core import routine
File "/root/Osmedeus/core/routine.py", line 10, in
from modules import portscan
File "/root/Osmedeus/modules/portscan.py", line 11, in
from libnmap.parser import NmapParser
ImportError: No module named 'libnmap'

[-] Fail to set config, Please check Flask API !!!

I have an error when try to run this tool for the 1st time on Kali Linux.

root@lon-host1:~/pentest/web/Osmedeus# ./osmedeus.py -t duckduckgo.com
...
[*] Config file detected: core/config.conf
--~~~=:>[ Starting Flask API ]>
[+] Make new directory: /root/pentest/web/Osmedeus/workspaces/duckduckgo.com
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
Traceback (most recent call last):
  File "core/app.py", line 93, in <module>
    app.run(debug=True)  # important to mention debug=True
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 988, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
  File "/usr/local/lib/python3.7/dist-packages/werkzeug/_reloader.py", line 322, in run_with_reloader
    reloader = reloader_loops[reloader_type](extra_files, interval)
  File "/usr/local/lib/python3.7/dist-packages/werkzeug/_reloader.py", line 213, in __init__
    from watchdog.observers import Observer
ImportError: cannot import name 'Observer' from 'watchdog.observers' (unknown location)
[-] Fail to set config, Please check Flask API !!!

Here is my Osmedeus/core/config.conf

[Enviroments]
cwd = /root/pentest/web/Osmedeus
workspaces = /root/pentest/web/Osmedeus/workspaces/
workspace = /root/pentest/web/Osmedeus/workspaces/duckduckgo.com
plugins_path = ${CWD}/plugins
go_path = /root/go/bin
github_api_key = None

[Resources]
directory_full = ${Enviroments:plugins_path}/wordlists/dir-all.txt
domain_full = ${Enviroments:plugins_path}/wordlists/all.txt
domain_short = ${Enviroments:plugins_path}/wordlists/shorts.txt

[Slack]
local_name = JJ
bot_token = None
log_channel = None
log_name = logcmd
status_channel = None
status_name = status
stds_channel = None
stds_name = stds
report_channel = None
report_name = report
verbose_report_channel = None
verbose_report_name = verbose-report

[Mode]
speed = quick
module = None
debug = False

[Target]
target = duckduckgo.com
target_list = None
company = duckduckgo.com
strip_target = duckduckgo.com
git_target = None
burpstate_target = None
ip = 46.51.179.90
output = duckduckgo.com
more = 

How to fix this issue?

+Feature+Option (TOR access and proxy settings)

I recently wrote a similar code. I "stole" osmedeus ideas (Congrats!), so I'll try to collaborate : D

1 - Allowing use of a proxy is essential for anyone who uses whitelists in their security technologies.

2 - Check if it is possible to access the page through the TOR network.

Something like...
"
def get_tor_session():

session = req.session()

session.proxies = {'http':  'socks5://127.0.0.1:9050',
                   'https': 'socks5://127.0.0.1:9050'}
return session

def test_tor(url):

tor = "unknown"
ts = get_tor_session()
uagent = "configs here"

tr= ts.get(url, headers=uagent, verify=False, timeout=10)

if tr is not None:
    tor_status = tr.status_code
    tor_content = tr.text
    tor_header = dict(tr.headers)
    tor_conn = tr.headers['connection']

if tor_status == 200 or tor_conn != "close":
    tor = "Pass (Block please!)"
elif "captcha" in tor_content:
    tor = "Captcha (How about Block? :p)"
elif "Access Denied" in tor_content:
    tor = "B l o c k e d !  s2"
else:
    tor = "Unknown"

print (tor)
ts.close()
"
OK! Sorry! I'm not a developer! :p

Feature Request & Suggestions

Been trying it out and so far I like the idea. I do feel like it's a bit of information overload and doesnt really help with parsing the information in a way to help you look for bugs. It might because mine freezes or takes too long and never finishes. i really like the way that whatweb parses out the relevant information so it would be nice if you could find a way to do that as well as have it grab content using meg and parse out headers and any parameters found. I'm picturing two types of flows here. 1. Your currently flow that pretty much grabs everything with a more complete hierarchy of multiple steps based on findings. 2. A second more customized flow that allows you to create a custom hierarchy with either your own logic. Here is an example:

subfinder
 |----subjack
 |----assetfinder 
               |-----httprobe|whatweb (IP & DNS)
                             |-----fuff|gobuster
                             |         \----nikto (IP & DNS)
                             |                     \---- Logic (if URL contains X)
                             |                                 \----droopscan(IP & DNS)
                             |                                   \----wpscan(IP & DNS)
                             |-----meg
                                        |----nikto (IP & DNS)
                                        |----snallygaster (IP & DNS)
                                        |---- Logic (if URL contains X)
                                        |           \----droopscan(IP & DNS)
                                        |             \----wpscan(IP & DNS)
                                        |----proxy
                                        |           \----burp (IP & DNS)
                                        |----gf 

Hopefully that makes sense, since you already have some logic in place but it would be nice to be able to customize by adding logic for more details actions as well as adding additional tools. other options might include.

  • Checking robots.txt and robots meta tag for disallow paths and adding them to wordlists and scanning request and content enumeration. (Parsero could do some of this)

Also it might be nice to have the following tools as part of the modules:
snallygaster
nikto
whatweb
droopscan
parsero
fuff (to replace wfuzz)

I'm sorry for the long message and all the crazy ideas. If you would actually be interested in anything I mentioned and don't mind my intermediate python skills I'm always willing to chip in. I've been working on my own version of reconscan(its a popular automation script for OSCP) which might also be helpful for enumeration of scanning services.

??

[*] Config file detected: core/config.conf
--~~~=:>[ Starting Flask API ]>

  • Logging: off
  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off
    Traceback (most recent call last):
    File "core/app.py", line 129, in
    app.run(host=host, port=port, debug=debug, ssl_context=(cert_path, key_path))
    File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 990, in run_simple
    inner()
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 943, in inner
    fd=fd,
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 786, in make_server
    host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 679, in init
    HTTPServer.init(self, server_address, handler)
    File "/usr/lib/python3.7/socketserver.py", line 452, in init
    self.server_bind()
    File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
    socketserver.TCPServer.server_bind(self)
    File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
    OSError: [Errno 98] Address already in use

Documentation on GUI workspace

Hi I saw that there the GUI workspace mode screenshot but the documentation and commands have no mention of it.
Would like to run it independently to check on the status of scans. Would be helpful

problem running the framework

Screenshot_17

Hello, i was trying to run the framework but it gives me those errors, i installed everything doing ./install.sh.

problem with slow speed mode

hello

when I run the Osmedeous tool in slow mode, I see the osmedeous tool skip some tools like massdns and it uses a short dictionary (see below pic)

command: python3 osmedeous.py -t bing.com -s 'All'

Capture

Error when running the tool on Kali Linux 2019.01

./osmedeus.py -m subdomain -t <target.com> 1 ↵

                   `@@`
                  @@@@@@
                .@@`  `@@.
                :@      @:
                :@  :@  @:                       
                :@  :@  @:                       
                :@      @:                             
                `@@.  .@@`
                  @@@@@@
                    @@
                 @  @@  @               
                +@@ @@ @@+                    
             @@:@#@,@@,@#@:@@           
            ;@+@@`#@@@@#`@@+@;
            @+ #@@@@@@@@@@# +@
           @@  @+`@@@@@@`+@  @@
           @.  @   ;@@;   @  .@
          #@  '@          @;  @#

                 
         Osmedeus v1.0 by @j3ssiejjj

                ¯\_(ツ)_/¯

[*] Config file detected: core/config.conf
--~~~=:>[ Staarting Flask API ]>
[-] Something wrong to connect to {0}
Traceback (most recent call last):
File "/root/PenTest/OSINT/Osmedeus/core/config.py", line 136, in parsing_config
ip = socket.gethostbyname(strip_target)
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "./osmedeus.py", line 151, in
main()
File "./osmedeus.py", line 147, in main
parsing_argument(args)
File "./osmedeus.py", line 50, in parsing_argument
options = config.parsing_config(config_path, args)
File "/root/PenTest/OSINT/Osmedeus/core/config.py", line 139, in parsing_config
utils.print_bad("Something wrong to connect to {0}").format(target)
AttributeError: 'NoneType' object has no attribute 'format'

  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: on
  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    Traceback (most recent call last):
    File "core/app.py", line 238, in
    app.run(debug=True) # important to mention debug=True
    File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/serving.py", line 812, in run_simple
    reloader_type)
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/_reloader.py", line 266, in run_with_reloader
    reloader = reloader_loops[reloader_type](extra_files, interval)
    File "/usr/local/lib/python3.7/dist-packages/werkzeug/_reloader.py", line 171, in init
    from watchdog.observers import Observer
    ImportError: cannot import name 'Observer' from 'watchdog.observers' (unknown location)

Actions doesn't work

In the Summary tab, near the subdomains 'EDIT' & 'DETAILS' buttons are not working.
actions

Password not working

Looking at the template-conf.conf file I was able to change the user and password.

But when I start the scan and try to access the server the new password doesn't work. I did try with the default "super_secret_ too but that also didn't work.

Am I doing something wrong or is there a known bug?

Thanks

No config.conf file in root directory

I try to access the browser gui but i cannot find the credentials.
Clicking at the info with "Where to find credentials" it says that i can find them in config.conf file but there no as such in the root dir.
Should i rename the "template-config.conf" file???

./osmedeus.py -m vuln -I / large databases, hanging, web ui?

If the -I database contains big list of several /24 IP addresses, has it been tested and working well? Also, what is the best way to see the results in the end and search through them, compare them? Through this command, the :5000 port doesn't seem to be open on the host, neither did I find how to open the web service in documentation.

Thanks!

Osmedeus gets stuck when running EyeWitness

So when I just run ./osmedeus.py -t target.com , the process gets stuck at EyeWitness. When I tried to run it by myself, just copying the command Osmedeus executes, it seems that eyewitness asks you wether to overwrite the directory or not, because Osmedeus set Eyewitness directory as Osmedeus/workspaces/target.com/screenshot, and it's already has a folder created by Aquatone, which is target.com-aquatone.html (yes, that's a folder). Am I doing something wrong?
Also, the command Osmedeus executes
python /root/Documents/Osmedeus/plugins/EyeWitness/EyeWitness.py -f /root/Documents/Osmedeus/workspaces/target.com/subdomain/final-target.com.txt --web --prepend-https --threads 20 -d /root/Documents/Osmedeus/workspaces/target.com/screenshot/

All python3 package installed ok, still got error "Fail to set config, Something went from with Flask API !!!"

python3 core/app.py Runs ok

  • Logging: off
  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off

But still get error, when run "python3 osmedeus.py -t google.com"

[*] Config file detected: core/config.conf
--~~~=:>[ Starting Flask API ]>

  • Logging: off
  • Serving Flask app "app" (lazy loading)
  • Environment: production
    WARNING: Do not use the development server in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off
    [-] Fail to set config, Something went from with Flask API !!!
    [-] Visit this page for common issue: https://github.com/j3ssie/Osmedeus/wiki/Common-Issues

What's the matter ?

-m vuln error "Nmap VulnScan"

--~~~=:>[ Vulnerable Scanning ]>
[+] Starting Nmap VulnScan
Traceback (most recent call last):
File "./osmedeus.py", line 158, in
main()
File "./osmedeus.py", line 154, in main
parsing_argument(args)
File "./osmedeus.py", line 74, in parsing_argument
single_target(options)
File "./osmedeus.py", line 88, in single_target
routine.specific(options, module)
File "/media/jordan/2.1/Pentest/Osmedeus/core/routine.py", line 89, in specific
vulnscan.VulnScan(options)
File "/media/jordan/2.1/Pentest/Osmedeus/modules/vulnscan.py", line 17, in init
self.initial()
File "/media/jordan/2.1/Pentest/Osmedeus/modules/vulnscan.py", line 26, in initial
self.nmap_vuln()
File "/media/jordan/2.1/Pentest/Osmedeus/modules/vulnscan.py", line 32, in nmap_vuln
main_json['Modules'][self.module_name] = []
TypeError: 'NoneType' object is not subscriptable
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/usr/lib/python3.7/multiprocessing/popen_fork.py", line 28, in poll
pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt

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.