fix: fixed vm locking

This commit is contained in:
Simone Margaritelli 2021-04-04 15:58:48 +02:00
parent 3c20f2c9aa
commit 2b1ff7d59f
3 changed files with 35 additions and 31 deletions

View file

@ -4,8 +4,8 @@ var telegramChatId = 'put your telegram chat id here';
function sendMessage(message) { function sendMessage(message) {
var url = 'https://api.telegram.org/bot' + telegramToken + var url = 'https://api.telegram.org/bot' + telegramToken +
'/sendMessage?chat_id=' + telegramChatId + '/sendMessage?chat_id=' + telegramChatId +
'&text=' + http.Encode(message); '&text=' + http.Encode(message);
var resp = http.Get(url, {}); var resp = http.Get(url, {});
if( resp.Error ) { if( resp.Error ) {
@ -13,34 +13,22 @@ function sendMessage(message) {
} }
} }
log("session script loaded"); function onDeauthentication(event) {
// enable recon and probing of new hosts
run('net.recon on');
run('net.probe on');
// enable wifi scanning
run('set wifi.interface ' + wifiInterface);
run('wifi.recon on');
// register for wifi.deauthentication events
onEvent('wifi.deauthentication', function(event){
var data = event.Data; var data = event.Data;
var message = '🚨 Detected deauthentication frame:\n\n' + var message = '🚨 Detected deauthentication frame:\n\n' +
'Time: ' + event.Time.String() + "\n" + 'Time: ' + event.Time.String() + "\n" +
'GPS: lat=' + session.GPS.Latitude + " lon=" + session.GPS.Longitude + " updated_at=" + session.GPS.Updated.String() + "\n\n" + 'GPS: lat=' + session.GPS.Latitude + " lon=" + session.GPS.Longitude + " updated_at=" + session.GPS.Updated.String() + "\n\n" +
'RSSI: ' + data.RSSI + "\n" + 'RSSI: ' + data.RSSI + "\n" +
'Reason: ' + data.Reason + "\n" + 'Reason: ' + data.Reason + "\n" +
'Address1: ' + data.Address1 + "\n" + 'Address1: ' + data.Address1 + "\n" +
'Address2: ' + data.Address2 + "\n" + 'Address2: ' + data.Address2 + "\n" +
'Address3: ' + data.Address3; 'Address3: ' + data.Address3;
// send to telegram bot // send to telegram bot
sendMessage(message); sendMessage(message);
}); }
// register for wifi.client.handshake events function onHandshake(event){
onEvent('wifi.client.handshake', function(event){
var data = event.Data; var data = event.Data;
var what = 'handshake'; var what = 'handshake';
@ -60,12 +48,26 @@ onEvent('wifi.client.handshake', function(event){
// send to telegram bot // send to telegram bot
sendMessage(message); sendMessage(message);
}); }
// register for any event function onAnyEvent(event){
onEvent(function(event){
// if endpoint.new or endpoint.lost, clear the screen and show hosts // if endpoint.new or endpoint.lost, clear the screen and show hosts
if( event.Tag.indexOf('endpoint.') === 0 ) { if( event.Tag.indexOf('endpoint.') === 0 ) {
run('clear; net.show'); // run('clear; net.show');
} }
}); }
log("session script loaded");
// enable recon and probing of new hosts
run('net.recon on');
run('net.probe on');
// enable wifi scanning
run('set wifi.interface ' + wifiInterface);
run('wifi.recon on');
// register for wifi.deauthentication events
onEvent('wifi.deauthentication', onDeauthentication);
// register for wifi.client.handshake events
onEvent('wifi.client.handshake', onHandshake);
// register for any event
onEvent(onAnyEvent);

View file

@ -1,9 +1,8 @@
package session package session
import ( import (
"github.com/evilsocket/islazy/plugin"
_ "github.com/bettercap/bettercap/js" _ "github.com/bettercap/bettercap/js"
"github.com/evilsocket/islazy/plugin"
) )
type Script struct { type Script struct {

View file

@ -56,9 +56,12 @@ func jsOnEventFunc(call otto.FunctionCall) otto.Value {
for event := range listener { for event := range listener {
if expr == "" || event.Tag == expr { if expr == "" || event.Tag == expr {
// lock vm
I.script.Lock()
if _, err := cb.Call(otto.NullValue(), event); err != nil { if _, err := cb.Call(otto.NullValue(), event); err != nil {
I.Events.Log(log.ERROR, "error dispatching event %s: %v", event.Tag, err) I.Events.Log(log.ERROR, "error dispatching event %s: %v", event.Tag, err)
} }
I.script.Unlock()
} }
} }
}(filterExpr, cb) }(filterExpr, cb)