bettercap

Security & Privacy

The Swiss Army knife for 802.11, BLE, HID, CAN-bus, IPv4 and IPv6 networks reconnaissance and MITM attacks.

Latest v2.41.7 · by bettercapWebsitebettercap/bettercap

Release activity

Release activity — 5 releases across 3 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026
MondayNo releases on May 4, 20261 release on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026
TuesdayNo releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026
WednesdayNo releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026
ThursdayNo releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026

5 releases in the last year, busiest day 3

Changelog

v2.41.7

Latest
Changed 1
  • Enhanced PMKID validation and debug logging
Fixed 6
  • Close connection on panic recovery in the TCP acceptor
  • Fixed flags value (0x0c → 0xc0) in prefix option for ICMPv6 router advertisement
  • Use only iwlist to detect supported channels
  • Fixed dropped graph error
  • Fixed JS SBCB deserialization and JSSVCB key int64 typing
  • Apply int64 conversion for otto backwards compatibility
Security 2
  • Fixed mysql.server panic on crafted client handshake (remote DoS)
  • Fixed zerogod IPP chunked body panic via OOB uint64 allocation

From bettercap

🐛 Fixes
  • 🛡️ Fixed mysql.server panic on crafted client handshake (remote DoS)
  • 🛡️ Fixed zerogod IPP chunked body panic via OOB uint64 allocation (#1263)
  • Close connection on panic recovery in the TCP acceptor
  • Fixed flags value (0x0c0xc0) in prefix option for ICMPv6 router advertisement
  • Use only iwlist to detect supported channels (fixes #1243)
  • Fixed dropped graph error
  • Fixed JS SBCB deserialization and JSSVCB key int64 typing
  • int64 conversion for otto backwards compatibility
🔧 Improvements
  • Enhanced PMKID validation and debug logging
Miscellaneous
  • Bumped actions/download-artifact 5 → 8
  • Bumped actions/upload-artifact 4 → 7
  • Bumped docker/login-action 3 → 4
  • Bumped docker/setup-qemu-action 3 → 4
  • Bumped docker/build-push-action 6 → 7
View originalPermalink
How v2.41.7 went

v2.41.5

Added 7
  • Support for pcapng modern packet capture format
  • ble.NumDevices() function to get the count of discovered BLE devices
  • lan.NumHosts() function to get the count of discovered LAN hosts
  • wifi.NumAPs() function to get the count of discovered WiFi access points
  • Made BLEDeviceJSON accessible for external use
  • JS mkdirAll function for directory creation
  • JS appendFile function for file operations
Changed 3
  • Upgraded from google/gopacket to gopacket/gopacket
  • Replaced deprecated ioutil package with modern alternatives
  • Updated port name maps
Fixed 6
  • Panic in zerogod module when IPP request is nil
  • Concurrent map write for zerogod module port discovery
  • UI port binding logic and replaced panic with error logging
  • In-memory kv-aliases creation when loading AP data from JSON to prevent nil access panic
  • Buffered channel usage for signal.Notify
  • Filter out invalid WiFi frequencies

From bettercap

✨ New Features
  • Moved to pcapng format - Modern packet capture format support (closes #939)
  • ble.NumDevices() - Get the count of discovered BLE devices
  • lan.NumHosts() - Get the count of discovered LAN hosts
  • wifi.NumAPs() - Get the count of discovered WiFi access points
  • Made BLEDeviceJSON accessible for external use
  • Added JS mkdirAll function for directory creation
  • Added JS appendFile function for file operations
🐛 Fixes
  • Fixed panic in zerogod module when IPP request is nil (fixes #1234)
  • Fixed concurrent map write for zerogod module port discovery
  • Fixed UI port binding logic and replaced panic with error logging
  • Fixed in-memory kv-aliases creation when loading AP data from JSON (fixes nil access panic)
  • Fixed buffered channel usage for signal.Notify
  • Filter out invalid WiFi frequencies
🔧 Improvements
  • Upgraded from google/gopacket to gopacket/gopacket
  • Replaced deprecated ioutil package with modern alternatives
  • Updated port name maps
Miscellaneous
  • Code formatting improvements via gofmt
  • Makefile improvements for gofmt with -s and -w flags
  • Fixed broken documentation link
  • General code refactoring and minor fixes

This changelog was generated by Changelog.

View originalPermalink
How v2.41.5 went

v2.41.3

Hotfix release for cc475ddfba538c2c1b7c7b4039aaa5bae73dff2b

View originalPermalink
How v2.41.3 went

v2.41.2

Added 1
  • Add default username and password for the API to simplify initial setup and access control
Fixed 3
  • Correct tcp.proxy onData return value handling to ensure proper flow control in TCP proxy callbacks
  • Ensure consistent behavior between HTTP and HTTPS servers
  • Enforce callback signature checks to prevent runtime errors with invalid handlers

From bettercap

New Features
  • 🔐 Add default username and password for the API to simplify initial setup and access control. (thank you @kkrypt0nn)
Fixes
  • 🐛 Corrected tcp.proxy onData return value handling (fixes #788) to ensure proper flow control in TCP proxy callbacks. (thank you @LucasParsy)
  • Ensured consistent behavior between HTTP and HTTPS servers.
  • Enforced callback signature checks to prevent runtime errors with invalid handlers.
Miscellaneous
  • Fixed minor typos and improved wording (including ticker off description).
  • Maintenance: bumped GitHub Action actions/download-artifact from v4 to v5.
  • Housekeeping: merged upstream and dependency-related pull requests.

This changelog was generated by Changelog.

View originalPermalink
How v2.41.2 went

v2.41.1

Added 3
  • Queue handle is now passed to the packet proxy plugins to allow packet manipulation within the callback
  • Wifi module now reports the current channel in state
  • Added net.sniffer.interface parameter to sniff from a different interface
Changed 2
  • Updated Docker image to newer Golang version
  • Refactored deprecated ioutil calls to io equivalents
Fixed 6
  • Print event data instead of the whole struct for unhandled events
  • Various unit tests fixes for Windows
  • Routing tables unit tests fix for Linux
  • Gracefully handled packets that would crash gopacket
  • Fixed net.sniff stats output for local packets flag
  • Fixed JavaScript number conversion issues for backwards compatibility
Removed 1
  • Removed unused module

From bettercap

New Features
  • 🚀 Increased unit tests coverage considerably.
  • 🐳 Updated Docker image to newer Golang version.
  • 📦 Queue handle is now passed to the packet proxy plugins to allow packet manipulation within the callback (fixes #1202).
  • 📡 Wifi module now reports the current channel in state.
  • 🐍 Added net.sniffer.interface parameter to sniff from a different interface.
Fixes
  • 🔄 Print event data instead of the whole struct for unhandled events.
  • 🛠️ Various unit tests fixes for Windows.
  • 🐧 Routing tables unit tests fix for Linux.
  • 🔄 Refactored deprecated ioutil calls to io equivalents.
  • ✅ Removed unused module (ref #1201).
  • ⚠️ Gracefully handled packets that would crash gopacket (fixes #1184).
  • 🛡️ Fixed net.sniff stats output for local packets flag.
  • 🔄 Fixed JavaScript number conversion issues for backwards compatibility.
Miscellaneous
  • 📚 Added contributors to README.
  • 🔄 Various small fixes or general refactoring that did not warrant individual comments, including version bump for golang.org/x/net.
  • 🔄 Multiple updates and fixes to issue templates and configuration.
  • 🔄 Bumped all dependencies to their latest versions.

This changelog was generated by Changelog.

View originalPermalink
How v2.41.1 went

v2.41.0

Added 6
  • Introduce zerogod module for ZeroConf / Bonjour impersonation attacks
  • Make api.rest return stdout data after executing a session command
  • Add addSessionEvent function for DNS and HTTP proxy script environments
  • Add removeEventListener built-in function
  • Implement support for named tickers
  • Introduce blacklist and whitelist support logic
Changed 9
  • Add TLS support to DNS proxy
  • Implement backwards-compatible DNS record conversion
  • Support RFC3597 generic/unknown record types when Rdata field is present
  • Allow wildcards in blacklist configurations
  • Enhance IPv6 detection logic
  • Improve readability of debug logs
Fixed 3
  • Add nil check for interfaces to prevent crashes in IPv6 handling
  • Catch nil values in DNS records
  • Prioritize longer and more explicit hostnames in DNS proxy

From bettercap

New Features
  • ZeroGod Module: Introduced the zerogod module for ZeroConf / Bonjour impersonation attacks.
  • API Enhancements: api.rest now returns stdout data after executing a session command.
  • Session Event Handling: Added addSessionEvent function for both DNS and HTTP proxy script environments.
  • Built-in Functions: Added removeEventListener function.
  • Named Tickers: Implemented support for named tickers.
Improvements
  • DNS Proxy Enhancements:
    • Added TLS support.
    • Implemented backwards-compatible DNS record conversion.
    • Support for RFC3597 generic/unknown record types if the Rdata field is present.
  • Blacklist and Whitelist Support: Introduced logic to support blacklists and whitelists.
  • Wildcard Blacklisting: Allow wildcards in blacklist configurations.
  • IPv6 Improvements:
    • Enhanced detection logic.
    • Added a nil check for interfaces to prevent crashes.
  • Logging & Debugging:
    • Improved readability of debug logs.
    • JS property conversion errors are now printed for better error tracking.
Fixes
  • DNS Proxy Stability:
    • Catch nil values in DNS records.
    • Prioritize longer and more explicit hostnames.
  • UI Asset Handling:
    • Directly embedded UI assets.
    • Removed UI submodule.
  • Compatibility:
    • Improved backwards compatibility for getHandshakeFileFor.
  • Miscellaneous:
    • Various small fixes and refactorings.
Miscellaneous
  • Documentation:
    • Updated README.md.
  • Credits:
    • Acknowledged the grandcat package.

Full Changelog: https://github.com/bettercap/bettercap/compare/v2.40.0...v2.41.0

View originalPermalink
How v2.41.0 went

v2.4.0

Added 18
  • Support for 29bit OBD2 identifiers
  • Implemented can.obd2 builtin parser
  • can.fuzz now supports an optional size argument
  • Implemented can.dup and can.dump.inject to read a candump log file
  • can.dump reader will now sleep for the correct amount of time
  • Added new wifi cipher suites and auth types
Changed 2
  • can.fuzz now expects a hexadecimal frame id
  • WPA3 is now correctly identified and reported
Fixed 19
  • Added better debug logging for core.Exec
  • Fixed address reload on api.rest
  • Stop can.dump reader when can.recon is stopped
  • Fixed a nil pointer dereference when wifi.show is executed before wifi.recon on
  • Fixed deprecation warning on macOS native code
  • Fixed handshakes filename if wifi.aggregate is false
Removed 1
  • Removed armhf build

From bettercap

75478a2 misc: small fix or general refactoring i did not bother commenting 5bc9dd9 fix: added better debug logging for core.Exec (fixes #1125) 97b4dcb new: added support for 29bit obd2 identifiers c3999d6 new: implemented can.obd2 builtin parser cf6fba6 chore: updated ui version 3775295 chore: updated ui submodule b2035da fix: fixed address reload on api.rest 00c5b2c chore: updated ui submodule b1ac9cd chore: updated ui submodule 5786ffd chore: updated ui submodule 72afa07 new: can.fuzz now supports an optional size argument (thanks musafir) 1c56622 fix: can.fuzz now expects an hexadecimal frame id (thanks musafir) 4c75995 fix: stop can.dump reader when can.recon is stopped c4c7b8c chore: updated ui submodule bb847fc new: can.dump reader will now sleep for the correct amount of time 7702207 new: implemented can.dup and can.dump.inject to read a candump log file 840f819 refact: refactored can dbc logic 31d93e7 new: added new wifi cipher suites and auth types f0126c2 new: added new wifi RSN parsing 26b2c30 fix: fixed a nil pointer dereference when wifi.show is executed before wifi.recon on 575022f fix: fixed deprecation warning on macOS native code a4c99df chore: updated ui 81e18d2 chore: updated ui 81adcc9 fix: fixed handshakes filename if wifi.aggregate is false 7d85483 fix: expanding file path in file read api ac2d333 fix: initialize wifi module state correctly 9f61ec7 chore: fixed submodule url for github workflow f3132ce chore: updated git workflows to init submodules d8aeecb new: embedded ui 3ec7b01 new: added CAN to session json object 0202028 fix: do not allow wifi.recon if wifi.bruteforce is running ef9a3ef misc: small fix or general refactoring i did not bother commenting 5cc7260 misc: small fix or general refactoring i did not bother commenting 77ae56c fix: added p2p_disabled=1 for wifi.bruteforce on linux (ref #1075) 1b91eb3 new: implemented wifi.bruteforce for linux (closes #1075) d8e1128 fix: bring interface down for mac.changer module 08da91e new: implemented wifi.bruteforce for darwin (ref #1075) b0d56e4 fix: do not attempt mac lookup if gateway is empty 23e074b fix: do not report a routing error if the interface is disconnected 2d03782 fix: make sure that wifi channels are unique and sorted 8d8af63 chore: added WPA3 to readme 6a6e942 chore: added github to funding 0ceb938 fix: WPA3 is now correcly identified and reported (fixes #1098) 6282fe3 new: ble, can, hid and wifi modules will now set a custom prompt (closes #1117) d9a91d3 new: implemented can.filter e45c9cc docs: added can-bus to readme cc66b64 chore: removed unused files c5d2022 fix: fixed github action macOS architecture and Windows build script d733381 misc: small fix or general refactoring i did not bother commenting e1e8a0b fix: fixed windows build via msys2/setup-msys2@v2 9266ee9 misc: small fix or general refactoring i did not bother commenting 13cab7b fix: fixed binaries building action f619265 misc: small fix or general refactoring i did not bother commenting 72b1450 fix: setting PKG_CONFIG_PATH on windows builds 235017c chore: removed armhf build 86e87ab fix: attempt to fix tests on windows cdefa3c fix: attempt to fix tests on windows ee944d9 fix: attempt to fix tests on windows fcf285a chore: more veborse errors in environment tests 7f22425 fix: fixed compilation on windows 1df51fd fix: fixed windows test failure in environment_test.go afdc68f chore: refactored github workflows into separate files 9ab2e13 chore: refactored github workflows into separate files 6f1920f new: can.fuzz command 69744e6 fix: disable ble module for BSD (fixes #1115) 7636ca2 new: gps.set to manually set/override gps coordinates (closes #915) 9d5c38c fix: fixed verbose gousb logging (fixes #969) 2659a55 fix: using proper v2 package suffix (fixes #727) 76e136a fix: fixed device index use for BLE module (fixes #994) 93de427 new: history file location can now be set via BETTERCAP_HISTORY env var (closes #627) 9e7fda7 fix: added packet_proxy_freebsd (fixes #1067) fd05df6 new: implemented can.inject 5fe3ef3 new: new can module for CAN-bus

View originalPermalink
How v2.4.0 went

v2.33.0

Added 8
  • Added GitHub workflows
  • Updated mac vendor lookup with IEEE datasets
  • Updated golang.org/x/net for Go 1.23 compatibility
  • Pushed new graph experimental module
  • New ndp.spoof.router_lifetime option
  • Switching to github.com/stratoberry/go-gpsd
  • Added fileExists function to the session scripting runtime
  • Added loadJSON and saveJSON functions to the session scripting runtime
Changed 1
  • Replaced Travis with GitHub Actions
Fixed 11
  • Replaced nfqueue package
  • Added cover.out to .gitignore
  • If interface name has not been provided, avoid default to a tun interface
  • Updated gatt library to include fix for BLE-related issues
  • Workaround for PCAP_SET_RFMON issue
  • Every wifi frame injection operation on macOS will print an error

From bettercap

What's Changed

780032b misc: small fix or general refactoring i did not bother commenting 41fa4cd new: using simpler release file 107c8fd fix: fixed docker build 856c0d5 misc: small fix or general refactoring i did not bother commenting 0343e00 new: docker workflow d68da21 fix: dockerfile fixes 7605f4a fix: replaced nfqueue package (fixes #1070) dc621f5 misc: small fix or general refactoring i did not bother commenting 3e16c6d new: replaced travis with github actions (closes #1114) dd71378 misc: small fix or general refactoring i did not bother commenting 5d2c173 misc: small fix or general refactoring i did not bother commenting 632d703 new: added github workflows (ref #1114) 8b24723 fix: added cover.out to .gitignore 9abf7c8 fix: if interface name has not been provided, avoid default to a tun interface 7beb27c fix: updated gatt library to include fix for #1095 b12ba79 fix: workaround for PCAP_SET_RFMON issue (fixes #819, https://github.com/the-tcpdump-group/libpcap/issues/1041, https://github.com/the-tcpdump-group/libpcap/issues/1033) 06623dd Merge pull request #1085 from SkyperTHC/master 2499d51 fix: every wifi frame injection operation on macOS will print an error (ref #448) 5858743 new: updated mac vendor lookup with IEEE datasets 0dc5f66 fix: fixed wifi support on macOS (fixes pr #1100, fixes #1090, fixes #1076) 02fa241 misc: small fix or general refactoring i did not bother commenting c2ab5f4 reverted pr #1100 due to instability 7371a85 Merge pull request #1107 from stefanb/go1.23-support 9b6694f mereg 6951fbb fix: fixes cgo newline 9bf1474 Merge pull request #1074 from konradh/ndp-spoof-unset-neighbour 9cd1609 Merge pull request #1073 from konradh/ndp-spoof-router-lifetime 3df89fb Merge pull request #1100 from loks0n/fix-macos 74647db Update README.md 474215e Bump golang.org/x/net for Go 1.23 compatibility 826f13e new: pushed new graph experimental module ca2e257 Merge pull request #1087 from testwill/file_close 7182222 fix: macos 043bd45 fix: close cpu profile a950d3b sslstrip fix 5af1be3 fix: allow clearing ndp.spoof.neighbour to disable neighbor advertisements 4dc7bae new: new ndp.spoof.router_lifetime option 924ff57 Merge pull request #1005 from elleuc4/route_headings_fix ee35550 Merge pull request #1008 from jansramek/master 76a7820 Merge pull request #1024 from half-duplex/ndp-ban bdc389e Merge pull request #1023 from half-duplex/ndp-spoof-ip-fmt 32d997e Merge pull request #1036 from ttdennis/master 786dacf Fix BLE name assignment cdd483e ndp.spoof: add ndp.ban 27bae1c ndp.spoof: fix format string e5f8c16 fix: enable both ipv4 and ipv6 forwarding 58ca59b new: switching to github.com/stratoberry/go-gpsd (closes #938) 8e4a000 Update getting of possible channels (darwin) 44e2420 Skip line if no route headings found yet 24a5dfe Merge pull request #988 from tranzmatt/master 3f154cc Fix go/alpine Docker version to correct build breakage e224eea fix: give priority to iwlist as iw gives unsupported frequencies (fixes #881) 4f3f55f fix: fs related scripting functions will now resolve paths containing special characters a4fb94c Merge branch 'master' of github.com:bettercap/bettercap 11d9606 new: added fileExists function to the session scripting runtime c81db63 Merge pull request #956 from BenGardiner/ipv6_anyproxy_fixes eaf2b96 revert removal of default any.proxy.dst_address ipv4 address 2837108 new: added saveJSON function to the session scripting runtime eff8135 new: added loadJSON function to the session scripting runtime 22de9d3 new: added session.stopped event (and fixed session.started event propagation) fd160bf Merge pull request #953 from firefart/err 628c0b7 ndp.spoof: use validator for neighbour parameter, print targets on start, complain when a MAC can't be found (UDP thing doesn't always work) 2bc3d87 use ip6tables for any_proxy to ipv6 addresses 68924c3 do not swallow err on settxpower ed4239f Merge pull request #913 from PeterDaveHello/ImproveDockerfile b9a546e Merge pull request #923 from xrayid/master 0193d13 fix: exclude disabled channels a20fb13 parse every IPv4 and IPv6 route 3bd813f fix: parse interface names in IPv6 routing tables ac96bc8 fix IPv6 routing table parsing 5389228 also support 'Netif' reference in certain netstat builds c6740a5 fix automatic gateway detection for Linux aba29e0 fix: revert back to parsing IPv4 address blocks in net.FindInterface e255eba simplify interface IPv4 address parsing 44a1760 fix: adopt new IPv4 parsing logic eee94e9 simplify IPv4 validators 7fd9d18 fix macParser, MACValidator and IPv4Validator regexp selectors + add IPv4BlockValidator e81f36c Remove --update and replace with --no-cache for apk in Dockerfile

New Contributors

Full Changelog: https://github.com/bettercap/bettercap/compare/v2.32.0...v2.33.0

View originalPermalink
How v2.33.0 went
View all

Discussion

If you publish bettercap, you can claim this product by proving you administer its repository.