{"id":13605948,"url":"https://github.com/G4lile0/ESP32-WiFi-Hash-Monster","last_synced_at":"2025-04-12T05:35:22.139Z","repository":{"id":41407090,"uuid":"222137237","full_name":"G4lile0/ESP32-WiFi-Hash-Monster","owner":"G4lile0","description":"WiFi Hash Purple Monster, store EAPOL \u0026 PMKID packets in an SD CARD using a M5STACK / ESP32 device","archived":false,"fork":false,"pushed_at":"2023-11-25T16:16:24.000Z","size":3230,"stargazers_count":940,"open_issues_count":37,"forks_count":104,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-11-07T10:43:22.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/G4lile0.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-16T17:47:42.000Z","updated_at":"2024-11-07T02:57:39.000Z","dependencies_parsed_at":"2024-11-07T10:34:54.632Z","dependency_job_id":"5401615e-4b15-46c7-9dbc-388029b5a72d","html_url":"https://github.com/G4lile0/ESP32-WiFi-Hash-Monster","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/G4lile0%2FESP32-WiFi-Hash-Monster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/G4lile0%2FESP32-WiFi-Hash-Monster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/G4lile0%2FESP32-WiFi-Hash-Monster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/G4lile0%2FESP32-WiFi-Hash-Monster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/G4lile0","download_url":"https://codeload.github.com/G4lile0/ESP32-WiFi-Hash-Monster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248524660,"owners_count":21118612,"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":[],"created_at":"2024-08-01T19:01:04.577Z","updated_at":"2025-04-12T05:35:21.697Z","avatar_url":"https://github.com/G4lile0.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# ESP32 WiFi Hash Monster\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/G4lile0/ESP32-WiFi-Hash-Monster/blob/master/README.md\"\u003e\u003cimg alt=\"Software License\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/G4lile0/ESP32-WiFi-Hash-Monster/graphs/contributors\"\u003e\u003cimg alt=\"Contributors\" src=\"https://img.shields.io/github/contributors/G4lile0/ESP32-WiFi-Hash-Monster\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=g4lile0\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/g4lile0?style=social\u0026logo=twitter\" alt=\"follow on Twitter\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nWiFi Hash Purple Monster, store EAPOL \u0026amp; PMKID packets in an SD CARD using a M5STACK / ESP32 device.\n\n90% of the code is based on the great [PacketMonitor32](https://github.com/spacehuhn/PacketMonitor32/) from   \u0026nbsp; \u003ca href=\"https://twitter.com/intent/follow?screen_name=spacehuhn\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/spacehuhn?style=social\u0026logo=twitter\" alt=\"follow on Twitter\"\u003e\u003c/a\u003e and the port to [M5Stack](https://m5stack.com/) from [macsbug](https://macsbug.wordpress.com/2018/01/11/packetmonitor32-with-m5stack/). It was a challenge to see if I could mimic the operation of [pwnagotchi](https://github.com/evilsocket/pwnagotchi)\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 in an ESP32 SoC.\n\n![ui](./images/m5stack_ESP32_hash_monster.jpg)\n\nWhen a wifi device connect to an AP with WPA2/PSK instead of sharing the wifi key they exchange 4 EAPOL messages, this method is known as the 4-way handshake, capturing these 4 packets is possible to guess the password using dictonary attacks or brute force attack, recentely there is a more efficent way to calculate the wifi key using just one PMKID packet.\n\nPurple Hash Monster capture all the EAPOL / PMKID packets on the SD Card for further analysis.\n\nShort press on first button will change enable incognito mode (Display and leds off) long press will enable the SD Card and all EAPOL / PMKID will be stored on the SD-Card.\n\nShort press on the second button will change the display backlight brighness, long press will change the LED bars brightness.\n\nShort press on the third button will change WiFi Channel, long press will enable **Auto-Channel** or **Smart-Channel** modes. \n\n**Auto-Channel**  hop between channels 1,6 and after 15 seconds. \n\n**Smart-Channel**  cover all the channels sequentially, but only hop if there is not new SSID, EAPOL or DEAUTHS after 15 seconds. \n\nWhen a deauth packet is detected left LED bar will became red and for every EAPOL / PMKID detected right LED bar will became green, also de Purple Hash Monster behaviour will change depending on the WiFi trafic and packets detected. \n\n![ui](./Purple_Hash_Monster_Sprites/64/happy3_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/happy_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/happy4_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/happy2_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/love_64.png)  ![ui](./Purple_Hash_Monster_Sprites/64/surprise_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/angry_64.png)  ![ui](./Purple_Hash_Monster_Sprites/64/bored1_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/bored2_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/bored3_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/sleep1_64.png) ![ui](./Purple_Hash_Monster_Sprites/64/scare_64.png)\n\n\nUse Arduino IDE to compile it, tested with (ESP32 version 1.0.4) M5stack-fire.\n\n\n\n# How guess the WiFi password using brute force attack\n\n**Note:** Cracking an WiFi password using brute force attack for a long WiFi password without GPUs or Cloud help, will be a nightmare but if the password is short or you know the key pattern it will be \"easily\" cracked. \n\nHere you have a small guide for linux (Ubuntu) to crack the WiFi password using the files stored on the SD_Card of the Purple Hash Monster using your computer.\n\nFirst we need to install **hashcat**\n\n\u003cpre\u003e\n sudo apt-get update\n sudo apt install hashcat\n\u003c/pre\u003e\n\nEAPOL/PMKID stored on the SD-Card are *pcap* files, we have to convert to *hccapx* format to work with hashcat. In terminal from the directory were we have the *pcap* file from the SD-CARD:\n\n\u003cpre\u003e\n wget https://raw.githubusercontent.com/hashcat/hashcat-utils/master/src/cap2hccapx.c\n gcc -o cap2hccapx cap2hccapx.c\n ./cap2hccapx 1.pcap 1.hccapx\n\u003c/pre\u003e\n\nFor example if we know that the wifi password has a lenght of 8 digits we can run the following command, and in few seconds we will have the WiFi Password :)\n\n\u003cpre\u003e\n hashcat --force -m 2500 -a 3 -1 ?d -o cracked 1.hccapx ?1?1?1?1?1?1?1?1\n\u003c/pre\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FG4lile0%2FESP32-WiFi-Hash-Monster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FG4lile0%2FESP32-WiFi-Hash-Monster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FG4lile0%2FESP32-WiFi-Hash-Monster/lists"}