2019-09-19 15:15:46 +02:00
|
|
|
# main algorithm configuration
|
|
|
|
main:
|
2019-10-01 14:43:06 +02:00
|
|
|
# currently implemented: en (default), de, nl, it
|
2019-09-29 14:17:02 +02:00
|
|
|
lang: en
|
2019-09-19 15:15:46 +02:00
|
|
|
# monitor interface to use
|
|
|
|
iface: mon0
|
|
|
|
# command to run to bring the mon interface up in case it's not up already
|
|
|
|
mon_start_cmd: /usr/bin/monstart
|
|
|
|
mon_stop_cmd: /usr/bin/monstop
|
|
|
|
mon_max_blind_epochs: 50
|
|
|
|
# log file
|
|
|
|
log: /var/log/pwnagotchi.log
|
|
|
|
# if true, will not restart the wifi module
|
|
|
|
no_restart: false
|
|
|
|
# access points to ignore
|
2019-09-27 16:41:11 +02:00
|
|
|
whitelist: []
|
2019-09-19 15:15:46 +02:00
|
|
|
# if not null, filter access points by this regular expression
|
|
|
|
filter: null
|
|
|
|
# cryptographic key for identity
|
2019-09-25 17:44:26 +01:00
|
|
|
pubkey: /etc/ssh/ssh_host_rsa_key.pub
|
2019-09-19 15:15:46 +02:00
|
|
|
|
|
|
|
ai:
|
|
|
|
# if false, only the default 'personality' will be used
|
|
|
|
enabled: true
|
|
|
|
path: /root/brain.nn
|
|
|
|
# 1.0 - laziness = probability of start training
|
|
|
|
laziness: 0.1
|
|
|
|
# how many epochs to train on
|
|
|
|
epochs_per_episode: 50
|
|
|
|
params:
|
|
|
|
# discount factor
|
|
|
|
gamma: 0.99
|
|
|
|
# the number of steps to run for each environment per update
|
|
|
|
n_steps: 1
|
|
|
|
# value function coefficient for the loss calculation
|
|
|
|
vf_coef: 0.25
|
|
|
|
# entropy coefficient for the loss calculation
|
|
|
|
ent_coef: 0.01
|
2019-09-25 17:44:26 +01:00
|
|
|
# maximum value for the gradient clipping
|
2019-09-19 15:15:46 +02:00
|
|
|
max_grad_norm: 0.5
|
|
|
|
# the learning rate
|
|
|
|
learning_rate: 0.0010
|
|
|
|
# rmsprop decay parameter
|
|
|
|
alpha: 0.99
|
|
|
|
# rmsprop epsilon
|
|
|
|
epsilon: 0.00001
|
|
|
|
# the verbosity level: 0 none, 1 training information, 2 tensorflow debug
|
|
|
|
verbose: 1
|
|
|
|
# type of scheduler for the learning rate update ('linear', 'constant', 'double_linear_con', 'middle_drop' or 'double_middle_drop')
|
|
|
|
lr_schedule: 'constant'
|
|
|
|
# the log location for tensorboard (if None, no logging)
|
|
|
|
tensorboard_log: null
|
|
|
|
|
|
|
|
personality:
|
|
|
|
# advertise our presence
|
|
|
|
advertise: true
|
|
|
|
# perform a deauthentication attack to client stations in order to get full or half handshakes
|
|
|
|
deauth: true
|
|
|
|
# send association frames to APs in order to get the PMKID
|
|
|
|
associate: true
|
|
|
|
# list of channels to recon on, or empty for all channels
|
|
|
|
channels: []
|
|
|
|
# minimum WiFi signal strength in dBm
|
|
|
|
min_rssi: -200
|
|
|
|
# number of seconds for wifi.ap.ttl
|
|
|
|
ap_ttl: 120
|
|
|
|
# number of seconds for wifi.sta.ttl
|
|
|
|
sta_ttl: 300
|
|
|
|
# time in seconds to wait during channel recon
|
|
|
|
recon_time: 30
|
|
|
|
# number of inactive epochs after which recon_time gets multiplied by recon_inactive_multiplier
|
|
|
|
max_inactive_scale: 2
|
|
|
|
# if more than max_inactive_scale epochs are inactive, recon_time *= recon_inactive_multiplier
|
|
|
|
recon_inactive_multiplier: 2
|
|
|
|
# time in seconds to wait during channel hopping if activity has been performed
|
|
|
|
hop_recon_time: 10
|
|
|
|
# time in seconds to wait during channel hopping if no activity has been performed
|
|
|
|
min_recon_time: 5
|
|
|
|
# maximum amount of deauths/associations per BSSID per session
|
|
|
|
max_interactions: 3
|
|
|
|
# maximum amount of misses before considering the data stale and triggering a new recon
|
|
|
|
max_misses_for_recon: 5
|
|
|
|
# number of active epochs that triggers the excited state
|
|
|
|
excited_num_epochs: 10
|
|
|
|
# number of inactive epochs that triggers the bored state
|
2019-09-25 17:44:26 +01:00
|
|
|
bored_num_epochs: 15
|
2019-09-19 15:15:46 +02:00
|
|
|
# number of inactive epochs that triggers the sad state
|
|
|
|
sad_num_epochs: 25
|
|
|
|
|
|
|
|
# ui configuration
|
|
|
|
ui:
|
|
|
|
# ePaper display can update every 3 secs anyway
|
|
|
|
fps: 0.3
|
|
|
|
display:
|
|
|
|
enabled: true
|
|
|
|
rotation: 180
|
2019-09-29 21:28:06 +02:00
|
|
|
# Possible options inkyphat/inky, papirus/papi, waveshare_1/ws_1 or waveshare_2/ws_2
|
2019-09-29 14:18:33 +02:00
|
|
|
type: 'waveshare_2'
|
2019-09-28 19:24:28 +02:00
|
|
|
# Possible options red/yellow/black (black used for monocromatic displays)
|
|
|
|
color: 'black'
|
2019-09-19 15:15:46 +02:00
|
|
|
video:
|
|
|
|
enabled: true
|
|
|
|
address: '10.0.0.2'
|
|
|
|
port: 8080
|
|
|
|
|
|
|
|
# twitter bot data
|
|
|
|
twitter:
|
|
|
|
enabled: false
|
|
|
|
consumer_key: aaa
|
|
|
|
consumer_secret: aaa
|
|
|
|
access_token_key: aaa
|
|
|
|
access_token_secret: aaa
|
|
|
|
|
|
|
|
# bettercap rest api configuration
|
|
|
|
bettercap:
|
|
|
|
# api scheme://hostname:port username and password
|
|
|
|
scheme: http
|
|
|
|
hostname: localhost
|
|
|
|
port: 8081
|
|
|
|
username: user
|
|
|
|
password: pass
|
2019-09-25 17:44:26 +01:00
|
|
|
# folder where bettercap stores the WPA handshakes, given that
|
2019-09-19 15:15:46 +02:00
|
|
|
# wifi.handshakes.aggregate will be set to false and individual
|
|
|
|
# pcap files will be created in order to minimize the chances
|
|
|
|
# of a single pcap file to get corrupted
|
|
|
|
handshakes: /root/handshakes
|
|
|
|
# events to mute in bettercap's events stream
|
|
|
|
silence:
|
|
|
|
- ble.device.new
|
|
|
|
- ble.device.lost
|
|
|
|
- ble.device.disconnected
|
|
|
|
- ble.device.connected
|
|
|
|
- ble.device.service.discovered
|
|
|
|
- ble.device.characteristic.discovered
|
|
|
|
- wifi.client.new
|
|
|
|
- wifi.client.lost
|
|
|
|
- wifi.client.probe
|
|
|
|
- wifi.ap.new
|
|
|
|
- wifi.ap.lost
|
|
|
|
- mod.started
|
|
|
|
|
|
|
|
|
|
|
|
|