kpcyrd / sn0int

Semi-automatic OSINT framework and package manager
https://sn0int.readthedocs.io/
GNU General Public License v3.0
2k stars 178 forks source link

Module 'info'? #170

Open 0x646e78 opened 4 years ago

0x646e78 commented 4 years ago

Coming from recon-ng here, so perhaps I've missed a piece of info in the docs, but so far I can only see high level info on a module.

For example, using shodan-certs:

I can get some high level info here:

> pkg search shodan
kpcyrd/shodan-certs (0.1.0) - 639 downloads [featured] [installed]
        Find IPs using certificates for target subdomains

It doesn't tell me if it needs an API key or not, which would be useful.

I then 'use' it, but I find no way of finding out more about it - such as api key, if I can manipulate the input to it, perhaps anything else that could be useful to know about it? recon-ng has an info when in the context of a module, which can be helpful. In this case maybe the detail such as -- Keyring-Access: shodan from the module could be used?

[sn0int][default] > use shodan-certs 
[sn0int][default][kpcyrd/shodan-certs] > 
activity      autonoscope   back          help          mod           pkg           scope         select        target        quickstart 
add           autoscope     delete        keyring       noscope       run           set           workspace     use 
$ sn0int --version
sn0int 0.18.2
kpcyrd commented 4 years ago

Sorry for the late reply. This is definitely a big todo since there's also no way to know which options can be set unless you look into the source.

I'm thinking about adding:

limakzi commented 4 years ago

@kpcyrd This is something I really miss too. Take a look at mine modules. Shodan ports scanner is fully passive, like ctlogs. On the other hands, url-metadata is aggresive. Is there anything I can help you with delivering this feature?

kpcyrd commented 4 years ago

thanks! I've broken this up into smaller issues:

@limakzi Ideally there'd be something like:

[sn0int][default] > use shodan-certs 
[sn0int][default][kpcyrd/shodan-certs] > info

I'm a bit stuck in the design phase though. Information I've been considering to include:

Input very welcome!

A naive -- Option header could look like:

-- Option: foo: describe the option here

This is easy to parse but lacks the default value and the type of the option.

The challenge with the long description is that this would require multi-line support. I'm not sure about the aesthetics, I was considering something like:

-- Description: asdf
-- Version: 0.1.0
-- License: GPL-3.0
--- Text goes here
--- in multiple lines.
---
--- And paragraphs.

function run()
    info('ohai')
end