{"id":16434553,"url":"https://github.com/apertureless/wiviz","last_synced_at":"2025-10-27T02:30:55.172Z","repository":{"id":66017231,"uuid":"222720486","full_name":"apertureless/wiviz","owner":"apertureless","description":"Wifi client probe analyzer \u0026 visualizer","archived":false,"fork":false,"pushed_at":"2019-11-19T14:53:04.000Z","size":546,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T01:33:00.142Z","etag":null,"topics":["security","wifi"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apertureless.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-19T14:52:46.000Z","updated_at":"2024-12-11T04:52:13.000Z","dependencies_parsed_at":"2023-06-26T01:55:49.790Z","dependency_job_id":null,"html_url":"https://github.com/apertureless/wiviz","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apertureless%2Fwiviz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apertureless%2Fwiviz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apertureless%2Fwiviz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apertureless%2Fwiviz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apertureless","download_url":"https://codeload.github.com/apertureless/wiviz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238422838,"owners_count":19469630,"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":["security","wifi"],"created_at":"2024-10-11T08:49:32.137Z","updated_at":"2025-10-27T02:30:49.843Z","avatar_url":"https://github.com/apertureless.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wifi client probe analyzer \u0026 visualizer\n\n![img](./log.png)\n\nThis is a small **hacked-together, afternoon** project.\n\nThe idea was, to show on a talk some cool visualization of data. Most android \u0026 iphoes are broadcasting management beacons to check if known networks are near by. You can easily sniff those packets and extract network names. And use them for evil twin attacks for example. Furthermore this concept works great for talks \u0026 meetups. Thus, alsways turn off your wifi and disable broadcast settings in the android settings.\n\nThis is a collection of scripts that will:\n\n- Sniff beacons\n- Save them to a log\n- Generate a diagramm grouped by clients or networks.\n\n\n## Requirements\n\nBecause this is rather a loose collection of scripts there are some requirements:\n\n- nodejs\n- python (or php for webserver)\n- bettercap\n\nBettercap is used for the sniffing. It is my goto tool. You could easily do this with wireshark, tshark, tcpdump or whatever.\n\nYou will need nodejs for running the javascript files, which will be parsing the log file. My python skills are not brave enough to write everything in python. :o\n\nYou will however need some kind of webserver. Because the parsed logfile will be saved locally as a json. To access the file from javascript inside your browser, it must be serverd via a webserver.\n\nOn linux and mac you will mostly have python and php installed. So it will run `python -m SimpleHTTPServer 3000` in `start.sh`\n\nYou can change this to a php server if you want.\n\n## Usage\n\n1. Start collecting probes with bettercap: `sudo bettercap -iface en0 -no-colors -caplet client-probe-analyzer.cap`\n2. Run `start.sh` in another terminal window.\n3. Run `update.sh` to update your dataset.\n4. Open your browser at `http://localhost:3000`\n\n### Bettercap\n\nBettercap will capture the client probes and save it into a log file `client-probes.log`\n\n### Start.sh\n\nThe script will run a `node parse.js` command, which will trigger the parsing of the log and outputs a json (`probes.json`)\nThen it will start a small python webserver, so we can access the json from within the browser.\n\n### Update.sh\n\nIs basically just an alias for `node parse.js`\nThis means, the chart will be not **realtime**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapertureless%2Fwiviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapertureless%2Fwiviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapertureless%2Fwiviz/lists"}