From 4ac08da5a951e6d6a9bdedd323ea98a69c4487df Mon Sep 17 00:00:00 2001 From: G <52905881+giga-a@users.noreply.github.com> Date: Mon, 11 Jan 2021 12:02:06 -0800 Subject: [PATCH] [auto-b] fixed python & NodeJS CLI --websites "all" - ref 719ad252 --- README.md | 15 ++++++++------- app.js | 28 ++++++++++++++++++---------- app.py | 29 +++++++++++++++++------------ info | 4 ++-- 4 files changed, 45 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 687bec2..e94efe8 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,17 @@ API and Web App for analyzing & finding a person profile across +300 social media websites. It includes different string analysis and detection modules, you can choose which combination of modules to use during the investigation -The detection modules utilize a rating mechanism based on different detection techniques, which produces a rate value that starts from 0 to 100 (No-Maybe-Yes) - This model produces less *False Positive* comparing with other models +The detection modules utilize a rating mechanism based on different detection techniques, which produces a rate value that starts from 0 to 100 (No-Maybe-Yes) This project could help in investigating profiles related to suspicious or malicious activities such as [cyberbullying](https://en.wikipedia.org/wiki/Wikipedia:Cyberbullying), [cybergrooming](https://de.wikipedia.org/wiki/Cyber-Grooming) & [cyberstalking](https://en.wikipedia.org/wiki/Cyberstalking), [spreading misinformation](https://en.wikipedia.org/wiki/Misinformation). And, *"It's currently used by some law enforcement agencies in countries where resources are limited"* **Pull Requests are welcomed!** ## Updates -- Added a new refactored version 👏👏👏 +- Added --websites "all" for python & NodeJS CLI (You can scan ALL the websites within 2~10 seconds) 👏👏👏 +- Added a new refactored version - Added special detection for google - Added more customization to the CLI python version (It's a lot easier to integrate using the JSON output switch) -- Added Custom Search Query -- Added similarity checking to FindOrigins ## Security Testing @@ -48,15 +47,17 @@ Profile images **will not** be blurred. If you want them to be blurred, turn tha - Multi Layers Detections (OCR, Normal, Advanced & Special) - Find Profile using Multiple Techniques (Fast & Slow) - Profile Screenshot, Title, Info and Website Description -- Find Name Origins & Common words by Language +- Find Name Origins, Name Similarity & Common words by Language - Custom user-agent, proxy, timeout & implicit wait - Python CLI & NodeJS CLI (Limited to FindUserProfilesFast option) - Grid Option for Faster Checking (Limited to docker-compose) 👏 -- Dump Logs to folder or terminal (prettified) +- Dump Logs to Folder or Terminal (prettified) - [Wiki](https://github.com/qeeqbox/social-analyzer/wiki) ## Special Detections -- Facebook, @gmail and google +- Facebook (Phone number, name or profile name +- Gmail (example@gmail.com) +- Google (example@example.com) ## Install and run as web app (NodeJS + NPM + Firefox) ```bash diff --git a/app.js b/app.js index ee841ea..8a355e7 100644 --- a/app.js +++ b/app.js @@ -367,16 +367,24 @@ async function check_user_cli(argv) { 'option': 'FindUserProfilesFast,' + argv.output } } - await helper.parsed_sites.forEach(async function(value, i) { - helper.parsed_sites[i].selected = "false" - if (argv.websites.length > 0) { - await argv.websites.split(' ').forEach(item => { - if (helper.parsed_sites[i].url.toLowerCase().includes(item.toLowerCase())) { - helper.parsed_sites[i].selected = "true" - } - }); - } - }); + + if (argv.websites == "all"){ + await helper.parsed_sites.forEach(async function(value, i) { + helper.parsed_sites[i].selected = "true" + }); + } + else{ + await helper.parsed_sites.forEach(async function(value, i) { + helper.parsed_sites[i].selected = "false" + if (argv.websites.length > 0) { + await argv.websites.split(' ').forEach(item => { + if (helper.parsed_sites[i].url.toLowerCase().includes(item.toLowerCase())) { + helper.parsed_sites[i].selected = "true" + } + }); + } + }); + } ret = await fastscan.find_username_normal(req) if (typeof ret === 'undefined' || ret === undefined || ret.length == 0) { diff --git a/app.py b/app.py index 6b245ee..229e0f2 100644 --- a/app.py +++ b/app.py @@ -37,14 +37,14 @@ LOG = getLogger("social-analyzer") @contextmanager def ignore_excpetion(*exceptions): - ''' - catch excpetion - ''' - try: - yield - except exceptions as error: - #print("{} {} {}".format(datetime.utcnow(), EXCLAMATION_MARK, error)) - pass + ''' + catch excpetion + ''' + try: + yield + except exceptions as error: + #print("{} {} {}".format(datetime.utcnow(), EXCLAMATION_MARK, error)) + pass def check_errors(on_off=None): def decorator(func): @@ -147,10 +147,15 @@ def check_user_cli(parsed): temp_keys = {"found": 0,"link": "","rate": "","title": "","text": ""}; req = {"body": {"uuid": str(uuid4()),"string": parsed.username,"option": "FindUserProfilesFast"}} setup_logger(req["body"]["uuid"],True) - for site in PARSED_SITES: - for temp in parsed.websites.split(" "): - if temp in site["url"]: - site["selected"] = "true" + + if parsed.websites == "all": + for site in PARSED_SITES: + site["selected"] = "true" + else: + for site in PARSED_SITES: + for temp in parsed.websites.split(" "): + if temp in site["url"]: + site["selected"] = "true" find_username_normal(req, parsed) while not QUEUE.empty(): items = QUEUE.get() diff --git a/info b/info index c8c00ba..59ed8aa 100644 --- a/info +++ b/info @@ -1,4 +1,4 @@ -{"version":"2021.V.2.10", +{"version":"2021.V.2.11", "build":"pass", "test":"pass", "grid_test":"pass", @@ -6,4 +6,4 @@ "detections":"939", "special":"3", "awaiting_verification":"22", - "auto_testing":"bb581703-6333-4d78-bb30-e20a9e846145"} + "auto_testing":"7734d352-8446-4cda-99f1-73b5a263ac31"}