Code Monkey home page Code Monkey logo

maryam's Introduction

Build Status Version 2.5.2 GPLv3 License Python 3.10.x CII Best Practices

OWASP Maryam

OWASP Maryam is a modular open-source framework based on OSINT and data gathering. It is designed to provide a robust environment to harvest data from open sources and search engines quickly and thoroughly.

Installation

Supported OS

  • Linux
  • FreeBSD
  • Darwin
  • OSX
$ pip install maryam

Alternatively, you can install the latest version with the following command (Recommended):

pip install git+https://github.com/saeeddhqan/maryam.git

Usage

# Using dns_search. --max means all of resources. --api shows the results as json.
# .. -t means use multi-threading.
maryam -e dns_search -d ibm.com -t 5 --max --api --form 
# Using youtube. -q means query
maryam -e youtube -q "<QUERY>"
maryam -e google -q "<QUERY>"
maryam -e dnsbrute -d domain.tld
# Show framework modules
maryam -e show modules
# Set framework options.
maryam -e set proxy ..
maryam -e set agent ..
maryam -e set timeout ..
# Run web API
maryam -e web api 127.0.0.1 1313

Latest Updates

  • Added image_search module
  • Clustering, Meta Search Engine, Dark-Web Search
  • Iris: the first beta version
  • Added famous_person
  • Core speedup optimizations
  • Added setup.py

Contribution

Contributes are welcome! Here is a start guide: Development Guide You can add a new search engine to the util classes or use the current search engines to write a new module. The best help to write a new module is checking the current modules.

Roadmap

  • Improving Iris page ranking
  • Write a complete metacrawler engine based on OSINT by using the current search engines
  • Add clustering algorithms: Done
  • Web user interface

Links

To report bugs, requests, or any other issues please create an issue.

maryam's People

Contributors

0x48piraj avatar 0xcomposure avatar adviksinghania avatar bushra2001 avatar digvijaybhosale1729 avatar grogu22 avatar harshcasper avatar k4u5h1k avatar keamanansiber avatar krinistof avatar ktg-123 avatar moshaad7 avatar prince-7 avatar rachejazz avatar rakesh0x7 avatar rishi23root avatar saeeddhqan avatar sanjibansg avatar tarunxsh avatar theamanrawat avatar vikas-kundu avatar z3y50n 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

maryam's Issues

The soupsieve package is not installed.

You are late, my friends ;)
BR
So I've to use pip2 because I use pip3 to which I aliasing to pip however, do not wonder about this. ;)


root@kali:/opt/Maryam# pip2 install -r requirements
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages (from -r requirements (line 1)) (2.22.0)
Requirement already satisfied: lxml in /usr/local/lib/python2.7/dist-packages (from -r requirements (line 2)) (4.5.0)
Requirement already satisfied: bs4 in /usr/local/lib/python2.7/dist-packages (from -r requirements (line 3)) (0.0.1)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python2.7/dist-packages (from bs4->-r requirements (line 3)) (4.8.2)
Requirement already satisfied: soupsieve>=1.2 in /usr/local/lib/python2.7/dist-packages (from beautifulsoup4->bs4->-r requirements (line 3)) (1.9.5)
Requirement already satisfied: backports.functools-lru-cache; python_version < "3" in /usr/local/lib/python2.7/dist-packages (from soupsieve>=1.2->beautifulsoup4->bs4->-r requirements (line 3)) (1.6.1)


root@kali:/opt/Maryam# ./maryam
/usr/local/lib/python2.7/dist-packages/bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
'The soupsieve package is not installed. CSS selectors cannot be used.'


