Open upgoingstar opened 7 years ago
Putting modules into separate folders is a good idea. But be careful as the code has inter-submodule dependencies. Ex:
shodanSearch(ip)
which is a part of ipOsint.py
email_fullcontact.py
which is a part of emailOsint.py
There are 2 solutions:
domainOsint.py
wants shodanSearch(ip)
it should connect through ipOsint.py
instead of direct contact. The advantage is: when you are building a framework, these separate modules become pillars so that documentation and further development becomes easy.Also regarding code repetition, I would suggest you to remove all the main()
functions present in separate scripts. Also have the executable mode for the required files i.e. domainOsint.py
, 'emailOsint.py` etc. As of now I could see some files having executable mode even though they are rarely used.
@upgoingstar : I can contribute to this too. I have listed few suggestion:
Use templates instead of hardcoded HTML. Example do_everything functions. I would suggest something like JINJA templates.
do_everything is sequential, we could use some methods to make it async and parallel like Dask etc and makes it scaling easier from one machine to many. Although the there is no use-case of many right now.
Use proper loggers instead of print statements in the code.
Unit test cases.
Respective modules in folders. i.e. domain folder contains all modules related to domain OSINT. All these modules execute when domainOsint is used. Same goes for email, IP, username, and file.
Specific functions and structure to be used when contributing any module. This will need to be documented.
A single command, i.e. datasploit, with multiple switches should be used for triggering any OSINT test.
Remove all code repetitions.
As of now @upgoingstar and @KunalAggarwal are doing this. If someone has any idea or would like to join the force, please give us a shout.