{"id":13473550,"url":"https://github.com/thewhiteh4t/seeker","last_synced_at":"2025-05-14T02:06:21.754Z","repository":{"id":37547549,"uuid":"141040549","full_name":"thewhiteh4t/seeker","owner":"thewhiteh4t","description":"Accurately Locate Smartphones using Social Engineering ","archived":false,"fork":false,"pushed_at":"2025-05-07T18:37:15.000Z","size":4026,"stargazers_count":7819,"open_issues_count":17,"forks_count":1830,"subscribers_count":349,"default_branch":"master","last_synced_at":"2025-05-07T19:26:03.421Z","etag":null,"topics":["accuracy","altitude","geolocation","latitude","longitude","reconnaissance","system-information"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thewhiteh4t.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"thewhiteh4t"}},"created_at":"2018-07-15T16:06:48.000Z","updated_at":"2025-05-07T18:37:19.000Z","dependencies_parsed_at":"2022-07-11T22:17:12.088Z","dependency_job_id":"5e486aac-eb6c-4d65-8a28-9162912844a9","html_url":"https://github.com/thewhiteh4t/seeker","commit_stats":{"total_commits":349,"total_committers":17,"mean_commits":"20.529411764705884","dds":"0.49570200573065903","last_synced_commit":"0c468aad50aea1d43f89a9ca211606a9a8706847"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thewhiteh4t%2Fseeker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thewhiteh4t%2Fseeker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thewhiteh4t%2Fseeker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thewhiteh4t%2Fseeker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thewhiteh4t","download_url":"https://codeload.github.com/thewhiteh4t/seeker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052697,"owners_count":22006716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accuracy","altitude","geolocation","latitude","longitude","reconnaissance","system-information"],"created_at":"2024-07-31T16:01:04.651Z","updated_at":"2025-05-14T02:06:16.713Z","avatar_url":"https://github.com/thewhiteh4t.png","language":"CSS","funding_links":["https://github.com/sponsors/thewhiteh4t"],"categories":["Uncategorized","\u003ca id=\"546f4fe70faa2236c0fbc2d486a83391\"\u003e\u003c/a\u003e社工(SET)\u0026\u0026钓鱼\u0026\u0026鱼叉攻击","CSS","Tools","安卓Android","\u003ca id=\"3e622bff3199cf22fe89db026b765cd4\"\u003e\u003c/a\u003e工具","⚙️ Backend \u0026 APIs"],"sub_categories":["Uncategorized","\u003ca id=\"ce734598055ad3885d45d0b35d2bf0d7\"\u003e\u003c/a\u003e未分类-SET","资源传输下载"],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://i.imgur.com/DIpuNTI.jpg\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/thewhiteh4t\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/-TWITTER-black?logo=twitter\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://twc1rcle.com/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/-THE WHITE CIRCLE-black?logo=\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\n    \u003ca href=\"https://thewhiteh4t.github.io/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/-BLOG-black?logo=dialogflow\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cb\u003eAvailable in\u003c/b\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://i.imgur.com/1wJVDV5.png\"\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca style=\"margin-right: 10px;\" href=\"https://github.com/thewhiteh4t/seeker#installation\"\u003e\n    \u003cimg src=\"https://dabuttonfactory.com/button.png?t=INSTALL\u0026f=Open+Sans\u0026ts=15\u0026tc=000\u0026hp=25\u0026vp=10\u0026c=5\u0026bgt=unicolored\u0026bgc=00e2ff\"\u003e\n  \u003c/a\u003e\n  \u003ca style=\"margin-right: 10px;\" href=\"https://github.com/thewhiteh4t/seeker#usage\"\u003e\n    \u003cimg src=\"https://dabuttonfactory.com/button.png?t=USAGE\u0026f=Open+Sans\u0026ts=15\u0026tc=000\u0026hp=25\u0026vp=10\u0026c=5\u0026bgt=unicolored\u0026bgc=00e2ff\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/thewhiteh4t/seeker#demo\"\u003e\n    \u003cimg src=\"https://dabuttonfactory.com/button.png?t=DEMO\u0026f=Open+Sans\u0026ts=15\u0026tc=000\u0026hp=25\u0026vp=10\u0026c=5\u0026bgt=unicolored\u0026bgc=00e2ff\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nConcept behind Seeker is simple, just like we host phishing pages to get credentials why not host a fake page that requests your location like many popular location based websites. Read more on \u003ca href=\"https://thewhiteh4t.github.io\"\u003e thewhiteh4t's Blog \u003c/a\u003e.Seeker Hosts a fake website which asks for Location Permission and if the target allows it, we can get :\n\n* Longitude\n* Latitude\n* Accuracy\n* Altitude - Not always available\n* Direction - Only available if user is moving\n* Speed - Only available if user is moving\n\nAlong with Location Information we also get **Device Information** without any permissions :\n\n* Unique ID using Canvas Fingerprinting\n* Device Model - Not always available\n* Operating System\n* Platform\n* Number of CPU Cores - Approximate Results\n* Amount of RAM - Approximate Results\n* Screen Resolution\n* GPU information\n* Browser Name and Version\n* Public IP Address\n* Local IP Address\n* Local Port\n\n**Automatic IP Address Reconnaissance** is performed after the above information is received.\n\n**This tool is a Proof of Concept and is for Educational Purposes Only, Seeker shows what data a malicious website can gather about you and your devices and why you should not click on random links and allow critical permissions such as Location etc.**\n\n## How is this Different from IP GeoLocation\n\n* Other tools and services offer IP Geolocation which is NOT accurate at all and does not give location of the target instead it is the approximate location of the ISP.\n\n* Seeker uses HTML API and gets Location Permission and then grabs Longitude and Latitude using GPS Hardware which is present in the device, so Seeker works best with Smartphones, if the GPS Hardware is not present, such as on a Laptop, Seeker fallbacks to IP Geolocation or it will look for Cached Coordinates.  \n\n* Generally if a user accepts location permsission, Accuracy of the information recieved is **accurate to approximately 30 meters**\n\n* Accuracy depends on multiple factors which you may or may not control such as :\n  * Device - Won't work on laptops or phones which have broken GPS\n  * Browser - Some browsers block javascripts\n  * GPS Calibration - If GPS is not calibrated you may get inaccurate results and this is very common\n\n## Templates\n\nAvailable Templates : \n\n* NearYou\n* Google Drive (Suggested by @Akaal_no_one)\n* WhatsApp (Suggested by @Dazmed707)\n* Telegram\n* Zoom (Made by @a7maadf)\n* Google reCAPTCHA (Made by @MrEgyptian)\n\nCreate your own template ! \nSteps to let you create your template is described in this [how-to](./createTemplate.md)\n\nOnce your template is ready, **do not forget to propose it to the community via a PR (pull request)**\n\n## Tested On :\n\n* Kali Linux\n* BlackArch Linux\n* Ubuntu\n* Fedora\n* Kali Nethunter\n* Termux\n* Parrot OS\n* OSX - Monterey v.12.0.1\n\n## Installation\n\n### Kali Linux / Arch Linux / Ubuntu / Fedora / Parrot OS / Termux\n\n```bash\ngit clone https://github.com/thewhiteh4t/seeker.git\ncd seeker/\nchmod +x install.sh\n./install.sh\n```\n\n### BlackArch Linux\n\n```bash\nsudo pacman -S seeker\n```\n\n### Docker\n\n```bash\ndocker pull thewhiteh4t/seeker\n```\n\n### OSX\n```bash\ngit clone https://github.com/thewhiteh4t/seeker.git\ncd seeker/\npython3 seeker.py\n````\n\nIn order to run in tunnel mode, install ngrok by running this command in the terminal:\n```bash\nbrew install ngrok/ngrok/ngrok\n\nngrok http 8080\n````\n\n## Usage\n\n```bash\npython3 seeker.py -h\n\nusage: seeker.py [-h] [-k KML] [-p PORT] [-u] [-v] [-t TEMPLATE] [-d] [--telegram token:chatId] [--webhook WEBHOOK]\n\noptions:\n  -h, --help                            show this help message and exit\n  -k KML, --kml KML                     KML filename\n  -p PORT, --port PORT                  Web server port [ Default : 8080 ]\n  -u, --update                          Check for updates\n  -v, --version                         Prints version\n  -t TEMPLATE, --template TEMPLATE      Auto choose the template with the given index\n  -d, --debugHTTP                       Disable auto http --\u003e https redirection for testing purposes \n                                        (only works for the templates having index_temp.html file)\n  --telegram                            Send info to a telegram bot, provide telegram token and chat to use\n                                        format = token:chatId separated by a colon\n  --webhook                             Send events to a webhook endpoint to be processed\n                                        Note : endpoint must be unauthenticated and accept POST request\n\n#########################\n# Environment Variables #\n#########################\n\nSome of the options above can also be enabled via environment variables, to ease deployment.\nOther parameters can be provided via environment variables to avoid interactive mode.\n\nVariables:\n  DEBUG_HTTP            Same as -d, --debugHTTP\n  PORT                  Same as -p, --port\n  TEMPLATE              Same as -t, --template\n  TITLE                 Provide the group title or the page title\n  REDIRECT              Provide the URL to redirect the user to, after the job is done\n  IMAGE                 Provide the image to use, can either be remote (http or https) or local\n                        Note : Remote image will be downloaded locally during the startup\n  DESC                  Provide the description of the item (group or webpage depending on the template)\n  SITENAME              Provide the name of the website\n  DISPLAY_URL           Provide the URL to display on the page\n  MEM_NUM               Provide the number of group membres (Telegram so far)\n  ONLINE_NUM            Provide the number of the group online members (Telegram so far)\n  TELEGRAM              Provide telegram token and chat to use to send info to a telegram bot\n                        format = token:chatId separated by a colon\n  WEBHOOK               Provide the webhook url to forward the events to \n                        Note : endpoint should be unauthenticated and accept POST method\n                        \n\n##################\n# Usage Examples #\n##################\n\n# Step 1 : In first terminal\n$ python3 seeker.py\n\n# Step 2 : In second terminal start a tunnel service such as ngrok\n$ ./ngrok http 8080\n\n###########\n# Options #\n###########\n\n# Ouput KML File for Google Earth\n$ python3 seeker.py -k \u003cfilename\u003e\n\n# Use Custom Port\n$ python3 seeker.py -p 1337\n$ ./ngrok http 1337\n\n# Pre-select a specific template\n$ python3 seeker.py -t 1\n\n################\n# Docker Usage #\n################\n\n# Step 1\n$ docker network create ngroknet\n\n# Step 2\n$ docker run --rm -it --net ngroknet --name seeker thewhiteh4t/seeker\n\n# Step 3\n$ docker run --rm -it --net ngroknet --name ngrok wernight/ngrok ngrok http seeker:8080\n```\n\n## Local Tunnels\nUse\n```\nssh -R 80:localhost:8080 nokey@localhost.run\n```\nas an alterntive to ngrok\n\n## Demo\n\n**YouTube**\n\n\u003ca href=\"https://odysee.com/@thewhiteh4t:2/seeker_v126_demo:e\"\u003e\n  \u003cimg src=\"https://thumbnails.odycdn.com/optimize/s:1024:768/quality:85/plain/https://thumbs.odycdn.com/5ce9ed06e0ce8a995987dba0949dbc9a.webp\"\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthewhiteh4t%2Fseeker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthewhiteh4t%2Fseeker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthewhiteh4t%2Fseeker/lists"}