| 1 | <p align="center"> <img src="https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/socialanalyzerlogo_.png"></p> |
| 2 | |
| 3 | Social Analyzer - API, CLI, and Web App for analyzing & finding a person's profile across +1000 social media \ websites. It includes different analysis and detection modules, and you can choose which modules to use during the investigation process. |
| 4 | |
| 5 | 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 module is intended to have fewer false positives. |
| 6 | |
| 7 | The analysis and public extracted information from this OSINT tool could help investigate profiles related to suspicious or malicious activities such as cyberbullying, cyber grooming, cyberstalking, and spreading misinformation. |
| 8 | |
| 9 | `This project is currently used by some law enforcement agencies in countries where resources are limited - The detection database is different than the one shared here..` |
| 10 | |
| 11 | ## So·cial Me·di·a |
| 12 | Websites and applications that enable users to create and share content or to participate in social networking - Oxford Dictionary |
| 13 | |
| 14 | ## Structure |
| 15 | <img src="https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/structure.png"> |
| 16 | |
| 17 | |
| 18 | ## APP (Preferred!) |
| 19 | Standard localhost WEB APP url: http://0.0.0.0:9005/app.html |
| 20 | |
| 21 | <img src="https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/intro_fast.gif" style="max-width:768px"/> |
| 22 | |
| 23 | ## CLI |
| 24 | <img src="https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/cli.gif" style="max-width:768px"/> |
| 25 | |
| 26 | ## Features |
| 27 | - String & name analysis (Permutations and Combinations) |
| 28 | - Find a profile using multiple techniques (HTTPS library & Webdriver) |
| 29 | - Multi profile search (Used for correlation - any combination separated with "," ) |
| 30 | - Multilayers detections (OCR, normal, advanced & special) |
| 31 | - Visualized profile information using Ixora (Metadata & Patterns) |
| 32 | - Metadata & Patterns extraction (Added from Qeeqbox OSINT project) |
| 33 | - Force-directed Graph for Metadata (Needs ExtractPatterns) |
| 34 | - Search by top ranking or by country (Alexa Ranking) |
| 35 | - Search by type (adult, music, etc.. - automated websites stats) |
| 36 | - Profiles stats and static info (Category country) |
| 37 | - Cross Metadata stats (Added from Qeeqbox OSINT project) |
| 38 | - Auto-flirtation to unnecessary output (Enable javascript etc..) |
| 39 | - Search engine lookup (Google API - optional) |
| 40 | - Custom search queries (Google API & DuckDuckGo API - optional) |
| 41 | - Profile screenshot, title, info, and website description |
| 42 | - Find name origins, name similarity & common words by language |
| 43 | - Find possible profile\person age (Limited analysis) |
| 44 | - Custom user-agent, proxy, timeout & implicit wait |
| 45 | - Python CLI & NodeJS CLI (limited to FindUserProfilesFast option) |
| 46 | - Screenshots of detected profile (The latest version of Chrome must be installed) |
| 47 | - Grid option for faster checking (limited to docker-compose) |
| 48 | - Dump logs to folder or terminal (prettified) |
| 49 | - Adjust finding\getting profile workers (default 15) |
| 50 | - Re-checking option for failed profiles |
| 51 | - Filter profiles by good, maybe, and bad |
| 52 | - Save the analysis as a JSON file |
| 53 | - Simplified web interface and CLI |
| 54 | - And, more!! |
| 55 | |
| 56 | ## Special Detections |
| 57 | - Facebook (Phone number, name, or profile name) |
| 58 | - Gmail (example@gmail.com) |
| 59 | - Google (example@example.com) |
| 60 | |
| 61 | ## Install & Run |
| 62 | ### Linux (As Node WebApp) |
| 63 | ```bash |
| 64 | sudo apt-get update |
| 65 | #Depedning on your Linux distro, you may or may not need these 2 lines |
| 66 | sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common |
| 67 | sudo add-apt-repository ppa:mozillateam/ppa -y |
| 68 | sudo apt-get install -y firefox-esr tesseract-ocr git nodejs npm |
| 69 | git clone https://github.com/qeeqbox/social-analyzer.git |
| 70 | cd social-analyzer |
| 71 | npm update |
| 72 | npm install |
| 73 | npm start |
| 74 | ``` |
| 75 | |
| 76 | ### Linux (As Node CLI) |
| 77 | ```bash |
| 78 | sudo apt-get update |
| 79 | #Depedning on your Linux distro, you may or may not need these 2 lines |
| 80 | sudo DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common |
| 81 | sudo add-apt-repository ppa:mozillateam/ppa -y |
| 82 | sudo apt-get install -y firefox-esr tesseract-ocr git nodejs npm |
| 83 | git clone https://github.com/qeeqbox/social-analyzer.git |
| 84 | cd social-analyzer |
| 85 | npm install |
| 86 | nodejs app.js --username "johndoe" |
| 87 | #or |
| 88 | nodejs app.js --username "johndoe,janedoe" --metadata |
| 89 | #or |
| 90 | nodejs app.js --username "johndoe,janedoe" --metadata --top 100 |
| 91 | #or |
| 92 | nodejs app.js --username "johndoe" --type "adult" |
| 93 | ``` |
| 94 | |
| 95 | ### Linux (As python package) |
| 96 | ```bash |
| 97 | sudo apt-get update |
| 98 | sudo apt-get install python3 python3-pip |
| 99 | pip3 install social-analyzer |
| 100 | python3 -m social-analyzer --username "johndoe" |
| 101 | #or |
| 102 | python3 -m social-analyzer --username "johndoe" --metadata |
| 103 | #or |
| 104 | python3 -m social-analyzer --username "johndoe" --metadata --top 100 |
| 105 | #or |
| 106 | python3 -m social-analyzer --username "johndoe" --type "adult" |
| 107 | #or |
| 108 | python3 -m social-analyzer --username "johndoe" --websites "car" --logs --screenshots |
| 109 | ``` |
| 110 | |
| 111 | ### Linux (As python script) |
| 112 | ```bash |
| 113 | sudo apt-get update |
| 114 | sudo apt-get install git python3 python3-pip |
| 115 | git clone https://github.com/qeeqbox/social-analyzer |
| 116 | cd social-analyzer |
| 117 | pip3 install -r requirements.txt |
| 118 | python3 app.py --username "janedoe" |
| 119 | #or |
| 120 | python3 app.py --username "johndoe" --metadata |
| 121 | #or |
| 122 | python3 app.py --username "johndoe" --metadata --top 100 |
| 123 | #or |
| 124 | python3 app.py --username "johndoe" --type "adult" |
| 125 | #or |
| 126 | python3 app.py --username "johndoe" --websites "car" --logs --screenshots |
| 127 | ``` |
| 128 | |
| 129 | ### Importing as object (python) |
| 130 | ```python |
| 131 | |
| 132 | #E.g. #1 |
| 133 | from importlib import import_module |
| 134 | SocialAnalyzer = import_module("social-analyzer").SocialAnalyzer() |
| 135 | results = SocialAnalyzer.run_as_object(username="johndoe",silent=True) |
| 136 | print(results) |
| 137 | |
| 138 | #E.g. #2 |
| 139 | from importlib import import_module |
| 140 | SocialAnalyzer = import_module("social-analyzer").SocialAnalyzer() |
| 141 | results = SocialAnalyzer.run_as_object(username="johndoe,janedoe",silent=True,output="json",filter="good",metadata=False,timeout=10, profiles="detected") |
| 142 | print(results) |
| 143 | ``` |
| 144 | |
| 145 | ### Linux, Windows, MacOS, Raspberry pi.. |
| 146 | - check this [wiki](https://github.com/qeeqbox/social-analyzer/wiki/install) for all possible installation methods |
| 147 | - check this [wiki](https://github.com/qeeqbox/social-analyzer/wiki/integration) for integrating social-analyzer with your OSINT tools, feeds, etc... |
| 148 | |
| 149 | ## social-analyzer --h |
| 150 | ``` |
| 151 | Required Arguments: |
| 152 | --username E.g. johndoe, john_doe or johndoe9999 |
| 153 | |
| 154 | Optional Arguments: |
| 155 | --websites A website or websites separated by space E.g. youtube, tiktokor tumblr |
| 156 | --mode Analysis mode E.g.fast -> FindUserProfilesFast, slow -> FindUserProfilesSlow or special -> FindUserProfilesSpecial |
| 157 | --output Show the output in the following format: json -> json outputfor integration or pretty -> prettify the output |
| 158 | --options Show the following when a profile is found: link, rate, titleor text |
| 159 | --method find -> show detected profiles, get -> show all profiles regardless detected or not, all -> combine find & get |
| 160 | --filter Filter detected profiles by good, maybe or bad, you can do combine them with comma (good,bad) or use all |
| 161 | --profiles Filter profiles by detected, unknown or failed, you can do combine them with comma (detected,failed) or use all |
| 162 | --countries select websites by country or countries separated by space as: us br ru |
| 163 | --type Select websites by type (Adult, Music etc) |
| 164 | --top select top websites as 10, 50 etc...[--websites is not needed] |
| 165 | --extract Extract profiles, urls & patterns if possible |
| 166 | --metadata Extract metadata if possible (pypi QeeqBox OSINT) |
| 167 | --trim Trim long strings |
| 168 | --gui Reserved for a gui (Not implemented) |
| 169 | --cli Reserved for a cli (Not needed) |
| 170 | |
| 171 | Listing websites & detections: |
| 172 | --list List all available websites |
| 173 | |
| 174 | Setting: |
| 175 | --headers Headers as dict |
| 176 | --logs_dir Change logs directory |
| 177 | --timeout Change timeout between each request |
| 178 | --silent Disable output to screen |
| 179 | ``` |
| 180 | |
| 181 | ## Open Shell |
| 182 | [](https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https://github.com/qeeqbox/social-analyzer&tutorial=README.md) [](https://repl.it/github/qeeqbox/social-analyzer) |
| 183 | |
| 184 | ## Resources |
| 185 | - DuckDuckGo API, Google API, NodeJS, bootstrap, selectize, jQuery, Wikipedia, font-awesome, selenium-webdriver & tesseract.js |
| 186 | - Let me know if I missed a reference or resource! |
| 187 | |
| 188 | ## Disclaimer\Notes |
| 189 | - Download this project from GitHub and treat it as a security project |
| 190 | - If you want your website to be excluded from this project list, please reach out to me |
| 191 | - This tool is meant to be used locally, not as a service (It does not have any Access Control) |
| 192 | - For issues related to modules that end with -private or under the private group , reach out directly to me (do not open an issue on GitHub) |
| 193 | |
| 194 | ## Other Projects |
| 195 | [](https://github.com/qeeqbox/analyzer) [](https://github.com/qeeqbox/chameleon) [](https://github.com/qeeqbox/honeypots) [](https://github.com/qeeqbox/osint) [](https://github.com/qeeqbox/url-sandbox) [](https://github.com/qeeqbox/mitre-visualizer) [](https://github.com/qeeqbox/woodpecker) [](https://github.com/qeeqbox/docker-images) [](https://github.com/qeeqbox/seahorse) [](https://github.com/qeeqbox/rhino) [](https://github.com/qeeqbox/raven) [](https://github.com/qeeqbox/image-analyzer) |
| 196 |