| \ / _ |/ ) | | |/ _ | | \
| | | | ( ( | | | | |
| ( ( | | | | | |
|
|
|| _|||| _ |_||| ||||
(____/

           v1.4.0

[7] osint modules
[4] footprint modules

[maryam][default] >
[maryam][default] >

[To Do] List of todo tasks for contributors

search classes

  1. Add gigablast.com
  2. Add sogou.com
  3. Add activesearchresults.com
  4. Add a new method for core/util/google class to extract the titles

Create an issue if you want to add each of them. You can also contribute to this list by demanding a new source on this issue.

[New Feature] GitHub Search Module

This feature will help the user to find users, organizations, repositories related to the company. This module will also find the sensitive leaked data in the repositories and code.
Please Assign this to me.

Can't use wapps feature.

I ve been trying to use wapps command in Mayram but i got UnicodeDecodeError for python 3.6 so i checked for python3.7 but got KeyError.

[maryam][default] > wapps -d example.com [!] File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode. [!] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1350: ordinal not in range(128).

The traceback isn't very helpful. Tried to browse wapps.py and module.py but no clue.
Just to verify - maryam should be run with wich python?

[New Feature] OSINT database updates

Massive improvisation can be done if we try switching from search engines to large databases. The following had clicked with me.
While this stays very much far fetched yet since huge data needs to get stored in workspaces, I'm still skeptical about this idea
Please do check:

Threatminer

IntelX

Aleph

RIPE DB

Rapid7

ThreatCrowd

This section highly needs feedback and can be started to be worked on gradually.

linkedin

could you show module search/linkedin?

[New Feature] Pastebin email search

@saeeddhqan is this format good enough for you? Or do you want me to store the paste links as well?

┬─[divya at racharch in ~/a/g/OWASP-Maryam]─[G:shodan]
╰──> λ ./maryam -e email_search -q vodafone.com -e pastebin
[*] [PASTEBIN] Searching ...
[*] EMAILS
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]

Result so far -

┬─[divya at racharch in ~/a/g/OWASP-Maryam]─[G:shodan]
╰──> λ ./maryam -e email_search -q yahoo.com -e bing,google,yahoo,yandex,metacrawler,ask,baidu,startpage,yippy,qwant,duckduckgo
[*] EMAILS
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	apn@yahoo com
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]

Using Just Pastebin:

┬─[divya at racharch in ~/a/g/OWASP-Maryam]─[G:shodan]
╰──> λ ./maryam -e email_search -q yahoo.com -e pastebin
[*] EMAILS
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]_hsieh
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]_mosed
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]_
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected]
[*] 	[email protected][
[*] 	[email protected]

DNS Brute is broken

Looks like the DNS Brute option concatenates the sub domain names wrong.
It goes wrong on line: https://github.com/saeeddhqan/Maryam/blob/master/modules/osint/dns_search.py#L94
Where the same variable is reused on line: https://github.com/saeeddhqan/Maryam/blob/master/modules/osint/dns_search.py#L144
The result of this bug is that it concatnates the subdomain in front of the url thus creating invalid url's
The following replacement of line 144 would be sufficient to fix this problem:

tmp_name = "https://{0}.{1}".format(i, host.split('://')[1])

Be warned the HTTPS is hardcoded thus in case of HTTP it would not work. (But still in the future HTTP would be obsolute because of enforced certificate errors)

License Notices?

My understanding is that Maryam is GPLv3 or any later version, but the project seems to be lacking license notices in the source files. These notices are important as they let users know which version of the license they may use the work under, and ensure that that information stays with the code even if the source files get separated from the project as a whole. You can learn how to use GNU licenses at https://www.gnu.org/licenses/gpl-howto.en.html. Thanks.

[Bug] Error in handling keyboard interrupt

When I first run a module and after gathering the results when I then try to exit from interface by using Ctrl + C. Then instead of showing
[!] Use exit command to exit (or press enter to continue)
it shows
Stopping <module name> module(press enter to continue)...
although the module has completed the execution.

[New Feature] Find CVEs

It would be very useful if the tool could search for Common Vulnerabilities and Exposures based on id or name.

Ideally in the future we could automatically detect the CVEs of a given website.

[New Feature] Adding Exploit Search Module

In addition to the CVE module by @z3y50n mentioned in #63 . We can have the following analyzer for available ioc's for existing malwares.
Link to ThreatFox
I will add this once v2.0 comes out!
(And no it does not need API key for basic searchlist)

┬─[divya at racharch in ~/a/c/crypto]
╰──> λ curl -X POST https://threatfox-api.abuse.ch/api/v1/ -d '{ "query": "malwareinfo", "malware": "FluBot", "limit": 10 }'
{
    "query_status": "ok",
    "data": [
        {
            "id": "3033",
            "ioc": "70eea8fb0b93988c1c46460922d74ca4ab2eb0f7f51be307c12932ac510cdd27",
            "threat_type": "payload",
            "threat_type_desc": "Indicator that identifies a malware sample (payload)",
            "ioc_type": "sha256_hash",
            "ioc_type_desc": "SHA256 hash of a malware sample (payload)",
            "malware": "apk.flubot",
            "malware_printable": "FluBot",
            "malware_alias": null,
            "malware_malpedia": "https:\/\/malpedia.caad.fkie.fraunhofer.de\/details\/apk.flubot",
            "confidence_level": 100,
            "first_seen": "2021-03-10 09:04:38 UTC",
            "last_seen": null,
            "reference": null,
            "reporter": "0xabc0",
            "tags": null
        },

I am also adding -

exploit db

async in framework is now a reserved keyword

Hello, when I ran your program, I got an error (with python 3.8):
./maryam
Traceback (most recent call last):
File "./maryam", line 34, in
from core import base
File "/home/user/git/Maryam/core/base.py", line 33, in
from core import framework
File "/home/user/git/Maryam/core/framework.py", line 318
async = [self.to_unicode_str(x[i]) if x[i] != None else '' for x in tdata]
^
SyntaxError: invalid syntax

so I searched a bit and found : https://docs.python.org/3/whatsnew/3.7.html
Backwards incompatible syntax changes:
async and await are now reserved keywords.

I renamed async to _async and it works now. Thanks for this fantastic program.

PS: It's my first Github issue, so not sure of if I should add more :)

[Bug]Hunter email_search not working with api key

On using email_search module using hunter engine, the following error is noticed:

[maryam][default] > email_search -q github.com -e hunter -k [REDACTED API KEY]
[*] [HUNTER] Searching in hunter...
[!] Hunter is missed!
[*] Emails
[*] Nothing to declare

Also on giving the wrong api key, ideally this section should have run of the module:
/home/path/to/Maryam/core/util/hunter.py

if 'errors' in self._json_pages:
	self.framework.error(f"[HUNTER] api key is incorrect:'self.key'")
	self.acceptable = False
	return

But again the same error is faced:

[maryam][default] > email_search -q github.com -e hunter --key [REDACTED WRONG API KEY]
[*] [HUNTER] Searching in hunter...
[!] Hunter is missed!
[*] Emails
[*] Nothing to declare

I would like to solve this issue. Please do assign this to me.

Wiki examples outdated

The examples located in the wiki page are not valid and need the following changes.

  • To searching a RegExp to the web pages

    1. set url example.com should be set domain example.com
    2. crawl option is not valid
  • Gain pdf files from search engine

    1. set company EXAMPLE should be set query EXAMPLE
    2. set type pdf should be set file pdf
    3. metacrawler option is not valid
  • DNS brute force

    1. dnsbrute, wordlist are not valid options
    2. set host example.com should be set domain example.com

[New Feature] Add spotify in search modules

Adding spotify as search module could be useful in finding the behaviour of a user, and information about artists, playlists. Could refer this article regarding use of spotify in osint.

If it seems good I would like to work on it.

Name origin

Curious as to what the inspiration for the name is, as I know it's an Arabic girl's name in use across a lot of the world.

Bing Search Engine not working

When I use the search/bing module I get this for every query

image

Also it doesn't work for other modules that use bing engine (search/linkedin as an example in the following image).

image

I would like to work on fixing that issue.

*I used a print statement to show that no links are coming from bing.
**Even though the engine isn't set to use google it always uses it so that could maybe be a separate issue

Requirements file

Can someone please include a requirements file? It's rather opaque what is needed to property run this. Thanks!

[New Feature] Improved DNS enumeration search modules

Probable good ideas I havsecuritytrails e for future improvements in dns enumeration:

urlscan : API for searching existing scans by attributes such as domains, IPs, Autonomous System (AS) numbers, hashes, etc.

rapiddns : Can query the domain name of the same IP website (support IPv6). You can also query subdomain information.

hackertarget[PAID] : This has a whole bunch of resources, I still need feedback on this

Security trails
I will start at the earliest once the above gets approved.

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.