{"id":15115389,"url":"https://github.com/ANDRVV/gapcast","last_synced_at":"2025-09-27T21:30:28.656Z","repository":{"id":215831712,"uuid":"739246391","full_name":"ANDRVV/gapcast","owner":"ANDRVV","description":"📡 802.11 broadcast analyzer \u0026 injector","archived":false,"fork":false,"pushed_at":"2024-12-26T19:11:06.000Z","size":4379,"stargazers_count":135,"open_issues_count":0,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-16T09:30:54.634Z","etag":null,"topics":["audit","evil-twin","ieee80211","injection","radar","security","security-tools","sniffer","suite","wifi","wifi-hacking","wifi-security","wpa","wpa2","wpa3","wpe"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ANDRVV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-05T05:32:27.000Z","updated_at":"2025-01-08T01:06:02.000Z","dependencies_parsed_at":"2024-01-06T21:26:57.824Z","dependency_job_id":"e4d9cd48-006b-441d-a72b-97fa5dcb6ddc","html_url":"https://github.com/ANDRVV/gapcast","commit_stats":null,"previous_names":["andrvv/gapcast"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANDRVV%2Fgapcast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANDRVV%2Fgapcast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANDRVV%2Fgapcast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANDRVV%2Fgapcast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ANDRVV","download_url":"https://codeload.github.com/ANDRVV/gapcast/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234460505,"owners_count":18836837,"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":["audit","evil-twin","ieee80211","injection","radar","security","security-tools","sniffer","suite","wifi","wifi-hacking","wifi-security","wpa","wpa2","wpa3","wpe"],"created_at":"2024-09-26T01:43:48.970Z","updated_at":"2025-09-27T21:30:28.649Z","avatar_url":"https://github.com/ANDRVV.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cmeta name=\"description\" content=\"Gapcast is an IEEE 802.11 packet injector, analyzer, evil twin software. The purpose of gapcast is to accurately detect each router's clients, analyze, capture and inject packets. Gapcast adds more and more parameters for filters and functionality during releases. Gapcast therefore requires good documentation to use the software to its fullest. Keys: Evil-Twin evil twin ieee 802.11 .11 dot11 wifi wifi-security injection inject suite hostapd dnsmasq hotspot access point station\"\u003e\n\n\u003cdiv align=\"center\" style=\"display:grid;place-items:center;\"\u003e\n\u003cp\u003e\n    \u003cimg src=\"https://github.com/ANDRVV/gapcast/blob/main/images/gapcast-t.png?raw=true\" alt=\"Gapcast logo\"\u003e\n    \u003ch3\u003e\u003ca href=\"mailto:vaccaro.andrea45@gmail.com\"\u003eAsk me\u003c/a\u003e | \u003ca href=\"https://github.com/ANDRVV/gapcast/wiki\"\u003eWiki\u003c/a\u003e | \u003ca href=\"https://github.com/ANDRVV/gapcast#Upcoming-features\"\u003eUpcoming\u003c/a\u003e\u003c/h3\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eAn IEEE 802.11 packet injector and analyzer software📡\u003c/p\u003e\n\u003cp align=\"center\"\u003eUse it with \u003ca href=\"https://github.com/ANDRVV/gapcast/wiki#-radar\"\u003e-radar\u003c/a\u003e!\u003c/p\u003e\n\n\u003cdiv align=\"center\" style=\"display:grid;place-items:center;\"\u003e\n\n[![Go](https://github.com/ANDRVV/gapcast/actions/workflows/go.yml/badge.svg)](https://github.com/ANDRVV/gapcast/actions/workflows/go.yml) [![CodeQL](https://github.com/ANDRVV/gapcast/actions/workflows/codeql.yml/badge.svg)](https://github.com/ANDRVV/gapcast/actions/workflows/codeql.yml) \n\n[![Codacy Security Scan](https://github.com/ANDRVV/gapcast/actions/workflows/codacy.yml/badge.svg)](https://github.com/ANDRVV/gapcast/actions/workflows/codacy.yml)\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eHow to install \u0026 run Gapcast\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e‼️Check \u003ca href=\"https://github.com/ANDRVV/gapcast#Dependencies\"\u003edependencies\u003c/a\u003e‼️\u003c/strong\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e🔧For \u003cstrong\u003eGNU/Linux\u003c/strong\u003e:\u003c/p\u003e\n\u003c/div\u003e\n\n```bash\ngit clone https://github.com/ANDRVV/gapcast.git\ncd gapcast\ngo build -buildvcs=false\n./gapcast -i \u003cinterface\u003e\n```\n\n\u003cp align=\"center\"\u003e❄️Or, you can install Gapcast from Nix-Os Packages\u003c/p\u003e\n\n![](https://github.com/ANDRVV/gapcast/blob/main/images/gapcast-scan.png?raw=true)\n\n\u003ch1 align=\"center\"\u003e💉Injection Table\u003c/h1\u003e\n\n\u003ca align=\"right\" href=\"https://github.com/ANDRVV/gapcast/wiki/Injection-Table\"\u003e\u003cimg src=\"https://github.com/ANDRVV/gapcast/blob/main/images/injtype-selection2.png?raw=true\" alt=\"Table Injection Example\" align=\"right\" width=\"350\"\u003e\u003c/a\u003e\n\u003cp align=\"left\"\u003eThe Injection table is a table where you can insert data and perform an attack or injection.\u003c/p\u003e\n\n\u003cp\u003eAdvantages:\u003c/p\u003e\n\u003cul\u003e\n    \u003cli\u003eYou don't need to specify the channel.\u003c/li\u003e\n    \u003cli\u003eYou don't need to specify the BSSID.\u003c/li\u003e\n    \u003cli\u003eMultiple synchronized attacks.\u003c/li\u003e\n    \u003cli\u003eQuick and easy attack initialization.\u003c/li\u003e\n    \u003cli\u003eInterface with attack information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor more info \u003ca href=\"https://github.com/ANDRVV/gapcast/wiki/Injection-Table\"\u003eclick here\u003c/a\u003e.\u003c/p\u003e\n\u003cbr\u003e\n\n\u003ch1 align=\"center\"\u003e🕵️‍♂️Deep Scanning\u003c/h1\u003e\n\n\u003ca align=\"right\" href=\"https://github.com/ANDRVV/gapcast/wiki/Single-deep-scanning\"\u003e\u003cimg src=\"https://github.com/ANDRVV/gapcast/raw/main/images/wiki/structure/scfull.png?raw=true\" alt=\"Single deep scanning Example\" align=\"right\" width=\"350\"\u003e\u003c/a\u003e\n\u003cp align=\"left\"\u003eThe Single Deep Scanning feature focuses on a single target, splitting the scan into three phases. By using the BSSID alone, you can obtain a wide range of information.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eStep 1\u003c/strong\u003e: detect the channel of the AP or STA.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eStep 2\u003c/strong\u003e: collects the packets that are exchanged.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eStep 3\u003c/strong\u003e: arrange the data and calculate the distance based on different antennas.\u003c/p\u003e\n\u003cp\u003eFor more info \u003ca href=\"https://github.com/ANDRVV/gapcast/wiki/Single-deep-scanning\"\u003eclick here\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e🚀Soon be updated! It will give more stuff!\u003c/p\u003e\n\u003cbr\u003e\n\n\u003ch1 align=\"center\"\u003e🌐Evil-Twin with Captive Portal\u003c/h1\u003e\n\n\u003ca align=\"right\" href=\"https://github.com/ANDRVV/gapcast/wiki/Evil-Twin\"\u003e\u003cimg src=\"https://github.com/ANDRVV/gapcast/blob/main/images/injtype-eviltwin2.png?raw=true\" alt=\"Evil Twin Example\" align=\"right\" width=\"550\"\u003e\u003c/a\u003e\n\u003cp align=\"left\"\u003eBy utilizing the INJ Table, you can initiate Evil Twin mode. After selecting the appropriate parameters, the attack will commence. One adapter, if available, will deauthenticate the victim's AP, while the second adapter will establish a rogue AP equipped with a \u003ci\u003eCaptive Portal system\u003c/i\u003e. This setup allows for the collection of credentials if the \u003cstrong\u003eLogIn\u003c/strong\u003e page templates are configured.\u003c/p\u003e\n\n\u003cp\u003eFor more info \u003ca href=\"https://github.com/ANDRVV/gapcast/wiki/Evil-twin\"\u003eclick here\u003c/a\u003e.\u003c/p\u003e\n\u003cbr\u003e\n\n\u003ch1 align=\"center\"\u003e📶Monitor mode handler\u003c/h1\u003e\n\n\u003cp\u003eFor each driver there is a correct \u003cstrong\u003esequence of commands to start the network card correctly in monitor mode\u003c/strong\u003e. \u003cstrong\u003eDrivers supported by gapcast can also have a txpower modification, bug fixing etc\u003c/strong\u003e. If the driver is not supported, it will start monitor mode directly with \u003ca href=\"https://github.com/aircrack-ng/aircrack-ng\"\u003eairmon-ng\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eSupported drivers:\u003c/p\u003e\n\u003cul\u003e\n    \u003cli\u003e\u003ccode\u003eRTL88XXAU\u003c/code\u003e mon+txpower\u003c/li\u003e\n    \u003cli\u003e\u003ccode\u003eR8187\u003c/code\u003e mon+bugfix\u003c/li\u003e\n    \u003cli\u003e\u003ccode\u003eRTL8812CU\u003c/code\u003e mon\u003c/li\u003e\n    \u003cli\u003e\u003ccode\u003eRTL8821CU\u003c/code\u003e mon\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003e [!IMPORTANT]\n\u003e \n\u003e If your driver is not supported or if you would like to boot into monitor mode with your changes, just do so before starting gapcast. **If gapcast recognizes that the interface has already set monitor mode, it will not make any changes or even try to restart monitor mode**.\n\n\u003ch1 align=\"center\"\u003e📈Parameter techniques\u003c/h1\u003e\n\n\u003ch3\u003eSCAN-ALL-FOR-LONG-TIME\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -2.4+5g -d\n```\n\u003e [!Note]\n\u003e \n\u003e Scans all 2.4/5 Ghz channels disabling shifting of inactive devices.\n\n\u003ch3\u003eSCAN-ALL-FREQ-OF-ONE-AP\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -2.4+5g -c 10,36 -p 03:e9:58:65:2a:8\n```\n\u003e [!Note]\n\u003e \n\u003e *Access Point* that have 5 Ghz and 2.4 Ghz transmit via 2 different addresses, the address for 5 Ghz and the one for 2.4 Ghz. In most cases these 2 addresses have a Mac address with a very similar prefix:\n\u003e \n\u003e In this case of selecting channel 10 for 2.4 Ghz and channel 36 for 5 Ghz with ```-c \u003cchannel\u003e``` uses 2 channels with different bands, using ```-2.4+5g```. Taking into consideration an *Access Point* that has the 5 Ghz address *03:e9:58:65:2a:8e* and the 2.4 Ghz address *03:e9:58:65:2a:86*, the **common prefix** is *03:e9:58:65:2a:8*, which is set via ```-p \u003cmac-prefix\u003e```.\n\u003e With this parameter **only devices with that specified prefix will be displayed**.\n\n\u003ch3\u003eSCAN-ALL-RANGE\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -2.4+5g -radar\n```\n\u003e [!Note]\n\u003e\n\u003e Scan all 2.4/5 Ghz channels showing the approximate radius of the location in meters with the ```-radar``` parameter using the [RadarRSSI library](https://github.com/ANDRVV/RadarRSSI), [more info](https://github.com/ANDRVV/gapcast/wiki#-radar).\n\n\u003ch3\u003eSCAN-2.4G\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e\n```\n\u003e [!Note]\n\u003e \n\u003e Scans all 2.4 channels.\n\n\u003ch3\u003eSCAN-5G\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -5g\n```\n\u003e [!Note]\n\u003e \n\u003e Scans all 5 Ghz channels adding ```-5g``` parameter.\n\n\u003ch3\u003eSCAN-ALL-RECORDING\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -2.4+5g -w out.pcap\n```\n\u003e [!Note]\n\u003e \n\u003e Scans all 2.4/5 Ghz channels, recording it and saving to a pcap file. Registration can be done by adding the ```-w \u003cfile\u003e.pcap``` parameter.\n\n\u003ch3\u003eSCAN-AP-DEAUTH-AND-REC-EAPOL\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -c 11 -b a3:65:1b:56:7e:3c -w out.pcap\n```\n\u003e [!Note]\n\u003e \n\u003e Scan only AP's channel (11) to get the best WPA 4-Way Handshake, To deauthenticate you need to open the gapcast injection table by pressing **[CTRL-P]**, then select the De-Auth type, enter the required information and start the attack by pressing **CTRL-D** key for a few seconds (check that clients are present via the light-blue bar), as soon as the **CTRL-D** key is deactivated, the clients that reconnect to the *Access Point*:\n\u003e \n\u003e Will **send and receive EAPOL packets** which you will record and save with the ```-w \u003cfile\u003e.pcap``` parameter.\n\n\u003ch3\u003eRESTORE-DATA\u003c/h3\u003e\n\n```bash\n./gapcast -l out.pcap\n```\n\u003e [!Note]\n\u003e \n\u003e If you want to restore data from a previous scan, done with [gapcast](https://github.com/ANDRVV/gapcast), [wireshark](https://github.com/wireshark/wireshark) or other tools and load them on the [gapcast](https://github.com/ANDRVV/gapcast) table to better analyze the data, just insert the ```-l \u003cfile\u003e.pcap``` parameter, if you want to restore the data and continue the scan you must add the ```-i \u003ciface\u003e``` parameter and/or add other additional parameters.\n\n\u003ch3\u003eSCAN-ALL-AP\u003c/h3\u003e\n\n```bash\n./gapcast -i \u003ciface\u003e -2.4+5g -beacon \n```\n\u003e [!Note]\n\u003e \n\u003e If you want to show or record only the *Access Points* you must enter the ```-beacon``` parameter. For this technique, where we show all *Access Points* of all channels it is necessary to add the parameter ```-2.4+5g```.\n\n\u003cp align=\"center\"\u003e💻Happy hacking!😊\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e📚Dependencies\u003c/h1\u003e\n\n\u003e [!CAUTION]\n\u003e You must install ```libpcap```, ```libx11```, ```apache2```, ```iptables```, ```hostapd```, ```dnsmasq```, ```aircrack-ng```, ```php```, if you'd use **gapcast**!\n\n\u003ch1 align=\"center\"\u003e🚀Upcoming features\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eTOTAL REFACTOR IN PROGRESS !!\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FANDRVV%2Fgapcast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FANDRVV%2Fgapcast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FANDRVV%2Fgapcast/lists"}