├── README.md └── reddit.py /README.md: -------------------------------------------------------------------------------- 1 | # Reddit domain finder for Recon-ng 2 | 3 | ### Installation and usage 4 | 1. Copy `reddit.py` file to personal recon-ng module folder 5 | ``` 6 | mkdir -p ~/.recon-ng/modules/recon/hosts-hosts/ 7 | curl -o ~/.recon-ng/modules/recon/hosts-hosts/reddit.py https://raw.githubusercontent.com/t94j0/Recon-ng_Reddit/master/reddit.py 8 | ``` 9 | 10 | 2. Start recon-ng 11 | ``` 12 | ./recon-ng 13 | ``` 14 | 15 | 3. `use reddit` 16 | 4. `set SOURCE maxh.io` 17 | 5. `run` 18 | -------------------------------------------------------------------------------- /reddit.py: -------------------------------------------------------------------------------- 1 | from recon.core.module import BaseModule 2 | import urlparse 3 | import json 4 | 5 | class Module(BaseModule): 6 | meta = { 7 | 'name': 'Reddit link finder', 8 | 'author': 'Max Harley (@Max_68)', 9 | 'description': 'Finds domains that are linked in a reddit post', 10 | 'query': 'SELECT DISTINCT host FROM hosts WHERE host IS NOT NULL' 11 | } 12 | def module_run(self, hosts): 13 | total_domains = 0 14 | 15 | for host in hosts: 16 | self.verbose('Trying domain: {}'.format(host)) 17 | url = 'http://reddit.com/domain/{}.json'.format(host) 18 | 19 | resp = self.request(url) 20 | code = resp.status_code 21 | if code == 200 or code == 301: 22 | if resp.json == None: 23 | self.alert('No data was found for the url') 24 | return 25 | 26 | for child in resp.json['data']['children']: 27 | total_domains += 1 28 | permalink = child['data']['permalink'] 29 | reddit_url = child['data']['url'] 30 | h = urlparse.urlparse(reddit_url).hostname 31 | self.add_hosts(h) 32 | self.alert('Permalink: http://reddit.com{}'.format(permalink)) 33 | else: 34 | self.error('Error for domain {}'.format(url)) 35 | --------------------------------------------------------------------------------