mirror of
https://github.com/bettercap/bettercap
synced 2025-07-16 10:03:39 -07:00
new: added support for half WPA handshakes (https://hashcat.net/forum/thread-6745-post-36007.html)
This commit is contained in:
parent
b57661a097
commit
9e9b984fec
2 changed files with 21 additions and 2 deletions
|
@ -93,9 +93,9 @@ func (mod *WiFiModule) discoverHandshakes(radiotap *layers.RadioTap, dot11 *laye
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we had unsaved packets and either the handshake is complete
|
// if we had unsaved packets and either the handshake is half, complete
|
||||||
// or it contains the PMKID, generate a new event.
|
// or it contains the PMKID, generate a new event.
|
||||||
if doSave && (rawPMKID != nil || station.Handshake.Complete()) {
|
if doSave && (rawPMKID != nil || station.Handshake.Half() || station.Handshake.Complete()) {
|
||||||
mod.Session.Events.Add("wifi.client.handshake", HandshakeEvent{
|
mod.Session.Events.Add("wifi.client.handshake", HandshakeEvent{
|
||||||
File: mod.shakesFile,
|
File: mod.shakesFile,
|
||||||
NewPackets: numUnsaved,
|
NewPackets: numUnsaved,
|
||||||
|
|
|
@ -90,6 +90,25 @@ func (h *Handshake) Complete() bool {
|
||||||
return nChal > 0 && nResp > 0 && nConf > 0
|
return nChal > 0 && nResp > 0 && nConf > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Handshake) Half() bool {
|
||||||
|
h.Lock()
|
||||||
|
defer h.Unlock()
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You can use every combination of the handshake to crack the net:
|
||||||
|
* M1/M2
|
||||||
|
* M2/M3
|
||||||
|
* M3/M4
|
||||||
|
* M1/M4 (if M4 snonce is not zero)
|
||||||
|
* We only have M1 (the challenge), M2 (the response) and M3 (the confirmation)
|
||||||
|
*/
|
||||||
|
nChal := len(h.Challenges)
|
||||||
|
nResp := len(h.Responses)
|
||||||
|
nConf := len(h.Confirmations)
|
||||||
|
|
||||||
|
return (nChal > 0 && nResp > 0) || (nResp > 0 && nConf > 0)
|
||||||
|
}
|
||||||
|
|
||||||
func (h *Handshake) HasPMKID() bool {
|
func (h *Handshake) HasPMKID() bool {
|
||||||
h.Lock()
|
h.Lock()
|
||||||
defer h.Unlock()
|
defer h.Unlock()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue