mirror of
https://github.com/bettercap/bettercap
synced 2025-08-21 14:03:17 -07:00
new: added native wifi handshakes capture from wifi.recon module
This commit is contained in:
parent
23f340d8eb
commit
a6cfb2413f
9 changed files with 273 additions and 30 deletions
|
@ -2,9 +2,16 @@ package network
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/google/gopacket"
|
||||
"github.com/google/gopacket/layers"
|
||||
"github.com/google/gopacket/pcapgo"
|
||||
|
||||
"github.com/evilsocket/islazy/fs"
|
||||
)
|
||||
|
||||
func Dot11Freq2Chan(freq int) int {
|
||||
|
@ -174,3 +181,37 @@ func (w *WiFi) Clear() error {
|
|||
w.aps = make(map[string]*AccessPoint)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (w *WiFi) SaveHandshakesTo(fileName string, linkType layers.LinkType) error {
|
||||
w.Lock()
|
||||
defer w.Unlock()
|
||||
|
||||
doHead := !fs.Exists(fileName)
|
||||
|
||||
fp, err := os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer fp.Close()
|
||||
|
||||
writer := pcapgo.NewWriter(fp)
|
||||
|
||||
if doHead {
|
||||
if err = writer.WriteFileHeader(65536, linkType); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for _, ap := range w.aps {
|
||||
for _, station := range ap.Clients() {
|
||||
station.Handshake.EachUnsavedPacket(func(pkt gopacket.Packet) {
|
||||
err = writer.WritePacket(pkt.Metadata().CaptureInfo, pkt.Data())
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue