{"id":13426134,"url":"https://github.com/evilsocket/pwnagotchi","last_synced_at":"2025-05-11T03:49:10.365Z","repository":{"id":37405995,"uuid":"209556497","full_name":"evilsocket/pwnagotchi","owner":"evilsocket","description":"(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning.","archived":false,"fork":false,"pushed_at":"2025-03-31T09:38:00.000Z","size":8591,"stargazers_count":8322,"open_issues_count":290,"forks_count":1193,"subscribers_count":240,"default_branch":"master","last_synced_at":"2025-05-11T03:48:58.520Z","etag":null,"topics":["ai","bettercap","deep-learning","deep-neural-network","deep-reinforcement-learning","handshakes","wpa-psk"],"latest_commit_sha":null,"homepage":"https://pwnagotchi.ai/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evilsocket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":"evilsocket","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-09-19T13:07:15.000Z","updated_at":"2025-05-11T02:16:54.000Z","dependencies_parsed_at":"2024-01-05T20:47:46.372Z","dependency_job_id":"ae23788e-d675-4cc4-8a28-c2874592df4a","html_url":"https://github.com/evilsocket/pwnagotchi","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fpwnagotchi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fpwnagotchi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fpwnagotchi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fpwnagotchi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evilsocket","download_url":"https://codeload.github.com/evilsocket/pwnagotchi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514559,"owners_count":21920334,"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":["ai","bettercap","deep-learning","deep-neural-network","deep-reinforcement-learning","handshakes","wpa-psk"],"created_at":"2024-07-31T00:01:27.152Z","updated_at":"2025-05-11T03:49:10.320Z","avatar_url":"https://github.com/evilsocket.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003csmall\u003eJoin the project community on our server!\u003c/small\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  \u003ca href=\"https://discord.gg/https://discord.gg/btZpkp45gQ\" target=\"_blank\" title=\"Join our community!\"\u003e\n    \u003cimg src=\"https://dcbadge.limes.pink/api/server/https://discord.gg/btZpkp45gQ\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003chr/\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/evilsocket/pwnagotchi/releases/latest\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/github/release/evilsocket/pwnagotchi.svg?style=flat-square\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/evilsocket/pwnagotchi/blob/master/LICENSE.md\"\u003e\u003cimg alt=\"Software License\" src=\"https://img.shields.io/badge/license-GPL3-brightgreen.svg?style=flat-square\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/evilsocket/pwnagotchi/graphs/contributors\"\u003e\u003cimg alt=\"Contributors\" src=\"https://img.shields.io/github/contributors/evilsocket/pwnagotchi\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=pwnagotchi\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/pwnagotchi?style=social\u0026logo=twitter\" alt=\"follow on Twitter\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[Pwnagotchi](https://pwnagotchi.ai/) is an [A2C](https://hackernoon.com/intuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752)-based \"AI\" leveraging [bettercap](https://www.bettercap.org/) that learns from its surrounding WiFi environment to maximize the crackable WPA key material it captures (either passively, or by performing authentication and association attacks). This material is collected as PCAP files containing any form of handshake supported by [hashcat](https://hashcat.net/hashcat/), including [PMKIDs](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/), \nfull and half WPA handshakes.\n\n![ui](https://i.imgur.com/X68GXrn.png)\n\nInstead of merely playing [Super Mario or Atari games](https://becominghuman.ai/getting-mario-back-into-the-gym-setting-up-super-mario-bros-in-openais-gym-8e39a96c1e41?gi=c4b66c3d5ced) like most reinforcement learning-based \"AI\" *(yawn)*, Pwnagotchi tunes [its parameters](https://github.com/evilsocket/pwnagotchi/blob/master/pwnagotchi/defaults.toml) over time to **get better at pwning WiFi things to** in the environments you expose it to. \n\nMore specifically, Pwnagotchi is using an [LSTM with MLP feature extractor](https://stable-baselines.readthedocs.io/en/master/modules/policies.html#stable_baselines.common.policies.MlpLstmPolicy) as its policy network for the [A2C agent](https://stable-baselines.readthedocs.io/en/master/modules/a2c.html). If you're unfamiliar with A2C, here is [a very good introductory explanation](https://hackernoon.com/intuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) (in comic form!) of the basic principles behind how Pwnagotchi learns. (You can read more about how Pwnagotchi learns in the [Usage](https://www.pwnagotchi.ai/usage/#training-the-ai) doc.)\n\n**Keep in mind:** Unlike the usual RL simulations, Pwnagotchi learns over time. Time for a Pwnagotchi is measured in epochs; a single epoch can last from a few seconds to minutes, depending on how many access points and client stations are visible. Do not expect your Pwnagotchi to perform amazingly well at the very beginning, as it will be [exploring](https://hackernoon.com/intuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) several combinations of [key parameters](https://www.pwnagotchi.ai/usage/#training-the-ai) to determine ideal adjustments for pwning the particular environment you are exposing it to during its beginning epochs ... but ** listen to your Pwnagotchi when it tells you it's boring!** Bring it into novel WiFi environments with you and have it observe new networks and capture new handshakes—and you'll see. :)\n\nMultiple units within close physical proximity can \"talk\" to each other, advertising their presence to each other by broadcasting custom information elements using a parasite protocol I've built on top of the existing dot11 standard. Over time, two or more units trained together will learn to cooperate upon detecting each other's presence by dividing the available channels among them for optimal pwnage.\n\n## Documentation\n\nhttps://www.pwnagotchi.ai\n\n## Links\n\n\u0026nbsp; | Official Links\n---------|-------\nWebsite | [pwnagotchi.ai](https://pwnagotchi.ai/)\nForum | [community.pwnagotchi.ai](https://community.pwnagotchi.ai/)\nSlack | [pwnagotchi.slack.com](https://invite.pwnagotchi.ai/)\nSubreddit | [r/pwnagotchi](https://www.reddit.com/r/pwnagotchi/)\nTwitter | [@pwnagotchi](https://twitter.com/pwnagotchi)\n\n## License\n\n`pwnagotchi` is made with ♥  by [@evilsocket](https://twitter.com/evilsocket) and the [amazing dev team](https://github.com/evilsocket/pwnagotchi/graphs/contributors). It is released under the GPL3 license.\n","funding_links":["https://patreon.com/evilsocket"],"categories":["Python","\u003ca id=\"d4efda1853b2cb0909727188116a2a8c\"\u003e\u003c/a\u003e未分类-WiFi","JavaScript","\u003ca id=\"42f9e068b6511bcbb47d6b2b273097da\"\u003e\u003c/a\u003e未分类","Tools","Machine Learning","其他_安全与渗透","Network Tools","\u003ca id=\"79499aeece9a2a9f64af6f61ee18cbea\"\u003e\u003c/a\u003e浏览嗅探\u0026\u0026流量拦截\u0026\u0026流量分析\u0026\u0026中间人","Network"],"sub_categories":["\u003ca id=\"37ca6907aa42dfd32db5973ff9eec83d\"\u003e\u003c/a\u003e新添加的","\u003ca id=\"3bd67ee9f322e2c85854991c85ed6da0\"\u003e\u003c/a\u003e投毒\u0026\u0026Poisoning","网络服务_其他","Wireless Network Tools","\u003ca id=\"11c73d3e2f71f3914a3bca35ba90de36\"\u003e\u003c/a\u003e中间人\u0026\u0026MITM","Satellite"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilsocket%2Fpwnagotchi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevilsocket%2Fpwnagotchi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilsocket%2Fpwnagotchi/lists"}