fix: added a mutex to write ops in the hid module

This commit is contained in:
evilsocket 2019-02-21 11:50:56 +01:00
commit d21f3b447a
No known key found for this signature in database
GPG key ID: 1564D7F30393A456
4 changed files with 11 additions and 0 deletions

View file

@ -23,6 +23,7 @@ type HIDRecon struct {
lastPing time.Time
useLNA bool
sniffLock *sync.Mutex
writeLock *sync.Mutex
sniffAddrRaw []byte
sniffAddr string
pingPayload []byte
@ -47,6 +48,7 @@ func NewHIDRecon(s *session.Session) *HIDRecon {
SessionModule: session.NewSessionModule("hid", s),
waitGroup: &sync.WaitGroup{},
sniffLock: &sync.Mutex{},
writeLock: &sync.Mutex{},
hopPeriod: 100 * time.Millisecond,
pingPeriod: 100 * time.Millisecond,
sniffPeriod: 500 * time.Millisecond,

View file

@ -81,6 +81,9 @@ func (mod *HIDRecon) prepInjection() (error, *network.HIDDevice, []*Command) {
}
func (mod *HIDRecon) doInjection() {
mod.writeLock.Lock()
defer mod.writeLock.Unlock()
err, dev, cmds := mod.prepInjection()
if err != nil {
mod.Error("%v", err)

View file

@ -7,6 +7,9 @@ import (
)
func (mod *HIDRecon) doHopping() {
mod.writeLock.Lock()
defer mod.writeLock.Unlock()
if mod.inPromMode == false {
if err := mod.dongle.EnterPromiscMode(); err != nil {
mod.Error("error entering promiscuous mode: %v", err)

View file

@ -40,6 +40,9 @@ func (mod *HIDRecon) setSniffMode(mode string) error {
}
func (mod *HIDRecon) doPing() {
mod.writeLock.Lock()
defer mod.writeLock.Unlock()
if mod.inSniffMode == false {
if err := mod.dongle.EnterSnifferModeFor(mod.sniffAddrRaw); err != nil {
mod.Error("error entering sniffer mode for %s: %v", mod.sniffAddr, err)