lanmaster53/recon-ng

Problem on modules load recon/profiles-profiles/profiler

gioguanuo opened this issue · 3 comments

Sorry if I am posting something of stupid. I have this problem on recon-ng
[recon-ng][reconnaissance] > modules load recon/profiles-profiles/profiler
[recon-ng][reconnaissance][profiler] > options set SOURCE MarkZuckerberg
SOURCE => MarkZuckerberg
[recon-ng][reconnaissance][profiler] > run

[*] Retrieving https://raw.githubusercontent.com/WebBreacher/WhatsMyName/master/web_accounts_list.json...

Looking Up Data For: Markzuckerberg

[!] Extra data: line 1 column 4 - line 1 column 15 (char 3 - 14).
[!] Something broken? See https://github.com/lanmaster53/recon-ng/wiki/Troubleshooting#issue-reporting.
[recon-ng][reconnaissance][profiler] >

This issue was already reported (along with a fix) here: #177

Sorry sir,
I have modified the python script as the instruction but the problem persist.
Please what can I investigate?
Thank you in advance

from recon.core.module import BaseModule
from recon.mixins.threads import ThreadingMixin
from urllib.parse import quote_plus

class Module(BaseModule, ThreadingMixin):

meta = {
    'name': 'OSINT HUMINT Profile Collector',
    'author': 'Micah Hoffman (@WebBreacher)',
    'version': '1.0',
    'description': 'Takes each username from the profiles table and searches a variety of web sites for those users. The list of valid sites comes from the parent project at https://git>
    'comments': (
        'Note: The global timeout option may need to be increased to support slower sites.',
        'Warning: Using this module behind a filtering proxy may cause false negatives as some of these sites may be blocked.',
    ),
    'query': 'SELECT DISTINCT username FROM profiles WHERE username IS NOT NULL',
}

def module_run(self, usernames):
    # retrieve list of sites
    # url = 'https://raw.githubusercontent.com/WebBreacher/WhatsMyName/master/web_accounts_list.json'
    url = 'https://raw.githubusercontent.com/WebBreacher/WhatsMyName/main/wmn-data.json'
    self.verbose(f"Retrieving {url}...")
    resp = self.request('GET', url)
    for user in usernames: 
        self.heading(f"Looking up data for: {user}")
        self.thread(resp.json()['sites'], user)


			
def module_thread(self, site, user):
    d = dict(site)
    if d['valid'] == True:
        self.verbose(f"Checking: {d['name']}")
        url = d['uri_check'].replace('{account}', quote_plus(user))
        resp = self.request('GET', url, allow_redirects=False)
        if resp.status_code == int(d['e_code']):
            self.debug(f"Codes matched {resp.status_code} {d['e_code']}")
            if d['e_string'] in resp.text or d['e_string'] in resp.headers:
                self.insert_profiles(username=user, url=url, resource=d['name'], cat=d['cat'])
                self.query('DELETE FROM profiles WHERE username = ? and url IS NULL', (user,))