{"id":13577435,"url":"https://github.com/mwarning/device-observatory","last_synced_at":"2025-06-26T09:36:31.117Z","repository":{"id":150480700,"uuid":"125413470","full_name":"mwarning/device-observatory","owner":"mwarning","description":"Discover what your phone does on the Internet.","archived":false,"fork":false,"pushed_at":"2022-09-21T10:59:06.000Z","size":755,"stargazers_count":32,"open_issues_count":3,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-05T14:45:07.338Z","etag":null,"topics":["monitoring","openwrt-package","phone","privacy-aware","wifi-hotspot"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mwarning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2018-03-15T18:58:17.000Z","updated_at":"2024-08-23T16:57:59.000Z","dependencies_parsed_at":"2023-04-19T20:33:56.164Z","dependency_job_id":null,"html_url":"https://github.com/mwarning/device-observatory","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2Fdevice-observatory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2Fdevice-observatory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2Fdevice-observatory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2Fdevice-observatory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwarning","download_url":"https://codeload.github.com/mwarning/device-observatory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247331773,"owners_count":20921844,"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":["monitoring","openwrt-package","phone","privacy-aware","wifi-hotspot"],"created_at":"2024-08-01T15:01:21.433Z","updated_at":"2025-04-05T11:32:47.088Z","avatar_url":"https://github.com/mwarning.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# Device Observatory\n\nThe Device Observatory shows the activities of WiFi devices on a network on a local website. It is meant to raise the awareness for private data leaking from devices such as smartphones.\n\nThis also includes a package for [OpenWrt](http://openwrt.org). The package will create an WiFi Access Point for your phone to connect to. You can track your devices activity on a website on the router. External devices will only see their own data for privacy.\n\nPull Requests are welcome!\n\n![logo](www/logo.png)\n\nFeatures:\n * Devices accessing the info page only see own data (except for the local host)\n * Shows MAC address, DHCP device host name, device manufacturer\n * Shows accessed domains, IP addresses and ports\n * Shows first/last time a website was accessed\n * Show SSIDs from active scanning\n * Show traffic by destination\n\n## Usage\n\n  * `--dev` *device*  \n    Device to parse raw ethernet packets from.  \n    This option may occur multiple times.  \n    E.g. `wlan0`  \n\n  * `--mdev` *device*  \n    Device to parse raw wifi packets from.  \n    This option may occur multiple times.  \n    E.g. `mon0`  \n\n  * `--mac-db` *file*  \n    MAC to manufacturer database.  \n    E.g. `macdb.txt`  \n    Default: disabled\n\n  * `--port-db` *file*  \n    File to map port numbers to human readable names.  \n    E.g. `/etc/services`  \n    Default: disabled\n\n  * `--json-output` *file*  \n    Ouput all data as JSON file.  \n    Default: disabled\n\n  * `--device-timeout` *seconds*  \n    Timeout device data after last ethernet activity.  \n    Default: never\n\n  * `--track-localhost` *[1|0]*  \n    Track localhost as an device.  \n    Default: on\n\n  * `--webserver-port` *port*  \n    Port of the build-in webserver. Set to 0 to disable webserver.  \n    Default: 8080\n\n  * `--webserver-path` *path*  \n    Root folder for the build-in webserver. Usually not needed as all files are included into the binary.  \n    Default: internal\n\n  * `--help`  \n    Show these options and help text.\n\n## Build On Linux Based Operating Systems\n\nInstall dependencies for compiling:\n```\napt install libpcap-dev libmicrohttpd-dev vim-common\n```\n\n* package libpcap-dev allows to capture pakets\n* package libmicrohttpd-dev is an embeddeable webserver\n* package `vim-common` contains the xxd tool\n\nGet source code:\n```\ngit clone https://github.com/mwarning/device-observatory.git\ncd device-observatory\n```\n\nCompile:\n```\nmake\n```\n\nStart program:\n```\n./device-repository --dev eth0\n```\n\nHere, eth0 is an example interface.\nNormally you would create an Access Point WiFi interface (e.g. `--dev wlan0`) and an optional monitoring interface (e.g. `--mdev mon0`).\n\nTo see the data captured by the program, go to [localhost:8080](http://localhost:8080) or [192.168.1.1:8080](http://192.168.1.1:8080) if the program runs your router.\n\n## Create WiFi Access Point\n\n```\nTODO\n```\n\n## Create monitor mode interface\n\nA monitor mode interface can be used to get all raw packets from the air on a specific channel. This is needed to detect SSIDs from scanning by phones/devices.\nDo `iw dev` to get a list of physical wireless devices.\n\n```\niw phy phy0 interface add mon0 type monitor\nip link set dev mon0 up\n```\n\nOn OpenWrt, this can also be done via the create_monitor setting in `/etc/config/device-observatory`.\nThe mon0 device will be appended as `--mdev mon0`.\n\n## Build for OpenWrt\n\nSee the [OpenWrt build instructions](openwrt/README.md) page.\n\n## Update macdb.txt\n\nConsole command to load the official database and create a stripped down database that is more usable:\n\n```\ncurl http://standards-oui.ieee.org/oui/oui.txt | awk -F'[[:space:]]+' '/^[A-F0-9]{6}/{ printf(\"%s\", $1); for(i=4; i \u003c NF; i++) printf(\" %s\", $i); printf(\"\\n\"); }' \u003e macdb.txt\n```\n## Similar Projects\n\n[PiRogue](https://github.com/PiRogueToolSuite/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwarning%2Fdevice-observatory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwarning%2Fdevice-observatory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwarning%2Fdevice-observatory/lists"}