| 1 | .. image:: https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/socialanalyzerlogo_.png |
| 2 | |
| 3 | Social-Analyzer - API, CLI & Web App for analyzing & finding a person's profile across social media websites. It includes different string analysis and detection modules, you can choose which combination of 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 intended to have less false positive, and it's documented in this `Wiki <https://github.com/qeeqbox/social-analyzer/wiki>`_ link |
| 6 | |
| 7 | The analysis and public extracted information from this OSINT tool 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>`_, and `spreading misinformation <https://en.wikipedia.org/wiki/Misinformation>`_. |
| 8 | |
| 9 | This project is *"currently used by some law enforcement agencies in countries where resources are limited"*. |
| 10 | |
| 11 | `Social Analyzer is in a league of its own and is a very impressive tool that I thoroughly recommend for Digital Investigators and OSINT practitioners` - by `Joseph Jones, Founder of Strategy Nord, Unita Insight and OS2INT <https://os2int.com/toolbox/investigating-usernames-with-social-analyzer>`_. |
| 12 | |
| 13 | So·cial Me·di·a |
| 14 | =============== |
| 15 | Websites and applications that enable users to create and share content or to participate in social networking - Oxford Dictionary |
| 16 | |
| 17 | Security Testing |
| 18 | ================ |
| 19 | .. code:: bash |
| 20 | |
| 21 | ------------------------------------- --------------------------------- |
| 22 | | Security Testing | | Social-Analyzer | |
| 23 | ------------------------------------- --------------------------------- |
| 24 | | Passive Information Gathering | <--> | Find Social Media Profiles | |
| 25 | | | | | |
| 26 | | Active Information Gathering | <--> | Post Analysis Activities | |
| 27 | ------------------------------------- --------------------------------- |
| 28 | |
| 29 | Find Profile CLI (Fast) |
| 30 | ======================= |
| 31 | .. image:: https://raw.githubusercontent.com/qeeqbox/social-analyzer/main/readme/cli.gif |
| 32 | |
| 33 | Features |
| 34 | ======== |
| 35 | - String & name analysis (Permutations and Combinations) |
| 36 | - Find profile using multiple techniques (HTTPS library & Webdriver) |
| 37 | - Multi layers detections (OCR, normal, advanced & special) |
| 38 | - Visualized profile information using Ixora (Metadata & Patterns) |
| 39 | - Metadata & Patterns extraction (Added from Qeeqbox osint project) |
| 40 | - Force-directed Graph for Metadata (Needs ExtractPatterns) |
| 41 | - Search by top ranking, or by country (Alexa Ranking) |
| 42 | - Profiles stats and static info (Category country) |
| 43 | - Auto-flirtation to unnecessary output |
| 44 | - Search engine lookup (Google API - optional) |
| 45 | - Custom search queries (Google API & DuckDuckGo API - optional) |
| 46 | - Profile screenshot, title, info and website description |
| 47 | - Find name origins, name similarity & common words by language |
| 48 | - Custom user-agent, proxy, timeout & implicit wait |
| 49 | - Python CLI & NodeJS CLI (limited to FindUserProfilesFast option) |
| 50 | - Grid option for faster checking (limited to docker-compose) |
| 51 | - Dump logs to folder or terminal (prettified) |
| 52 | - Adjust finding\getting profile workers (default 15) |
| 53 | - Re-checking option for failed profiles |
| 54 | - Filter profiles by good, maybe, and bad |
| 55 | - Save the analysis as JSON file |
| 56 | - Simplified web interface and CLI |
| 57 | |
| 58 | Running Example (Simple) |
| 59 | ======================== |
| 60 | .. code:: bash |
| 61 | |
| 62 | pip3 install social-analyzer |
| 63 | python3 -m social-analyzer --username "johndoe" --metadata --top 100 |
| 64 | |
| 65 | Running Example (Custom) |
| 66 | ======================== |
| 67 | .. code:: bash |
| 68 | |
| 69 | #install social-analyzer |
| 70 | pip3 install social-analyzer |
| 71 | |
| 72 | #specific websites |
| 73 | python3 -m social-analyzer --username "johndoe" --websites "youtube pinterest tumblr" |
| 74 | |
| 75 | #specific websites with metadata and extraction |
| 76 | python3 -m social-analyzer --username "johndoe" --websites "youtube pinterest tumblr" --metadata --extract --trim |
| 77 | |
| 78 | #all websites with metadata, extraction, filter all profiles with all status |
| 79 | python3 -m social-analyzer --username "johndoe" --websites "all" --metadata --extract --trim --filter "all" --profile "all" |
| 80 | |
| 81 | #Screenshot detected profiles |
| 82 | python3 -m social-analyzer --username "johndoe" --websites "cart" --logs --screenshots |
| 83 | |
| 84 | Running Example (as object) |
| 85 | =========================== |
| 86 | .. code:: bash |
| 87 | |
| 88 | from importlib import import_module |
| 89 | SocialAnalyzer = import_module("social-analyzer").SocialAnalyzer() |
| 90 | results = SocialAnalyzer.run_as_object(username="johndoe",silent=True) |
| 91 | print(results) |
| 92 | |
| 93 | Running Example (as object with specific websites, metadata and extraction) |
| 94 | =========================================================================== |
| 95 | .. code:: bash |
| 96 | |
| 97 | from importlib import import_module |
| 98 | SocialAnalyzer = import_module("social-analyzer").SocialAnalyzer() |
| 99 | results = SocialAnalyzer.run_as_object(username="johndoe", websites="youtube pinterest tumblr", metadata=True, extract=True, silent=True) |
| 100 | print(results) |
| 101 | |
| 102 | Help (python3 -m social-analyzer --h) |
| 103 | ===================================== |
| 104 | .. code:: bash |
| 105 | |
| 106 | Required Arguments: |
| 107 | --username E.g. johndoe, john_doe or johndoe9999 |
| 108 | |
| 109 | Optional Arguments: |
| 110 | --websites A website or websites separated by space E.g. youtube, tiktokor tumblr |
| 111 | --mode Analysis mode E.g.fast -> FindUserProfilesFast, slow -> FindUserProfilesSlow or special -> FindUserProfilesSpecial |
| 112 | --output Show the output in the following format: json -> json outputfor integration or pretty -> prettify the output |
| 113 | --options Show the following when a profile is found: link, rate, titleor text |
| 114 | --method find -> show detected profiles, get -> show all profiles regardless detected or not, all -> combine find & get |
| 115 | --filter Filter detected profiles by good, maybe or bad, you can do combine them with comma (good,bad) or use all |
| 116 | --profiles Filter profiles by detected, unknown or failed, you can do combine them with comma (detected,failed) or use all |
| 117 | --countries select websites by country or countries separated by space as: us br ru |
| 118 | --top select top websites as 10, 50 etc...[--websites is not needed] |
| 119 | --extract Extract profiles, urls & patterns if possible |
| 120 | --metadata Extract metadata if possible (pypi QeeqBox OSINT) |
| 121 | --trim Trim long strings |
| 122 | --gui Reserved for a gui (Not implemented) |
| 123 | --cli Reserved for a cli (Not needed) |
| 124 | |
| 125 | Listing websites & detections: |
| 126 | --list List all available websites |
| 127 | |
| 128 | Setting: |
| 129 | --headers Headers as dict |
| 130 | --logs_dir Change logs directory |
| 131 | --timeout Change timeout between each request |
| 132 | --silent Disable output to screen |
| 133 | |
| 134 | Open in Cloud Shell |
| 135 | =================== |
| 136 | .. image:: https://img.shields.io/static/v1?label=%3E_&message=Open%20in%20Cloud%20Shell&color=3267d6&style=flat-square |
| 137 | :target: https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https://github.com/qeeqbox/social-analyzer&tutorial=README.md |
| 138 | |
| 139 | Special Detections |
| 140 | ================== |
| 141 | - Facebook (Phone number, name or profile name) |
| 142 | - Gmail (example@gmail.com) |
| 143 | - Google (example@example.com) |
| 144 | |
| 145 | Running Issues |
| 146 | ============== |
| 147 | - Remember that existing profiles show `status:good` or `rate:%100` |
| 148 | - Some websites return `blocked` or `invalid` <- this is the intended behavior |
| 149 | - Use Proxy, VPN, TOR or anything similar for periodic suspicious-profiles checking |
| 150 | - Do not mix FindUserProfilesFast, with FindUserProfilesSlow and ShowUserProfilesSlow |
| 151 | - Change the user-agent to most updated one or increase the random time between requests |
| 152 | - Use the slow mode (Not available in the CLIs) to avoid running into blocking\results issue |
| 153 | |
| 154 | Resources |
| 155 | ========= |
| 156 | - DuckDuckGo API, Google API, NodeJS, bootstrap, selectize, jQuery, Wikipedia, font-awesome, selenium-webdriver & tesseract.js |
| 157 | - Let me know if I missed a reference or resource! |
| 158 | |
| 159 | Disclaimer\Notes |
| 160 | ================ |
| 161 | - Make sure to download this tool from GitHub |
| 162 | - This is a security project (Treat it as a security project) |
| 163 | - If you want your website to be excluded from this project list, please reach out to me |
| 164 | - This tool meant to be used locally not as a service (It does not have any type of Access Control) |
| 165 | - 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) |
| 166 | |
| 167 | Interviews |
| 168 | ========== |
| 169 | - `Console 37 <https://console.substack.com/p/console-37>`_ |
| 170 | |
| 171 | Some News\Articles |
| 172 | ================== |
| 173 | - `5 Open-Source Intelligence (OSINT) GitHub Repositories For Every Security Analyst (Cyber Security) <https://twitter.com/GithubProjects/status/1395205169617547266>`_ |
| 174 | |
| 175 | - You can use social-analyzer in the `BlackArch <https://blackarch.org/>`_ penetration testing distribution by installing `blackarch-social <https://blackarch.org/social.html>`_ |
| 176 | |
| 177 | Articles |
| 178 | ======== |
| 179 | `kitploit professionalhackers secnhack meethackers raidforums redpacketsecurity hacking reviews hacking land securityonline skynettools luca-mercatanti pentesttools anonymousmedia ddosi tenochtitlan-sec modernnetsec haktechs haxf4rall hacker-gadgets mrhacker sector035 hackernews` |
| 180 | |
| 181 | Other projects |
| 182 | ============== |
| 183 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//chameleon.png |
| 184 | :target: https://github.com/qeeqbox/chameleon |
| 185 | |
| 186 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//honeypots.png |
| 187 | :target: https://github.com/qeeqbox/honeypots |
| 188 | |
| 189 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//analyzer.png |
| 190 | :target: https://github.com/qeeqbox/analyzer |
| 191 | |
| 192 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//osint.png |
| 193 | :target: https://github.com/qeeqbox/osint |
| 194 | |
| 195 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//url-sandbox.png |
| 196 | :target: https://github.com/qeeqbox/url-sandbox |
| 197 | |
| 198 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//mitre-visualizer.png |
| 199 | :target: https://github.com/qeeqbox/mitre-visualizer |
| 200 | |
| 201 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//woodpecker.png |
| 202 | :target: https://github.com/qeeqbox/woodpecker |
| 203 | |
| 204 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//docker-images.png |
| 205 | :target: https://github.com/qeeqbox/docker-images |
| 206 | |
| 207 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//seahorse.png |
| 208 | :target: https://github.com/qeeqbox/seahorse |
| 209 | |
| 210 | .. image:: https://raw.githubusercontent.com/qeeqbox/.github/main/data//rhino.png |
| 211 | :target: https://github.com/qeeqbox/rhino |
| 212 |