104 |
110 | 111 |
├── .gitignore ├── LICENSE ├── README.md ├── REQUIREMENTS ├── VERSION ├── data ├── adobe_blocks.json ├── av_domains.lst ├── banner.txt ├── ghdb.json ├── gist_keywords.txt ├── github_dorks.txt ├── google_dorks.txt ├── hostnames.txt ├── suffixes.txt ├── template_html.html ├── template_map.html └── template_media.html ├── modules ├── discovery │ └── info_disclosure │ │ ├── cache_snoop.py │ │ └── interesting_files.py ├── exploitation │ └── injection │ │ ├── command_injector.py │ │ └── xpath_bruter.py ├── import │ ├── csv_file.py │ └── list.py ├── recon │ ├── companies-contacts │ │ ├── bing_linkedin_cache.py │ │ ├── jigsaw │ │ │ ├── point_usage.py │ │ │ ├── purchase_contact.py │ │ │ └── search_contacts.py │ │ └── linkedin_auth.py │ ├── companies-multi │ │ ├── github_miner.py │ │ └── whois_miner.py │ ├── contacts-contacts │ │ ├── mailtester.py │ │ ├── mangle.py │ │ └── unmangle.py │ ├── contacts-credentials │ │ ├── hibp_breach.py │ │ └── hibp_paste.py │ ├── contacts-domains │ │ └── migrate_contacts.py │ ├── contacts-profiles │ │ └── fullcontact.py │ ├── credentials-credentials │ │ ├── adobe.py │ │ ├── bozocrack.py │ │ └── hashes_org.py │ ├── domains-contacts │ │ ├── metacrawler.py │ │ ├── pgp_search.py │ │ └── whois_pocs.py │ ├── domains-credentials │ │ └── pwnedlist │ │ │ ├── account_creds.py │ │ │ ├── api_usage.py │ │ │ ├── domain_creds.py │ │ │ ├── domain_ispwned.py │ │ │ ├── leak_lookup.py │ │ │ └── leaks_dump.py │ ├── domains-domains │ │ └── brute_suffix.py │ ├── domains-hosts │ │ ├── bing_domain_api.py │ │ ├── bing_domain_web.py │ │ ├── brute_hosts.py │ │ ├── builtwith.py │ │ ├── certificate_transparency.py │ │ ├── google_site_api.py │ │ ├── google_site_web.py │ │ ├── hackertarget.py │ │ ├── mx_spf_ip.py │ │ ├── netcraft.py │ │ ├── shodan_hostname.py │ │ ├── ssl_san.py │ │ └── threatcrowd.py │ ├── domains-vulnerabilities │ │ ├── ghdb.py │ │ ├── punkspider.py │ │ ├── xssed.py │ │ └── xssposed.py │ ├── hosts-domains │ │ └── migrate_hosts.py │ ├── hosts-hosts │ │ ├── bing_ip.py │ │ ├── freegeoip.py │ │ ├── ipinfodb.py │ │ ├── resolve.py │ │ ├── reverse_resolve.py │ │ └── ssltools.py │ ├── hosts-locations │ │ └── migrate_hosts.py │ ├── hosts-ports │ │ └── shodan_ip.py │ ├── locations-locations │ │ ├── geocode.py │ │ └── reverse_geocode.py │ ├── locations-pushpins │ │ ├── flickr.py │ │ ├── instagram.py │ │ ├── picasa.py │ │ ├── shodan.py │ │ ├── twitter.py │ │ └── youtube.py │ ├── netblocks-companies │ │ └── whois_orgs.py │ ├── netblocks-hosts │ │ ├── reverse_resolve.py │ │ └── shodan_net.py │ ├── netblocks-ports │ │ ├── census_2012.py │ │ └── censysio.py │ ├── ports-hosts │ │ └── migrate_ports.py │ ├── profiles-contacts │ │ ├── dev_diver.py │ │ └── github_users.py │ ├── profiles-profiles │ │ ├── namechk.py │ │ ├── profiler.py │ │ ├── twitter_mentioned.py │ │ └── twitter_mentions.py │ ├── profiles-repositories │ │ └── github_repos.py │ ├── repositories-profiles │ │ └── github_commits.py │ └── repositories-vulnerabilities │ │ ├── gists_search.py │ │ └── github_dorks.py └── reporting │ ├── csv.py │ ├── html.py │ ├── json.py │ ├── list.py │ ├── proxifier.py │ ├── pushpin.py │ ├── xlsx.py │ └── xml.py ├── recon-cli ├── recon-ng ├── recon-rpc ├── recon-web └── recon ├── __init__.py ├── core ├── __init__.py ├── base.py ├── framework.py ├── module.py └── web │ ├── __init__.py │ ├── exports.py │ ├── reports.py │ ├── static │ ├── normalize.css │ ├── pushpin.css │ ├── pushpin.js │ ├── recon.css │ ├── recon.js │ ├── skeleton.css │ └── sorttable.js │ ├── templates │ ├── index.html │ └── pushpin.html │ ├── utils.py │ └── views.py ├── mixins ├── __init__.py ├── browser.py ├── resolver.py ├── search.py └── threads.py └── utils ├── __init__.py ├── crypto.py ├── netblock.py ├── parsers.py ├── ranges.py └── requests.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *sublime* 3 | venv/ 4 | scripts/ 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Recon-ng 2 | 3 | Recon-ng is a full-featured Web Reconnaissance framework written in Python. Complete with independent modules, database interaction, built in convenience functions, interactive help, and command completion, Recon-ng provides a powerful environment in which open source web-based reconnaissance can be conducted quickly and thoroughly. 4 | 5 | Recon-ng has a look and feel similar to the Metasploit Framework, reducing the learning curve for leveraging the framework. However, it is quite different. Recon-ng is not intended to compete with existing frameworks, as it is designed exclusively for web-based open source reconnaissance. If you want to exploit, use the Metasploit Framework. If you want to social engineer, use the Social-Engineer Toolkit. If you want to conduct reconnaissance, use Recon-ng! See the [Usage Guide](https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Usage%20Guide) for more information. 6 | 7 | Recon-ng is a completely modular framework and makes it easy for even the newest of Python developers to contribute. Each module is a subclass of the "module" class. The "module" class is a customized "cmd" interpreter equipped with built-in functionality that provides simple interfaces to common tasks such as standardizing output, interacting with the database, making web requests, and managing API keys. Therefore, all the hard work has been done. Building modules is simple and takes little more than a few minutes. See the [Development Guide](https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Development%20Guide) for more information. 8 | 9 | ## Sponsors 10 | 11 | [](http://www.blackhillsinfosec.com) 12 | 13 | Consulting | Research | Development | Training 14 | 15 | ## Donations 16 | 17 | Recon-ng is free software. However, large amounts of time and effort go into its continued development. If you are interested in financialy supporting the development of Recon-ng, please send your donation to tjt1980[at]gmail.com via PayPal. Thank you. 18 | -------------------------------------------------------------------------------- /REQUIREMENTS: -------------------------------------------------------------------------------- 1 | dicttoxml 2 | dnspython 3 | jsonrpclib 4 | lxml 5 | mechanize 6 | slowaes 7 | XlsxWriter 8 | olefile 9 | PyPDF2 10 | flask 11 | unicodecsv 12 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | __version__ = '4.9.2' 2 | 3 | # ex. x.y.z 4 | # x - Incremented for changes requiring migration. (major revision) 5 | # y - Incremented for the addition of new features. (minor revision) 6 | # z - Incremented for minor code changes and bug fixes. (hotfix) 7 | # Subordinate items reset to 0 when superior items increment. 8 | -------------------------------------------------------------------------------- /data/av_domains.lst: -------------------------------------------------------------------------------- 1 | www.es-latest-3.sophos.com/update 2 | www.es-web.sophos.com 3 | www.es-web.sophos.com.edgesuite.net 4 | www.es-web-2.sophos.com 5 | www.es-web-2.sophos.com.edgesuite.net 6 | www.dnl-01.geo.kaspersky.com 7 | www.downloads2.kaspersky-labs.com 8 | www.liveupdate.symantecliveupdate.com 9 | www.liveupdate.symantec.com 10 | www.update.symantec.com 11 | www.update.nai.com 12 | www.download797.avast.com 13 | www.guru.avg.com 14 | www.osce8-p.activeupdate.trendmicro.com 15 | www.forefrontdl.microsoft.com 16 | es-latest-3.sophos.com/update 17 | es-web.sophos.com 18 | es-web.sophos.com.edgesuite.net 19 | es-web-2.sophos.com 20 | es-web-2.sophos.com.edgesuite.net 21 | dnl-01.geo.kaspersky.com 22 | downloads2.kaspersky-labs.com 23 | liveupdate.symantecliveupdate.com 24 | liveupdate.symantec.com 25 | update.symantec.com 26 | update.nai.com 27 | download797.avast.com 28 | guru.avg.com 29 | osce8-p.activeupdate.trendmicro.com 30 | forefrontdl.microsoft.com 31 | -------------------------------------------------------------------------------- /data/banner.txt: -------------------------------------------------------------------------------- 1 | 2 | _/_/_/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/ 3 | _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/ 4 | _/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/_/_/ 5 | _/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/ 6 | _/ _/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/ 7 | 8 | 9 | /\ 10 | / \\ /\ 11 | Sponsored by... /\ /\/ \\V \/\ 12 | / \\/ // \\\\\ \\ \/\ 13 | // // BLACK HILLS \/ \\ 14 | www.blackhillsinfosec.com 15 | -------------------------------------------------------------------------------- /data/gist_keywords.txt: -------------------------------------------------------------------------------- 1 | password 2 | Password 3 | PASSWORD 4 | -------------------------------------------------------------------------------- /data/github_dorks.txt: -------------------------------------------------------------------------------- 1 | # https://twitter.com/egyp7/status/628955613528109056 2 | # rails secret token 3 | filename:secret_token.rb config 4 | language:ruby secret_token 5 | 6 | # private keys 7 | path:.ssh/id_rsa BEGIN 8 | 9 | # https://twitter.com/TekDefense/status/294556153151647744 10 | # md5 hash of most used password 123456 11 | e10adc3949ba59abbe56e057f20f883e 12 | 13 | # http://seclists.org/fulldisclosure/2014/Mar/343 14 | # database passwords 15 | mysql.binero.se 16 | define("DB_PASSWORD" 17 | 18 | # http://seclists.org/fulldisclosure/2013/Jun/15 19 | # possible SQL injection 20 | extension:php mysql_query $_GET 21 | 22 | # http://blog.conviso.com.br/2013/06/github-hacking-for-fun-and-sensitive.html 23 | # private keys 24 | extension:pem private 25 | extension:conf FTP server configuration 26 | # email addresses 27 | extension:xls mail 28 | extension:sql mysql dump 29 | # possible PHP backdoor 30 | stars:>1000 forks:>100 extension:php "eval(preg_replace(" 31 | 32 | # https://twitter.com/lanmaster53/status/629102944252772356 33 | # Flask apps with possible SSTI vulns 34 | extension:py flask render_template_string 35 | -------------------------------------------------------------------------------- /data/google_dorks.txt: -------------------------------------------------------------------------------- 1 | # directory indexing 2 | intitle:index.of 3 | 4 | # config files 5 | ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf | ext:rdp | ext:cfg | ext:txt | ext:ora | ext:ini 6 | 7 | # db files 8 | ext:sql | ext:dbf | ext:mdb 9 | 10 | # logs 11 | ext:log 12 | 13 | # backups 14 | ext:bkf | ext:bkp | ext:bak | ext:old | ext:backup 15 | 16 | # sql errors 17 | intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:"Warning: mysql_query()" | intext:"Warning: pg_connect()" 18 | 19 | # docs 20 | ext:doc | ext:docx | ext:odt | ext:pdf | ext:rtf | ext:sxw | ext:psw | ext:ppt | ext:pptx | ext:pps | ext:csv 21 | -------------------------------------------------------------------------------- /data/template_html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |